@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.
Files changed (242) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +5 -0
  3. package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.bundle +29321 -0
  4. package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.map +1 -0
  5. package/SystemModules/amzn__react-navigation__stack-2.modules.txt +95 -0
  6. package/SystemModules/amzn__react-navigation__stack-2.private.modules.txt +258 -0
  7. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  8. package/THIRD_PARTY_NOTICES.txt +24 -0
  9. package/kepler-compatibility.json +8 -0
  10. package/kepler-transformed-package-info.json +3 -0
  11. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +353 -0
  12. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
  13. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +259 -0
  14. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
  15. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +134 -0
  16. package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -0
  17. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +100 -0
  18. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -0
  19. package/lib/commonjs/index.js +69 -0
  20. package/lib/commonjs/index.js.map +1 -0
  21. package/lib/commonjs/navigators/createStackNavigator.js +82 -0
  22. package/lib/commonjs/navigators/createStackNavigator.js.map +1 -0
  23. package/lib/commonjs/types.js +6 -0
  24. package/lib/commonjs/types.js.map +1 -0
  25. package/lib/commonjs/utils/CardAnimationContext.js +11 -0
  26. package/lib/commonjs/utils/CardAnimationContext.js.map +1 -0
  27. package/lib/commonjs/utils/GestureHandlerRefContext.js +11 -0
  28. package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -0
  29. package/lib/commonjs/utils/ModalPresentationContext.js +12 -0
  30. package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -0
  31. package/lib/commonjs/utils/conditional.js +32 -0
  32. package/lib/commonjs/utils/conditional.js.map +1 -0
  33. package/lib/commonjs/utils/debounce.js +19 -0
  34. package/lib/commonjs/utils/debounce.js.map +1 -0
  35. package/lib/commonjs/utils/findLastIndex.js +15 -0
  36. package/lib/commonjs/utils/findLastIndex.js.map +1 -0
  37. package/lib/commonjs/utils/getDistanceForDirection.js +20 -0
  38. package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -0
  39. package/lib/commonjs/utils/getInvertedMultiplier.js +20 -0
  40. package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -0
  41. package/lib/commonjs/utils/memoize.js +33 -0
  42. package/lib/commonjs/utils/memoize.js.map +1 -0
  43. package/lib/commonjs/utils/useCardAnimation.js +19 -0
  44. package/lib/commonjs/utils/useCardAnimation.js.map +1 -0
  45. package/lib/commonjs/utils/useGestureHandlerRef.js +19 -0
  46. package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -0
  47. package/lib/commonjs/utils/useKeyboardManager.js +96 -0
  48. package/lib/commonjs/utils/useKeyboardManager.js.map +1 -0
  49. package/lib/commonjs/views/GestureHandler.android.js +17 -0
  50. package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
  51. package/lib/commonjs/views/GestureHandler.ios.js +17 -0
  52. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
  53. package/lib/commonjs/views/GestureHandler.js +24 -0
  54. package/lib/commonjs/views/GestureHandler.js.map +1 -0
  55. package/lib/commonjs/views/GestureHandlerNative.js +34 -0
  56. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
  57. package/lib/commonjs/views/Header/Header.js +61 -0
  58. package/lib/commonjs/views/Header/Header.js.map +1 -0
  59. package/lib/commonjs/views/Header/HeaderContainer.js +127 -0
  60. package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -0
  61. package/lib/commonjs/views/Header/HeaderSegment.js +139 -0
  62. package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -0
  63. package/lib/commonjs/views/ModalStatusBarManager.js +42 -0
  64. package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -0
  65. package/lib/commonjs/views/Screens.js +44 -0
  66. package/lib/commonjs/views/Screens.js.map +1 -0
  67. package/lib/commonjs/views/Stack/Card.js +469 -0
  68. package/lib/commonjs/views/Stack/Card.js.map +1 -0
  69. package/lib/commonjs/views/Stack/CardContainer.js +259 -0
  70. package/lib/commonjs/views/Stack/CardContainer.js.map +1 -0
  71. package/lib/commonjs/views/Stack/CardSheet.js +54 -0
  72. package/lib/commonjs/views/Stack/CardSheet.js.map +1 -0
  73. package/lib/commonjs/views/Stack/CardStack.js +442 -0
  74. package/lib/commonjs/views/Stack/CardStack.js.map +1 -0
  75. package/lib/commonjs/views/Stack/StackView.js +333 -0
  76. package/lib/commonjs/views/Stack/StackView.js.map +1 -0
  77. package/lib/module/TransitionConfigs/CardStyleInterpolators.js +338 -0
  78. package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
  79. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +248 -0
  80. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
  81. package/lib/module/TransitionConfigs/TransitionPresets.js +128 -0
  82. package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -0
  83. package/lib/module/TransitionConfigs/TransitionSpecs.js +94 -0
  84. package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -0
  85. package/lib/module/index.js +33 -0
  86. package/lib/module/index.js.map +1 -0
  87. package/lib/module/navigators/createStackNavigator.js +73 -0
  88. package/lib/module/navigators/createStackNavigator.js.map +1 -0
  89. package/lib/module/types.js +2 -0
  90. package/lib/module/types.js.map +1 -0
  91. package/lib/module/utils/CardAnimationContext.js +3 -0
  92. package/lib/module/utils/CardAnimationContext.js.map +1 -0
  93. package/lib/module/utils/GestureHandlerRefContext.js +3 -0
  94. package/lib/module/utils/GestureHandlerRefContext.js.map +1 -0
  95. package/lib/module/utils/ModalPresentationContext.js +4 -0
  96. package/lib/module/utils/ModalPresentationContext.js.map +1 -0
  97. package/lib/module/utils/conditional.js +26 -0
  98. package/lib/module/utils/conditional.js.map +1 -0
  99. package/lib/module/utils/debounce.js +13 -0
  100. package/lib/module/utils/debounce.js.map +1 -0
  101. package/lib/module/utils/findLastIndex.js +9 -0
  102. package/lib/module/utils/findLastIndex.js.map +1 -0
  103. package/lib/module/utils/getDistanceForDirection.js +13 -0
  104. package/lib/module/utils/getDistanceForDirection.js.map +1 -0
  105. package/lib/module/utils/getInvertedMultiplier.js +14 -0
  106. package/lib/module/utils/getInvertedMultiplier.js.map +1 -0
  107. package/lib/module/utils/memoize.js +27 -0
  108. package/lib/module/utils/memoize.js.map +1 -0
  109. package/lib/module/utils/useCardAnimation.js +10 -0
  110. package/lib/module/utils/useCardAnimation.js.map +1 -0
  111. package/lib/module/utils/useGestureHandlerRef.js +10 -0
  112. package/lib/module/utils/useGestureHandlerRef.js.map +1 -0
  113. package/lib/module/utils/useKeyboardManager.js +88 -0
  114. package/lib/module/utils/useKeyboardManager.js.map +1 -0
  115. package/lib/module/views/GestureHandler.android.js +2 -0
  116. package/lib/module/views/GestureHandler.android.js.map +1 -0
  117. package/lib/module/views/GestureHandler.ios.js +2 -0
  118. package/lib/module/views/GestureHandler.ios.js.map +1 -0
  119. package/lib/module/views/GestureHandler.js +16 -0
  120. package/lib/module/views/GestureHandler.js.map +1 -0
  121. package/lib/module/views/GestureHandlerNative.js +14 -0
  122. package/lib/module/views/GestureHandlerNative.js.map +1 -0
  123. package/lib/module/views/Header/Header.js +52 -0
  124. package/lib/module/views/Header/Header.js.map +1 -0
  125. package/lib/module/views/Header/HeaderContainer.js +118 -0
  126. package/lib/module/views/Header/HeaderContainer.js.map +1 -0
  127. package/lib/module/views/Header/HeaderSegment.js +130 -0
  128. package/lib/module/views/Header/HeaderSegment.js.map +1 -0
  129. package/lib/module/views/ModalStatusBarManager.js +34 -0
  130. package/lib/module/views/ModalStatusBarManager.js.map +1 -0
  131. package/lib/module/views/Screens.js +34 -0
  132. package/lib/module/views/Screens.js.map +1 -0
  133. package/lib/module/views/Stack/Card.js +458 -0
  134. package/lib/module/views/Stack/Card.js.map +1 -0
  135. package/lib/module/views/Stack/CardContainer.js +250 -0
  136. package/lib/module/views/Stack/CardContainer.js.map +1 -0
  137. package/lib/module/views/Stack/CardSheet.js +46 -0
  138. package/lib/module/views/Stack/CardSheet.js.map +1 -0
  139. package/lib/module/views/Stack/CardStack.js +432 -0
  140. package/lib/module/views/Stack/CardStack.js.map +1 -0
  141. package/lib/module/views/Stack/StackView.js +323 -0
  142. package/lib/module/views/Stack/StackView.js.map +1 -0
  143. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +35 -0
  144. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -0
  145. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +23 -0
  146. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -0
  147. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +42 -0
  148. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
  149. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +36 -0
  150. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
  151. package/lib/typescript/src/index.d.ts +29 -0
  152. package/lib/typescript/src/index.d.ts.map +1 -0
  153. package/lib/typescript/src/navigators/createStackNavigator.d.ts +8 -0
  154. package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -0
  155. package/lib/typescript/src/types.d.ts +481 -0
  156. package/lib/typescript/src/types.d.ts.map +1 -0
  157. package/lib/typescript/src/utils/CardAnimationContext.d.ts +5 -0
  158. package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -0
  159. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +4 -0
  160. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +1 -0
  161. package/lib/typescript/src/utils/ModalPresentationContext.d.ts +4 -0
  162. package/lib/typescript/src/utils/ModalPresentationContext.d.ts.map +1 -0
  163. package/lib/typescript/src/utils/conditional.d.ts +10 -0
  164. package/lib/typescript/src/utils/conditional.d.ts.map +1 -0
  165. package/lib/typescript/src/utils/debounce.d.ts +2 -0
  166. package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
  167. package/lib/typescript/src/utils/findLastIndex.d.ts +2 -0
  168. package/lib/typescript/src/utils/findLastIndex.d.ts.map +1 -0
  169. package/lib/typescript/src/utils/getDistanceForDirection.d.ts +3 -0
  170. package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -0
  171. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +3 -0
  172. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -0
  173. package/lib/typescript/src/utils/memoize.d.ts +2 -0
  174. package/lib/typescript/src/utils/memoize.d.ts.map +1 -0
  175. package/lib/typescript/src/utils/useCardAnimation.d.ts +2 -0
  176. package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -0
  177. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +3 -0
  178. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +1 -0
  179. package/lib/typescript/src/utils/useKeyboardManager.d.ts +6 -0
  180. package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -0
  181. package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
  182. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
  183. package/lib/typescript/src/views/GestureHandler.d.ts +14 -0
  184. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
  185. package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
  186. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
  187. package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
  188. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
  189. package/lib/typescript/src/views/Header/Header.d.ts +5 -0
  190. package/lib/typescript/src/views/Header/Header.d.ts.map +1 -0
  191. package/lib/typescript/src/views/Header/HeaderContainer.d.ts +20 -0
  192. package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -0
  193. package/lib/typescript/src/views/Header/HeaderSegment.d.ts +14 -0
  194. package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -0
  195. package/lib/typescript/src/views/ModalStatusBarManager.d.ts +12 -0
  196. package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +1 -0
  197. package/lib/typescript/src/views/Screens.d.ts +13 -0
  198. package/lib/typescript/src/views/Screens.d.ts.map +1 -0
  199. package/lib/typescript/src/views/Stack/Card.d.ts +76 -0
  200. package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -0
  201. package/lib/typescript/src/views/Stack/CardContainer.d.ts +63 -0
  202. package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -0
  203. package/lib/typescript/src/views/Stack/CardSheet.d.ts +15 -0
  204. package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +1 -0
  205. package/lib/typescript/src/views/Stack/CardStack.d.ts +67 -0
  206. package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -0
  207. package/lib/typescript/src/views/Stack/StackView.d.ts +122 -0
  208. package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -0
  209. package/package.json +1 -0
  210. package/src/TransitionConfigs/CardStyleInterpolators.tsx +394 -0
  211. package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +268 -0
  212. package/src/TransitionConfigs/TransitionPresets.tsx +152 -0
  213. package/src/TransitionConfigs/TransitionSpecs.tsx +96 -0
  214. package/src/index.tsx +51 -0
  215. package/src/navigators/createStackNavigator.tsx +136 -0
  216. package/src/types.tsx +547 -0
  217. package/src/utils/CardAnimationContext.tsx +7 -0
  218. package/src/utils/GestureHandlerRefContext.tsx +5 -0
  219. package/src/utils/ModalPresentationContext.tsx +5 -0
  220. package/src/utils/conditional.tsx +33 -0
  221. package/src/utils/debounce.tsx +17 -0
  222. package/src/utils/findLastIndex.tsx +12 -0
  223. package/src/utils/getDistanceForDirection.tsx +18 -0
  224. package/src/utils/getInvertedMultiplier.tsx +18 -0
  225. package/src/utils/memoize.tsx +33 -0
  226. package/src/utils/useCardAnimation.tsx +15 -0
  227. package/src/utils/useGestureHandlerRef.tsx +15 -0
  228. package/src/utils/useKeyboardManager.tsx +105 -0
  229. package/src/views/GestureHandler.android.tsx +1 -0
  230. package/src/views/GestureHandler.ios.tsx +1 -0
  231. package/src/views/GestureHandler.tsx +23 -0
  232. package/src/views/GestureHandlerNative.tsx +23 -0
  233. package/src/views/Header/Header.tsx +72 -0
  234. package/src/views/Header/HeaderContainer.tsx +186 -0
  235. package/src/views/Header/HeaderSegment.tsx +205 -0
  236. package/src/views/ModalStatusBarManager.tsx +50 -0
  237. package/src/views/Screens.tsx +43 -0
  238. package/src/views/Stack/Card.tsx +628 -0
  239. package/src/views/Stack/CardContainer.tsx +320 -0
  240. package/src/views/Stack/CardSheet.tsx +61 -0
  241. package/src/views/Stack/CardStack.tsx +717 -0
  242. 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":"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","ignoreList":[]}