react-native-screens 3.22.1 → 3.24.0

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 (54) hide show
  1. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +2 -0
  2. package/ios/RNSConvert.h +13 -13
  3. package/ios/RNSConvert.mm +57 -49
  4. package/ios/RNSEnums.h +6 -0
  5. package/ios/RNSFullWindowOverlay.h +6 -2
  6. package/ios/RNSFullWindowOverlay.mm +16 -6
  7. package/ios/RNSScreen.h +17 -5
  8. package/ios/RNSScreen.mm +74 -44
  9. package/ios/RNSScreenContainer.h +2 -2
  10. package/ios/RNSScreenContainer.mm +11 -8
  11. package/ios/RNSScreenNavigationContainer.h +1 -1
  12. package/ios/RNSScreenNavigationContainer.mm +9 -8
  13. package/ios/RNSScreenStack.h +1 -1
  14. package/ios/RNSScreenStack.mm +15 -14
  15. package/ios/RNSScreenStackHeaderConfig.mm +27 -21
  16. package/ios/RNSScreenStackHeaderSubview.mm +12 -11
  17. package/ios/RNSScreenWindowTraits.mm +5 -5
  18. package/ios/RNSSearchBar.h +8 -1
  19. package/ios/RNSSearchBar.mm +58 -19
  20. package/ios/UIViewController+RNScreens.mm +7 -7
  21. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  22. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  23. package/lib/commonjs/index.native.js +5 -1
  24. package/lib/commonjs/index.native.js.map +1 -1
  25. package/lib/commonjs/native-stack/types.js.map +1 -1
  26. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +10 -6
  27. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  28. package/lib/commonjs/native-stack/views/NativeStackView.js +35 -8
  29. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  30. package/lib/commonjs/types.js.map +1 -1
  31. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  32. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  33. package/lib/module/index.native.js +5 -1
  34. package/lib/module/index.native.js.map +1 -1
  35. package/lib/module/native-stack/types.js.map +1 -1
  36. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +10 -6
  37. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  38. package/lib/module/native-stack/views/NativeStackView.js +35 -8
  39. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  40. package/lib/module/types.js.map +1 -1
  41. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +1 -0
  42. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +2 -0
  43. package/lib/typescript/native-stack/types.d.ts +8 -0
  44. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
  45. package/lib/typescript/types.d.ts +21 -0
  46. package/native-stack/README.md +12 -1
  47. package/package.json +1 -1
  48. package/src/fabric/ScreenNativeComponent.ts +1 -0
  49. package/src/fabric/SearchBarNativeComponent.ts +3 -0
  50. package/src/index.native.tsx +7 -0
  51. package/src/native-stack/types.tsx +6 -0
  52. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +11 -7
  53. package/src/native-stack/views/NativeStackView.tsx +36 -6
  54. package/src/types.tsx +21 -0
@@ -8,7 +8,11 @@
8
8
 
9
9
  #import <React/RCTConversions.h>
10
10
  #import <React/RCTFabricComponentsPlugins.h>
11
- #endif
11
+ #endif // RCT_NEW_ARCH_ENABLED
12
+
13
+ #ifdef RCT_NEW_ARCH_ENABLED
14
+ namespace react = facebook::react;
15
+ #endif // RCT_NEW_ARCH_ENABLED
12
16
 
13
17
  @interface RCTBridge (Private)
14
18
  + (RCTBridge *)currentBridge;
@@ -25,7 +29,7 @@
25
29
  - (instancetype)initWithFrame:(CGRect)frame
26
30
  {
27
31
  if (self = [super initWithFrame:frame]) {
28
- static const auto defaultProps = std::make_shared<const facebook::react::RNSScreenStackHeaderSubviewProps>();
32
+ static const auto defaultProps = std::make_shared<const react::RNSScreenStackHeaderSubviewProps>();
29
33
  _props = defaultProps;
30
34
  }
31
35
 
@@ -39,24 +43,21 @@
39
43
  [super prepareForRecycle];
40
44
  }
41
45
 
42
- - (void)updateProps:(facebook::react::Props::Shared const &)props
43
- oldProps:(facebook::react::Props::Shared const &)oldProps
46
+ - (void)updateProps:(react::Props::Shared const &)props oldProps:(react::Props::Shared const &)oldProps
44
47
  {
45
- const auto &newHeaderSubviewProps =
46
- *std::static_pointer_cast<const facebook::react::RNSScreenStackHeaderSubviewProps>(props);
48
+ const auto &newHeaderSubviewProps = *std::static_pointer_cast<const react::RNSScreenStackHeaderSubviewProps>(props);
47
49
 
48
50
  [self setType:[RNSConvert RNSScreenStackHeaderSubviewTypeFromCppEquivalent:newHeaderSubviewProps.type]];
49
51
  [super updateProps:props oldProps:oldProps];
50
52
  }
51
53
 
52
- + (facebook::react::ComponentDescriptorProvider)componentDescriptorProvider
54
+ + (react::ComponentDescriptorProvider)componentDescriptorProvider
53
55
  {
54
- return facebook::react::concreteComponentDescriptorProvider<
55
- facebook::react::RNSScreenStackHeaderSubviewComponentDescriptor>();
56
+ return react::concreteComponentDescriptorProvider<react::RNSScreenStackHeaderSubviewComponentDescriptor>();
56
57
  }
57
58
 
