@office-iss/react-native-win32 0.71.5 → 0.72.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 -3
- package/CHANGELOG.json +302 -47
- package/CHANGELOG.md +141 -27
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.win32.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +606 -0
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.win32.js +451 -0
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.win32.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +51 -0
- package/Libraries/Components/TextInput/TextInput.Types.win32.js +3 -0
- package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.win32.js +202 -890
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +71 -45
- package/Libraries/Components/View/View.win32.js +38 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
- package/Libraries/Components/View/ViewWin32.js +3 -3
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -9
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
- package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.win32.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/Inspector.win32.js +7 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +11 -5
- package/Libraries/Pressability/Pressability.win32.js +9 -3
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +142 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.win32.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/flow/global.js +29 -4
- package/flow/jest.js +258 -164
- package/index.js +56 -42
- package/index.win32.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/overrides.json +115 -85
- package/package.json +38 -28
- package/rn-get-polyfills.js +1 -1
- package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
- package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
- package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
- package/types/index.d.ts +2 -6
- package/types/modules/Codegen.d.ts +4 -4
- package/types/modules/globals.d.ts +27 -25
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
- package/types/public/ReactNativeRenderer.d.ts +2 -7
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/flow/JSITimerInternalType.js +0 -30
- package/flow/use-sync-external-store.js +0 -19
|
@@ -0,0 +1,76 @@
|
|
|
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
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// flowlint unsafe-getters-setters:off
|
|
12
|
+
|
|
13
|
+
import type DOMRectReadOnly from '../Geometry/DOMRectReadOnly';
|
|
14
|
+
import type {ArrayLike} from './ArrayLikeUtils';
|
|
15
|
+
|
|
16
|
+
import {createValueIterator} from './ArrayLikeUtils';
|
|
17
|
+
|
|
18
|
+
// IMPORTANT: The Flow type definition for this module is defined in `DOMRectList.js.flow`
|
|
19
|
+
// because Flow only supports indexers in classes in declaration files.
|
|
20
|
+
|
|
21
|
+
// $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable interface.
|
|
22
|
+
export default class DOMRectList implements Iterable<DOMRectReadOnly> {
|
|
23
|
+
_length: number;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Use `createDOMRectList` to create instances of this class.
|
|
27
|
+
*
|
|
28
|
+
* @private This is not defined in the declaration file, so users will not see
|
|
29
|
+
* the signature of the constructor.
|
|
30
|
+
*/
|
|
31
|
+
constructor(elements: $ReadOnlyArray<DOMRectReadOnly>) {
|
|
32
|
+
for (let i = 0; i < elements.length; i++) {
|
|
33
|
+
Object.defineProperty(this, i, {
|
|
34
|
+
value: elements[i],
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: false,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
this._length = elements.length;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get length(): number {
|
|
45
|
+
return this._length;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
item(index: number): DOMRectReadOnly | null {
|
|
49
|
+
if (index < 0 || index >= this._length) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// assigning to the interface allows us to access the indexer property in a
|
|
54
|
+
// type-safe way.
|
|
55
|
+
// eslint-disable-next-line consistent-this
|
|
56
|
+
const arrayLike: ArrayLike<DOMRectReadOnly> = this;
|
|
57
|
+
return arrayLike[index];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
|
|
61
|
+
[Symbol.iterator](): Iterator<DOMRectReadOnly> {
|
|
62
|
+
return createValueIterator(this);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* This is an internal method to create instances of `DOMRectList`,
|
|
68
|
+
* which avoids leaking its constructor to end users.
|
|
69
|
+
* We can do that because the external definition of `DOMRectList` lives in
|
|
70
|
+
* `DOMRectList.js.flow`, not here.
|
|
71
|
+
*/
|
|
72
|
+
export function createDOMRectList(
|
|
73
|
+
elements: $ReadOnlyArray<DOMRectReadOnly>,
|
|
74
|
+
): DOMRectList {
|
|
75
|
+
return new DOMRectList(elements);
|
|
76
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// flowlint unsafe-getters-setters:off
|
|
12
|
+
|
|
13
|
+
import type {ArrayLike} from './ArrayLikeUtils';
|
|
14
|
+
|
|
15
|
+
import {createValueIterator} from './ArrayLikeUtils';
|
|
16
|
+
|
|
17
|
+
// IMPORTANT: The type definition for this module is defined in `HTMLCollection.js.flow`
|
|
18
|
+
// because Flow only supports indexers in classes in declaration files.
|
|
19
|
+
|
|
20
|
+
// $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable<T> interface.
|
|
21
|
+
export default class HTMLCollection<T> implements Iterable<T>, ArrayLike<T> {
|
|
22
|
+
_length: number;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Use `createHTMLCollection` to create instances of this class.
|
|
26
|
+
*
|
|
27
|
+
* @private This is not defined in the declaration file, so users will not see
|
|
28
|
+
* the signature of the constructor.
|
|
29
|
+
*/
|
|
30
|
+
constructor(elements: $ReadOnlyArray<T>) {
|
|
31
|
+
for (let i = 0; i < elements.length; i++) {
|
|
32
|
+
Object.defineProperty(this, i, {
|
|
33
|
+
value: elements[i],
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: false,
|
|
36
|
+
writable: false,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this._length = elements.length;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
get length(): number {
|
|
44
|
+
return this._length;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
item(index: number): T | null {
|
|
48
|
+
if (index < 0 || index >= this._length) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// assigning to the interface allows us to access the indexer property in a
|
|
53
|
+
// type-safe way.
|
|
54
|
+
// eslint-disable-next-line consistent-this
|
|
55
|
+
const arrayLike: ArrayLike<T> = this;
|
|
56
|
+
return arrayLike[index];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Unused in React Native.
|
|
61
|
+
*/
|
|
62
|
+
namedItem(name: string): T | null {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
|
|
67
|
+
[Symbol.iterator](): Iterator<T> {
|
|
68
|
+
return createValueIterator(this);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* This is an internal method to create instances of `HTMLCollection`,
|
|
74
|
+
* which avoids leaking its constructor to end users.
|
|
75
|
+
* We can do that because the external definition of `HTMLCollection` lives in
|
|
76
|
+
* `HTMLCollection.js.flow`, not here.
|
|
77
|
+
*/
|
|
78
|
+
export function createHTMLCollection<T>(
|
|
79
|
+
elements: $ReadOnlyArray<T>,
|
|
80
|
+
): HTMLCollection<T> {
|
|
81
|
+
return new HTMLCollection(elements);
|
|
82
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// flowlint unsafe-getters-setters:off
|
|
12
|
+
|
|
13
|
+
import type {ArrayLike} from './ArrayLikeUtils';
|
|
14
|
+
|
|
15
|
+
import {
|
|
16
|
+
createEntriesIterator,
|
|
17
|
+
createKeyIterator,
|
|
18
|
+
createValueIterator,
|
|
19
|
+
} from './ArrayLikeUtils';
|
|
20
|
+
|
|
21
|
+
// IMPORTANT: The Flow type definition for this module is defined in `NodeList.js.flow`
|
|
22
|
+
// because Flow only supports indexers in classes in declaration files.
|
|
23
|
+
|
|
24
|
+
// $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable<T> interface.
|
|
25
|
+
export default class NodeList<T> implements Iterable<T>, ArrayLike<T> {
|
|
26
|
+
_length: number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Use `createNodeList` to create instances of this class.
|
|
30
|
+
*
|
|
31
|
+
* @private This is not defined in the declaration file, so users will not see
|
|
32
|
+
* the signature of the constructor.
|
|
33
|
+
*/
|
|
34
|
+
constructor(elements: $ReadOnlyArray<T>) {
|
|
35
|
+
for (let i = 0; i < elements.length; i++) {
|
|
36
|
+
Object.defineProperty(this, i, {
|
|
37
|
+
value: elements[i],
|
|
38
|
+
writable: false,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
this._length = elements.length;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get length(): number {
|
|
45
|
+
return this._length;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
item(index: number): T | null {
|
|
49
|
+
if (index < 0 || index >= this._length) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// assigning to the interface allows us to access the indexer property in a
|
|
54
|
+
// type-safe way.
|
|
55
|
+
// eslint-disable-next-line consistent-this
|
|
56
|
+
const arrayLike: ArrayLike<T> = this;
|
|
57
|
+
return arrayLike[index];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
entries(): Iterator<[number, T]> {
|
|
61
|
+
return createEntriesIterator(this);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
forEach<ThisType>(
|
|
65
|
+
callbackFn: (value: T, index: number, array: NodeList<T>) => mixed,
|
|
66
|
+
thisArg?: ThisType,
|
|
67
|
+
): void {
|
|
68
|
+
// assigning to the interface allows us to access the indexer property in a
|
|
69
|
+
// type-safe way.
|
|
70
|
+
// eslint-disable-next-line consistent-this
|
|
71
|
+
const arrayLike: ArrayLike<T> = this;
|
|
72
|
+
|
|
73
|
+
for (let index = 0; index < this._length; index++) {
|
|
74
|
+
if (thisArg == null) {
|
|
75
|
+
callbackFn(arrayLike[index], index, this);
|
|
76
|
+
} else {
|
|
77
|
+
callbackFn.call(thisArg, arrayLike[index], index, this);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
keys(): Iterator<number> {
|
|
83
|
+
return createKeyIterator(this);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
values(): Iterator<T> {
|
|
87
|
+
return createValueIterator(this);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
|
|
91
|
+
[Symbol.iterator](): Iterator<T> {
|
|
92
|
+
return createValueIterator(this);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* This is an internal method to create instances of `NodeList`,
|
|
98
|
+
* which avoids leaking its constructor to end users.
|
|
99
|
+
* We can do that because the external definition of `NodeList` lives in
|
|
100
|
+
* `NodeList.js.flow`, not here.
|
|
101
|
+
*/
|
|
102
|
+
export function createNodeList<T>(elements: $ReadOnlyArray<T>): NodeList<T> {
|
|
103
|
+
return new NodeList(elements);
|
|
104
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 DevSettings from '../Utilities/DevSettings';
|
|
12
|
+
import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
|
|
13
|
+
|
|
14
|
+
module.exports = {
|
|
15
|
+
setConsolePatchSettings(newSettings: string) {
|
|
16
|
+
NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
|
|
17
|
+
},
|
|
18
|
+
getConsolePatchSettings(): ?string {
|
|
19
|
+
return NativeDevToolsSettingsManager?.getConsolePatchSettings();
|
|
20
|
+
},
|
|
21
|
+
setProfilingSettings(newSettings: string) {
|
|
22
|
+
if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
|
|
23
|
+
NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
getProfilingSettings(): ?string {
|
|
27
|
+
if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
|
|
28
|
+
return NativeDevToolsSettingsManager.getProfilingSettings();
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
},
|
|
32
|
+
reload(): void {
|
|
33
|
+
DevSettings?.reload();
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -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
|
+
*/
|
|
10
|
+
|
|
11
|
+
export interface DevToolsSettingsManagerStatic {
|
|
12
|
+
reload(): void;
|
|
13
|
+
setConsolePatchSettings(newSettings: string): void;
|
|
14
|
+
getConsolePatchSettings(): string | null;
|
|
15
|
+
setProfilingSettings(newSettings: string): void;
|
|
16
|
+
getProfilingSettings(): string | null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const DevToolsSettingsManager: DevToolsSettingsManagerStatic;
|
|
20
|
+
export type DevToolsSettingsManager = DevToolsSettingsManagerStatic;
|
|
@@ -0,0 +1,49 @@
|
|
|
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 Settings from '../Settings/Settings';
|
|
12
|
+
import DevSettings from '../Utilities/DevSettings';
|
|
13
|
+
|
|
14
|
+
const CONSOLE_PATCH_SETTINGS_KEY = 'ReactDevTools::ConsolePatchSettings';
|
|
15
|
+
const PROFILING_SETTINGS_KEY = 'ReactDevTools::ProfilingSettings';
|
|
16
|
+
|
|
17
|
+
const DevToolsSettingsManager = {
|
|
18
|
+
setConsolePatchSettings(newConsolePatchSettings: string): void {
|
|
19
|
+
Settings.set({
|
|
20
|
+
[CONSOLE_PATCH_SETTINGS_KEY]: newConsolePatchSettings,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
getConsolePatchSettings(): ?string {
|
|
24
|
+
const value = Settings.get(CONSOLE_PATCH_SETTINGS_KEY);
|
|
25
|
+
if (typeof value === 'string') {
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
setProfilingSettings(newProfilingSettings: string): void {
|
|
32
|
+
Settings.set({
|
|
33
|
+
[PROFILING_SETTINGS_KEY]: newProfilingSettings,
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
getProfilingSettings(): ?string {
|
|
37
|
+
const value = Settings.get(PROFILING_SETTINGS_KEY);
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
reload(): void {
|
|
45
|
+
DevSettings?.reload();
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
module.exports = DevToolsSettingsManager;
|
|
@@ -0,0 +1,35 @@
|
|
|
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 DevSettings from '../Utilities/DevSettings';
|
|
12
|
+
import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
|
|
13
|
+
|
|
14
|
+
module.exports = {
|
|
15
|
+
setConsolePatchSettings(newSettings: string) {
|
|
16
|
+
NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
|
|
17
|
+
},
|
|
18
|
+
getConsolePatchSettings(): ?string {
|
|
19
|
+
return NativeDevToolsSettingsManager?.getConsolePatchSettings();
|
|
20
|
+
},
|
|
21
|
+
setProfilingSettings(newSettings: string) {
|
|
22
|
+
if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
|
|
23
|
+
NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
getProfilingSettings(): ?string {
|
|
27
|
+
if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
|
|
28
|
+
return NativeDevToolsSettingsManager.getProfilingSettings();
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
},
|
|
32
|
+
reload(): void {
|
|
33
|
+
DevSettings?.reload();
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -13,7 +13,12 @@ import type {TurboModule} from '../TurboModule/RCTExport';
|
|
|
13
13
|
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
14
14
|
|
|
15
15
|
export interface Spec extends TurboModule {
|
|
16
|
-
+
|
|
16
|
+
+setConsolePatchSettings: (newConsolePatchSettings: string) => void;
|
|
17
|
+
+getConsolePatchSettings: () => ?string;
|
|
18
|
+
+setProfilingSettings?: (newProfilingSettings: string) => void;
|
|
19
|
+
+getProfilingSettings?: () => ?string;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
|
-
export default (TurboModuleRegistry.get<Spec>(
|
|
22
|
+
export default (TurboModuleRegistry.get<Spec>(
|
|
23
|
+
'DevToolsSettingsManager',
|
|
24
|
+
): ?Spec);
|
|
@@ -21,4 +21,12 @@ type RCTDeviceEventDefinitions = $FlowFixMe;
|
|
|
21
21
|
*
|
|
22
22
|
* NativeModules that emit events should instead subclass `NativeEventEmitter`.
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
const RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions> =
|
|
25
|
+
new EventEmitter();
|
|
26
|
+
|
|
27
|
+
Object.defineProperty(global, '__rctDeviceEventEmitter', {
|
|
28
|
+
configurable: true,
|
|
29
|
+
value: RCTDeviceEventEmitter,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export default (RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions>);
|
|
@@ -159,7 +159,7 @@ class EventPolyfill implements IEvent {
|
|
|
159
159
|
// data with the other in sync.
|
|
160
160
|
_syntheticEvent: mixed;
|
|
161
161
|
|
|
162
|
-
constructor(type: string, eventInitDict?: Event$Init)
|
|
162
|
+
constructor(type: string, eventInitDict?: Event$Init) {
|
|
163
163
|
this.type = type;
|
|
164
164
|
this.bubbles = !!(eventInitDict?.bubbles || false);
|
|
165
165
|
this.cancelable = !!(eventInitDict?.cancelable || false);
|
|
@@ -18,16 +18,16 @@ export type ResolvedAssetSource = {|
|
|
|
18
18
|
+scale: number,
|
|
19
19
|
|};
|
|
20
20
|
|
|
21
|
-
import type {PackagerAsset} from '@react-native/assets/registry';
|
|
21
|
+
import type {PackagerAsset} from '@react-native/assets-registry/registry';
|
|
22
22
|
|
|
23
|
-
const PixelRatio = require('../Utilities/PixelRatio');
|
|
23
|
+
const PixelRatio = require('../Utilities/PixelRatio').default;
|
|
24
24
|
const Platform = require('../Utilities/Platform');
|
|
25
25
|
const {pickScale} = require('./AssetUtils');
|
|
26
26
|
const {
|
|
27
27
|
getAndroidResourceFolderName,
|
|
28
28
|
getAndroidResourceIdentifier,
|
|
29
29
|
getBasePath,
|
|
30
|
-
} = require('@react-native/assets/path-support');
|
|
30
|
+
} = require('@react-native/assets-registry/path-support');
|
|
31
31
|
const invariant = require('invariant');
|
|
32
32
|
|
|
33
33
|
/**
|
|
@@ -152,19 +152,22 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
152
152
|
let style;
|
|
153
153
|
let sources;
|
|
154
154
|
if (Array.isArray(source)) {
|
|
155
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
155
156
|
style = flattenStyle([styles.base, props.style]);
|
|
156
157
|
sources = source;
|
|
157
158
|
} else {
|
|
159
|
+
// $FlowFixMe[incompatible-type]
|
|
158
160
|
const {width = props.width, height = props.height, uri} = source;
|
|
161
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
159
162
|
style = flattenStyle([{width, height}, styles.base, props.style]);
|
|
160
163
|
sources = [source];
|
|
161
|
-
|
|
162
164
|
if (uri === '') {
|
|
163
165
|
console.warn('source.uri should not be an empty string');
|
|
164
166
|
}
|
|
165
167
|
}
|
|
166
168
|
|
|
167
169
|
const {height, width, ...restProps} = props;
|
|
170
|
+
|
|
168
171
|
const {onLoadStart, onLoad, onLoadEnd, onError} = props;
|
|
169
172
|
const nativeProps = {
|
|
170
173
|
...restProps,
|
|
@@ -12,7 +12,7 @@ import {Constructor} from '../../types/private/Utilities';
|
|
|
12
12
|
import {AccessibilityProps} from '../Components/View/ViewAccessibility';
|
|
13
13
|
import {Insets} from '../../types/public/Insets';
|
|
14
14
|
import {NativeMethods} from '../../types/public/ReactNativeTypes';
|
|
15
|
-
import {StyleProp} from '../StyleSheet/StyleSheet';
|
|
15
|
+
import {ColorValue, StyleProp} from '../StyleSheet/StyleSheet';
|
|
16
16
|
import {ImageStyle, ViewStyle} from '../StyleSheet/StyleSheetTypes';
|
|
17
17
|
import {LayoutChangeEvent, NativeSyntheticEvent} from '../Types/CoreEventTypes';
|
|
18
18
|
import {ImageResizeMode} from './ImageResizeMode';
|
|
@@ -225,6 +225,21 @@ export interface ImagePropsBase
|
|
|
225
225
|
*/
|
|
226
226
|
source: ImageSourcePropType;
|
|
227
227
|
|
|
228
|
+
/**
|
|
229
|
+
* A string representing the resource identifier for the image. Similar to
|
|
230
|
+
* src from HTML.
|
|
231
|
+
*
|
|
232
|
+
* See https://reactnative.dev/docs/image#src
|
|
233
|
+
*/
|
|
234
|
+
src?: string | undefined;
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Similar to srcset from HTML.
|
|
238
|
+
*
|
|
239
|
+
* See https://reactnative.dev/docs/image#srcset
|
|
240
|
+
*/
|
|
241
|
+
srcSet?: string | undefined;
|
|
242
|
+
|
|
228
243
|
/**
|
|
229
244
|
* similarly to `source`, this property represents the resource used to render
|
|
230
245
|
* the loading indicator for the image, displayed until image is ready to be
|
|
@@ -254,6 +269,52 @@ export interface ImagePropsBase
|
|
|
254
269
|
* See https://reactnative.dev/docs/image#alt
|
|
255
270
|
*/
|
|
256
271
|
alt?: string | undefined;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Height of the image component.
|
|
275
|
+
*
|
|
276
|
+
* See https://reactnative.dev/docs/image#height
|
|
277
|
+
*/
|
|
278
|
+
height?: number | undefined;
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Width of the image component.
|
|
282
|
+
*
|
|
283
|
+
* See https://reactnative.dev/docs/image#width
|
|
284
|
+
*/
|
|
285
|
+
width?: number | undefined;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Adds the CORS related header to the request.
|
|
289
|
+
* Similar to crossorigin from HTML.
|
|
290
|
+
*
|
|
291
|
+
* See https://reactnative.dev/docs/image#crossorigin
|
|
292
|
+
*/
|
|
293
|
+
crossOrigin?: 'anonymous' | 'use-credentials' | undefined;
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Changes the color of all the non-transparent pixels to the tintColor.
|
|
297
|
+
*
|
|
298
|
+
* See https://reactnative.dev/docs/image#tintcolor
|
|
299
|
+
*/
|
|
300
|
+
tintColor?: ColorValue | undefined;
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* A string indicating which referrer to use when fetching the resource.
|
|
304
|
+
* Similar to referrerpolicy from HTML.
|
|
305
|
+
*
|
|
306
|
+
* See https://reactnative.dev/docs/image#referrerpolicy
|
|
307
|
+
*/
|
|
308
|
+
referrerPolicy?:
|
|
309
|
+
| 'no-referrer'
|
|
310
|
+
| 'no-referrer-when-downgrade'
|
|
311
|
+
| 'origin'
|
|
312
|
+
| 'origin-when-cross-origin'
|
|
313
|
+
| 'same-origin'
|
|
314
|
+
| 'strict-origin'
|
|
315
|
+
| 'strict-origin-when-cross-origin'
|
|
316
|
+
| 'unsafe-url'
|
|
317
|
+
| undefined;
|
|
257
318
|
}
|
|
258
319
|
|
|
259
320
|
export interface ImageProps extends ImagePropsBase {
|
|
@@ -298,7 +359,7 @@ export class Image extends ImageBase {
|
|
|
298
359
|
}
|
|
299
360
|
|
|
300
361
|
export interface ImageBackgroundProps extends ImagePropsBase {
|
|
301
|
-
children?: React.ReactNode;
|
|
362
|
+
children?: React.ReactNode | undefined;
|
|
302
363
|
imageStyle?: StyleProp<ImageStyle> | undefined;
|
|
303
364
|
style?: StyleProp<ViewStyle> | undefined;
|
|
304
365
|
imageRef?(image: Image): void;
|
|
@@ -114,10 +114,13 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
114
114
|
let sources;
|
|
115
115
|
let style: ImageStyleProp;
|
|
116
116
|
if (Array.isArray(source)) {
|
|
117
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
117
118
|
style = flattenStyle([styles.base, props.style]) || {};
|
|
118
119
|
sources = source;
|
|
119
120
|
} else {
|
|
121
|
+
// $FlowFixMe[incompatible-type]
|
|
120
122
|
const {width = props.width, height = props.height, uri} = source;
|
|
123
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
121
124
|
style = flattenStyle([{width, height}, styles.base, props.style]) || {};
|
|
122
125
|
sources = [source];
|
|
123
126
|
|
|
@@ -137,10 +137,13 @@ const BaseImage = (props: ImagePropsType, forwardedRef) => {
|
|
|
137
137
|
let sources;
|
|
138
138
|
let style: ImageStyleProp;
|
|
139
139
|
if (Array.isArray(source)) {
|
|
140
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
140
141
|
style = flattenStyle([styles.base, props.style]) || {};
|
|
141
142
|
sources = source;
|
|
142
143
|
} else {
|
|
144
|
+
// $FlowFixMe[incompatible-type]
|
|
143
145
|
const {width = props.width, height = props.height, uri} = source;
|
|
146
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
144
147
|
style = flattenStyle([{width, height}, styles.base, props.style]) || {};
|
|
145
148
|
sources = [source];
|
|
146
149
|
|
|
@@ -93,7 +93,7 @@ export type ImageProps = {|
|
|
|
93
93
|
'aria-label'?: ?Stringish,
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Represents the nativeID of the associated label. When the assistive technology focuses on the component with this props.
|
|
97
97
|
*
|
|
98
98
|
* @platform android
|
|
99
99
|
*/
|