@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,442 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNavigation__elements = require("@amazon-devices/react-navigation__elements");
8
+ var _color = _interopRequireDefault(require("color"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _reactNative = require("react-native");
11
+ var _CardStyleInterpolators = require("../../TransitionConfigs/CardStyleInterpolators");
12
+ var _TransitionPresets = require("../../TransitionConfigs/TransitionPresets");
13
+ var _findLastIndex = _interopRequireDefault(require("../../utils/findLastIndex"));
14
+ var _getDistanceForDirection = _interopRequireDefault(require("../../utils/getDistanceForDirection"));
15
+ var _Screens = require("../Screens");
16
+ var _Card = require("./Card");
17
+ var _CardContainer = _interopRequireDefault(require("./CardContainer"));
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ const STATE_INACTIVE = 0;
22
+ const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
23
+ const FALLBACK_DESCRIPTOR = Object.freeze({
24
+ options: {}
25
+ });
26
+ const getInterpolationIndex = (scenes, index) => {
27
+ const {
28
+ cardStyleInterpolator
29
+ } = scenes[index].descriptor.options;
30
+
31
+ // Start from current card and count backwards the number of cards with same interpolation
32
+ let interpolationIndex = 0;
33
+ for (let i = index - 1; i >= 0; i--) {
34
+ var _scenes$i;
35
+ const cardStyleInterpolatorCurrent = (_scenes$i = scenes[i]) === null || _scenes$i === void 0 ? void 0 : _scenes$i.descriptor.options.cardStyleInterpolator;
36
+ if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {
37
+ break;
38
+ }
39
+ interpolationIndex++;
40
+ }
41
+ return interpolationIndex;
42
+ };
43
+ const getIsModal = (scene, interpolationIndex, isParentModal) => {
44
+ if (isParentModal) {
45
+ return true;
46
+ }
47
+ const {
48
+ cardStyleInterpolator
49
+ } = scene.descriptor.options;
50
+ const isModalPresentation = (0, _Card.getIsModalPresentation)(cardStyleInterpolator);
51
+ const isModal = isModalPresentation && interpolationIndex !== 0;
52
+ return isModal;
53
+ };
54
+ const getHeaderHeights = (scenes, insets, isParentHeaderShown, isParentModal, layout, previous) => {
55
+ return scenes.reduce((acc, curr, index) => {
56
+ const {
57
+ headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
58
+ headerStyle
59
+ } = curr.descriptor.options;
60
+ const style = _reactNative.StyleSheet.flatten(headerStyle || {});
61
+ const height = 'height' in style && typeof style.height === 'number' ? style.height : previous[curr.route.key];
62
+ const interpolationIndex = getInterpolationIndex(scenes, index);
63
+ const isModal = getIsModal(curr, interpolationIndex, isParentModal);
64
+ acc[curr.route.key] = typeof height === 'number' ? height : (0, _reactNavigation__elements.getDefaultHeaderHeight)(layout, isModal, headerStatusBarHeight);
65
+ return acc;
66
+ }, {});
67
+ };
68
+ const getDistanceFromOptions = (layout, descriptor) => {
69
+ const {
70
+ presentation,
71
+ gestureDirection = presentation === 'modal' ? _TransitionPresets.ModalTransition.gestureDirection : _TransitionPresets.DefaultTransition.gestureDirection
72
+ } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};
73
+ return (0, _getDistanceForDirection.default)(layout, gestureDirection);
74
+ };
75
+ const getProgressFromGesture = (gesture, layout, descriptor) => {
76
+ const distance = getDistanceFromOptions({
77
+ // Make sure that we have a non-zero distance, otherwise there will be incorrect progress
78
+ // This causes blank screen on web if it was previously inside container with display: none
79
+ width: Math.max(1, layout.width),
80
+ height: Math.max(1, layout.height)
81
+ }, descriptor);
82
+ if (distance > 0) {
83
+ return gesture.interpolate({
84
+ inputRange: [0, distance],
85
+ outputRange: [1, 0]
86
+ });
87
+ }
88
+ return gesture.interpolate({
89
+ inputRange: [distance, 0],
90
+ outputRange: [0, 1]
91
+ });
92
+ };
93
+ class CardStack extends React.Component {
94
+ static getDerivedStateFromProps(props, state) {
95
+ if (props.routes === state.routes && props.descriptors === state.descriptors) {
96
+ return null;
97
+ }
98
+ const gestures = props.routes.reduce((acc, curr) => {
99
+ const descriptor = props.descriptors[curr.key];
100
+ const {
101
+ animationEnabled
102
+ } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};
103
+ acc[curr.key] = state.gestures[curr.key] || new _reactNative.Animated.Value(props.openingRouteKeys.includes(curr.key) && animationEnabled !== false ? getDistanceFromOptions(state.layout, descriptor) : 0);
104
+ return acc;
105
+ }, {});
106
+ const scenes = props.routes.map((route, index, self) => {
107
+ const previousRoute = self[index - 1];
108
+ const nextRoute = self[index + 1];
109
+ const oldScene = state.scenes[index];
110
+ const currentGesture = gestures[route.key];
111
+ const previousGesture = previousRoute ? gestures[previousRoute.key] : undefined;
112
+ const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;
113
+ const descriptor = props.descriptors[route.key] || state.descriptors[route.key] || (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);
114
+ const nextDescriptor = props.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key] || state.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key];
115
+ const previousDescriptor = props.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key] || state.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key];
116
+
117
+ // When a screen is not the last, it should use next screen's transition config
118
+ // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right
119
+ // For example combining a slide and a modal transition would look wrong otherwise
120
+ // With this approach, combining different transition styles in the same navigator mostly looks right
121
+ // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),
122
+ // but majority of the transitions look alright
123
+ const optionsForTransitionConfig = index !== self.length - 1 && nextDescriptor && nextDescriptor.options.presentation !== 'transparentModal' ? nextDescriptor.options : descriptor.options;
124
+ let defaultTransitionPreset = optionsForTransitionConfig.presentation === 'modal' ? _TransitionPresets.ModalTransition : optionsForTransitionConfig.presentation === 'transparentModal' ? _TransitionPresets.ModalFadeTransition : _TransitionPresets.DefaultTransition;
125
+ const {
126
+ animationEnabled = _reactNative.Platform.OS !== 'web' && _reactNative.Platform.OS !== 'windows' && _reactNative.Platform.OS !== 'macos',
127
+ gestureEnabled = _reactNative.Platform.OS === 'ios' && animationEnabled,
128
+ gestureDirection = defaultTransitionPreset.gestureDirection,
129
+ transitionSpec = defaultTransitionPreset.transitionSpec,
130
+ cardStyleInterpolator = animationEnabled === false ? _CardStyleInterpolators.forNoAnimation : defaultTransitionPreset.cardStyleInterpolator,
131
+ headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator,
132
+ cardOverlayEnabled = _reactNative.Platform.OS !== 'ios' && optionsForTransitionConfig.presentation !== 'transparentModal' || (0, _Card.getIsModalPresentation)(cardStyleInterpolator)
133
+ } = optionsForTransitionConfig;
134
+ const headerMode = descriptor.options.headerMode ?? (!(optionsForTransitionConfig.presentation === 'modal' || optionsForTransitionConfig.presentation === 'transparentModal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'modal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'transparentModal' || (0, _Card.getIsModalPresentation)(cardStyleInterpolator)) && _reactNative.Platform.OS === 'ios' && descriptor.options.header === undefined ? 'float' : 'screen');
135
+ const scene = {
136
+ route,
137
+ descriptor: {
138
+ ...descriptor,
139
+ options: {
140
+ ...descriptor.options,
141
+ animationEnabled,
142
+ cardOverlayEnabled,
143
+ cardStyleInterpolator,
144
+ gestureDirection,
145
+ gestureEnabled,
146
+ headerStyleInterpolator,
147
+ transitionSpec,
148
+ headerMode
149
+ }
150
+ },
151
+ progress: {
152
+ current: getProgressFromGesture(currentGesture, state.layout, descriptor),
153
+ next: nextGesture && (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) !== 'transparentModal' ? getProgressFromGesture(nextGesture, state.layout, nextDescriptor) : undefined,
154
+ previous: previousGesture ? getProgressFromGesture(previousGesture, state.layout, previousDescriptor) : undefined
155
+ },
156
+ __memo: [state.layout, descriptor, nextDescriptor, previousDescriptor, currentGesture, nextGesture, previousGesture]
157
+ };
158
+ if (oldScene && scene.__memo.every((it, i) => {
159
+ // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere
160
+ return oldScene.__memo[i] === it;
161
+ })) {
162
+ return oldScene;
163
+ }
164
+ return scene;
165
+ });
166
+ return {
167
+ routes: props.routes,
168
+ scenes,
169
+ gestures,
170
+ descriptors: props.descriptors,
171
+ headerHeights: getHeaderHeights(scenes, props.insets, props.isParentHeaderShown, props.isParentModal, state.layout, state.headerHeights)
172
+ };
173
+ }
174
+ constructor(props) {
175
+ super(props);
176
+ this.state = {
177
+ routes: [],
178
+ scenes: [],
179
+ gestures: {},
180
+ layout: _reactNavigation__elements.SafeAreaProviderCompat.initialMetrics.frame,
181
+ descriptors: this.props.descriptors,
182
+ // Used when card's header is null and mode is float to make transition
183
+ // between screens with headers and those without headers smooth.
184
+ // This is not a great heuristic here. We don't know synchronously
185
+ // on mount what the header height is so we have just used the most
186
+ // common cases here.
187
+ headerHeights: {}
188
+ };
189
+ }
190
+ handleLayout = e => {
191
+ const {
192
+ height,
193
+ width
194
+ } = e.nativeEvent.layout;
195
+ const layout = {
196
+ width,
197
+ height
198
+ };
199
+ this.setState((state, props) => {
200
+ if (height === state.layout.height && width === state.layout.width) {
201
+ return null;
202
+ }
203
+ return {
204
+ layout,
205
+ headerHeights: getHeaderHeights(state.scenes, props.insets, props.isParentHeaderShown, props.isParentModal, layout, state.headerHeights)
206
+ };
207
+ });
208
+ };
209
+ handleHeaderLayout = ({
210
+ route,
211
+ height
212
+ }) => {
213
+ this.setState(({
214
+ headerHeights
215
+ }) => {
216
+ const previousHeight = headerHeights[route.key];
217
+ if (previousHeight === height) {
218
+ return null;
219
+ }
220
+ return {
221
+ headerHeights: {
222
+ ...headerHeights,
223
+ [route.key]: height
224
+ }
225
+ };
226
+ });
227
+ };
228
+ getFocusedRoute = () => {
229
+ const {
230
+ state
231
+ } = this.props;
232
+ return state.routes[state.index];
233
+ };
234
+ getPreviousScene = ({
235
+ route
236
+ }) => {
237
+ const {
238
+ getPreviousRoute
239
+ } = this.props;
240
+ const {
241
+ scenes
242
+ } = this.state;
243
+ const previousRoute = getPreviousRoute({
244
+ route
245
+ });
246
+ if (previousRoute) {
247
+ const previousScene = scenes.find(scene => scene.descriptor.route.key === previousRoute.key);
248
+ return previousScene;
249
+ }
250
+ return undefined;
251
+ };
252
+ render() {
253
+ const {
254
+ insets,
255
+ state,
256
+ routes,
257
+ closingRouteKeys,
258
+ onOpenRoute,
259
+ onCloseRoute,
260
+ renderHeader,
261
+ renderScene,
262
+ isParentHeaderShown,
263
+ isParentModal,
264
+ onTransitionStart,
265
+ onTransitionEnd,
266
+ onGestureStart,
267
+ onGestureEnd,
268
+ onGestureCancel,
269
+ detachInactiveScreens = _reactNative.Platform.OS === 'web' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'ios' ||
270
+ //amznmod_react add kepler platform
271
+ //@ts-ignore
272
+ _reactNative.Platform.OS === 'kepler'
273
+ } = this.props;
274
+ const {
275
+ scenes,
276
+ layout,
277
+ gestures,
278
+ headerHeights
279
+ } = this.state;
280
+ const focusedRoute = state.routes[state.index];
281
+ const focusedHeaderHeight = headerHeights[focusedRoute.key];
282
+ const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some(scene => {
283
+ const options = scene.descriptor.options ?? {};
284
+ const {
285
+ headerMode,
286
+ headerTransparent,
287
+ headerShown = true
288
+ } = options;
289
+ if (headerTransparent || headerShown === false || headerMode === 'screen') {
290
+ return true;
291
+ }
292
+ return false;
293
+ });
294
+ let activeScreensLimit = 1;
295
+ for (let i = scenes.length - 1; i >= 0; i--) {
296
+ const {
297
+ options
298
+ } = scenes[i].descriptor;
299
+ const {
300
+ // By default, we don't want to detach the previous screen of the active one for modals
301
+ detachPreviousScreen = options.presentation === 'transparentModal' ? false : (0, _Card.getIsModalPresentation)(options.cardStyleInterpolator) ? i !== (0, _findLastIndex.default)(scenes, scene => {
302
+ const {
303
+ cardStyleInterpolator
304
+ } = scene.descriptor.options;
305
+ return cardStyleInterpolator === _CardStyleInterpolators.forModalPresentationIOS || (cardStyleInterpolator === null || cardStyleInterpolator === void 0 ? void 0 : cardStyleInterpolator.name) === 'forModalPresentationIOS';
306
+ }) : true
307
+ } = options;
308
+ if (detachPreviousScreen === false) {
309
+ activeScreensLimit++;
310
+ } else {
311
+ // Check at least last 2 screens before stopping
312
+ // This will make sure that screen isn't detached when another screen is animating on top of the transparent one
313
+ // For example, (Opaque -> Transparent -> Opaque)
314
+ if (i <= scenes.length - 2) {
315
+ break;
316
+ }
317
+ }
318
+ }
319
+ const floatingHeader = /*#__PURE__*/React.createElement(React.Fragment, {
320
+ key: "header"
321
+ }, renderHeader({
322
+ mode: 'float',
323
+ layout,
324
+ scenes,
325
+ getPreviousScene: this.getPreviousScene,
326
+ getFocusedRoute: this.getFocusedRoute,
327
+ onContentHeightChange: this.handleHeaderLayout,
328
+ style: [styles.floating, isFloatHeaderAbsolute && [
329
+ // Without this, the header buttons won't be touchable on Android when headerTransparent: true
330
+ {
331
+ height: focusedHeaderHeight
332
+ }, styles.absolute]]
333
+ }));
334
+ return /*#__PURE__*/React.createElement(_reactNavigation__elements.Background, null, isFloatHeaderAbsolute ? null : floatingHeader, /*#__PURE__*/React.createElement(_Screens.MaybeScreenContainer, {
335
+ enabled: detachInactiveScreens,
336
+ style: styles.container,
337
+ onLayout: this.handleLayout
338
+ }, routes.map((route, index, self) => {
339
+ var _scenes, _scenes2;
340
+ const focused = focusedRoute.key === route.key;
341
+ const gesture = gestures[route.key];
342
+ const scene = scenes[index];
343
+
344
+ // For the screens that shouldn't be active, the value is 0
345
+ // For those that should be active, but are not the top screen, the value is 1
346
+ // For those on top of the stack and with interaction enabled, the value is 2
347
+ // For the old implementation, it stays the same it was
348
+ let isScreenActive = 1;
349
+ if (index < self.length - activeScreensLimit - 1) {
350
+ // screen should be inactive because it is too deep in the stack
351
+ isScreenActive = STATE_INACTIVE;
352
+ } else {
353
+ isScreenActive = STATE_TRANSITIONING_OR_BELOW_TOP;
354
+ }
355
+ const {
356
+ headerShown = true,
357
+ headerTransparent,
358
+ headerStyle,
359
+ headerTintColor,
360
+ freezeOnBlur
361
+ } = scene.descriptor.options;
362
+ const safeAreaInsetTop = insets.top;
363
+ const safeAreaInsetRight = insets.right;
364
+ const safeAreaInsetBottom = insets.bottom;
365
+ const safeAreaInsetLeft = insets.left;
366
+ const headerHeight = headerShown !== false ? headerHeights[route.key] : 0;
367
+ let headerDarkContent;
368
+ if (headerShown) {
369
+ if (typeof headerTintColor === 'string') {
370
+ headerDarkContent = (0, _color.default)(headerTintColor).isDark();
371
+ } else {
372
+ const flattenedHeaderStyle = _reactNative.StyleSheet.flatten(headerStyle);
373
+ if (flattenedHeaderStyle && 'backgroundColor' in flattenedHeaderStyle && typeof flattenedHeaderStyle.backgroundColor === 'string') {
374
+ headerDarkContent = !(0, _color.default)(flattenedHeaderStyle.backgroundColor).isDark();
375
+ }
376
+ }
377
+ }
378
+
379
+ // Start from current card and count backwards the number of cards with same interpolation
380
+ const interpolationIndex = getInterpolationIndex(scenes, index);
381
+ const isModal = getIsModal(scene, interpolationIndex, isParentModal);
382
+ const isNextScreenTransparent = ((_scenes = scenes[index + 1]) === null || _scenes === void 0 ? void 0 : _scenes.descriptor.options.presentation) === 'transparentModal';
383
+ const detachCurrentScreen = ((_scenes2 = scenes[index + 1]) === null || _scenes2 === void 0 ? void 0 : _scenes2.descriptor.options.detachPreviousScreen) !== false;
384
+ return /*#__PURE__*/React.createElement(_Screens.MaybeScreen, {
385
+ key: route.key,
386
+ style: _reactNative.StyleSheet.absoluteFill,
387
+ enabled: detachInactiveScreens,
388
+ active: isScreenActive,
389
+ freezeOnBlur: freezeOnBlur,
390
+ pointerEvents: "box-none"
391
+ }, /*#__PURE__*/React.createElement(_CardContainer.default, {
392
+ index: index,
393
+ interpolationIndex: interpolationIndex,
394
+ modal: isModal,
395
+ active: index === self.length - 1,
396
+ focused: focused,
397
+ closing: closingRouteKeys.includes(route.key),
398
+ layout: layout,
399
+ gesture: gesture,
400
+ scene: scene,
401
+ safeAreaInsetTop: safeAreaInsetTop,
402
+ safeAreaInsetRight: safeAreaInsetRight,
403
+ safeAreaInsetBottom: safeAreaInsetBottom,
404
+ safeAreaInsetLeft: safeAreaInsetLeft,
405
+ onGestureStart: onGestureStart,
406
+ onGestureCancel: onGestureCancel,
407
+ onGestureEnd: onGestureEnd,
408
+ headerHeight: headerHeight,
409
+ isParentHeaderShown: isParentHeaderShown,
410
+ onHeaderHeightChange: this.handleHeaderLayout,
411
+ getPreviousScene: this.getPreviousScene,
412
+ getFocusedRoute: this.getFocusedRoute,
413
+ headerDarkContent: headerDarkContent,
414
+ hasAbsoluteFloatHeader: isFloatHeaderAbsolute && !headerTransparent,
415
+ renderHeader: renderHeader,
416
+ renderScene: renderScene,
417
+ onOpenRoute: onOpenRoute,
418
+ onCloseRoute: onCloseRoute,
419
+ onTransitionStart: onTransitionStart,
420
+ onTransitionEnd: onTransitionEnd,
421
+ isNextScreenTransparent: isNextScreenTransparent,
422
+ detachCurrentScreen: detachCurrentScreen
423
+ }));
424
+ })), isFloatHeaderAbsolute ? floatingHeader : null);
425
+ }
426
+ }
427
+ exports.default = CardStack;
428
+ const styles = _reactNative.StyleSheet.create({
429
+ container: {
430
+ flex: 1
431
+ },
432
+ absolute: {
433
+ position: 'absolute',
434
+ top: 0,
435
+ left: 0,
436
+ right: 0
437
+ },
438
+ floating: {
439
+ zIndex: 1
440
+ }
441
+ });
442
+ //# sourceMappingURL=CardStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNavigation__elements","require","_color","_interopRequireDefault","React","_interopRequireWildcard","_reactNative","_CardStyleInterpolators","_TransitionPresets","_findLastIndex","_getDistanceForDirection","_Screens","_Card","_CardContainer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","FALLBACK_DESCRIPTOR","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","_scenes$i","cardStyleInterpolatorCurrent","getIsModal","scene","isParentModal","isModalPresentation","getIsModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","StyleSheet","flatten","height","route","key","getDefaultHeaderHeight","getDistanceFromOptions","presentation","gestureDirection","ModalTransition","DefaultTransition","getDistanceForDirection","getProgressFromGesture","gesture","distance","width","Math","max","interpolate","inputRange","outputRange","CardStack","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","animationEnabled","Animated","Value","openingRouteKeys","includes","map","self","previousRoute","nextRoute","oldScene","currentGesture","previousGesture","undefined","nextGesture","nextDescriptor","previousDescriptor","optionsForTransitionConfig","length","defaultTransitionPreset","ModalFadeTransition","Platform","OS","gestureEnabled","transitionSpec","forNoAnimationCard","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","headerHeights","constructor","SafeAreaProviderCompat","initialMetrics","frame","handleLayout","nativeEvent","setState","handleHeaderLayout","previousHeight","getFocusedRoute","getPreviousScene","getPreviousRoute","previousScene","find","render","closingRouteKeys","onOpenRoute","onCloseRoute","renderHeader","renderScene","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","detachInactiveScreens","focusedRoute","focusedHeaderHeight","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","activeScreensLimit","detachPreviousScreen","findLastIndex","forModalPresentationIOS","name","floatingHeader","createElement","Fragment","mode","onContentHeightChange","styles","floating","absolute","Background","MaybeScreenContainer","enabled","container","onLayout","_scenes","_scenes2","focused","isScreenActive","headerTintColor","freezeOnBlur","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","headerDarkContent","Color","isDark","flattenedHeaderStyle","backgroundColor","isNextScreenTransparent","detachCurrentScreen","MaybeScreen","absoluteFill","active","pointerEvents","modal","closing","onHeaderHeightChange","hasAbsoluteFloatHeader","exports","create","flex","position","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardStack.tsx"],"mappings":"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","ignoreList":[]}