58
- - (void)updateLayoutMetrics:(const facebook::react::LayoutMetrics &)layoutMetrics
59
- oldLayoutMetrics:(const facebook::react::LayoutMetrics &)oldLayoutMetrics
59
+ - (void)updateLayoutMetrics:(const react::LayoutMetrics &)layoutMetrics
60
+ oldLayoutMetrics:(const react::LayoutMetrics &)oldLayoutMetrics
60
61
  {
61
62
  CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
62
63
  // CALayer will crash if we pass NaN or Inf values.
@@ -242,12 +242,12 @@
242
242
  inViewController:(UIViewController *)vc
243
243
  {
244
244
  UIViewController *lastViewController = [[vc childViewControllers] lastObject];
245
- if ([lastViewController conformsToProtocol:@protocol(RNScreensViewControllerDelegate)]) {
245
+ if ([lastViewController conformsToProtocol:@protocol(RNSViewControllerDelegate)]) {
246
246
  UIViewController *vc = nil;
247
- if ([lastViewController isKindOfClass:[RNScreensViewController class]]) {
248
- vc = [(RNScreensViewController *)lastViewController findActiveChildVC];
249
- } else if ([lastViewController isKindOfClass:[RNScreensNavigationController class]]) {
250
- vc = [(RNScreensNavigationController *)lastViewController topViewController];
247
+ if ([lastViewController isKindOfClass:[RNSViewController class]]) {
248
+ vc = [(RNSViewController *)lastViewController findActiveChildVC];
249
+ } else if ([lastViewController isKindOfClass:[RNSNavigationController class]]) {
250
+ vc = [(RNSNavigationController *)lastViewController topViewController];
251
251
  }
252
252
  return [vc isKindOfClass:[RNSScreen class]] &&
253
253
  [(RNSScreen *)vc findChildVCForConfigAndTrait:trait includingModals:includingModals] != nil;
@@ -8,6 +8,7 @@
8
8
  #import <React/RCTBridge.h>
9
9
  #import <React/RCTComponent.h>
10
10
  #import <React/RCTViewManager.h>
11
+ #import "RNSEnums.h"
11
12
 
12
13
  @interface RNSSearchBar :
13
14
  #ifdef RCT_NEW_ARCH_ENABLED
@@ -17,9 +18,15 @@
17
18
  #endif
18
19
 
19
20
  @property (nonatomic) BOOL hideWhenScrolling;
20
-
21
+ @property (nonatomic) RNSSearchBarPlacement placement;
21
22
  @property (nonatomic, retain) UISearchController *controller;
22
23
 
24
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_16_0) && \
25
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0 && !TARGET_OS_TV
26
+ - (UINavigationItemSearchBarPlacement)placementAsUINavigationItemSearchBarPlacement API_AVAILABLE(ios(16.0))
27
+ API_UNAVAILABLE(tvos, watchos);
28
+ #endif // Check for iOS >= 16 && !TARGET_OS_TV
29
+
23
30
  #ifdef RCT_NEW_ARCH_ENABLED
24
31
  #else
25
32
  @property (nonatomic, copy) RCTBubblingEventBlock onChangeText;
@@ -13,7 +13,11 @@
13
13
  #import <react/renderer/components/rnscreens/EventEmitters.h>
14
14
  #import <react/renderer/components/rnscreens/Props.h>
15
15
  #import "RNSConvert.h"
16
- #endif
16
+ #endif // RCT_NEW_ARCH_ENABLED
17
+
18
+ #ifdef RCT_NEW_ARCH_ENABLED
19
+ namespace react = facebook::react;
20
+ #endif // RCT_NEW_ARCH_ENABLED
17
21
 
18
22
  @implementation RNSSearchBar {
19
23
  __weak RCTBridge *_bridge;
@@ -36,7 +40,7 @@
36
40
  - (instancetype)init
37
41
  {
38
42
  if (self = [super init]) {
39
- static const auto defaultProps = std::make_shared<const facebook::react::RNSSearchBarProps>();
43
+ static const auto defaultProps = std::make_shared<const react::RNSSearchBarProps>();
40
44
  _props = defaultProps;
41
45
  [self initCommonProps];
42
46
  }
@@ -49,14 +53,15 @@
49
53
  _controller = [[UISearchController alloc] initWithSearchResultsController:nil];
50
54
  _controller.searchBar.delegate = self;
51
55
  _hideWhenScrolling = YES;
56
+ _placement = RNSSearchBarPlacementStacked;
52
57
  }
53
58
 
54
59
  - (void)emitOnFocusEvent
55
60
  {
56
61
  #ifdef RCT_NEW_ARCH_ENABLED
57
62
  if (_eventEmitter != nullptr) {
58
- std::dynamic_pointer_cast<const facebook::react::RNSSearchBarEventEmitter>(_eventEmitter)
59
- ->onFocus(facebook::react::RNSSearchBarEventEmitter::OnFocus{});
63
+ std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
64
+ ->onFocus(react::RNSSearchBarEventEmitter::OnFocus{});
60
65
  }
61
66
  #else
62
67
  if (self.onFocus) {
@@ -69,8 +74,8 @@
69
74
  {
70
75
  #ifdef RCT_NEW_ARCH_ENABLED
71
76
  if (_eventEmitter != nullptr) {
72
- std::dynamic_pointer_cast<const facebook::react::RNSSearchBarEventEmitter>(_eventEmitter)
73
- ->onBlur(facebook::react::RNSSearchBarEventEmitter::OnBlur{});
77
+ std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
78
+ ->onBlur(react::RNSSearchBarEventEmitter::OnBlur{});
74
79
  }
75
80
  #else
76
81
  if (self.onBlur) {
@@ -83,9 +88,9 @@
83
88
  {
84
89
  #ifdef RCT_NEW_ARCH_ENABLED
85
90
  if (_eventEmitter != nullptr) {
86
- std::dynamic_pointer_cast<const facebook::react::RNSSearchBarEventEmitter>(_eventEmitter)
91
+ std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
87
92
  ->onSearchButtonPress(
88
- facebook::react::RNSSearchBarEventEmitter::OnSearchButtonPress{.text = RCTStringFromNSString(text)});
93
+ react::RNSSearchBarEventEmitter::OnSearchButtonPress{.text = RCTStringFromNSString(text)});
89
94
  }
90
95
  #else
91
96
  if (self.onSearchButtonPress) {
@@ -100,8 +105,8 @@
100
105
  {
101
106
  #ifdef RCT_NEW_ARCH_ENABLED
102
107
  if (_eventEmitter != nullptr) {
103
- std::dynamic_pointer_cast<const facebook::react::RNSSearchBarEventEmitter>(_eventEmitter)
104
- ->onCancelButtonPress(facebook::react::RNSSearchBarEventEmitter::OnCancelButtonPress{});
108
+ std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
109
+ ->onCancelButtonPress(react::RNSSearchBarEventEmitter::OnCancelButtonPress{});
105
110
  }
106
111
  #else
107
112
  if (self.onCancelButtonPress) {
@@ -114,8 +119,8 @@
114
119
  {
115
120
  #ifdef RCT_NEW_ARCH_ENABLED
116
121
  if (_eventEmitter != nullptr) {
117
- std::dynamic_pointer_cast<const facebook::react::RNSSearchBarEventEmitter>(_eventEmitter)
118
- ->onChangeText(facebook::react::RNSSearchBarEventEmitter::OnChangeText{.text = RCTStringFromNSString(text)});
122
+ std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
123
+ ->onChangeText(react::RNSSearchBarEventEmitter::OnChangeText{.text = RCTStringFromNSString(text)});
119
124
  }
120
125
  #else
121
126
  if (self.onChangeText) {
@@ -208,6 +213,22 @@
208
213
  #endif
209
214
  }
210
215
 
216
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_16_0) && \
217
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0 && !TARGET_OS_TV
218
+ - (UINavigationItemSearchBarPlacement)placementAsUINavigationItemSearchBarPlacement API_AVAILABLE(ios(16.0))
219
+ API_UNAVAILABLE(tvos, watchos)
220
+ {
221
+ switch (_placement) {
222
+ case RNSSearchBarPlacementStacked:
223
+ return UINavigationItemSearchBarPlacementStacked;
224
+ case RNSSearchBarPlacementAutomatic:
225
+ return UINavigationItemSearchBarPlacementAutomatic;
226
+ case RNSSearchBarPlacementInline:
227
+ return UINavigationItemSearchBarPlacementInline;
228
+ }
229
+ }
230
+ #endif // Check for iOS >= 16 && !TARGET_OS_TV
231
+
211
232
  #pragma mark delegate methods
212
233
 
213
234
  - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
@@ -286,11 +307,10 @@
286
307
  #pragma mark-- Fabric specific
287
308
 
288
309
  #ifdef RCT_NEW_ARCH_ENABLED
289
- - (void)updateProps:(facebook::react::Props::Shared const &)props
290
- oldProps:(facebook::react::Props::Shared const &)oldProps
310
+ - (void)updateProps:(react::Props::Shared const &)props oldProps:(react::Props::Shared const &)oldProps
291
311
  {
292
- const auto &oldScreenProps = *std::static_pointer_cast<const facebook::react::RNSSearchBarProps>(_props);
293
- const auto &newScreenProps = *std::static_pointer_cast<const facebook::react::RNSSearchBarProps>(props);
312
+ const auto &oldScreenProps = *std::static_pointer_cast<const react::RNSSearchBarProps>(_props);
313
+ const auto &newScreenProps = *std::static_pointer_cast<const react::RNSSearchBarProps>(props);
294
314
 
295
315
  [self setHideWhenScrolling:newScreenProps.hideWhenScrolling];
296
316
 
@@ -326,12 +346,16 @@
326
346
  [self setTextColor:RCTUIColorFromSharedColor(newScreenProps.textColor)];
327
347
  }
328
348
 
349
+ if (oldScreenProps.placement != newScreenProps.placement) {
350
+ self.placement = [RNSConvert RNSScreenSearchBarPlacementFromCppEquivalent:newScreenProps.placement];
351
+ }
352
+
329
353
  [super updateProps:props oldProps:oldProps];
330
354
  }
331
355
 
332
- + (facebook::react::ComponentDescriptorProvider)componentDescriptorProvider
356
+ + (react::ComponentDescriptorProvider)componentDescriptorProvider
333
357
  {
334
- return facebook::react::concreteComponentDescriptorProvider<facebook::react::RNSSearchBarComponentDescriptor>();
358
+ return react::concreteComponentDescriptorProvider<react::RNSSearchBarComponentDescriptor>();
335
359
  }
336
360
 
337
361
  - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
@@ -372,6 +396,7 @@ RCT_EXPORT_VIEW_PROPERTY(barTintColor, UIColor)
372
396
  RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
373
397
  RCT_EXPORT_VIEW_PROPERTY(textColor, UIColor)
374
398
  RCT_EXPORT_VIEW_PROPERTY(cancelButtonText, NSString)
399
+ RCT_EXPORT_VIEW_PROPERTY(placement, RNSSearchBarPlacement)
375
400
 
376
401
  RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTBubblingEventBlock)
377
402
  RCT_EXPORT_VIEW_PROPERTY(onCancelButtonPress, RCTBubblingEventBlock)
@@ -405,7 +430,7 @@ RCT_EXPORT_METHOD(clearText : (NSNumber *_Nonnull)reactTag)
405
430
  }];
406
431
  }
407
432
 
408
- RCT_EXPORT_METHOD(toggleCancelButton : (NSNumber *_Nonnull)reactTag flag : (BOOL *)flag)
433
+ RCT_EXPORT_METHOD(toggleCancelButton : (NSNumber *_Nonnull)reactTag flag : (BOOL)flag)
409
434
  {
410
435
  [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) {
411
436
  RNSSearchBar *searchBar = viewRegistry[reactTag];
@@ -424,3 +449,17 @@ RCT_EXPORT_METHOD(setText : (NSNumber *_Nonnull)reactTag text : (NSString *)text
424
449
  #endif /* !RCT_NEW_ARCH_ENABLED */
425
450
 
426
451
  @end
452
+
453
+ @implementation RCTConvert (RNSScreen)
454
+
455
+ RCT_ENUM_CONVERTER(
456
+ RNSSearchBarPlacement,
457
+ (@{
458
+ @"automatic" : @(RNSSearchBarPlacementAutomatic),
459
+ @"inline" : @(RNSSearchBarPlacementInline),
460
+ @"stacked" : @(RNSSearchBarPlacementStacked),
461
+ }),
462
+ RNSSearchBarPlacementStacked,
463
+ integerValue)
464
+
465
+ @end
@@ -8,39 +8,39 @@
8
8
  #if !TARGET_OS_TV
9
9
  - (UIViewController *)reactNativeScreensChildViewControllerForStatusBarStyle
10
10
  {
11
- UIViewController *childVC = [self findChildRNScreensViewController];
11
+ UIViewController *childVC = [self findChildRNSScreensViewController];
12
12
  return childVC ?: [self reactNativeScreensChildViewControllerForStatusBarStyle];
13
13
  }
14
14
 
15
15
  - (UIViewController *)reactNativeScreensChildViewControllerForStatusBarHidden
16
16
  {
17
- UIViewController *childVC = [self findChildRNScreensViewController];
17
+ UIViewController *childVC = [self findChildRNSScreensViewController];
18
18
  return childVC ?: [self reactNativeScreensChildViewControllerForStatusBarHidden];
19
19
  }
20
20
 
21
21
  - (UIStatusBarAnimation)reactNativeScreensPreferredStatusBarUpdateAnimation
22
22
  {
23
- UIViewController *childVC = [self findChildRNScreensViewController];
23
+ UIViewController *childVC = [self findChildRNSScreensViewController];
24
24
  return childVC ? childVC.preferredStatusBarUpdateAnimation
25
25
  : [self reactNativeScreensPreferredStatusBarUpdateAnimation];
26
26
  }
27
27
 
28
28
  - (UIInterfaceOrientationMask)reactNativeScreensSupportedInterfaceOrientations
29
29
  {
30
- UIViewController *childVC = [self findChildRNScreensViewController];
30
+ UIViewController *childVC = [self findChildRNSScreensViewController];
31
31
  return childVC ? childVC.supportedInterfaceOrientations : [self reactNativeScreensSupportedInterfaceOrientations];
32
32
  }
33
33
 
34
34
  - (UIViewController *)reactNativeScreensChildViewControllerForHomeIndicatorAutoHidden
35
35
  {
36
- UIViewController *childVC = [self findChildRNScreensViewController];
36
+ UIViewController *childVC = [self findChildRNSScreensViewController];
37
37
  return childVC ?: [self reactNativeScreensChildViewControllerForHomeIndicatorAutoHidden];
38
38
  }
39
39
 
40
- - (UIViewController *)findChildRNScreensViewController
40
+ - (UIViewController *)findChildRNSScreensViewController
41
41
  {
42
42
  UIViewController *lastViewController = [[self childViewControllers] lastObject];
43
- if ([lastViewController conformsToProtocol:@protocol(RNScreensViewControllerDelegate)]) {
43
+ if ([lastViewController conformsToProtocol:@protocol(RNSViewControllerDelegate)]) {
44
44
  return lastViewController;
45
45
  }
46
46
  return nil;
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","codegenNativeComponent","interfaceOnly","exports"],"sources":["ScreenNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps, ColorValue } from 'react-native';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n Float,\n Double,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype ScreenEvent = Readonly<{}>;\n\ntype ScreenDismissedEvent = Readonly<{\n dismissCount: Int32;\n}>;\n\ntype TransitionProgressEvent = Readonly<{\n progress: Double;\n closing: Int32;\n goingForward: Int32;\n}>;\n\ntype GestureResponseDistanceType = Readonly<{\n start: Float;\n end: Float;\n top: Float;\n bottom: Float;\n}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\ntype SheetDetentTypes = 'large' | 'medium' | 'all';\n\nexport interface NativeProps extends ViewProps {\n onAppear?: BubblingEventHandler<ScreenEvent>;\n onDisappear?: BubblingEventHandler<ScreenEvent>;\n onDismissed?: BubblingEventHandler<ScreenDismissedEvent>;\n onNativeDismissCancelled?: BubblingEventHandler<ScreenDismissedEvent>;\n onWillAppear?: BubblingEventHandler<ScreenEvent>;\n onWillDisappear?: BubblingEventHandler<ScreenEvent>;\n onTransitionProgress?: BubblingEventHandler<TransitionProgressEvent>;\n sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>;\n sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>;\n sheetGrabberVisible?: WithDefault<boolean, false>;\n sheetCornerRadius?: WithDefault<Float, -1.0>;\n sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>;\n customAnimationOnSwipe?: boolean;\n fullScreenSwipeEnabled?: boolean;\n homeIndicatorHidden?: boolean;\n preventNativeDismiss?: boolean;\n gestureEnabled?: WithDefault<boolean, true>;\n statusBarColor?: ColorValue;\n statusBarHidden?: boolean;\n screenOrientation?: string;\n statusBarAnimation?: string;\n statusBarStyle?: string;\n statusBarTranslucent?: boolean;\n gestureResponseDistance?: GestureResponseDistanceType;\n stackPresentation?: WithDefault<StackPresentation, 'push'>;\n stackAnimation?: WithDefault<StackAnimation, 'default'>;\n transitionDuration?: WithDefault<Int32, 350>;\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>;\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>;\n hideKeyboardOnSwipe?: boolean;\n activityState?: WithDefault<Float, -1.0>;\n navigationBarColor?: ColorValue;\n navigationBarHidden?: boolean;\n nativeBackButtonDismissalEnabled?: boolean;\n onHeaderBackButtonClicked?: BubblingEventHandler<ScreenEvent>;\n}\n\nexport default codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAU7F;AAAA,IAAAG,QAAA,GAoFe,IAAAC,+BAAsB,EAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC;AAAAC,OAAA,CAAAJ,OAAA,GAAAC,QAAA"}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","codegenNativeComponent","interfaceOnly","exports"],"sources":["ScreenNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps, ColorValue } from 'react-native';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n Float,\n Double,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype ScreenEvent = Readonly<{}>;\n\ntype ScreenDismissedEvent = Readonly<{\n dismissCount: Int32;\n}>;\n\ntype TransitionProgressEvent = Readonly<{\n progress: Double;\n closing: Int32;\n goingForward: Int32;\n}>;\n\ntype GestureResponseDistanceType = Readonly<{\n start: Float;\n end: Float;\n top: Float;\n bottom: Float;\n}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\ntype SheetDetentTypes = 'large' | 'medium' | 'all';\n\nexport interface NativeProps extends ViewProps {\n onAppear?: BubblingEventHandler<ScreenEvent>;\n onDisappear?: BubblingEventHandler<ScreenEvent>;\n onDismissed?: BubblingEventHandler<ScreenDismissedEvent>;\n onNativeDismissCancelled?: BubblingEventHandler<ScreenDismissedEvent>;\n onWillAppear?: BubblingEventHandler<ScreenEvent>;\n onWillDisappear?: BubblingEventHandler<ScreenEvent>;\n onTransitionProgress?: BubblingEventHandler<TransitionProgressEvent>;\n onGestureCancel?: BubblingEventHandler<ScreenEvent>;\n sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>;\n sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>;\n sheetGrabberVisible?: WithDefault<boolean, false>;\n sheetCornerRadius?: WithDefault<Float, -1.0>;\n sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>;\n customAnimationOnSwipe?: boolean;\n fullScreenSwipeEnabled?: boolean;\n homeIndicatorHidden?: boolean;\n preventNativeDismiss?: boolean;\n gestureEnabled?: WithDefault<boolean, true>;\n statusBarColor?: ColorValue;\n statusBarHidden?: boolean;\n screenOrientation?: string;\n statusBarAnimation?: string;\n statusBarStyle?: string;\n statusBarTranslucent?: boolean;\n gestureResponseDistance?: GestureResponseDistanceType;\n stackPresentation?: WithDefault<StackPresentation, 'push'>;\n stackAnimation?: WithDefault<StackAnimation, 'default'>;\n transitionDuration?: WithDefault<Int32, 350>;\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>;\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>;\n hideKeyboardOnSwipe?: boolean;\n activityState?: WithDefault<Float, -1.0>;\n navigationBarColor?: ColorValue;\n navigationBarHidden?: boolean;\n nativeBackButtonDismissalEnabled?: boolean;\n onHeaderBackButtonClicked?: BubblingEventHandler<ScreenEvent>;\n}\n\nexport default codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAU7F;AAAA,IAAAG,QAAA,GAqFe,IAAAC,+BAAsB,EAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC;AAAAC,OAAA,CAAAJ,OAAA,GAAAC,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","_codegenNativeCommands","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sources":["SearchBarNativeComponent.ts"],"sourcesContent":["/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps, ColorValue, HostComponent } from 'react-native';\nimport type {\n WithDefault,\n BubblingEventHandler,\n} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';\n\ntype SearchBarEvent = Readonly<{}>;\n\ntype SearchButtonPressedEvent = Readonly<{\n text?: string;\n}>;\n\ntype ChangeTextEvent = Readonly<{\n text?: string;\n}>;\n\ntype AutoCapitalizeType = 'none' | 'words' | 'sentences' | 'characters';\n\ninterface NativeProps extends ViewProps {\n onFocus?: BubblingEventHandler<SearchBarEvent> | null;\n onBlur?: BubblingEventHandler<SearchBarEvent> | null;\n onSearchButtonPress?: BubblingEventHandler<SearchButtonPressedEvent> | null;\n onCancelButtonPress?: BubblingEventHandler<SearchBarEvent> | null;\n onChangeText?: BubblingEventHandler<ChangeTextEvent> | null;\n hideWhenScrolling?: boolean;\n autoCapitalize?: WithDefault<AutoCapitalizeType, 'none'>;\n placeholder?: string;\n obscureBackground?: boolean;\n hideNavigationBar?: boolean;\n cancelButtonText?: string;\n // TODO: implement these on iOS\n barTintColor?: ColorValue;\n tintColor?: ColorValue;\n textColor?: ColorValue;\n\n // Android only\n disableBackButtonOverride?: boolean;\n // TODO: consider creating enum here\n inputType?: string;\n onClose?: BubblingEventHandler<SearchBarEvent> | null;\n onOpen?: BubblingEventHandler<SearchBarEvent> | null;\n hintTextColor?: ColorValue;\n headerIconColor?: ColorValue;\n shouldShowHintSearchIcon?: WithDefault<boolean, true>;\n}\n\ntype ComponentType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n blur: (viewRef: React.ElementRef<ComponentType>) => void;\n focus: (viewRef: React.ElementRef<ComponentType>) => void;\n clearText: (viewRef: React.ElementRef<ComponentType>) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<ComponentType>,\n flag: boolean\n ) => void;\n setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: [\n 'blur',\n 'focus',\n 'clearText',\n 'toggleCancelButton',\n 'setText',\n ],\n});\n\nexport default codegenNativeComponent<NativeProps>('RNSSearchBar', {});\n"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAP3F;;AA8DO,MAAMG,QAAwB,GAAG,IAAAC,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CACjB,MAAM,EACN,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,SAAS;AAEb,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEY,IAAAC,+BAAsB,EAAc,cAAc,EAAE,CAAC,CAAC,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","_codegenNativeCommands","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sources":["SearchBarNativeComponent.ts"],"sourcesContent":["/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps, ColorValue, HostComponent } from 'react-native';\nimport type {\n WithDefault,\n BubblingEventHandler,\n} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';\n\ntype SearchBarEvent = Readonly<{}>;\n\ntype SearchButtonPressedEvent = Readonly<{\n text?: string;\n}>;\n\ntype ChangeTextEvent = Readonly<{\n text?: string;\n}>;\n\ntype SearchBarPlacement = 'automatic' | 'inline' | 'stacked';\n\ntype AutoCapitalizeType = 'none' | 'words' | 'sentences' | 'characters';\n\ninterface NativeProps extends ViewProps {\n onFocus?: BubblingEventHandler<SearchBarEvent> | null;\n onBlur?: BubblingEventHandler<SearchBarEvent> | null;\n onSearchButtonPress?: BubblingEventHandler<SearchButtonPressedEvent> | null;\n onCancelButtonPress?: BubblingEventHandler<SearchBarEvent> | null;\n onChangeText?: BubblingEventHandler<ChangeTextEvent> | null;\n hideWhenScrolling?: boolean;\n autoCapitalize?: WithDefault<AutoCapitalizeType, 'none'>;\n placeholder?: string;\n placement?: WithDefault<SearchBarPlacement, 'stacked'>;\n obscureBackground?: boolean;\n hideNavigationBar?: boolean;\n cancelButtonText?: string;\n // TODO: implement these on iOS\n barTintColor?: ColorValue;\n tintColor?: ColorValue;\n textColor?: ColorValue;\n\n // Android only\n disableBackButtonOverride?: boolean;\n // TODO: consider creating enum here\n inputType?: string;\n onClose?: BubblingEventHandler<SearchBarEvent> | null;\n onOpen?: BubblingEventHandler<SearchBarEvent> | null;\n hintTextColor?: ColorValue;\n headerIconColor?: ColorValue;\n shouldShowHintSearchIcon?: WithDefault<boolean, true>;\n}\n\ntype ComponentType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n blur: (viewRef: React.ElementRef<ComponentType>) => void;\n focus: (viewRef: React.ElementRef<ComponentType>) => void;\n clearText: (viewRef: React.ElementRef<ComponentType>) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<ComponentType>,\n flag: boolean\n ) => void;\n setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: [\n 'blur',\n 'focus',\n 'clearText',\n 'toggleCancelButton',\n 'setText',\n ],\n});\n\nexport default codegenNativeComponent<NativeProps>('RNSSearchBar', {});\n"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAP3F;;AAiEO,MAAMG,QAAwB,GAAG,IAAAC,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CACjB,MAAM,EACN,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,SAAS;AAEb,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEY,IAAAC,+BAAsB,EAAc,cAAc,EAAE,CAAC,CAAC,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
@@ -179,6 +179,7 @@ class InnerScreen extends _react.default.Component {
179
179
  children,
180
180
  isNativeStack,
181
181
  gestureResponseDistance,
182
+ onGestureCancel,
182
183
  ...props
183
184
  } = rest;
184
185
  if (active !== undefined && activityState === undefined) {
@@ -223,7 +224,10 @@ class InnerScreen extends _react.default.Component {
223
224
  }
224
225
  }], {
225
226
  useNativeDriver: true
226
- })
227
+ }),
228
+ onGestureCancel: onGestureCancel !== null && onGestureCancel !== void 0 ? onGestureCancel : () => {
229
+ // for internal use
230
+ }
227
231
  }), !isNativeStack ?
228
232
  // see comment of this prop in types.tsx for information why it is needed
229
233
  children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactFreeze","_package","_TransitionProgressContext","_useTransitionProgress","_utils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","requireNativeComponent","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","createElement","Freeze","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","Animated","Value","ref","_this$props$onCompone","_this$props","onComponentRef","setNativeProps","_this$ref","render","enabled","sheetAllowedDetents","sheetLargestUndimmedDetent","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","View","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","Image","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","isSearchBarAvailableForCurrentPlatform","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands","useTransitionProgress","isNewBackTitleImplementation","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n // To maintain default behaviour of formSheet stack presentation style & and to have resonable\n // defaults for new medium-detent iOS API we need to set defaults here\n const {\n sheetAllowedDetents = 'large',\n sheetLargestUndimmedDetent = 'all',\n sheetGrabberVisible = false,\n sheetCornerRadius = -1.0,\n sheetExpandsWhenScrolledToEdge = true,\n } = rest;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n sheetAllowedDetents={sheetAllowedDetents}\n sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}\n sheetGrabberVisible={sheetGrabberVisible}\n sheetCornerRadius={sheetCornerRadius}\n sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n};\n"],"mappings":";;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAaA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,0BAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,sBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAeA,IAAAM,MAAA,GAAAN,OAAA;AAIiB,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,gBAAAjB,GAAA,EAAAY,GAAA,EAAAM,KAAA,IAAAN,GAAA,GAAAO,cAAA,CAAAP,GAAA,OAAAA,GAAA,IAAAZ,GAAA,IAAAI,MAAA,CAAAgB,cAAA,CAAApB,GAAA,EAAAY,GAAA,IAAAM,KAAA,EAAAA,KAAA,EAAAG,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAvB,GAAA,CAAAY,GAAA,IAAAM,KAAA,WAAAlB,GAAA;AAAA,SAAAmB,eAAAK,GAAA,QAAAZ,GAAA,GAAAa,YAAA,CAAAD,GAAA,2BAAAZ,GAAA,gBAAAA,GAAA,GAAAc,MAAA,CAAAd,GAAA;AAAA,SAAAa,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAd,IAAA,CAAAY,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA,KAtCjB;AAwCA;AACA,MAAMS,mBAAmB,GACvBC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IACrBD,qBAAQ,CAACC,EAAE,KAAK,SAAS,IACzBD,qBAAQ,CAACC,EAAE,KAAK,SAAS;AAE3B,IAAIC,cAAc,GAAGH,mBAAmB;AAExC,SAASI,aAAaA,CAAA,EAAmC;EAAA,IAAlCC,mBAAmB,GAAAhC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,IAAI;EAC/C8B,cAAc,GAAGH,mBAAmB,IAAIK,mBAAmB;EAC3D,IAAIF,cAAc,IAAI,CAACG,sBAAS,CAACC,oBAAoB,CAAC,WAAW,CAAC,EAAE;IAClEC,OAAO,CAACC,KAAK,CACV,wGACH,CAAC;EACH;AACF;AAEA,IAAIC,aAAa,GAAG,KAAK;AAEzB,SAASC,YAAYA,CAAA,EAAuC;EAAA,IAAtCC,uBAAuB,GAAAvC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,IAAI;EAClD,MAAMwC,KAAK,GAAGC,QAAQ,CAACC,gBAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE/C;EACA,IAAI,EAAEH,KAAK,KAAK,CAAC,IAAIA,KAAK,IAAI,EAAE,CAAC,IAAID,uBAAuB,EAAE;IAC5DJ,OAAO,CAACS,IAAI,CACV,kIACF,CAAC;EACH;EAEAP,aAAa,GAAGE,uBAAuB;AACzC;;AAEA;AACA,MAAMM,sBAAsB,GAAG,IAAI;AAEnC,SAASC,cAAcA,CAAA,EAAY;EACjC,OAAOhB,cAAc;AACvB;AAsBA;AACA;AACA,IAAIiB,iBAAmD;AACvD,IAAIC,0BAAqE;AACzE,IAAIC,oCAA+E;AACnF,IAAIC,iBAAwD;AAC5D,IAAIC,6BAAgF;AACpF,IAAIC,8BAEH;AACD,IAAIC,oBAAsD;AAE1D,IAAIC,eAC4B;AAChC,IAAIC,uBAA8C;AAElD,IAAIC,uBAIH;AAED,MAAMC,oBAAoB,GAAG;EAC3B,IAAIC,YAAYA,CAAA,EAAG;IACjBX,iBAAiB,GACfA,iBAAiB,IAAI/D,OAAO,CAAC,gCAAgC,CAAC,CAACS,OAAO;IACxE,OAAOsD,iBAAiB;EAC1B,CAAC;EAED,IAAIY,qBAAqBA,CAAA,EAAG;IAC1BX,0BAA0B,GACxBA,0BAA0B,IAC1BhE,OAAO,CAAC,yCAAyC,CAAC,CAACS,OAAO;IAC5D,OAAOuD,0BAA0B;EACnC,CAAC;EAED,IAAIY,+BAA+BA,CAAA,EAAG;IACpCX,oCAAoC,GAClCA,oCAAoC,KACnCrB,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAClB,IAAAgC,mCAAsB,EAAC,8BAA8B,CAAC,GACtD,IAAI,CAACF,qBAAqB,CAAC;IACjC,OAAOV,oCAAoC;EAC7C,CAAC;EAED,IAAIC,iBAAiBA,CAAA,EAAG;IACtBA,iBAAiB,GACfA,iBAAiB,IAAI,IAAAW,mCAAsB,EAAC,gBAAgB,CAAC;IAC/D,OAAOX,iBAAiB;EAC1B,CAAC;EAED,IAAIC,6BAA6BA,CAAA,EAAG;IAClCA,6BAA6B,GAC3BA,6BAA6B,IAC7B,IAAAU,mCAAsB,EAAC,4BAA4B,CAAC;IACtD,OAAOV,6BAA6B;EACtC,CAAC;EAED,IAAIC,8BAA8BA,CAAA,EAAG;IACnCA,8BAA8B,GAC5BA,8BAA8B,IAC9B,IAAAS,mCAAsB,EAAC,6BAA6B,CAAC;IACvD,OAAOT,8BAA8B;EACvC,CAAC;EAED,IAAIE,eAAeA,CAAA,EAAG;IACpBA,eAAe,GACbA,eAAe,IAAItE,OAAO,CAAC,mCAAmC,CAAC,CAACS,OAAO;IACzE,OAAO6D,eAAe;EACxB,CAAC;EACD,IAAIC,uBAAuBA,CAAA,EAAG;IAC5BA,uBAAuB,GACrBA,uBAAuB,IACvBvE,OAAO,CAAC,mCAAmC,CAAC,CAAC8E,QAAQ;IACvD,OAAOP,uBAAuB;EAChC,CAAC;EAED,IAAIC,uBAAuBA,CAAA,EAAG;IAC5BA,uBAAuB,GACrBA,uBAAuB,IAAI,IAAAK,mCAAsB,EAAC,sBAAsB,CAAC;IAC3E,OAAOL,uBAAuB;EAChC;AACF,CAAC;AAOD;AACA;AACA,SAASO,aAAaA,CAAAC,IAAA,EAA2C;EAAA,IAA1C;IAAEC,MAAM;IAAEC;EAA6B,CAAC,GAAAF,IAAA;EAC7D;EACA,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAE3D,IAAIL,MAAM,KAAKE,WAAW,EAAE;IAC1B;IACA;IACAI,YAAY,CAAC,MAAM;MACjBH,cAAc,CAACH,MAAM,CAAC;IACxB,CAAC,CAAC;EACJ;EAEA,oBAAOnF,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACtF,YAAA,CAAAuF,MAAM;IAACR,MAAM,EAAEA,MAAM,GAAGE,WAAW,GAAG;EAAM,GAAED,QAAiB,CAAC;AAC1E;AAEA,SAASQ,WAAWA,CAACC,KAAuB,EAAE;EAC5C,MAAM;IAAET,QAAQ;IAAE,GAAGU;EAAK,CAAC,GAAGD,KAAK;EACnC,MAAME,IAAI,GAAGR,cAAK,CAACS,QAAQ,CAACC,KAAK,CAACb,QAAQ,CAAC;EAC3C;EACA,MAAMc,kBAAkB,GAAGX,cAAK,CAACS,QAAQ,CAACG,GAAG,CAACf,QAAQ,EAAE,CAACgB,KAAK,EAAEC,KAAK,KAAK;IAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,mBAAA;IACxE;IACA,MAAM;MAAEZ,KAAK;MAAExE;IAAI,CAAC,GAAG+E,KAAK;IAC5B,MAAMM,UAAU,IAAAJ,iBAAA,GAAGT,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEa,UAAU,cAAAJ,iBAAA,cAAAA,iBAAA,GAAIT,KAAK,aAALA,KAAK,wBAAAU,kBAAA,GAALV,KAAK,CAAEc,WAAW,cAAAJ,kBAAA,uBAAlBA,kBAAA,CAAqBlF,GAAG,CAAC;IACjE,MAAMuF,aAAa,IAAAJ,qBAAA,GAAGE,UAAU,aAAVA,UAAU,wBAAAD,mBAAA,GAAVC,UAAU,CAAEG,OAAO,cAAAJ,mBAAA,uBAAnBA,mBAAA,CAAqBK,YAAY,cAAAN,qBAAA,cAAAA,qBAAA,GAAIjD,aAAa;IAExE,oBACEvD,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACT,aAAa;MAACE,MAAM,EAAEyB,aAAa,IAAIb,IAAI,GAAGM,KAAK,GAAG;IAAE,GACtDD,KACY,CAAC;EAEpB,CAAC,CAAC;EAEF,oBACEpG,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACP,iBAAiB,EAAK0B,IAAI,EAC7CI,kBACqC,CAAC;AAE7C;;AAEA;AACA;AAWA,MAAMa,WAAW,SAASxB,cAAK,CAACyB,SAAS,CAAc;EAAAC,YAAA;IAAA,SAAA/F,SAAA;IAAAQ,eAAA,cACD,IAAI;IAAAA,eAAA,kBACtC,IAAIwF,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC;IAAAzF,eAAA,mBACpB,IAAIwF,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC;IAAAzF,eAAA,uBACjB,IAAIwF,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC;IAAAzF,eAAA,iBAMlC0F,GAAyC,IAAW;MAAA,IAAAC,qBAAA,EAAAC,WAAA;MAC5D,IAAI,CAACF,GAAG,GAAGA,GAAG;MACd,CAAAC,qBAAA,IAAAC,WAAA,OAAI,CAACzB,KAAK,EAAC0B,cAAc,cAAAF,qBAAA,uBAAzBA,qBAAA,CAAA7F,IAAA,CAAA8F,WAAA,EAA4BF,GAAG,CAAC;IAClC,CAAC;EAAA;EAPDI,cAAcA,CAAC3B,KAAkB,EAAQ;IAAA,IAAA4B,SAAA;IACvC,CAAAA,SAAA,OAAI,CAACL,GAAG,cAAAK,SAAA,uBAARA,SAAA,CAAUD,cAAc,CAAC3B,KAAK,CAAC;EACjC;EAOA6B,MAAMA,CAAA,EAAG;IACP,MAAM;MACJC,OAAO,GAAG3E,cAAc;MACxB8D,YAAY,GAAGvD,aAAa;MAC5B,GAAGuC;IACL,CAAC,GAAG,IAAI,CAACD,KAAK;;IAEd;IACA;IACA,MAAM;MACJ+B,mBAAmB,GAAG,OAAO;MAC7BC,0BAA0B,GAAG,KAAK;MAClCC,mBAAmB,GAAG,KAAK;MAC3BC,iBAAiB,GAAG,CAAC,GAAG;MACxBC,8BAA8B,GAAG;IACnC,CAAC,GAAGlC,IAAI;IAER,IAAI6B,OAAO,IAAI9E,mBAAmB,EAAE;MAAA,IAAAoF,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MAClC7D,oBAAoB,GAClBA,oBAAoB,IACpB2C,qBAAQ,CAACmB,uBAAuB,CAAC1D,oBAAoB,CAACC,YAAY,CAAC;MAErE,IAAI;QACF;QACA;QACA;QACA0D,MAAM;QACNC,aAAa;QACbnD,QAAQ;QACRoD,aAAa;QACbC,uBAAuB;QACvB,GAAG5C;MACL,CAAC,GAAGC,IAAI;MAER,IAAIwC,MAAM,KAAK7F,SAAS,IAAI8F,aAAa,KAAK9F,SAAS,EAAE;QACvDY,OAAO,CAACS,IAAI,CACV,+QACF,CAAC;QACDyE,aAAa,GAAGD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MACxC;;MAEA,MAAMI,SAAS,GAAItB,GAAe,IAAK;QAAA,IAAAuB,eAAA,EAAAC,qBAAA;QACrC,IAAIxB,GAAG,aAAHA,GAAG,gBAAAuB,eAAA,GAAHvB,GAAG,CAAEyB,UAAU,cAAAF,eAAA,gBAAAC,qBAAA,GAAfD,eAAA,CAAiBG,eAAe,cAAAF,qBAAA,eAAhCA,qBAAA,CAAkCG,KAAK,EAAE;UAC3C3B,GAAG,CAACyB,UAAU,CAACC,eAAe,CAACC,KAAK,GAAG;YACrC,GAAG3B,GAAG,CAACyB,UAAU,CAACC,eAAe,CAACC,KAAK;YACvCC,OAAO,EAAE;UACX,CAAC;UACD,IAAI,CAACC,MAAM,CAAC7B,GAAG,CAAC;QAClB;MACF,CAAC;MAED,oBACEpH,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACT,aAAa;QAACE,MAAM,EAAE2B,YAAY,IAAIyB,aAAa,KAAK;MAAE,gBACzDvI,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACnB,oBAAoB,EAAA3D,QAAA,KACfiF,KAAK;QACT0C,aAAa,EAAEA,aAAc;QAC7BX,mBAAmB,EAAEA,mBAAoB;QACzCC,0BAA0B,EAAEA,0BAA2B;QACvDC,mBAAmB,EAAEA,mBAAoB;QACzCC,iBAAiB,EAAEA,iBAAkB;QACrCC,8BAA8B,EAAEA,8BAA+B;QAC/DS,uBAAuB,EAAE;UACvBS,KAAK,GAAAjB,qBAAA,GAAEQ,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAES,KAAK,cAAAjB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;UAC3CkB,GAAG,GAAAjB,sBAAA,GAAEO,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEU,GAAG,cAAAjB,sBAAA,cAAAA,sBAAA,GAAI,CAAC,CAAC;UACvCkB,GAAG,GAAAjB,sBAAA,GAAEM,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEW,GAAG,cAAAjB,sBAAA,cAAAA,sBAAA,GAAI,CAAC,CAAC;UACvCkB,MAAM,GAAAjB,sBAAA,GAAEK,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEY,MAAM,cAAAjB,sBAAA,cAAAA,sBAAA,GAAI,CAAC;QAC9C;QACA;QACA;QAAA;QACAhB,GAAG,EAAEsB,SAAU;QACfY,oBAAoB,EAClB,CAACd,aAAa,GACV/F,SAAS,GACTyE,qBAAQ,CAACqC,KAAK,CACZ,CACE;UACEC,WAAW,EAAE;YACXC,QAAQ,EAAE,IAAI,CAACA,QAAQ;YACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;YACrBC,YAAY,EAAE,IAAI,CAACA;UACrB;QACF,CAAC,CACF,EACD;UAAEC,eAAe,EAAE;QAAK,CAC1B;MACL,IAEA,CAACpB,aAAa;MAAK;MAClBpD,QAAQ,gBAERpF,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACpF,0BAAA,CAAAK,OAAyB,CAACkJ,QAAQ;QACjClI,KAAK,EAAE;UACL8H,QAAQ,EAAE,IAAI,CAACA,QAAQ;UACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBC,YAAY,EAAE,IAAI,CAACA;QACrB;MAAE,GAEDvE,QACiC,CAElB,CACT,CAAC;IAEpB,CAAC,MAAM;MACL;MACA,IAAI;QACFkD,MAAM;QACNC,aAAa;QACbQ,KAAK;QACL;QACAxB,cAAc;QACd,GAAG1B;MACL,CAAC,GAAGC,IAAI;MAER,IAAIwC,MAAM,KAAK7F,SAAS,IAAI8F,aAAa,KAAK9F,SAAS,EAAE;QACvD8F,aAAa,GAAGD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;MACtC;MACA,oBACEtI,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACvF,YAAA,CAAA+G,QAAQ,CAAC4C,IAAI,EAAAlJ,QAAA;QACZmI,KAAK,EAAE,CAACA,KAAK,EAAE;UAAEC,OAAO,EAAET,aAAa,KAAK,CAAC,GAAG,MAAM,GAAG;QAAO,CAAC,CAAE;QACnEnB,GAAG,EAAE,IAAI,CAAC6B;MAAO,GACbpD,KAAK,CACV,CAAC;IAEN;EACF;AACF;AAEA,SAASkE,eAAeA,CAAClE,KAA2B,EAAE;EACpD,MAAM;IAAE8B,OAAO,GAAG3E,cAAc;IAAEgH,YAAY;IAAE,GAAGlE;EAAK,CAAC,GAAGD,KAAK;EAEjE,IAAI8B,OAAO,IAAI9E,mBAAmB,EAAE;IAClC,IAAImH,YAAY,EAAE;MAChB,oBAAOhK,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACG,+BAA+B,EAAKgB,IAAO,CAAC;IAC3E;IACA,oBAAO9F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACE,qBAAqB,EAAKiB,IAAO,CAAC;EACjE;EACA,oBAAO9F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACvF,YAAA,CAAA2J,IAAI,EAAKhE,IAAO,CAAC;AAC3B;AAEA,SAASmE,iBAAiBA,CAACpE,KAA8B,EAAE;EACzD,IAAI/C,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzBM,OAAO,CAACS,IAAI,CAAC,2DAA2D,CAAC;IACzE,oBAAO9D,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACvF,YAAA,CAAA2J,IAAI,EAAKjE,KAAQ,CAAC;EAC5B;EACA,oBACE7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACD,uBAAuB;IAC3CqE,KAAK,EAAE;MAAEmB,QAAQ,EAAE,UAAU;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO;EAAE,GAE9DvE,KAAK,CAACT,QACqC,CAAC;AAEnD;AAEA,MAAMiF,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,aAAa,EAAE;IACbN,QAAQ,EAAE,UAAU;IACpBd,GAAG,EAAE,CAAC;IACNqB,KAAK,EAAE,CAAC;IACRC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;AAEF,MAAMC,gCAAgC,GAAIhF,KAAiB,iBACzD7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACL,8BAA8B;EAClDwG,IAAI,EAAC,MAAM;EACX/B,KAAK,EAAEsB,MAAM,CAACG;AAAc,gBAE5BxK,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACvF,YAAA,CAAA4K,KAAK,EAAAnK,QAAA;EAACoK,UAAU,EAAC,QAAQ;EAACC,YAAY,EAAE;AAAE,GAAKpF,KAAK,CAAG,CACL,CACtD;AAED,MAAMqF,SAAS,SAAS3F,cAAK,CAACyB,SAAS,CAAiB;EAGtDC,WAAWA,CAACpB,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,CAAC;IAACnE,eAAA;IACb,IAAI,CAACyJ,kBAAkB,gBAAG5F,cAAK,CAAC6F,SAAS,CAAC,CAAC;EAC7C;EAEAC,kBAAkBA,CAACC,MAAwC,EAAE;IAC3D,MAAMlE,GAAG,GAAG,IAAI,CAAC+D,kBAAkB,CAACI,OAAO;IAC3C,IAAInE,GAAG,EAAE;MACPkE,MAAM,CAAClE,GAAG,CAAC;IACb,CAAC,MAAM;MACL/D,OAAO,CAACS,IAAI,CACV,mEACF,CAAC;IACH;EACF;EAEA0H,IAAIA,CAAA,EAAG;IACL,IAAI,CAACH,kBAAkB,CAAEjE,GAAG,IAC1BzC,oBAAoB,CAACF,uBAAuB,CAAC+G,IAAI,CAACpE,GAAG,CACvD,CAAC;EACH;EAEAqE,KAAKA,CAAA,EAAG;IACN,IAAI,CAACJ,kBAAkB,CAAEjE,GAAG,IAC1BzC,oBAAoB,CAACF,uBAAuB,CAACgH,KAAK,CAACrE,GAAG,CACxD,CAAC;EACH;EAEAsE,kBAAkBA,CAACC,IAAa,EAAE;IAChC,IAAI,CAACN,kBAAkB,CAAEjE,GAAG,IAC1BzC,oBAAoB,CAACF,uBAAuB,CAACiH,kBAAkB,CAACtE,GAAG,EAAEuE,IAAI,CAC3E,CAAC;EACH;EAEAC,SAASA,CAAA,EAAG;IACV,IAAI,CAACP,kBAAkB,CAAEjE,GAAG,IAC1BzC,oBAAoB,CAACF,uBAAuB,CAACmH,SAAS,CAACxE,GAAG,CAC5D,CAAC;EACH;EAEAyE,OAAOA,CAACC,IAAY,EAAE;IACpB,IAAI,CAACT,kBAAkB,CAAEjE,GAAG,IAC1BzC,oBAAoB,CAACF,uBAAuB,CAACoH,OAAO,CAACzE,GAAG,EAAE0E,IAAI,CAChE,CAAC;EACH;EAEApE,MAAMA,CAAA,EAAG;IACP,IAAI,CAACqE,6CAAsC,EAAE;MAC3C1I,OAAO,CAACS,IAAI,CACV,+DACF,CAAC;MACD,OAAOgG,iBAAI;IACb;IAEA,oBACE9J,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACH,eAAe,EAAA5D,QAAA,KAC/B,IAAI,CAACiF,KAAK;MACduB,GAAG,EAAE,IAAI,CAAC+D;IAAmB,EAC9B,CAAC;EAEN;AACF;AAEA,MAAMa,0BAA0B,GAC9BnG,KAAyC,iBAEzC7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACL,8BAA8B,EAAA1D,QAAA,KAC9CiF,KAAK;EACTiF,IAAI,EAAC,OAAO;EACZ/B,KAAK,EAAEsB,MAAM,CAACG;AAAc,EAC7B,CACF;AAED,MAAMyB,yBAAyB,GAC7BpG,KAAyC,iBAEzC7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACL,8BAA8B,EAAA1D,QAAA,KAC9CiF,KAAK;EACTiF,IAAI,EAAC,MAAM;EACX/B,KAAK,EAAEsB,MAAM,CAACG;AAAc,EAC7B,CACF;AAED,MAAM0B,2BAA2B,GAC/BrG,KAAyC,iBAEzC7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACL,8BAA8B,EAAA1D,QAAA,KAC9CiF,KAAK;EACTiF,IAAI,EAAC,QAAQ;EACb/B,KAAK,EAAEsB,MAAM,CAACG;AAAc,EAC7B,CACF;AAED,MAAM2B,8BAA8B,GAClCtG,KAA8C,iBAE9C7F,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAACf,oBAAoB,CAACL,8BAA8B,EAAA1D,QAAA,KAC9CiF,KAAK;EACTiF,IAAI,EAAC,WAAW;EAChB/B,KAAK,EAAEsB,MAAM,CAACG;AAAc,EAC7B,CACF;AAgBD;AACA;AACA,MAAM4B,aAAa,gBAAG7G,cAAK,CAAC8G,aAAa,CAACtF,WAAW,CAAC;AAEtD,MAAMuF,MAAM,SAAS/G,cAAK,CAACyB,SAAS,CAAc;EAGhDU,MAAMA,CAAA,EAAG;IACP,MAAM6E,aAAa,GAAI,IAAI,CAACC,OAAO,IAAIzF,WAAiC;IACxE,oBAAO/G,MAAA,CAAAW,OAAA,CAAA+E,aAAA,CAAC6G,aAAa,EAAK,IAAI,CAAC1G,KAAQ,CAAC;EAC1C;AACF;AAACnE,eAAA,CAPK4K,MAAM,iBACWF,aAAa;AAQpCK,MAAM,CAACC,OAAO,GAAG;EACf;EACA;EACAJ,MAAM;EACNvC,eAAe;EACfqC,aAAa;EACbxG,WAAW;EACXmB,WAAW;EACXmE,SAAS;EACTjB,iBAAiB;EAEjB,IAAIrF,YAAYA,CAAA,EAAG;IACjB,OAAOD,oBAAoB,CAACC,YAAY;EAC1C,CAAC;EAED,IAAIC,qBAAqBA,CAAA,EAAG;IAC1B,OAAOF,oBAAoB,CAACE,qBAAqB;EACnD,CAAC;EAED,IAAIC,+BAA+BA,CAAA,EAAG;IACpC,OAAOH,oBAAoB,CAACG,+BAA+B;EAC7D,CAAC;EAED,IAAI6H,uBAAuBA,CAAA,EAAG;IAC5B,OAAOhI,oBAAoB,CAACN,6BAA6B;EAC3D,CAAC;EACD,IAAIuI,wBAAwBA,CAAA,EAAG;IAC7B,OAAOjI,oBAAoB,CAACL,8BAA8B;EAC5D,CAAC;EACD,IAAIuI,iBAAiBA,CAAA,EAAG;IACtB,OAAOlI,oBAAoB,CAACF,uBAAuB;EACrD,CAAC;EACD;EACA;EACAoG,gCAAgC;EAChCmB,0BAA0B;EAC1BC,yBAAyB;EACzBC,2BAA2B;EAC3BC,8BAA8B;EAE9BlJ,aAAa;EACbO,YAAY;EACZQ,cAAc;EACdD,sBAAsB;EACtB+I,qBAAqB,EAArBA,8BAAqB;EAErBf,sCAAsC,EAAtCA,6CAAsC;EACtCgB,4BAA4B,EAA5BA,mCAA4B;EAC5BC,sBAAsB,EAAtBA;AACF,CAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactFreeze","_package","_TransitionProgressContext","_useTransitionProgress","_utils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","requireNativeComponent","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","createElement","Freeze","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","Animated","Value","ref","_this$props$onCompone","_this$props","onComponentRef","setNativeProps","_this$ref","render","enabled","sheetAllowedDetents","sheetLargestUndimmedDetent","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","onGestureCancel","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","View","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","Image","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","isSearchBarAvailableForCurrentPlatform","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands","useTransitionProgress","isNewBackTitleImplementation","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n // To maintain default behaviour of formSheet stack presentation style & and to have resonable\n // defaults for new medium-detent iOS API we need to set defaults here\n const {\n sheetAllowedDetents = 'large',\n sheetLargestUndimmedDetent = 'all',\n sheetGrabberVisible = false,\n sheetCornerRadius = -1.0,\n sheetExpandsWhenScrolledToEdge = true,\n } = rest;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n onGestureCancel,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n sheetAllowedDetents={sheetAllowedDetents}\n sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}\n sheetGrabberVisible={sheetGrabberVisible}\n sheetCornerRadius={sheetCornerRadius}\n sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n onGestureCancel={\n onGestureCancel ??\n (() => {\n // for internal use\n })\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n};\n"],"mappings":"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"}