@amazon-devices/react-navigation__stack 2.0.1758683737
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/LICENSE +7 -0
- package/README.md +5 -0
- package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.bundle +29321 -0
- package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.map +1 -0
- package/SystemModules/amzn__react-navigation__stack-2.modules.txt +95 -0
- package/SystemModules/amzn__react-navigation__stack-2.private.modules.txt +258 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/THIRD_PARTY_NOTICES.txt +24 -0
- package/kepler-compatibility.json +8 -0
- package/kepler-transformed-package-info.json +3 -0
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +353 -0
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +259 -0
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js +134 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +100 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/commonjs/index.js +69 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/navigators/createStackNavigator.js +82 -0
- package/lib/commonjs/navigators/createStackNavigator.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/CardAnimationContext.js +11 -0
- package/lib/commonjs/utils/CardAnimationContext.js.map +1 -0
- package/lib/commonjs/utils/GestureHandlerRefContext.js +11 -0
- package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -0
- package/lib/commonjs/utils/ModalPresentationContext.js +12 -0
- package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -0
- package/lib/commonjs/utils/conditional.js +32 -0
- package/lib/commonjs/utils/conditional.js.map +1 -0
- package/lib/commonjs/utils/debounce.js +19 -0
- package/lib/commonjs/utils/debounce.js.map +1 -0
- package/lib/commonjs/utils/findLastIndex.js +15 -0
- package/lib/commonjs/utils/findLastIndex.js.map +1 -0
- package/lib/commonjs/utils/getDistanceForDirection.js +20 -0
- package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -0
- package/lib/commonjs/utils/getInvertedMultiplier.js +20 -0
- package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -0
- package/lib/commonjs/utils/memoize.js +33 -0
- package/lib/commonjs/utils/memoize.js.map +1 -0
- package/lib/commonjs/utils/useCardAnimation.js +19 -0
- package/lib/commonjs/utils/useCardAnimation.js.map +1 -0
- package/lib/commonjs/utils/useGestureHandlerRef.js +19 -0
- package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -0
- package/lib/commonjs/utils/useKeyboardManager.js +96 -0
- package/lib/commonjs/utils/useKeyboardManager.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.android.js +17 -0
- package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.ios.js +17 -0
- package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.js +24 -0
- package/lib/commonjs/views/GestureHandler.js.map +1 -0
- package/lib/commonjs/views/GestureHandlerNative.js +34 -0
- package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
- package/lib/commonjs/views/Header/Header.js +61 -0
- package/lib/commonjs/views/Header/Header.js.map +1 -0
- package/lib/commonjs/views/Header/HeaderContainer.js +127 -0
- package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -0
- package/lib/commonjs/views/Header/HeaderSegment.js +139 -0
- package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -0
- package/lib/commonjs/views/ModalStatusBarManager.js +42 -0
- package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -0
- package/lib/commonjs/views/Screens.js +44 -0
- package/lib/commonjs/views/Screens.js.map +1 -0
- package/lib/commonjs/views/Stack/Card.js +469 -0
- package/lib/commonjs/views/Stack/Card.js.map +1 -0
- package/lib/commonjs/views/Stack/CardContainer.js +259 -0
- package/lib/commonjs/views/Stack/CardContainer.js.map +1 -0
- package/lib/commonjs/views/Stack/CardSheet.js +54 -0
- package/lib/commonjs/views/Stack/CardSheet.js.map +1 -0
- package/lib/commonjs/views/Stack/CardStack.js +442 -0
- package/lib/commonjs/views/Stack/CardStack.js.map +1 -0
- package/lib/commonjs/views/Stack/StackView.js +333 -0
- package/lib/commonjs/views/Stack/StackView.js.map +1 -0
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js +338 -0
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +248 -0
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js +128 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js +94 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/module/index.js +33 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/navigators/createStackNavigator.js +73 -0
- package/lib/module/navigators/createStackNavigator.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/CardAnimationContext.js +3 -0
- package/lib/module/utils/CardAnimationContext.js.map +1 -0
- package/lib/module/utils/GestureHandlerRefContext.js +3 -0
- package/lib/module/utils/GestureHandlerRefContext.js.map +1 -0
- package/lib/module/utils/ModalPresentationContext.js +4 -0
- package/lib/module/utils/ModalPresentationContext.js.map +1 -0
- package/lib/module/utils/conditional.js +26 -0
- package/lib/module/utils/conditional.js.map +1 -0
- package/lib/module/utils/debounce.js +13 -0
- package/lib/module/utils/debounce.js.map +1 -0
- package/lib/module/utils/findLastIndex.js +9 -0
- package/lib/module/utils/findLastIndex.js.map +1 -0
- package/lib/module/utils/getDistanceForDirection.js +13 -0
- package/lib/module/utils/getDistanceForDirection.js.map +1 -0
- package/lib/module/utils/getInvertedMultiplier.js +14 -0
- package/lib/module/utils/getInvertedMultiplier.js.map +1 -0
- package/lib/module/utils/memoize.js +27 -0
- package/lib/module/utils/memoize.js.map +1 -0
- package/lib/module/utils/useCardAnimation.js +10 -0
- package/lib/module/utils/useCardAnimation.js.map +1 -0
- package/lib/module/utils/useGestureHandlerRef.js +10 -0
- package/lib/module/utils/useGestureHandlerRef.js.map +1 -0
- package/lib/module/utils/useKeyboardManager.js +88 -0
- package/lib/module/utils/useKeyboardManager.js.map +1 -0
- package/lib/module/views/GestureHandler.android.js +2 -0
- package/lib/module/views/GestureHandler.android.js.map +1 -0
- package/lib/module/views/GestureHandler.ios.js +2 -0
- package/lib/module/views/GestureHandler.ios.js.map +1 -0
- package/lib/module/views/GestureHandler.js +16 -0
- package/lib/module/views/GestureHandler.js.map +1 -0
- package/lib/module/views/GestureHandlerNative.js +14 -0
- package/lib/module/views/GestureHandlerNative.js.map +1 -0
- package/lib/module/views/Header/Header.js +52 -0
- package/lib/module/views/Header/Header.js.map +1 -0
- package/lib/module/views/Header/HeaderContainer.js +118 -0
- package/lib/module/views/Header/HeaderContainer.js.map +1 -0
- package/lib/module/views/Header/HeaderSegment.js +130 -0
- package/lib/module/views/Header/HeaderSegment.js.map +1 -0
- package/lib/module/views/ModalStatusBarManager.js +34 -0
- package/lib/module/views/ModalStatusBarManager.js.map +1 -0
- package/lib/module/views/Screens.js +34 -0
- package/lib/module/views/Screens.js.map +1 -0
- package/lib/module/views/Stack/Card.js +458 -0
- package/lib/module/views/Stack/Card.js.map +1 -0
- package/lib/module/views/Stack/CardContainer.js +250 -0
- package/lib/module/views/Stack/CardContainer.js.map +1 -0
- package/lib/module/views/Stack/CardSheet.js +46 -0
- package/lib/module/views/Stack/CardSheet.js.map +1 -0
- package/lib/module/views/Stack/CardStack.js +432 -0
- package/lib/module/views/Stack/CardStack.js.map +1 -0
- package/lib/module/views/Stack/StackView.js +323 -0
- package/lib/module/views/Stack/StackView.js.map +1 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +35 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +23 -0
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +42 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +36 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +29 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/navigators/createStackNavigator.d.ts +8 -0
- package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +481 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/CardAnimationContext.d.ts +5 -0
- package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +4 -0
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts +4 -0
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/conditional.d.ts +10 -0
- package/lib/typescript/src/utils/conditional.d.ts.map +1 -0
- package/lib/typescript/src/utils/debounce.d.ts +2 -0
- package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/src/utils/findLastIndex.d.ts +2 -0
- package/lib/typescript/src/utils/findLastIndex.d.ts.map +1 -0
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts +3 -0
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -0
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +3 -0
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -0
- package/lib/typescript/src/utils/memoize.d.ts +2 -0
- package/lib/typescript/src/utils/memoize.d.ts.map +1 -0
- package/lib/typescript/src/utils/useCardAnimation.d.ts +2 -0
- package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -0
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +3 -0
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +1 -0
- package/lib/typescript/src/utils/useKeyboardManager.d.ts +6 -0
- package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.d.ts +14 -0
- package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/Header.d.ts +5 -0
- package/lib/typescript/src/views/Header/Header.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts +20 -0
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts +14 -0
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -0
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts +12 -0
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +1 -0
- package/lib/typescript/src/views/Screens.d.ts +13 -0
- package/lib/typescript/src/views/Screens.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/Card.d.ts +76 -0
- package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardContainer.d.ts +63 -0
- package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardSheet.d.ts +15 -0
- package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardStack.d.ts +67 -0
- package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/StackView.d.ts +122 -0
- package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -0
- package/package.json +1 -0
- package/src/TransitionConfigs/CardStyleInterpolators.tsx +394 -0
- package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +268 -0
- package/src/TransitionConfigs/TransitionPresets.tsx +152 -0
- package/src/TransitionConfigs/TransitionSpecs.tsx +96 -0
- package/src/index.tsx +51 -0
- package/src/navigators/createStackNavigator.tsx +136 -0
- package/src/types.tsx +547 -0
- package/src/utils/CardAnimationContext.tsx +7 -0
- package/src/utils/GestureHandlerRefContext.tsx +5 -0
- package/src/utils/ModalPresentationContext.tsx +5 -0
- package/src/utils/conditional.tsx +33 -0
- package/src/utils/debounce.tsx +17 -0
- package/src/utils/findLastIndex.tsx +12 -0
- package/src/utils/getDistanceForDirection.tsx +18 -0
- package/src/utils/getInvertedMultiplier.tsx +18 -0
- package/src/utils/memoize.tsx +33 -0
- package/src/utils/useCardAnimation.tsx +15 -0
- package/src/utils/useGestureHandlerRef.tsx +15 -0
- package/src/utils/useKeyboardManager.tsx +105 -0
- package/src/views/GestureHandler.android.tsx +1 -0
- package/src/views/GestureHandler.ios.tsx +1 -0
- package/src/views/GestureHandler.tsx +23 -0
- package/src/views/GestureHandlerNative.tsx +23 -0
- package/src/views/Header/Header.tsx +72 -0
- package/src/views/Header/HeaderContainer.tsx +186 -0
- package/src/views/Header/HeaderSegment.tsx +205 -0
- package/src/views/ModalStatusBarManager.tsx +50 -0
- package/src/views/Screens.tsx +43 -0
- package/src/views/Stack/Card.tsx +628 -0
- package/src/views/Stack/CardContainer.tsx +320 -0
- package/src/views/Stack/CardSheet.tsx +61 -0
- package/src/views/Stack/CardStack.tsx +717 -0
- package/src/views/Stack/StackView.tsx +474 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import Color from 'color';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Animated, InteractionManager, Platform, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';
|
|
6
|
+
import CardAnimationContext from '../../utils/CardAnimationContext';
|
|
7
|
+
import getDistanceForDirection from '../../utils/getDistanceForDirection';
|
|
8
|
+
import getInvertedMultiplier from '../../utils/getInvertedMultiplier';
|
|
9
|
+
import memoize from '../../utils/memoize';
|
|
10
|
+
import { GestureState, PanGestureHandler } from '../GestureHandler';
|
|
11
|
+
import ModalStatusBarManager from '../ModalStatusBarManager';
|
|
12
|
+
import CardSheet from './CardSheet';
|
|
13
|
+
const GESTURE_VELOCITY_IMPACT = 0.3;
|
|
14
|
+
const TRUE = 1;
|
|
15
|
+
const FALSE = 0;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The distance of touch start from the edge of the screen where the gesture will be recognized
|
|
19
|
+
*/
|
|
20
|
+
const GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;
|
|
21
|
+
const GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;
|
|
22
|
+
const useNativeDriver = Platform.OS !== 'web';
|
|
23
|
+
const hasOpacityStyle = style => {
|
|
24
|
+
if (style) {
|
|
25
|
+
const flattenedStyle = StyleSheet.flatten(style);
|
|
26
|
+
return flattenedStyle.opacity != null;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
|
30
|
+
export default class Card extends React.Component {
|
|
31
|
+
static defaultProps = {
|
|
32
|
+
shadowEnabled: false,
|
|
33
|
+
gestureEnabled: true,
|
|
34
|
+
gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,
|
|
35
|
+
overlay: ({
|
|
36
|
+
style
|
|
37
|
+
}) => style ? /*#__PURE__*/React.createElement(Animated.View, {
|
|
38
|
+
pointerEvents: "none",
|
|
39
|
+
style: [styles.overlay, style]
|
|
40
|
+
}) : null
|
|
41
|
+
};
|
|
42
|
+
componentDidMount() {
|
|
43
|
+
this.animate({
|
|
44
|
+
closing: this.props.closing
|
|
45
|
+
});
|
|
46
|
+
this.isCurrentlyMounted = true;
|
|
47
|
+
}
|
|
48
|
+
componentDidUpdate(prevProps) {
|
|
49
|
+
const {
|
|
50
|
+
layout,
|
|
51
|
+
gestureDirection,
|
|
52
|
+
closing
|
|
53
|
+
} = this.props;
|
|
54
|
+
const {
|
|
55
|
+
width,
|
|
56
|
+
height
|
|
57
|
+
} = layout;
|
|
58
|
+
if (width !== prevProps.layout.width) {
|
|
59
|
+
this.layout.width.setValue(width);
|
|
60
|
+
}
|
|
61
|
+
if (height !== prevProps.layout.height) {
|
|
62
|
+
this.layout.height.setValue(height);
|
|
63
|
+
}
|
|
64
|
+
if (gestureDirection !== prevProps.gestureDirection) {
|
|
65
|
+
this.inverted.setValue(getInvertedMultiplier(gestureDirection));
|
|
66
|
+
}
|
|
67
|
+
const toValue = this.getAnimateToValue(this.props);
|
|
68
|
+
if (this.getAnimateToValue(prevProps) !== toValue || this.lastToValue !== toValue) {
|
|
69
|
+
// We need to trigger the animation when route was closed
|
|
70
|
+
// Thr route might have been closed by a `POP` action or by a gesture
|
|
71
|
+
// When route was closed due to a gesture, the animation would've happened already
|
|
72
|
+
// It's still important to trigger the animation so that `onClose` is called
|
|
73
|
+
// If `onClose` is not called, cleanup step won't be performed for gestures
|
|
74
|
+
this.animate({
|
|
75
|
+
closing
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
componentWillUnmount() {
|
|
80
|
+
this.props.gesture.stopAnimation();
|
|
81
|
+
this.isCurrentlyMounted = false;
|
|
82
|
+
this.handleEndInteraction();
|
|
83
|
+
}
|
|
84
|
+
isCurrentlyMounted = false;
|
|
85
|
+
isClosing = new Animated.Value(FALSE);
|
|
86
|
+
inverted = new Animated.Value(getInvertedMultiplier(this.props.gestureDirection));
|
|
87
|
+
layout = {
|
|
88
|
+
width: new Animated.Value(this.props.layout.width),
|
|
89
|
+
height: new Animated.Value(this.props.layout.height)
|
|
90
|
+
};
|
|
91
|
+
isSwiping = new Animated.Value(FALSE);
|
|
92
|
+
animate = ({
|
|
93
|
+
closing,
|
|
94
|
+
velocity
|
|
95
|
+
}) => {
|
|
96
|
+
const {
|
|
97
|
+
gesture,
|
|
98
|
+
transitionSpec,
|
|
99
|
+
onOpen,
|
|
100
|
+
onClose,
|
|
101
|
+
onTransition
|
|
102
|
+
} = this.props;
|
|
103
|
+
const toValue = this.getAnimateToValue({
|
|
104
|
+
...this.props,
|
|
105
|
+
closing
|
|
106
|
+
});
|
|
107
|
+
this.lastToValue = toValue;
|
|
108
|
+
this.isClosing.setValue(closing ? TRUE : FALSE);
|
|
109
|
+
const spec = closing ? transitionSpec.close : transitionSpec.open;
|
|
110
|
+
const animation = spec.animation === 'spring' ? Animated.spring : Animated.timing;
|
|
111
|
+
this.setPointerEventsEnabled(!closing);
|
|
112
|
+
this.handleStartInteraction();
|
|
113
|
+
clearTimeout(this.pendingGestureCallback);
|
|
114
|
+
onTransition === null || onTransition === void 0 || onTransition({
|
|
115
|
+
closing,
|
|
116
|
+
gesture: velocity !== undefined
|
|
117
|
+
});
|
|
118
|
+
animation(gesture, {
|
|
119
|
+
...spec.config,
|
|
120
|
+
velocity,
|
|
121
|
+
toValue,
|
|
122
|
+
useNativeDriver,
|
|
123
|
+
isInteraction: false
|
|
124
|
+
}).start(({
|
|
125
|
+
finished
|
|
126
|
+
}) => {
|
|
127
|
+
this.handleEndInteraction();
|
|
128
|
+
clearTimeout(this.pendingGestureCallback);
|
|
129
|
+
if (finished) {
|
|
130
|
+
if (closing) {
|
|
131
|
+
onClose();
|
|
132
|
+
} else {
|
|
133
|
+
onOpen();
|
|
134
|
+
}
|
|
135
|
+
if (this.isCurrentlyMounted) {
|
|
136
|
+
// Make sure to re-open screen if it wasn't removed
|
|
137
|
+
this.forceUpdate();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
getAnimateToValue = ({
|
|
143
|
+
closing,
|
|
144
|
+
layout,
|
|
145
|
+
gestureDirection
|
|
146
|
+
}) => {
|
|
147
|
+
if (!closing) {
|
|
148
|
+
return 0;
|
|
149
|
+
}
|
|
150
|
+
return getDistanceForDirection(layout, gestureDirection);
|
|
151
|
+
};
|
|
152
|
+
setPointerEventsEnabled = enabled => {
|
|
153
|
+
var _this$ref$current;
|
|
154
|
+
const pointerEvents = enabled ? 'box-none' : 'none';
|
|
155
|
+
(_this$ref$current = this.ref.current) === null || _this$ref$current === void 0 || _this$ref$current.setPointerEvents(pointerEvents);
|
|
156
|
+
};
|
|
157
|
+
handleStartInteraction = () => {
|
|
158
|
+
if (this.interactionHandle === undefined) {
|
|
159
|
+
this.interactionHandle = InteractionManager.createInteractionHandle();
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
handleEndInteraction = () => {
|
|
163
|
+
if (this.interactionHandle !== undefined) {
|
|
164
|
+
InteractionManager.clearInteractionHandle(this.interactionHandle);
|
|
165
|
+
this.interactionHandle = undefined;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
handleGestureStateChange = ({
|
|
169
|
+
nativeEvent
|
|
170
|
+
}) => {
|
|
171
|
+
const {
|
|
172
|
+
layout,
|
|
173
|
+
onClose,
|
|
174
|
+
onGestureBegin,
|
|
175
|
+
onGestureCanceled,
|
|
176
|
+
onGestureEnd,
|
|
177
|
+
gestureDirection,
|
|
178
|
+
gestureVelocityImpact
|
|
179
|
+
} = this.props;
|
|
180
|
+
switch (nativeEvent.state) {
|
|
181
|
+
case GestureState.ACTIVE:
|
|
182
|
+
this.isSwiping.setValue(TRUE);
|
|
183
|
+
this.handleStartInteraction();
|
|
184
|
+
onGestureBegin === null || onGestureBegin === void 0 || onGestureBegin();
|
|
185
|
+
break;
|
|
186
|
+
case GestureState.CANCELLED:
|
|
187
|
+
{
|
|
188
|
+
this.isSwiping.setValue(FALSE);
|
|
189
|
+
this.handleEndInteraction();
|
|
190
|
+
const velocity = gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? nativeEvent.velocityY : nativeEvent.velocityX;
|
|
191
|
+
this.animate({
|
|
192
|
+
closing: this.props.closing,
|
|
193
|
+
velocity
|
|
194
|
+
});
|
|
195
|
+
onGestureCanceled === null || onGestureCanceled === void 0 || onGestureCanceled();
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
case GestureState.END:
|
|
199
|
+
{
|
|
200
|
+
this.isSwiping.setValue(FALSE);
|
|
201
|
+
let distance;
|
|
202
|
+
let translation;
|
|
203
|
+
let velocity;
|
|
204
|
+
if (gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted') {
|
|
205
|
+
distance = layout.height;
|
|
206
|
+
translation = nativeEvent.translationY;
|
|
207
|
+
velocity = nativeEvent.velocityY;
|
|
208
|
+
} else {
|
|
209
|
+
distance = layout.width;
|
|
210
|
+
translation = nativeEvent.translationX;
|
|
211
|
+
velocity = nativeEvent.velocityX;
|
|
212
|
+
}
|
|
213
|
+
const closing = (translation + velocity * gestureVelocityImpact) * getInvertedMultiplier(gestureDirection) > distance / 2 ? velocity !== 0 || translation !== 0 : this.props.closing;
|
|
214
|
+
this.animate({
|
|
215
|
+
closing,
|
|
216
|
+
velocity
|
|
217
|
+
});
|
|
218
|
+
if (closing) {
|
|
219
|
+
// We call onClose with a delay to make sure that the animation has already started
|
|
220
|
+
// This will make sure that the state update caused by this doesn't affect start of animation
|
|
221
|
+
this.pendingGestureCallback = setTimeout(() => {
|
|
222
|
+
onClose();
|
|
223
|
+
|
|
224
|
+
// Trigger an update after we dispatch the action to remove the screen
|
|
225
|
+
// This will make sure that we check if the screen didn't get removed so we can cancel the animation
|
|
226
|
+
this.forceUpdate();
|
|
227
|
+
}, 32);
|
|
228
|
+
}
|
|
229
|
+
onGestureEnd === null || onGestureEnd === void 0 || onGestureEnd();
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// Memoize this to avoid extra work on re-render
|
|
236
|
+
getInterpolatedStyle = memoize((styleInterpolator, animation) => styleInterpolator(animation));
|
|
237
|
+
|
|
238
|
+
// Keep track of the animation context when deps changes.
|
|
239
|
+
getCardAnimation = memoize((interpolationIndex, current, next, layout, insetTop, insetRight, insetBottom, insetLeft) => ({
|
|
240
|
+
index: interpolationIndex,
|
|
241
|
+
current: {
|
|
242
|
+
progress: current
|
|
243
|
+
},
|
|
244
|
+
next: next && {
|
|
245
|
+
progress: next
|
|
246
|
+
},
|
|
247
|
+
closing: this.isClosing,
|
|
248
|
+
swiping: this.isSwiping,
|
|
249
|
+
inverted: this.inverted,
|
|
250
|
+
layouts: {
|
|
251
|
+
screen: layout
|
|
252
|
+
},
|
|
253
|
+
insets: {
|
|
254
|
+
top: insetTop,
|
|
255
|
+
right: insetRight,
|
|
256
|
+
bottom: insetBottom,
|
|
257
|
+
left: insetLeft
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
gestureActivationCriteria() {
|
|
261
|
+
const {
|
|
262
|
+
layout,
|
|
263
|
+
gestureDirection,
|
|
264
|
+
gestureResponseDistance
|
|
265
|
+
} = this.props;
|
|
266
|
+
const enableTrackpadTwoFingerGesture = true;
|
|
267
|
+
const distance = gestureResponseDistance !== undefined ? gestureResponseDistance : gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? GESTURE_RESPONSE_DISTANCE_VERTICAL : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;
|
|
268
|
+
if (gestureDirection === 'vertical') {
|
|
269
|
+
return {
|
|
270
|
+
maxDeltaX: 15,
|
|
271
|
+
minOffsetY: 5,
|
|
272
|
+
hitSlop: {
|
|
273
|
+
bottom: -layout.height + distance
|
|
274
|
+
},
|
|
275
|
+
enableTrackpadTwoFingerGesture
|
|
276
|
+
};
|
|
277
|
+
} else if (gestureDirection === 'vertical-inverted') {
|
|
278
|
+
return {
|
|
279
|
+
maxDeltaX: 15,
|
|
280
|
+
minOffsetY: -5,
|
|
281
|
+
hitSlop: {
|
|
282
|
+
top: -layout.height + distance
|
|
283
|
+
},
|
|
284
|
+
enableTrackpadTwoFingerGesture
|
|
285
|
+
};
|
|
286
|
+
} else {
|
|
287
|
+
const hitSlop = -layout.width + distance;
|
|
288
|
+
const invertedMultiplier = getInvertedMultiplier(gestureDirection);
|
|
289
|
+
if (invertedMultiplier === 1) {
|
|
290
|
+
return {
|
|
291
|
+
minOffsetX: 5,
|
|
292
|
+
maxDeltaY: 20,
|
|
293
|
+
hitSlop: {
|
|
294
|
+
right: hitSlop
|
|
295
|
+
},
|
|
296
|
+
enableTrackpadTwoFingerGesture
|
|
297
|
+
};
|
|
298
|
+
} else {
|
|
299
|
+
return {
|
|
300
|
+
minOffsetX: -5,
|
|
301
|
+
maxDeltaY: 20,
|
|
302
|
+
hitSlop: {
|
|
303
|
+
left: hitSlop
|
|
304
|
+
},
|
|
305
|
+
enableTrackpadTwoFingerGesture
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
ref = /*#__PURE__*/React.createRef();
|
|
311
|
+
render() {
|
|
312
|
+
const {
|
|
313
|
+
styleInterpolator,
|
|
314
|
+
interpolationIndex,
|
|
315
|
+
current,
|
|
316
|
+
gesture,
|
|
317
|
+
next,
|
|
318
|
+
layout,
|
|
319
|
+
insets,
|
|
320
|
+
overlay,
|
|
321
|
+
overlayEnabled,
|
|
322
|
+
shadowEnabled,
|
|
323
|
+
gestureEnabled,
|
|
324
|
+
gestureDirection,
|
|
325
|
+
pageOverflowEnabled,
|
|
326
|
+
headerDarkContent,
|
|
327
|
+
children,
|
|
328
|
+
containerStyle: customContainerStyle,
|
|
329
|
+
contentStyle,
|
|
330
|
+
...rest
|
|
331
|
+
} = this.props;
|
|
332
|
+
const interpolationProps = this.getCardAnimation(interpolationIndex, current, next, layout, insets.top, insets.right, insets.bottom, insets.left);
|
|
333
|
+
const interpolatedStyle = this.getInterpolatedStyle(styleInterpolator, interpolationProps);
|
|
334
|
+
const {
|
|
335
|
+
containerStyle,
|
|
336
|
+
cardStyle,
|
|
337
|
+
overlayStyle,
|
|
338
|
+
shadowStyle
|
|
339
|
+
} = interpolatedStyle;
|
|
340
|
+
const handleGestureEvent = gestureEnabled ? Animated.event([{
|
|
341
|
+
nativeEvent: gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? {
|
|
342
|
+
translationY: gesture
|
|
343
|
+
} : {
|
|
344
|
+
translationX: gesture
|
|
345
|
+
}
|
|
346
|
+
}], {
|
|
347
|
+
useNativeDriver
|
|
348
|
+
}) : undefined;
|
|
349
|
+
const {
|
|
350
|
+
backgroundColor
|
|
351
|
+
} = StyleSheet.flatten(contentStyle || {});
|
|
352
|
+
const isTransparent = typeof backgroundColor === 'string' ? Color(backgroundColor).alpha() === 0 : false;
|
|
353
|
+
return /*#__PURE__*/React.createElement(CardAnimationContext.Provider, {
|
|
354
|
+
value: interpolationProps
|
|
355
|
+
},
|
|
356
|
+
// StatusBar messes with translucent status bar on Android
|
|
357
|
+
// So we should only enable it on iOS
|
|
358
|
+
Platform.OS === 'ios' && overlayEnabled && next && getIsModalPresentation(styleInterpolator) ? /*#__PURE__*/React.createElement(ModalStatusBarManager, {
|
|
359
|
+
dark: headerDarkContent,
|
|
360
|
+
layout: layout,
|
|
361
|
+
insets: insets,
|
|
362
|
+
style: cardStyle
|
|
363
|
+
}) : null, /*#__PURE__*/React.createElement(Animated.View, {
|
|
364
|
+
style: {
|
|
365
|
+
// This is a dummy style that doesn't actually change anything visually.
|
|
366
|
+
// Animated needs the animated value to be used somewhere, otherwise things don't update properly.
|
|
367
|
+
// If we disable animations and hide header, it could end up making the value unused.
|
|
368
|
+
// So we have this dummy style that will always be used regardless of what else changed.
|
|
369
|
+
opacity: current
|
|
370
|
+
}
|
|
371
|
+
// Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply
|
|
372
|
+
,
|
|
373
|
+
collapsable: false
|
|
374
|
+
}), /*#__PURE__*/React.createElement(View, _extends({
|
|
375
|
+
pointerEvents: "box-none"
|
|
376
|
+
// Make sure this view is not removed on the new architecture, as it causes focus loss during navigation on Android.
|
|
377
|
+
// This can happen when the view flattening results in different trees - due to `overflow` style changing in a parent.
|
|
378
|
+
,
|
|
379
|
+
collapsable: false
|
|
380
|
+
}, rest), overlayEnabled ? /*#__PURE__*/React.createElement(View, {
|
|
381
|
+
pointerEvents: "box-none",
|
|
382
|
+
style: StyleSheet.absoluteFill
|
|
383
|
+
}, overlay({
|
|
384
|
+
style: overlayStyle
|
|
385
|
+
})) : null, /*#__PURE__*/React.createElement(Animated.View, {
|
|
386
|
+
style: [styles.container, containerStyle, customContainerStyle],
|
|
387
|
+
pointerEvents: "box-none"
|
|
388
|
+
}, /*#__PURE__*/React.createElement(PanGestureHandler, _extends({
|
|
389
|
+
enabled: layout.width !== 0 && gestureEnabled,
|
|
390
|
+
onGestureEvent: handleGestureEvent,
|
|
391
|
+
onHandlerStateChange: this.handleGestureStateChange
|
|
392
|
+
}, this.gestureActivationCriteria()), /*#__PURE__*/React.createElement(Animated.View, {
|
|
393
|
+
needsOffscreenAlphaCompositing: hasOpacityStyle(cardStyle),
|
|
394
|
+
style: [styles.container, cardStyle]
|
|
395
|
+
}, shadowEnabled && shadowStyle && !isTransparent ? /*#__PURE__*/React.createElement(Animated.View, {
|
|
396
|
+
style: [styles.shadow, gestureDirection === 'horizontal' ? [styles.shadowHorizontal, styles.shadowLeft] : gestureDirection === 'horizontal-inverted' ? [styles.shadowHorizontal, styles.shadowRight] : gestureDirection === 'vertical' ? [styles.shadowVertical, styles.shadowTop] : [styles.shadowVertical, styles.shadowBottom], {
|
|
397
|
+
backgroundColor
|
|
398
|
+
}, shadowStyle],
|
|
399
|
+
pointerEvents: "none"
|
|
400
|
+
}) : null, /*#__PURE__*/React.createElement(CardSheet, {
|
|
401
|
+
ref: this.ref,
|
|
402
|
+
enabled: pageOverflowEnabled,
|
|
403
|
+
layout: layout,
|
|
404
|
+
style: contentStyle
|
|
405
|
+
}, children))))));
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
export const getIsModalPresentation = cardStyleInterpolator => {
|
|
409
|
+
return cardStyleInterpolator === forModalPresentationIOS ||
|
|
410
|
+
// Handle custom modal presentation interpolators as well
|
|
411
|
+
cardStyleInterpolator.name === 'forModalPresentationIOS';
|
|
412
|
+
};
|
|
413
|
+
const styles = StyleSheet.create({
|
|
414
|
+
container: {
|
|
415
|
+
flex: 1
|
|
416
|
+
},
|
|
417
|
+
overlay: {
|
|
418
|
+
flex: 1,
|
|
419
|
+
backgroundColor: '#000'
|
|
420
|
+
},
|
|
421
|
+
shadow: {
|
|
422
|
+
position: 'absolute',
|
|
423
|
+
shadowRadius: 5,
|
|
424
|
+
shadowColor: '#000',
|
|
425
|
+
shadowOpacity: 0.3
|
|
426
|
+
},
|
|
427
|
+
shadowHorizontal: {
|
|
428
|
+
top: 0,
|
|
429
|
+
bottom: 0,
|
|
430
|
+
width: 3,
|
|
431
|
+
shadowOffset: {
|
|
432
|
+
width: -1,
|
|
433
|
+
height: 1
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
shadowLeft: {
|
|
437
|
+
left: 0
|
|
438
|
+
},
|
|
439
|
+
shadowRight: {
|
|
440
|
+
right: 0
|
|
441
|
+
},
|
|
442
|
+
shadowVertical: {
|
|
443
|
+
left: 0,
|
|
444
|
+
right: 0,
|
|
445
|
+
height: 3,
|
|
446
|
+
shadowOffset: {
|
|
447
|
+
width: 1,
|
|
448
|
+
height: -1
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
shadowTop: {
|
|
452
|
+
top: 0
|
|
453
|
+
},
|
|
454
|
+
shadowBottom: {
|
|
455
|
+
bottom: 0
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Color","React","Animated","InteractionManager","Platform","StyleSheet","View","forModalPresentationIOS","CardAnimationContext","getDistanceForDirection","getInvertedMultiplier","memoize","GestureState","PanGestureHandler","ModalStatusBarManager","CardSheet","GESTURE_VELOCITY_IMPACT","TRUE","FALSE","GESTURE_RESPONSE_DISTANCE_HORIZONTAL","GESTURE_RESPONSE_DISTANCE_VERTICAL","useNativeDriver","OS","hasOpacityStyle","style","flattenedStyle","flatten","opacity","Card","Component","defaultProps","shadowEnabled","gestureEnabled","gestureVelocityImpact","overlay","createElement","pointerEvents","styles","componentDidMount","animate","closing","props","isCurrentlyMounted","componentDidUpdate","prevProps","layout","gestureDirection","width","height","setValue","inverted","toValue","getAnimateToValue","lastToValue","componentWillUnmount","gesture","stopAnimation","handleEndInteraction","isClosing","Value","isSwiping","velocity","transitionSpec","onOpen","onClose","onTransition","spec","close","open","animation","spring","timing","setPointerEventsEnabled","handleStartInteraction","clearTimeout","pendingGestureCallback","undefined","config","isInteraction","start","finished","forceUpdate","enabled","_this$ref$current","ref","current","setPointerEvents","interactionHandle","createInteractionHandle","clearInteractionHandle","handleGestureStateChange","nativeEvent","onGestureBegin","onGestureCanceled","onGestureEnd","state","ACTIVE","CANCELLED","velocityY","velocityX","END","distance","translation","translationY","translationX","setTimeout","getInterpolatedStyle","styleInterpolator","getCardAnimation","interpolationIndex","next","insetTop","insetRight","insetBottom","insetLeft","index","progress","swiping","layouts","screen","insets","top","right","bottom","left","gestureActivationCriteria","gestureResponseDistance","enableTrackpadTwoFingerGesture","maxDeltaX","minOffsetY","hitSlop","invertedMultiplier","minOffsetX","maxDeltaY","createRef","render","overlayEnabled","pageOverflowEnabled","headerDarkContent","children","containerStyle","customContainerStyle","contentStyle","rest","interpolationProps","interpolatedStyle","cardStyle","overlayStyle","shadowStyle","handleGestureEvent","event","backgroundColor","isTransparent","alpha","Provider","value","getIsModalPresentation","dark","collapsable","_extends","absoluteFill","container","onGestureEvent","onHandlerStateChange","needsOffscreenAlphaCompositing","shadow","shadowHorizontal","shadowLeft","shadowRight","shadowVertical","shadowTop","shadowBottom","cardStyleInterpolator","name","create","flex","position","shadowRadius","shadowColor","shadowOpacity","shadowOffset"],"sourceRoot":"../../../../src","sources":["views/Stack/Card.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,QAAQ,EAERC,UAAU,EACVC,IAAI,QAGC,cAAc;AAGrB,SAASC,uBAAuB,QAAQ,gDAAgD;AAQxF,OAAOC,oBAAoB,MAAM,kCAAkC;AACnE,OAAOC,uBAAuB,MAAM,qCAAqC;AACzE,OAAOC,qBAAqB,MAAM,mCAAmC;AACrE,OAAOC,OAAO,MAAM,qBAAqB;AACzC,SACEC,YAAY,EACZC,iBAAiB,QAEZ,mBAAmB;AAC1B,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,OAAOC,SAAS,MAAwB,aAAa;AAqCrD,MAAMC,uBAAuB,GAAG,GAAG;AAEnC,MAAMC,IAAI,GAAG,CAAC;AACd,MAAMC,KAAK,GAAG,CAAC;;AAEf;AACA;AACA;AACA,MAAMC,oCAAoC,GAAG,EAAE;AAC/C,MAAMC,kCAAkC,GAAG,GAAG;AAE9C,MAAMC,eAAe,GAAGjB,QAAQ,CAACkB,EAAE,KAAK,KAAK;AAE7C,MAAMC,eAAe,GAAIC,KAAU,IAAK;EACtC,IAAIA,KAAK,EAAE;IACT,MAAMC,cAAc,GAAGpB,UAAU,CAACqB,OAAO,CAACF,KAAK,CAAC;IAChD,OAAOC,cAAc,CAACE,OAAO,IAAI,IAAI;EACvC;EAEA,OAAO,KAAK;AACd,CAAC;AAED,eAAe,MAAMC,IAAI,SAAS3B,KAAK,CAAC4B,SAAS,CAAQ;EACvD,OAAOC,YAAY,GAAG;IACpBC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,IAAI;IACpBC,qBAAqB,EAAEjB,uBAAuB;IAC9CkB,OAAO,EAAEA,CAAC;MACRV;IAGF,CAAC,KACCA,KAAK,gBACHvB,KAAA,CAAAkC,aAAA,CAACjC,QAAQ,CAACI,IAAI;MAAC8B,aAAa,EAAC,MAAM;MAACZ,KAAK,EAAE,CAACa,MAAM,CAACH,OAAO,EAAEV,KAAK;IAAE,CAAE,CAAC,GACpE;EACR,CAAC;EAEDc,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACC,OAAO,CAAC;MAAEC,OAAO,EAAE,IAAI,CAACC,KAAK,CAACD;IAAQ,CAAC,CAAC;IAC7C,IAAI,CAACE,kBAAkB,GAAG,IAAI;EAChC;EAEAC,kBAAkBA,CAACC,SAAgB,EAAE;IACnC,MAAM;MAAEC,MAAM;MAAEC,gBAAgB;MAAEN;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;IACxD,MAAM;MAAEM,KAAK;MAAEC;IAAO,CAAC,GAAGH,MAAM;IAEhC,IAAIE,KAAK,KAAKH,SAAS,CAACC,MAAM,CAACE,KAAK,EAAE;MACpC,IAAI,CAACF,MAAM,CAACE,KAAK,CAACE,QAAQ,CAACF,KAAK,CAAC;IACnC;IAEA,IAAIC,MAAM,KAAKJ,SAAS,CAACC,MAAM,CAACG,MAAM,EAAE;MACtC,IAAI,CAACH,MAAM,CAACG,MAAM,CAACC,QAAQ,CAACD,MAAM,CAAC;IACrC;IAEA,IAAIF,gBAAgB,KAAKF,SAAS,CAACE,gBAAgB,EAAE;MACnD,IAAI,CAACI,QAAQ,CAACD,QAAQ,CAACvC,qBAAqB,CAACoC,gBAAgB,CAAC,CAAC;IACjE;IAEA,MAAMK,OAAO,GAAG,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACX,KAAK,CAAC;IAElD,IACE,IAAI,CAACW,iBAAiB,CAACR,SAAS,CAAC,KAAKO,OAAO,IAC7C,IAAI,CAACE,WAAW,KAAKF,OAAO,EAC5B;MACA;MACA;MACA;MACA;MACA;MACA,IAAI,CAACZ,OAAO,CAAC;QAAEC;MAAQ,CAAC,CAAC;IAC3B;EACF;EAEAc,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACb,KAAK,CAACc,OAAO,CAACC,aAAa,CAAC,CAAC;IAClC,IAAI,CAACd,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACe,oBAAoB,CAAC,CAAC;EAC7B;EAEQf,kBAAkB,GAAG,KAAK;EAE1BgB,SAAS,GAAG,IAAIxD,QAAQ,CAACyD,KAAK,CAACzC,KAAK,CAAC;EAErCgC,QAAQ,GAAG,IAAIhD,QAAQ,CAACyD,KAAK,CACnCjD,qBAAqB,CAAC,IAAI,CAAC+B,KAAK,CAACK,gBAAgB,CACnD,CAAC;EAEOD,MAAM,GAAG;IACfE,KAAK,EAAE,IAAI7C,QAAQ,CAACyD,KAAK,CAAC,IAAI,CAAClB,KAAK,CAACI,MAAM,CAACE,KAAK,CAAC;IAClDC,MAAM,EAAE,IAAI9C,QAAQ,CAACyD,KAAK,CAAC,IAAI,CAAClB,KAAK,CAACI,MAAM,CAACG,MAAM;EACrD,CAAC;EAEOY,SAAS,GAAG,IAAI1D,QAAQ,CAACyD,KAAK,CAACzC,KAAK,CAAC;EAQrCqB,OAAO,GAAGA,CAAC;IACjBC,OAAO;IACPqB;EAIF,CAAC,KAAK;IACJ,MAAM;MAAEN,OAAO;MAAEO,cAAc;MAAEC,MAAM;MAAEC,OAAO;MAAEC;IAAa,CAAC,GAC9D,IAAI,CAACxB,KAAK;IAEZ,MAAMU,OAAO,GAAG,IAAI,CAACC,iBAAiB,CAAC;MACrC,GAAG,IAAI,CAACX,KAAK;MACbD;IACF,CAAC,CAAC;IAEF,IAAI,CAACa,WAAW,GAAGF,OAAO;IAE1B,IAAI,CAACO,SAAS,CAACT,QAAQ,CAACT,OAAO,GAAGvB,IAAI,GAAGC,KAAK,CAAC;IAE/C,MAAMgD,IAAI,GAAG1B,OAAO,GAAGsB,cAAc,CAACK,KAAK,GAAGL,cAAc,CAACM,IAAI;IAEjE,MAAMC,SAAS,GACbH,IAAI,CAACG,SAAS,KAAK,QAAQ,GAAGnE,QAAQ,CAACoE,MAAM,GAAGpE,QAAQ,CAACqE,MAAM;IAEjE,IAAI,CAACC,uBAAuB,CAAC,CAAChC,OAAO,CAAC;IACtC,IAAI,CAACiC,sBAAsB,CAAC,CAAC;IAE7BC,YAAY,CAAC,IAAI,CAACC,sBAAsB,CAAC;IAEzCV,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAG;MAAEzB,OAAO;MAAEe,OAAO,EAAEM,QAAQ,KAAKe;IAAU,CAAC,CAAC;IAC5DP,SAAS,CAACd,OAAO,EAAE;MACjB,GAAGW,IAAI,CAACW,MAAM;MACdhB,QAAQ;MACRV,OAAO;MACP9B,eAAe;MACfyD,aAAa,EAAE;IACjB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MAAEC;IAAS,CAAC,KAAK;MACzB,IAAI,CAACvB,oBAAoB,CAAC,CAAC;MAE3BiB,YAAY,CAAC,IAAI,CAACC,sBAAsB,CAAC;MAEzC,IAAIK,QAAQ,EAAE;QACZ,IAAIxC,OAAO,EAAE;UACXwB,OAAO,CAAC,CAAC;QACX,CAAC,MAAM;UACLD,MAAM,CAAC,CAAC;QACV;QAEA,IAAI,IAAI,CAACrB,kBAAkB,EAAE;UAC3B;UACA,IAAI,CAACuC,WAAW,CAAC,CAAC;QACpB;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAEO7B,iBAAiB,GAAGA,CAAC;IAC3BZ,OAAO;IACPK,MAAM;IACNC;EAKF,CAAC,KAAK;IACJ,IAAI,CAACN,OAAO,EAAE;MACZ,OAAO,CAAC;IACV;IAEA,OAAO/B,uBAAuB,CAACoC,MAAM,EAAEC,gBAAgB,CAAC;EAC1D,CAAC;EAEO0B,uBAAuB,GAAIU,OAAgB,IAAK;IAAA,IAAAC,iBAAA;IACtD,MAAM/C,aAAa,GAAG8C,OAAO,GAAG,UAAU,GAAG,MAAM;IAEnD,CAAAC,iBAAA,OAAI,CAACC,GAAG,CAACC,OAAO,cAAAF,iBAAA,eAAhBA,iBAAA,CAAkBG,gBAAgB,CAAClD,aAAa,CAAC;EACnD,CAAC;EAEOqC,sBAAsB,GAAGA,CAAA,KAAM;IACrC,IAAI,IAAI,CAACc,iBAAiB,KAAKX,SAAS,EAAE;MACxC,IAAI,CAACW,iBAAiB,GAAGpF,kBAAkB,CAACqF,uBAAuB,CAAC,CAAC;IACvE;EACF,CAAC;EAEO/B,oBAAoB,GAAGA,CAAA,KAAM;IACnC,IAAI,IAAI,CAAC8B,iBAAiB,KAAKX,SAAS,EAAE;MACxCzE,kBAAkB,CAACsF,sBAAsB,CAAC,IAAI,CAACF,iBAAiB,CAAC;MACjE,IAAI,CAACA,iBAAiB,GAAGX,SAAS;IACpC;EACF,CAAC;EAEOc,wBAAwB,GAAGA,CAAC;IAClCC;EAC6B,CAAC,KAAK;IACnC,MAAM;MACJ9C,MAAM;MACNmB,OAAO;MACP4B,cAAc;MACdC,iBAAiB;MACjBC,YAAY;MACZhD,gBAAgB;MAChBb;IACF,CAAC,GAAG,IAAI,CAACQ,KAAK;IAEd,QAAQkD,WAAW,CAACI,KAAK;MACvB,KAAKnF,YAAY,CAACoF,MAAM;QACtB,IAAI,CAACpC,SAAS,CAACX,QAAQ,CAAChC,IAAI,CAAC;QAC7B,IAAI,CAACwD,sBAAsB,CAAC,CAAC;QAC7BmB,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAG,CAAC;QAClB;MACF,KAAKhF,YAAY,CAACqF,SAAS;QAAE;UAC3B,IAAI,CAACrC,SAAS,CAACX,QAAQ,CAAC/B,KAAK,CAAC;UAC9B,IAAI,CAACuC,oBAAoB,CAAC,CAAC;UAE3B,MAAMI,QAAQ,GACZf,gBAAgB,KAAK,UAAU,IAC/BA,gBAAgB,KAAK,mBAAmB,GACpC6C,WAAW,CAACO,SAAS,GACrBP,WAAW,CAACQ,SAAS;UAE3B,IAAI,CAAC5D,OAAO,CAAC;YAAEC,OAAO,EAAE,IAAI,CAACC,KAAK,CAACD,OAAO;YAAEqB;UAAS,CAAC,CAAC;UAEvDgC,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAG,CAAC;UACrB;QACF;MACA,KAAKjF,YAAY,CAACwF,GAAG;QAAE;UACrB,IAAI,CAACxC,SAAS,CAACX,QAAQ,CAAC/B,KAAK,CAAC;UAE9B,IAAImF,QAAQ;UACZ,IAAIC,WAAW;UACf,IAAIzC,QAAQ;UAEZ,IACEf,gBAAgB,KAAK,UAAU,IAC/BA,gBAAgB,KAAK,mBAAmB,EACxC;YACAuD,QAAQ,GAAGxD,MAAM,CAACG,MAAM;YACxBsD,WAAW,GAAGX,WAAW,CAACY,YAAY;YACtC1C,QAAQ,GAAG8B,WAAW,CAACO,SAAS;UAClC,CAAC,MAAM;YACLG,QAAQ,GAAGxD,MAAM,CAACE,KAAK;YACvBuD,WAAW,GAAGX,WAAW,CAACa,YAAY;YACtC3C,QAAQ,GAAG8B,WAAW,CAACQ,SAAS;UAClC;UAEA,MAAM3D,OAAO,GACX,CAAC8D,WAAW,GAAGzC,QAAQ,GAAG5B,qBAAqB,IAC7CvB,qBAAqB,CAACoC,gBAAgB,CAAC,GACzCuD,QAAQ,GAAG,CAAC,GACRxC,QAAQ,KAAK,CAAC,IAAIyC,WAAW,KAAK,CAAC,GACnC,IAAI,CAAC7D,KAAK,CAACD,OAAO;UAExB,IAAI,CAACD,OAAO,CAAC;YAAEC,OAAO;YAAEqB;UAAS,CAAC,CAAC;UAEnC,IAAIrB,OAAO,EAAE;YACX;YACA;YACA,IAAI,CAACmC,sBAAsB,GAAG8B,UAAU,CAAC,MAAM;cAC7CzC,OAAO,CAAC,CAAC;;cAET;cACA;cACA,IAAI,CAACiB,WAAW,CAAC,CAAC;YACpB,CAAC,EAAE,EAAE,CAAkB;UACzB;UAEAa,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAG,CAAC;UAChB;QACF;IACF;EACF,CAAC;;EAED;EACQY,oBAAoB,GAAG/F,OAAO,CACpC,CACEgG,iBAA6C,EAC7CtC,SAAsC,KACnCsC,iBAAiB,CAACtC,SAAS,CAClC,CAAC;;EAED;EACQuC,gBAAgB,GAAGjG,OAAO,CAChC,CACEkG,kBAA0B,EAC1BxB,OAA+C,EAC/CyB,IAAwD,EACxDjE,MAAc,EACdkE,QAAgB,EAChBC,UAAkB,EAClBC,WAAmB,EACnBC,SAAiB,MACb;IACJC,KAAK,EAAEN,kBAAkB;IACzBxB,OAAO,EAAE;MAAE+B,QAAQ,EAAE/B;IAAQ,CAAC;IAC9ByB,IAAI,EAAEA,IAAI,IAAI;MAAEM,QAAQ,EAAEN;IAAK,CAAC;IAChCtE,OAAO,EAAE,IAAI,CAACkB,SAAS;IACvB2D,OAAO,EAAE,IAAI,CAACzD,SAAS;IACvBV,QAAQ,EAAE,IAAI,CAACA,QAAQ;IACvBoE,OAAO,EAAE;MACPC,MAAM,EAAE1E;IACV,CAAC;IACD2E,MAAM,EAAE;MACNC,GAAG,EAAEV,QAAQ;MACbW,KAAK,EAAEV,UAAU;MACjBW,MAAM,EAAEV,WAAW;MACnBW,IAAI,EAAEV;IACR;EACF,CAAC,CACH,CAAC;EAEOW,yBAAyBA,CAAA,EAAG;IAClC,MAAM;MAAEhF,MAAM;MAAEC,gBAAgB;MAAEgF;IAAwB,CAAC,GAAG,IAAI,CAACrF,KAAK;IACxE,MAAMsF,8BAA8B,GAAG,IAAI;IAE3C,MAAM1B,QAAQ,GACZyB,uBAAuB,KAAKlD,SAAS,GACjCkD,uBAAuB,GACvBhF,gBAAgB,KAAK,UAAU,IAC/BA,gBAAgB,KAAK,mBAAmB,GACxC1B,kCAAkC,GAClCD,oCAAoC;IAE1C,IAAI2B,gBAAgB,KAAK,UAAU,EAAE;MACnC,OAAO;QACLkF,SAAS,EAAE,EAAE;QACbC,UAAU,EAAE,CAAC;QACbC,OAAO,EAAE;UAAEP,MAAM,EAAE,CAAC9E,MAAM,CAACG,MAAM,GAAGqD;QAAS,CAAC;QAC9C0B;MACF,CAAC;IACH,CAAC,MAAM,IAAIjF,gBAAgB,KAAK,mBAAmB,EAAE;MACnD,OAAO;QACLkF,SAAS,EAAE,EAAE;QACbC,UAAU,EAAE,CAAC,CAAC;QACdC,OAAO,EAAE;UAAET,GAAG,EAAE,CAAC5E,MAAM,CAACG,MAAM,GAAGqD;QAAS,CAAC;QAC3C0B;MACF,CAAC;IACH,CAAC,MAAM;MACL,MAAMG,OAAO,GAAG,CAACrF,MAAM,CAACE,KAAK,GAAGsD,QAAQ;MACxC,MAAM8B,kBAAkB,GAAGzH,qBAAqB,CAACoC,gBAAgB,CAAC;MAElE,IAAIqF,kBAAkB,KAAK,CAAC,EAAE;QAC5B,OAAO;UACLC,UAAU,EAAE,CAAC;UACbC,SAAS,EAAE,EAAE;UACbH,OAAO,EAAE;YAAER,KAAK,EAAEQ;UAAQ,CAAC;UAC3BH;QACF,CAAC;MACH,CAAC,MAAM;QACL,OAAO;UACLK,UAAU,EAAE,CAAC,CAAC;UACdC,SAAS,EAAE,EAAE;UACbH,OAAO,EAAE;YAAEN,IAAI,EAAEM;UAAQ,CAAC;UAC1BH;QACF,CAAC;MACH;IACF;EACF;EAEQ3C,GAAG,gBAAGnF,KAAK,CAACqI,SAAS,CAAe,CAAC;EAE7CC,MAAMA,CAAA,EAAG;IACP,MAAM;MACJ5B,iBAAiB;MACjBE,kBAAkB;MAClBxB,OAAO;MACP9B,OAAO;MACPuD,IAAI;MACJjE,MAAM;MACN2E,MAAM;MACNtF,OAAO;MACPsG,cAAc;MACdzG,aAAa;MACbC,cAAc;MACdc,gBAAgB;MAChB2F,mBAAmB;MACnBC,iBAAiB;MACjBC,QAAQ;MACRC,cAAc,EAAEC,oBAAoB;MACpCC,YAAY;MACZ,GAAGC;IACL,CAAC,GAAG,IAAI,CAACtG,KAAK;IAEd,MAAMuG,kBAAkB,GAAG,IAAI,CAACpC,gBAAgB,CAC9CC,kBAAkB,EAClBxB,OAAO,EACPyB,IAAI,EACJjE,MAAM,EACN2E,MAAM,CAACC,GAAG,EACVD,MAAM,CAACE,KAAK,EACZF,MAAM,CAACG,MAAM,EACbH,MAAM,CAACI,IACT,CAAC;IAED,MAAMqB,iBAAiB,GAAG,IAAI,CAACvC,oBAAoB,CACjDC,iBAAiB,EACjBqC,kBACF,CAAC;IAED,MAAM;MAAEJ,cAAc;MAAEM,SAAS;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5DH,iBAAiB;IAEnB,MAAMI,kBAAkB,GAAGrH,cAAc,GACrC9B,QAAQ,CAACoJ,KAAK,CACZ,CACE;MACE3D,WAAW,EACT7C,gBAAgB,KAAK,UAAU,IAC/BA,gBAAgB,KAAK,mBAAmB,GACpC;QAAEyD,YAAY,EAAEhD;MAAQ,CAAC,GACzB;QAAEiD,YAAY,EAAEjD;MAAQ;IAChC,CAAC,CACF,EACD;MAAElC;IAAgB,CACpB,CAAC,GACDuD,SAAS;IAEb,MAAM;MAAE2E;IAAgB,CAAC,GAAGlJ,UAAU,CAACqB,OAAO,CAACoH,YAAY,IAAI,CAAC,CAAC,CAAC;IAClE,MAAMU,aAAa,GACjB,OAAOD,eAAe,KAAK,QAAQ,GAC/BvJ,KAAK,CAACuJ,eAAe,CAAC,CAACE,KAAK,CAAC,CAAC,KAAK,CAAC,GACpC,KAAK;IAEX,oBACExJ,KAAA,CAAAkC,aAAA,CAAC3B,oBAAoB,CAACkJ,QAAQ;MAACC,KAAK,EAAEX;IAAmB;IAErD;IACA;IACA5I,QAAQ,CAACkB,EAAE,KAAK,KAAK,IACrBkH,cAAc,IACd1B,IAAI,IACJ8C,sBAAsB,CAACjD,iBAAiB,CAAC,gBACvC1G,KAAA,CAAAkC,aAAA,CAACrB,qBAAqB;MACpB+I,IAAI,EAAEnB,iBAAkB;MACxB7F,MAAM,EAAEA,MAAO;MACf2E,MAAM,EAAEA,MAAO;MACfhG,KAAK,EAAE0H;IAAU,CAClB,CAAC,GACA,IAAI,eAEVjJ,KAAA,CAAAkC,aAAA,CAACjC,QAAQ,CAACI,IAAI;MACZkB,KAAK,EAAE;QACL;QACA;QACA;QACA;QACAG,OAAO,EAAE0D;MACX;MACA;MAAA;MACAyE,WAAW,EAAE;IAAM,CACpB,CAAC,eACF7J,KAAA,CAAAkC,aAAA,CAAC7B,IAAI,EAAAyJ,QAAA;MACH3H,aAAa,EAAC;MACd;MACA;MAAA;MACA0H,WAAW,EAAE;IAAM,GACff,IAAI,GAEPP,cAAc,gBACbvI,KAAA,CAAAkC,aAAA,CAAC7B,IAAI;MAAC8B,aAAa,EAAC,UAAU;MAACZ,KAAK,EAAEnB,UAAU,CAAC2J;IAAa,GAC3D9H,OAAO,CAAC;MAAEV,KAAK,EAAE2H;IAAa,CAAC,CAC5B,CAAC,GACL,IAAI,eACRlJ,KAAA,CAAAkC,aAAA,CAACjC,QAAQ,CAACI,IAAI;MACZkB,KAAK,EAAE,CAACa,MAAM,CAAC4H,SAAS,EAAErB,cAAc,EAAEC,oBAAoB,CAAE;MAChEzG,aAAa,EAAC;IAAU,gBAExBnC,KAAA,CAAAkC,aAAA,CAACtB,iBAAiB,EAAAkJ,QAAA;MAChB7E,OAAO,EAAErC,MAAM,CAACE,KAAK,KAAK,CAAC,IAAIf,cAAe;MAC9CkI,cAAc,EAAEb,kBAAmB;MACnCc,oBAAoB,EAAE,IAAI,CAACzE;IAAyB,GAChD,IAAI,CAACmC,yBAAyB,CAAC,CAAC,gBAEpC5H,KAAA,CAAAkC,aAAA,CAACjC,QAAQ,CAACI,IAAI;MACZ8J,8BAA8B,EAAE7I,eAAe,CAAC2H,SAAS,CAAE;MAC3D1H,KAAK,EAAE,CAACa,MAAM,CAAC4H,SAAS,EAAEf,SAAS;IAAE,GAEpCnH,aAAa,IAAIqH,WAAW,IAAI,CAACI,aAAa,gBAC7CvJ,KAAA,CAAAkC,aAAA,CAACjC,QAAQ,CAACI,IAAI;MACZkB,KAAK,EAAE,CACLa,MAAM,CAACgI,MAAM,EACbvH,gBAAgB,KAAK,YAAY,GAC7B,CAACT,MAAM,CAACiI,gBAAgB,EAAEjI,MAAM,CAACkI,UAAU,CAAC,GAC5CzH,gBAAgB,KAAK,qBAAqB,GAC1C,CAACT,MAAM,CAACiI,gBAAgB,EAAEjI,MAAM,CAACmI,WAAW,CAAC,GAC7C1H,gBAAgB,KAAK,UAAU,GAC/B,CAACT,MAAM,CAACoI,cAAc,EAAEpI,MAAM,CAACqI,SAAS,CAAC,GACzC,CAACrI,MAAM,CAACoI,cAAc,EAAEpI,MAAM,CAACsI,YAAY,CAAC,EAChD;QAAEpB;MAAgB,CAAC,EACnBH,WAAW,CACX;MACFhH,aAAa,EAAC;IAAM,CACrB,CAAC,GACA,IAAI,eACRnC,KAAA,CAAAkC,aAAA,CAACpB,SAAS;MACRqE,GAAG,EAAE,IAAI,CAACA,GAAI;MACdF,OAAO,EAAEuD,mBAAoB;MAC7B5F,MAAM,EAAEA,MAAO;MACfrB,KAAK,EAAEsH;IAAa,GAEnBH,QACQ,CACE,CACE,CACN,CACX,CACuB,CAAC;EAEpC;AACF;AAEA,OAAO,MAAMiB,sBAAsB,GACjCgB,qBAAiD,IAC9C;EACH,OACEA,qBAAqB,KAAKrK,uBAAuB;EACjD;EACAqK,qBAAqB,CAACC,IAAI,KAAK,yBAAyB;AAE5D,CAAC;AAED,MAAMxI,MAAM,GAAGhC,UAAU,CAACyK,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,IAAI,EAAE;EACR,CAAC;EACD7I,OAAO,EAAE;IACP6I,IAAI,EAAE,CAAC;IACPxB,eAAe,EAAE;EACnB,CAAC;EACDc,MAAM,EAAE;IACNW,QAAQ,EAAE,UAAU;IACpBC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE;EACjB,CAAC;EACDb,gBAAgB,EAAE;IAChB7C,GAAG,EAAE,CAAC;IACNE,MAAM,EAAE,CAAC;IACT5E,KAAK,EAAE,CAAC;IACRqI,YAAY,EAAE;MAAErI,KAAK,EAAE,CAAC,CAAC;MAAEC,MAAM,EAAE;IAAE;EACvC,CAAC;EACDuH,UAAU,EAAE;IACV3C,IAAI,EAAE;EACR,CAAC;EACD4C,WAAW,EAAE;IACX9C,KAAK,EAAE;EACT,CAAC;EACD+C,cAAc,EAAE;IACd7C,IAAI,EAAE,CAAC;IACPF,KAAK,EAAE,CAAC;IACR1E,MAAM,EAAE,CAAC;IACToI,YAAY,EAAE;MAAErI,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;IAAE;EACvC,CAAC;EACD0H,SAAS,EAAE;IACTjD,GAAG,EAAE;EACP,CAAC;EACDkD,YAAY,EAAE;IACZhD,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|