@office-iss/react-native-win32 0.84.0-preview.2 → 0.85.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/.eslintignore +1 -0
- package/.flowconfig +1 -5
- package/CHANGELOG.json +79 -13
- package/CHANGELOG.md +14 -8
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/EnterString.win32.js +2 -2
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +3 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.win32.js +16 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +11 -13
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +16 -16
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- 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/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.win32.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.win32.js +360 -744
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextNativeComponent.win32.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.win32.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.win32.js +22 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/index.js +9 -0
- package/index.win32.js +9 -0
- package/index.win32.js.flow +8 -1
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/overrides.json +30 -36
- package/package.json +20 -17
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/src-win/Libraries/Components/EnterString.win32.tsx +2 -2
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +14 -14
- package/src-win/index.win32.js.flow +8 -1
- package/types/index.d.ts +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +0 -94
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
|
@@ -26,7 +26,7 @@ export type {____TransformStyle_Internal};
|
|
|
26
26
|
|
|
27
27
|
declare export opaque type NativeColorValue;
|
|
28
28
|
export type ____ColorValue_Internal = null | string | number | NativeColorValue;
|
|
29
|
-
export type ColorArrayValue = null |
|
|
29
|
+
export type ColorArrayValue = null | ReadonlyArray<____ColorValue_Internal>;
|
|
30
30
|
export type PointValue = {
|
|
31
31
|
x: number,
|
|
32
32
|
y: number,
|
|
@@ -55,7 +55,7 @@ export type CursorValue = 'auto' | 'pointer';
|
|
|
55
55
|
* These properties are a subset of our styles that are consumed by the layout
|
|
56
56
|
* algorithm and affect the positioning and sizing of views.
|
|
57
57
|
*/
|
|
58
|
-
type ____LayoutStyle_Internal =
|
|
58
|
+
type ____LayoutStyle_Internal = Readonly<{
|
|
59
59
|
/** `display` sets the display type of this component.
|
|
60
60
|
*
|
|
61
61
|
* It works similarly to `display` in CSS, but only support 'flex' and 'none'.
|
|
@@ -675,7 +675,7 @@ type ____LayoutStyle_Internal = $ReadOnly<{
|
|
|
675
675
|
* To add a drop shadow to a view use the [`elevation` property](docs/viewstyleproptypes.html#elevation) (Android 5.0+).
|
|
676
676
|
* To customize the color use the [`shadowColor` property](docs/shadow-props.html#shadowColor) (Android 9.0+).
|
|
677
677
|
*/
|
|
678
|
-
export type ____ShadowStyle_InternalCore =
|
|
678
|
+
export type ____ShadowStyle_InternalCore = Readonly<{
|
|
679
679
|
/**
|
|
680
680
|
* Sets the drop shadow color
|
|
681
681
|
* @platform ios
|
|
@@ -685,7 +685,7 @@ export type ____ShadowStyle_InternalCore = $ReadOnly<{
|
|
|
685
685
|
* Sets the drop shadow offset
|
|
686
686
|
* @platform ios
|
|
687
687
|
*/
|
|
688
|
-
shadowOffset?:
|
|
688
|
+
shadowOffset?: Readonly<{
|
|
689
689
|
width?: number,
|
|
690
690
|
height?: number,
|
|
691
691
|
}>,
|
|
@@ -701,7 +701,7 @@ export type ____ShadowStyle_InternalCore = $ReadOnly<{
|
|
|
701
701
|
shadowRadius?: number,
|
|
702
702
|
}>;
|
|
703
703
|
|
|
704
|
-
export type ____ShadowStyle_Internal =
|
|
704
|
+
export type ____ShadowStyle_Internal = Readonly<{
|
|
705
705
|
...____ShadowStyle_InternalCore,
|
|
706
706
|
...____ShadowStyle_InternalOverrides,
|
|
707
707
|
}>;
|
|
@@ -729,9 +729,9 @@ type LinearGradientValue = {
|
|
|
729
729
|
type: 'linear-gradient',
|
|
730
730
|
// Angle or direction enums
|
|
731
731
|
direction?: string,
|
|
732
|
-
colorStops:
|
|
732
|
+
colorStops: ReadonlyArray<{
|
|
733
733
|
color: ____ColorValue_Internal,
|
|
734
|
-
positions?:
|
|
734
|
+
positions?: ReadonlyArray<string>,
|
|
735
735
|
}>,
|
|
736
736
|
};
|
|
737
737
|
|
|
@@ -771,9 +771,9 @@ type RadialGradientValue = {
|
|
|
771
771
|
shape: RadialGradientShape,
|
|
772
772
|
size: RadialGradientSize,
|
|
773
773
|
position: RadialGradientPosition,
|
|
774
|
-
colorStops:
|
|
774
|
+
colorStops: ReadonlyArray<{
|
|
775
775
|
color: ____ColorValue_Internal,
|
|
776
|
-
positions?:
|
|
776
|
+
positions?: ReadonlyArray<string>,
|
|
777
777
|
}>,
|
|
778
778
|
};
|
|
779
779
|
|
|
@@ -843,7 +843,7 @@ type ____BlendMode_Internal =
|
|
|
843
843
|
| 'color'
|
|
844
844
|
| 'luminosity';
|
|
845
845
|
|
|
846
|
-
export type ____ViewStyle_InternalBase =
|
|
846
|
+
export type ____ViewStyle_InternalBase = Readonly<{
|
|
847
847
|
backfaceVisibility?: 'visible' | 'hidden',
|
|
848
848
|
backgroundColor?: ____ColorValue_Internal,
|
|
849
849
|
borderColor?: ____ColorValue_Internal,
|
|
@@ -886,28 +886,26 @@ export type ____ViewStyle_InternalBase = $ReadOnly<{
|
|
|
886
886
|
elevation?: number,
|
|
887
887
|
pointerEvents?: 'auto' | 'none' | 'box-none' | 'box-only',
|
|
888
888
|
cursor?: CursorValue,
|
|
889
|
-
boxShadow?:
|
|
890
|
-
filter?:
|
|
889
|
+
boxShadow?: ReadonlyArray<BoxShadowValue> | string,
|
|
890
|
+
filter?: ReadonlyArray<FilterFunction> | string,
|
|
891
891
|
mixBlendMode?: ____BlendMode_Internal,
|
|
892
|
-
experimental_backgroundImage?:
|
|
893
|
-
experimental_backgroundSize?:
|
|
892
|
+
experimental_backgroundImage?: ReadonlyArray<BackgroundImageValue> | string,
|
|
893
|
+
experimental_backgroundSize?: ReadonlyArray<BackgroundSizeValue> | string,
|
|
894
894
|
experimental_backgroundPosition?:
|
|
895
|
-
|
|
|
896
|
-
| string,
|
|
897
|
-
experimental_backgroundRepeat?:
|
|
898
|
-
| $ReadOnlyArray<BackgroundRepeatValue>
|
|
895
|
+
| ReadonlyArray<BackgroundPositionValue>
|
|
899
896
|
| string,
|
|
897
|
+
experimental_backgroundRepeat?: ReadonlyArray<BackgroundRepeatValue> | string,
|
|
900
898
|
isolation?: 'auto' | 'isolate',
|
|
901
899
|
}>;
|
|
902
900
|
|
|
903
|
-
export type ____ViewStyle_InternalCore =
|
|
901
|
+
export type ____ViewStyle_InternalCore = Readonly<{
|
|
904
902
|
...$Exact<____LayoutStyle_Internal>,
|
|
905
903
|
...$Exact<____ShadowStyle_Internal>,
|
|
906
904
|
...$Exact<____TransformStyle_Internal>,
|
|
907
905
|
...____ViewStyle_InternalBase,
|
|
908
906
|
}>;
|
|
909
907
|
|
|
910
|
-
export type ____ViewStyle_Internal =
|
|
908
|
+
export type ____ViewStyle_Internal = Readonly<{
|
|
911
909
|
...____ViewStyle_InternalCore,
|
|
912
910
|
...____ViewStyle_InternalOverrides,
|
|
913
911
|
}>;
|
|
@@ -997,16 +995,16 @@ export type ____FontVariant_Internal =
|
|
|
997
995
|
| 'stylistic-twenty';
|
|
998
996
|
|
|
999
997
|
export type ____FontVariantArray_Internal =
|
|
1000
|
-
|
|
998
|
+
ReadonlyArray<____FontVariant_Internal>;
|
|
1001
999
|
|
|
1002
|
-
type ____TextStyle_InternalBase =
|
|
1000
|
+
type ____TextStyle_InternalBase = Readonly<{
|
|
1003
1001
|
color?: ____ColorValue_Internal,
|
|
1004
1002
|
fontFamily?: string,
|
|
1005
1003
|
fontSize?: number,
|
|
1006
1004
|
fontStyle?: 'normal' | 'italic',
|
|
1007
1005
|
fontWeight?: ____FontWeight_Internal,
|
|
1008
1006
|
fontVariant?: ____FontVariantArray_Internal | string,
|
|
1009
|
-
textShadowOffset?:
|
|
1007
|
+
textShadowOffset?: Readonly<{
|
|
1010
1008
|
width: number,
|
|
1011
1009
|
height: number,
|
|
1012
1010
|
}>,
|
|
@@ -1030,17 +1028,17 @@ type ____TextStyle_InternalBase = $ReadOnly<{
|
|
|
1030
1028
|
writingDirection?: 'auto' | 'ltr' | 'rtl',
|
|
1031
1029
|
}>;
|
|
1032
1030
|
|
|
1033
|
-
export type ____TextStyle_InternalCore =
|
|
1031
|
+
export type ____TextStyle_InternalCore = Readonly<{
|
|
1034
1032
|
...$Exact<____ViewStyle_Internal>,
|
|
1035
1033
|
...____TextStyle_InternalBase,
|
|
1036
1034
|
}>;
|
|
1037
1035
|
|
|
1038
|
-
export type ____TextStyle_Internal =
|
|
1036
|
+
export type ____TextStyle_Internal = Readonly<{
|
|
1039
1037
|
...____TextStyle_InternalCore,
|
|
1040
1038
|
...____TextStyle_InternalOverrides,
|
|
1041
1039
|
}>;
|
|
1042
1040
|
|
|
1043
|
-
export type ____ImageStyle_InternalCore =
|
|
1041
|
+
export type ____ImageStyle_InternalCore = Readonly<{
|
|
1044
1042
|
...$Exact<____ViewStyle_Internal>,
|
|
1045
1043
|
resizeMode?: ImageResizeMode,
|
|
1046
1044
|
objectFit?: 'cover' | 'contain' | 'fill' | 'scale-down' | 'none',
|
|
@@ -1049,12 +1047,12 @@ export type ____ImageStyle_InternalCore = $ReadOnly<{
|
|
|
1049
1047
|
overflow?: 'visible' | 'hidden',
|
|
1050
1048
|
}>;
|
|
1051
1049
|
|
|
1052
|
-
export type ____ImageStyle_Internal =
|
|
1050
|
+
export type ____ImageStyle_Internal = Readonly<{
|
|
1053
1051
|
...____ImageStyle_InternalCore,
|
|
1054
1052
|
...____ImageStyle_InternalOverrides,
|
|
1055
1053
|
}>;
|
|
1056
1054
|
|
|
1057
|
-
export type ____DangerouslyImpreciseStyle_InternalCore =
|
|
1055
|
+
export type ____DangerouslyImpreciseStyle_InternalCore = Readonly<{
|
|
1058
1056
|
...$Exact<____TextStyle_Internal>,
|
|
1059
1057
|
resizeMode?: ImageResizeMode,
|
|
1060
1058
|
objectFit?: 'cover' | 'contain' | 'fill' | 'scale-down' | 'none',
|
|
@@ -1062,7 +1060,7 @@ export type ____DangerouslyImpreciseStyle_InternalCore = $ReadOnly<{
|
|
|
1062
1060
|
overlayColor?: ColorValue,
|
|
1063
1061
|
}>;
|
|
1064
1062
|
|
|
1065
|
-
export type ____DangerouslyImpreciseStyle_Internal =
|
|
1063
|
+
export type ____DangerouslyImpreciseStyle_Internal = Readonly<{
|
|
1066
1064
|
...____DangerouslyImpreciseStyle_InternalCore,
|
|
1067
1065
|
...____DangerouslyImpreciseStyle_InternalOverrides,
|
|
1068
1066
|
...
|
|
@@ -1074,7 +1072,7 @@ export type StyleProp<+T> =
|
|
|
1074
1072
|
| T
|
|
1075
1073
|
| false
|
|
1076
1074
|
| ''
|
|
1077
|
-
|
|
|
1075
|
+
| ReadonlyArray<StyleProp<T>>;
|
|
1078
1076
|
|
|
1079
1077
|
export type ____DangerouslyImpreciseStyleProp_Internal = StyleProp<
|
|
1080
1078
|
Partial<____DangerouslyImpreciseStyle_Internal>,
|
|
@@ -1084,13 +1082,13 @@ export type ____DangerouslyImpreciseAnimatedStyleProp_Internal =
|
|
|
1084
1082
|
WithAnimatedValue<StyleProp<Partial<____DangerouslyImpreciseStyle_Internal>>>;
|
|
1085
1083
|
|
|
1086
1084
|
export type ____ViewStyleProp_Internal = StyleProp<
|
|
1087
|
-
|
|
1085
|
+
Readonly<Partial<____ViewStyle_Internal>>,
|
|
1088
1086
|
>;
|
|
1089
1087
|
export type ____TextStyleProp_Internal = StyleProp<
|
|
1090
|
-
|
|
1088
|
+
Readonly<Partial<____TextStyle_Internal>>,
|
|
1091
1089
|
>;
|
|
1092
1090
|
export type ____ImageStyleProp_Internal = StyleProp<
|
|
1093
|
-
|
|
1091
|
+
Readonly<Partial<____ImageStyle_Internal>>,
|
|
1094
1092
|
>;
|
|
1095
1093
|
|
|
1096
1094
|
export type ____Styles_Internal = {
|
|
@@ -1105,12 +1103,12 @@ export type ____Styles_Internal = {
|
|
|
1105
1103
|
type FlattenDepthLimiter = [void, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
1106
1104
|
type ____FlattenStyleProp_Helper<
|
|
1107
1105
|
+TStyleProp: StyleProp<unknown>,
|
|
1108
|
-
Depth:
|
|
1106
|
+
Depth: Values<FlattenDepthLimiter> = 9,
|
|
1109
1107
|
> = Depth extends 0
|
|
1110
1108
|
? empty
|
|
1111
1109
|
: TStyleProp extends null | void | false | ''
|
|
1112
1110
|
? empty // When TStyleProp is an array, recurse with decremented Depth
|
|
1113
|
-
: TStyleProp extends
|
|
1111
|
+
: TStyleProp extends ReadonlyArray<infer V>
|
|
1114
1112
|
? ____FlattenStyleProp_Helper<
|
|
1115
1113
|
V,
|
|
1116
1114
|
Depth extends number ? FlattenDepthLimiter[Depth] : 0,
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
export type ____DangerouslyImpreciseStyle_InternalOverrides =
|
|
12
|
-
export type ____ImageStyle_InternalOverrides =
|
|
13
|
-
export type ____ShadowStyle_InternalOverrides =
|
|
14
|
-
export type ____TextStyle_InternalOverrides =
|
|
15
|
-
export type ____ViewStyle_InternalOverrides =
|
|
11
|
+
export type ____DangerouslyImpreciseStyle_InternalOverrides = Readonly<{}>;
|
|
12
|
+
export type ____ImageStyle_InternalOverrides = Readonly<{}>;
|
|
13
|
+
export type ____ShadowStyle_InternalOverrides = Readonly<{}>;
|
|
14
|
+
export type ____TextStyle_InternalOverrides = Readonly<{}>;
|
|
15
|
+
export type ____ViewStyle_InternalOverrides = Readonly<{}>;
|
|
@@ -13,23 +13,23 @@ import type AnimatedNode from '../../Animated/nodes/AnimatedNode';
|
|
|
13
13
|
// Helper types to enforce that a single key is used in a transform object
|
|
14
14
|
// after generating a TypeScript definition file from the Flow types.
|
|
15
15
|
// $FlowExpectedError[unclear-type]
|
|
16
|
-
type KeysOfUnion<T> = T extends any ?
|
|
16
|
+
type KeysOfUnion<T> = T extends any ? keyof T : empty;
|
|
17
17
|
// $FlowExpectedError[unclear-type]
|
|
18
18
|
type ValueOfUnion<T, K> = T extends any
|
|
19
|
-
? K extends
|
|
19
|
+
? K extends keyof T
|
|
20
20
|
? T[K]
|
|
21
21
|
: empty
|
|
22
22
|
: empty;
|
|
23
23
|
type MergeUnion<T> = {
|
|
24
24
|
[K in KeysOfUnion<T>]?: ValueOfUnion<T, K>,
|
|
25
25
|
};
|
|
26
|
-
type MaximumOneOf<T: {...}> =
|
|
26
|
+
type MaximumOneOf<T: {...}> = Values<{
|
|
27
27
|
[K in keyof T]: $Exact<{
|
|
28
28
|
[P in keyof T]?: P extends K ? T[P] : empty,
|
|
29
29
|
}>,
|
|
30
30
|
}>;
|
|
31
31
|
|
|
32
|
-
export type ____TransformStyle_Internal =
|
|
32
|
+
export type ____TransformStyle_Internal = Readonly<{
|
|
33
33
|
/**
|
|
34
34
|
* `transform` accepts an array of transformation objects. Each object specifies
|
|
35
35
|
* the property that will be transformed as the key, and the value to use in the
|
|
@@ -47,8 +47,8 @@ export type ____TransformStyle_Internal = $ReadOnly<{
|
|
|
47
47
|
* `transform([{ skewX: '45deg' }])`
|
|
48
48
|
*/
|
|
49
49
|
transform?:
|
|
50
|
-
|
|
|
51
|
-
|
|
50
|
+
| ReadonlyArray<
|
|
51
|
+
Readonly<
|
|
52
52
|
MaximumOneOf<
|
|
53
53
|
MergeUnion<
|
|
54
54
|
| {+perspective: number | AnimatedNode}
|
|
@@ -73,7 +73,7 @@ export type ____TransformStyle_Internal = $ReadOnly<{
|
|
|
73
73
|
| {+skewY: string | AnimatedNode}
|
|
74
74
|
// TODO: what is the actual type it expects?
|
|
75
75
|
| {
|
|
76
|
-
+matrix:
|
|
76
|
+
+matrix: ReadonlyArray<number | AnimatedNode> | AnimatedNode,
|
|
77
77
|
},
|
|
78
78
|
>,
|
|
79
79
|
>,
|
|
@@ -37,7 +37,7 @@ type LinearGradientDirection =
|
|
|
37
37
|
type LinearGradientBackgroundImage = {
|
|
38
38
|
type: 'linear-gradient',
|
|
39
39
|
direction: LinearGradientDirection,
|
|
40
|
-
colorStops:
|
|
40
|
+
colorStops: ReadonlyArray<{
|
|
41
41
|
color: ColorStopColor,
|
|
42
42
|
position: ColorStopPosition,
|
|
43
43
|
}>,
|
|
@@ -57,7 +57,7 @@ type RadialGradientBackgroundImage = {
|
|
|
57
57
|
shape: RadialGradientShape,
|
|
58
58
|
size: RadialGradientSize,
|
|
59
59
|
position: RadialGradientPosition,
|
|
60
|
-
colorStops:
|
|
60
|
+
colorStops: ReadonlyArray<{
|
|
61
61
|
color: ColorStopColor,
|
|
62
62
|
position: ColorStopPosition,
|
|
63
63
|
}>,
|
|
@@ -73,9 +73,9 @@ type ParsedBackgroundImageValue =
|
|
|
73
73
|
| RadialGradientBackgroundImage;
|
|
74
74
|
|
|
75
75
|
export default function processBackgroundImage(
|
|
76
|
-
backgroundImage: ?(
|
|
77
|
-
):
|
|
78
|
-
let result:
|
|
76
|
+
backgroundImage: ?(ReadonlyArray<BackgroundImageValue> | string),
|
|
77
|
+
): ReadonlyArray<ParsedBackgroundImageValue> {
|
|
78
|
+
let result: ReadonlyArray<ParsedBackgroundImageValue> = [];
|
|
79
79
|
if (backgroundImage == null) {
|
|
80
80
|
return result;
|
|
81
81
|
}
|
|
@@ -183,7 +183,7 @@ export default function processBackgroundImage(
|
|
|
183
183
|
return result;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
function processColorStops(bgImage: BackgroundImageValue):
|
|
186
|
+
function processColorStops(bgImage: BackgroundImageValue): ReadonlyArray<{
|
|
187
187
|
color: ColorStopColor,
|
|
188
188
|
position: ColorStopPosition,
|
|
189
189
|
}> | null {
|
|
@@ -249,7 +249,7 @@ function processColorStops(bgImage: BackgroundImageValue): $ReadOnlyArray<{
|
|
|
249
249
|
|
|
250
250
|
function parseBackgroundImageCSSString(
|
|
251
251
|
cssString: string,
|
|
252
|
-
):
|
|
252
|
+
): ReadonlyArray<ParsedBackgroundImageValue> {
|
|
253
253
|
const gradients = [];
|
|
254
254
|
const bgImageStrings = splitGradients(cssString);
|
|
255
255
|
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
import type {BackgroundPositionValue} from './StyleSheetTypes';
|
|
13
13
|
|
|
14
14
|
export default function processBackgroundPosition(
|
|
15
|
-
backgroundPosition: ?(
|
|
16
|
-
):
|
|
17
|
-
let result:
|
|
15
|
+
backgroundPosition: ?(ReadonlyArray<BackgroundPositionValue> | string),
|
|
16
|
+
): ReadonlyArray<BackgroundPositionValue> {
|
|
17
|
+
let result: ReadonlyArray<BackgroundPositionValue> = [];
|
|
18
18
|
|
|
19
19
|
if (backgroundPosition == null) {
|
|
20
20
|
return [];
|
|
@@ -33,7 +33,7 @@ export default function processBackgroundPosition(
|
|
|
33
33
|
// https://www.w3.org/TR/css-backgrounds-3/#typedef-bg-position
|
|
34
34
|
const parseBackgroundPositionCSSString = (
|
|
35
35
|
backgroundPosition: string,
|
|
36
|
-
):
|
|
36
|
+
): ReadonlyArray<BackgroundPositionValue> => {
|
|
37
37
|
const result: Array<BackgroundPositionValue> = [];
|
|
38
38
|
const positions = backgroundPosition.split(',').map(s => s.trim());
|
|
39
39
|
|
|
@@ -27,9 +27,9 @@ function isBackgroundRepeatKeyword(
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export default function processBackgroundRepeat(
|
|
30
|
-
backgroundRepeat: ?(
|
|
31
|
-
):
|
|
32
|
-
let result:
|
|
30
|
+
backgroundRepeat: ?(ReadonlyArray<BackgroundRepeatValue> | string),
|
|
31
|
+
): ReadonlyArray<BackgroundRepeatValue> {
|
|
32
|
+
let result: ReadonlyArray<BackgroundRepeatValue> = [];
|
|
33
33
|
if (backgroundRepeat == null) {
|
|
34
34
|
return [];
|
|
35
35
|
}
|
|
@@ -50,7 +50,7 @@ export default function processBackgroundRepeat(
|
|
|
50
50
|
// https://www.w3.org/TR/css-backgrounds-3/#typedef-repeat-style
|
|
51
51
|
function parseBackgroundRepeatCSSString(
|
|
52
52
|
backgroundRepeat: string,
|
|
53
|
-
):
|
|
53
|
+
): ReadonlyArray<BackgroundRepeatValue> {
|
|
54
54
|
const result: Array<BackgroundRepeatValue> = [];
|
|
55
55
|
const bgRepeatArray = backgroundRepeat.split(',').map(s => s.trim());
|
|
56
56
|
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
import type {BackgroundSizeValue} from './StyleSheetTypes';
|
|
14
14
|
|
|
15
15
|
export default function processBackgroundSize(
|
|
16
|
-
backgroundSize: ?(
|
|
17
|
-
):
|
|
18
|
-
let result:
|
|
16
|
+
backgroundSize: ?(ReadonlyArray<BackgroundSizeValue> | string),
|
|
17
|
+
): ReadonlyArray<BackgroundSizeValue> {
|
|
18
|
+
let result: ReadonlyArray<BackgroundSizeValue> = [];
|
|
19
19
|
|
|
20
20
|
if (backgroundSize == null) {
|
|
21
21
|
// If the size is invalid, return an empty array and do not apply any background size. Same as web.
|
|
@@ -34,7 +34,7 @@ export default function processBackgroundSize(
|
|
|
34
34
|
// <bg-size> = [ <length-percentage [0,∞]> | auto ]{1,2} | cover | contain
|
|
35
35
|
function parseBackgroundSizeCSSString(
|
|
36
36
|
backgroundSize: string,
|
|
37
|
-
):
|
|
37
|
+
): ReadonlyArray<BackgroundSizeValue> {
|
|
38
38
|
const result: Array<BackgroundSizeValue> = [];
|
|
39
39
|
const sizes = backgroundSize.split(',').map(s => s.trim());
|
|
40
40
|
|
|
@@ -11,8 +11,15 @@
|
|
|
11
11
|
import type {ProcessedColorValue} from './processColor';
|
|
12
12
|
import type {BoxShadowValue} from './StyleSheetTypes';
|
|
13
13
|
|
|
14
|
+
import {enableOptimizedBoxShadowParsing} from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
14
15
|
import processColor from './processColor';
|
|
15
16
|
|
|
17
|
+
// Pre-compiled regex patterns for performance - avoids regex compilation on each call
|
|
18
|
+
const COMMA_SPLIT_REGEX = /,(?![^()]*\))/;
|
|
19
|
+
const WHITESPACE_SPLIT_REGEX = /\s+(?![^(]*\))/;
|
|
20
|
+
const LENGTH_PARSE_REGEX = /^([+-]?\d*\.?\d+)(px)?$/;
|
|
21
|
+
const NEWLINE_REGEX = /\n/g;
|
|
22
|
+
|
|
16
23
|
export type ParsedBoxShadow = {
|
|
17
24
|
offsetX: number,
|
|
18
25
|
offsetY: number,
|
|
@@ -23,7 +30,7 @@ export type ParsedBoxShadow = {
|
|
|
23
30
|
};
|
|
24
31
|
|
|
25
32
|
export default function processBoxShadow(
|
|
26
|
-
rawBoxShadows: ?(
|
|
33
|
+
rawBoxShadows: ?(ReadonlyArray<BoxShadowValue> | string),
|
|
27
34
|
): Array<ParsedBoxShadow> {
|
|
28
35
|
const result: Array<ParsedBoxShadow> = [];
|
|
29
36
|
if (rawBoxShadows == null) {
|
|
@@ -32,7 +39,12 @@ export default function processBoxShadow(
|
|
|
32
39
|
|
|
33
40
|
const boxShadowList =
|
|
34
41
|
typeof rawBoxShadows === 'string'
|
|
35
|
-
? parseBoxShadowString(
|
|
42
|
+
? parseBoxShadowString(
|
|
43
|
+
rawBoxShadows.replace(
|
|
44
|
+
enableOptimizedBoxShadowParsing() ? NEWLINE_REGEX : /\n/g,
|
|
45
|
+
' ',
|
|
46
|
+
),
|
|
47
|
+
)
|
|
36
48
|
: rawBoxShadows;
|
|
37
49
|
|
|
38
50
|
for (const rawBoxShadow of boxShadowList) {
|
|
@@ -109,7 +121,9 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
109
121
|
let result: Array<BoxShadowValue> = [];
|
|
110
122
|
|
|
111
123
|
for (const rawBoxShadow of rawBoxShadows
|
|
112
|
-
.split(
|
|
124
|
+
.split(
|
|
125
|
+
enableOptimizedBoxShadowParsing() ? COMMA_SPLIT_REGEX : /,(?![^()]*\))/,
|
|
126
|
+
) // split by comma that is not in parenthesis
|
|
113
127
|
.map(bS => bS.trim())
|
|
114
128
|
.filter(bS => bS !== '')) {
|
|
115
129
|
const boxShadow: BoxShadowValue = {
|
|
@@ -123,7 +137,11 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
123
137
|
let lengthCount = 0;
|
|
124
138
|
|
|
125
139
|
// split rawBoxShadow string by all whitespaces that are not in parenthesis
|
|
126
|
-
const args = rawBoxShadow.split(
|
|
140
|
+
const args = rawBoxShadow.split(
|
|
141
|
+
enableOptimizedBoxShadowParsing()
|
|
142
|
+
? WHITESPACE_SPLIT_REGEX
|
|
143
|
+
: /\s+(?![^(]*\))/,
|
|
144
|
+
);
|
|
127
145
|
for (const arg of args) {
|
|
128
146
|
const processedColor = processColor(arg);
|
|
129
147
|
if (processedColor != null) {
|
|
@@ -192,6 +210,28 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
192
210
|
}
|
|
193
211
|
|
|
194
212
|
function parseLength(length: string): ?number {
|
|
213
|
+
if (enableOptimizedBoxShadowParsing()) {
|
|
214
|
+
// Use pre-compiled regex for performance
|
|
215
|
+
const match = LENGTH_PARSE_REGEX.exec(length);
|
|
216
|
+
|
|
217
|
+
if (!match) {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const value = parseFloat(match[1]);
|
|
222
|
+
if (Number.isNaN(value)) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// match[2] is 'px' or undefined
|
|
227
|
+
// If no unit and value is not 0, return null
|
|
228
|
+
if (match[2] == null && value !== 0) {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return value;
|
|
233
|
+
}
|
|
234
|
+
|
|
195
235
|
// matches on args with units like "1.5 5% -80deg"
|
|
196
236
|
const argsWithUnitsRegex = /([+-]?\d*(\.\d+)?)([\w\W]+)?/g;
|
|
197
237
|
const match = argsWithUnitsRegex.exec(length);
|
|
@@ -17,8 +17,8 @@ import processColor, {type ProcessedColorValue} from './processColor';
|
|
|
17
17
|
const TRANSPARENT = 0; // rgba(0, 0, 0, 0)
|
|
18
18
|
|
|
19
19
|
function processColorArray(
|
|
20
|
-
colors:
|
|
21
|
-
):
|
|
20
|
+
colors: ?ReadonlyArray<ColorValue>,
|
|
21
|
+
): ?ReadonlyArray<ProcessedColorValue> {
|
|
22
22
|
return colors == null ? null : colors.map(processColorElement);
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -35,8 +35,8 @@ type ParsedDropShadow = {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
export default function processFilter(
|
|
38
|
-
filter: ?(
|
|
39
|
-
):
|
|
38
|
+
filter: ?(ReadonlyArray<FilterFunction> | string),
|
|
39
|
+
): ReadonlyArray<ParsedFilter> {
|
|
40
40
|
let result: Array<ParsedFilter> = [];
|
|
41
41
|
if (filter == null) {
|
|
42
42
|
return result;
|