react-native-klarna-inapp-sdk 2.3.15 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackage.java +2 -4
  3. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewEventSender.java +7 -2
  4. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewManager.java +51 -18
  5. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/WebViewResizeObserver.java +9 -4
  6. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/KlarnaEventHandlerEventsUtil.java +62 -3
  7. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/ui/ResizeObserverWrapperView.java +3 -2
  8. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/util/ArgumentsUtil.java +40 -0
  9. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/payments/PaymentViewWrapper.java +1 -1
  10. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInData.java +15 -0
  11. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInEventsMapper.java +40 -0
  12. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInModuleImpl.java +124 -0
  13. package/android/src/newarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +65 -0
  14. package/android/src/oldarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +39 -0
  15. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackageTest.java +5 -4
  16. package/ios/Sources/KlarnaCheckoutViewManager.mm +32 -24
  17. package/ios/Sources/signIn/KlarnaSignInData.h +25 -0
  18. package/ios/Sources/signIn/KlarnaSignInData.mm +21 -0
  19. package/ios/Sources/signIn/KlarnaSignInEventsMapper.h +18 -0
  20. package/ios/Sources/signIn/KlarnaSignInEventsMapper.m +54 -0
  21. package/ios/Sources/signIn/KlarnaSignInModule.h +26 -0
  22. package/ios/Sources/signIn/KlarnaSignInModuleImpl.h +37 -0
  23. package/ios/Sources/signIn/KlarnaSignInModuleImpl.mm +244 -0
  24. package/ios/Sources/signIn/newarch/KlarnaSignInModule.mm +75 -0
  25. package/ios/Sources/signIn/oldarch/KlarnaSignInModule.mm +72 -0
  26. package/ios/Sources/view/KlarnaCheckoutViewWrapper.h +1 -3
  27. package/ios/Sources/view/newarch/KlarnaCheckoutViewWrapper.mm +53 -29
  28. package/ios/Sources/view/oldarch/KlarnaCheckoutViewWrapper.mm +58 -20
  29. package/lib/commonjs/KlarnaCheckoutView.js +16 -3
  30. package/lib/commonjs/KlarnaCheckoutView.js.map +1 -1
  31. package/lib/commonjs/KlarnaSignInSDK.js +80 -0
  32. package/lib/commonjs/KlarnaSignInSDK.js.map +1 -0
  33. package/lib/commonjs/index.js +11 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -1
  36. package/lib/commonjs/specs/NativeKlarnaSignIn.js +10 -0
  37. package/lib/commonjs/specs/NativeKlarnaSignIn.js.map +1 -0
  38. package/lib/commonjs/types/common/KlarnaEnvironment.js +13 -0
  39. package/lib/commonjs/types/common/KlarnaEnvironment.js.map +1 -0
  40. package/lib/commonjs/types/common/KlarnaRegion.js +14 -0
  41. package/lib/commonjs/types/common/KlarnaRegion.js.map +1 -0
  42. package/lib/module/KlarnaCheckoutView.js +16 -3
  43. package/lib/module/KlarnaCheckoutView.js.map +1 -1
  44. package/lib/module/KlarnaSignInSDK.js +72 -0
  45. package/lib/module/KlarnaSignInSDK.js.map +1 -0
  46. package/lib/module/index.js +1 -0
  47. package/lib/module/index.js.map +1 -1
  48. package/lib/module/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -1
  49. package/lib/module/specs/NativeKlarnaSignIn.js +3 -0
  50. package/lib/module/specs/NativeKlarnaSignIn.js.map +1 -0
  51. package/lib/module/types/common/KlarnaEnvironment.js +6 -0
  52. package/lib/module/types/common/KlarnaEnvironment.js.map +1 -0
  53. package/lib/module/types/common/KlarnaRegion.js +7 -0
  54. package/lib/module/types/common/KlarnaRegion.js.map +1 -0
  55. package/lib/typescript/KlarnaCheckoutView.d.ts +2 -0
  56. package/lib/typescript/KlarnaCheckoutView.d.ts.map +1 -1
  57. package/lib/typescript/KlarnaSignInSDK.d.ts +19 -0
  58. package/lib/typescript/KlarnaSignInSDK.d.ts.map +1 -0
  59. package/lib/typescript/index.d.ts +1 -0
  60. package/lib/typescript/index.d.ts.map +1 -1
  61. package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts +1 -0
  62. package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts.map +1 -1
  63. package/lib/typescript/specs/NativeKlarnaSignIn.d.ts +10 -0
  64. package/lib/typescript/specs/NativeKlarnaSignIn.d.ts.map +1 -0
  65. package/lib/typescript/types/common/KlarnaEnvironment.d.ts +5 -0
  66. package/lib/typescript/types/common/KlarnaEnvironment.d.ts.map +1 -0
  67. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts +4 -0
  68. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts.map +1 -1
  69. package/lib/typescript/types/common/KlarnaProductEvent.d.ts +1 -0
  70. package/lib/typescript/types/common/KlarnaProductEvent.d.ts.map +1 -1
  71. package/lib/typescript/types/common/KlarnaRegion.d.ts +6 -0
  72. package/lib/typescript/types/common/KlarnaRegion.d.ts.map +1 -0
  73. package/package.json +1 -1
  74. package/react-native-klarna-inapp-sdk.podspec +1 -1
  75. package/src/KlarnaCheckoutView.tsx +16 -3
  76. package/src/KlarnaSignInSDK.tsx +122 -0
  77. package/src/index.tsx +1 -0
  78. package/src/specs/KlarnaCheckoutViewNativeComponent.ts +1 -0
  79. package/src/specs/NativeKlarnaSignIn.ts +25 -0
  80. package/src/types/common/KlarnaEnvironment.ts +4 -0
  81. package/src/types/common/KlarnaMobileSDKError.ts +2 -0
  82. package/src/types/common/KlarnaProductEvent.ts +1 -0
  83. package/src/types/common/KlarnaRegion.ts +5 -0
@@ -0,0 +1,72 @@
1
+ //
2
+ // KlarnaSignInSDK.m
3
+ // RNKlarnaMobileSDK
4
+ //
5
+ // Created by Jorge Palacio on 2025-02-20.
6
+ // Copyright © 2025 Facebook. All rights reserved.
7
+ //
8
+
9
+ #if !RCT_NEW_ARCH_ENABLED
10
+
11
+ #import "KlarnaSignInModule.h"
12
+ #import "KlarnaSignInModuleImpl.h"
13
+
14
+ @interface KlarnaSignInModule()
15
+
16
+ @property (strong, nonatomic) KlarnaSignInModuleImp *signInModule;
17
+
18
+ @end
19
+
20
+ @implementation KlarnaSignInModule
21
+
22
+ RCT_EXPORT_MODULE(RNKlarnaSignIn); // This should match the turbo module specification.
23
+
24
+ - (id)init {
25
+ self = [super init];
26
+ _signInModule = [KlarnaSignInModuleImp new];
27
+ return self;
28
+ }
29
+
30
+ RCT_EXPORT_METHOD(dispose:(NSString *)instanceId
31
+ resolver:(RCTPromiseResolveBlock)resolve
32
+ rejecter:(RCTPromiseRejectBlock)reject) {
33
+ [self.signInModule dispose: instanceId
34
+ resolver: resolve
35
+ rejecter: reject];
36
+ }
37
+
38
+ RCT_EXPORT_METHOD(init:(NSString *)instanceId
39
+ environment:(NSString *)environment
40
+ region:(NSString *)region
41
+ returnUrl:(NSString *) returnUrl
42
+ resolve:(RCTPromiseResolveBlock)resolve
43
+ reject:(RCTPromiseRejectBlock)reject) {
44
+ [self.signInModule initWith: instanceId
45
+ environment: environment
46
+ region: region
47
+ returnUrl: returnUrl
48
+ resolver: resolve
49
+ rejecter: reject];
50
+ }
51
+
52
+ RCT_EXPORT_METHOD(signIn:(NSString *)instanceId
53
+ clientId:(NSString *)clientId
54
+ scope:(NSString *)scope
55
+ market:(NSString *)market
56
+ locale:(NSString *)locale
57
+ tokenizationId:(NSString *)tokenizationId
58
+ resolver:(RCTPromiseResolveBlock)resolve
59
+ rejecter:(RCTPromiseRejectBlock)reject) {
60
+ [self.signInModule signInWith: instanceId
61
+ clientId: clientId
62
+ scope: scope
63
+ market: market
64
+ locale: locale
65
+ tokenizationId: tokenizationId
66
+ resolver: resolve
67
+ rejecter: reject];
68
+ }
69
+
70
+ @end
71
+
72
+ #endif
@@ -8,10 +8,8 @@
8
8
  #import <React/RCTView.h>
9
9
  #endif
10
10
 
11
-
12
11
  NS_ASSUME_NONNULL_BEGIN
13
12
 
14
-
15
13
  #if RCT_NEW_ARCH_ENABLED
16
14
  @interface KlarnaCheckoutViewWrapper : RCTViewComponentView
17
15
  #else
@@ -20,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
20
18
  @property (nonatomic, copy) RCTDirectEventBlock onEvent;
21
19
  @property (nonatomic, copy) RCTDirectEventBlock onError;
22
20
  @property (nonatomic, copy) RCTDirectEventBlock onResized;
21
+ @property (nonatomic, copy) RCTDirectEventBlock onCheckoutViewReady;
23
22
 
24
23
  @property (nonatomic, strong) NSString* returnUrl;
25
24
 
@@ -38,5 +37,4 @@ NS_ASSUME_NONNULL_BEGIN
38
37
 
39
38
  @end
40
39
 
41
-
42
40
  NS_ASSUME_NONNULL_END
@@ -1,35 +1,34 @@
1
1
  #if RCT_NEW_ARCH_ENABLED
2
2
 
3
- #import "../KlarnaCheckoutViewWrapper.h"
4
- #import "../../common/RNMobileSDKUtils.h"
5
-
6
3
  #import <AVFoundation/AVFoundation.h>
7
- #import <KlarnaMobileSDK/KlarnaMobileSDK-Swift.h>
8
4
  #import <React/RCTLog.h>
9
-
10
5
  #import <react/renderer/components/RNKlarnaMobileSDK/ComponentDescriptors.h>
11
6
  #import <react/renderer/components/RNKlarnaMobileSDK/EventEmitters.h>
12
7
  #import <react/renderer/components/RNKlarnaMobileSDK/Props.h>
13
8
  #import <react/renderer/components/RNKlarnaMobileSDK/RCTComponentViewHelpers.h>
14
-
9
+ #import "../KlarnaCheckoutViewWrapper.h"
10
+ #import "../../common/RNMobileSDKUtils.h"
15
11
  #import "RCTFabricComponentsPlugins.h"
12
+ #import <KlarnaMobileSDK/KlarnaMobileSDK-Swift.h>
16
13
 
17
14
  using namespace facebook::react;
18
15
 
19
16
  @interface KlarnaCheckoutViewWrapper () <KlarnaEventHandler, KlarnaSizingDelegate, RCTRNKlarnaCheckoutViewViewProtocol>
20
17
 
21
- @property (nonatomic, strong) KlarnaCheckoutView* actualCheckoutView;
18
+ @property (nonatomic, strong) KlarnaCheckoutView* klarnaCheckoutView;
19
+ @property (nonatomic, assign) BOOL isCheckoutViewReadyEventSent;
22
20
 
23
21
  @end
24
22
 
25
23
  @implementation KlarnaCheckoutViewWrapper
26
24
 
27
- #pragma mark - RN Klarna Checout View
25
+ #pragma mark - Initialization
28
26
 
29
27
  - (instancetype)initWithFrame:(CGRect)frame
30
28
  {
31
29
  self = [super initWithFrame:frame];
32
30
  if (self) {
31
+ self.isCheckoutViewReadyEventSent = NO;
33
32
  static const auto defaultProps = std::make_shared<const RNKlarnaCheckoutViewProps>();
34
33
  _props = defaultProps;
35
34
  }
@@ -51,7 +50,7 @@ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
51
50
  RCTRNKlarnaCheckoutViewHandleCommand(self, commandName, args);
52
51
  }
53
52
 
54
- #pragma mark - RN Klarna Checout View Props
53
+ #pragma mark - KlarnaCheckoutView Props Update
55
54
 
56
55
  - (void)updateProps:(const facebook::react::Props::Shared &)props oldProps:(const facebook::react::Props::Shared &)oldProps {
57
56
  const auto &oldViewProps = *std::static_pointer_cast<RNKlarnaCheckoutViewProps const>(_props);
@@ -59,45 +58,70 @@ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
59
58
 
60
59
  if (oldViewProps.returnUrl != newViewProps.returnUrl) {
61
60
  NSString * newReturnUrl = [[NSString alloc] initWithUTF8String: newViewProps.returnUrl.c_str()];
62
- if (self.actualCheckoutView != nil) {
63
- self.actualCheckoutView.returnURL = [NSURL URLWithString:newReturnUrl];
61
+ if (self.klarnaCheckoutView != nil) {
62
+ self.klarnaCheckoutView.returnURL = [NSURL URLWithString:newReturnUrl];
64
63
  } else {
65
- [self initializeActualCheckoutView:newReturnUrl];
64
+ [self initializeKlarnaCheckoutView:newReturnUrl];
66
65
  }
67
66
  }
68
67
 
69
68
  [super updateProps:props oldProps:oldProps];
70
69
  }
71
70
 
71
+ - (void)updateEventEmitter:(const facebook::react::EventEmitter::Shared &)eventEmitter
72
+ {
73
+ [super updateEventEmitter:eventEmitter];
72
74
 
73
- #pragma mark - RN Klarna Checout View Methods
75
+ if (!self.isCheckoutViewReadyEventSent && self.klarnaCheckoutView != nil && _eventEmitter) {
76
+ RCTLogInfo(@"Sending onCheckoutViewReady event.");
77
+ std::dynamic_pointer_cast<const RNKlarnaCheckoutViewEventEmitter>(_eventEmitter)
78
+ ->onCheckoutViewReady({});
79
+ self.isCheckoutViewReadyEventSent = YES;
80
+ } else {
81
+ RCTLogInfo(@"Could not send onCheckoutViewReady event.");
82
+ }
83
+ }
74
84
 
75
- - (void)initializeActualCheckoutView:(NSString*)returnUrl {
76
- self.actualCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:returnUrl] eventHandler:self];
77
- self.actualCheckoutView.sizingDelegate = self;
85
+ #pragma mark - KlarnaCheckoutView Setup
86
+
87
+ - (void)initializeKlarnaCheckoutView:(NSString*)returnUrl {
88
+ self.isCheckoutViewReadyEventSent = NO;
89
+ self.klarnaCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:returnUrl] eventHandler:self];
90
+ self.klarnaCheckoutView.sizingDelegate = self;
78
91
 
79
- self.actualCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
92
+ self.klarnaCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
80
93
 
81
- [self addSubview:self.actualCheckoutView];
94
+ [self addSubview:self.klarnaCheckoutView];
82
95
 
83
96
  [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
84
- [self.actualCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
85
- [self.actualCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
86
- [self.actualCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
87
- [self.actualCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
97
+ [self.klarnaCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
98
+ [self.klarnaCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
99
+ [self.klarnaCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
100
+ [self.klarnaCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
88
101
  ]];
89
102
  }
90
103
 
104
+ #pragma mark - Methods Exposed to React Native
105
+
91
106
  - (void)setSnippet:(NSString *)snippet {
92
- [self.actualCheckoutView setSnippet:snippet];
107
+ [self.klarnaCheckoutView setSnippet:snippet];
93
108
  }
94
109
 
95
110
  - (void)suspend {
96
- [self.actualCheckoutView suspend];
111
+ [self.klarnaCheckoutView suspend];
97
112
  }
98
113
 
99
114
  - (void)resume {
100
- [self.actualCheckoutView resume];
115
+ [self.klarnaCheckoutView resume];
116
+ }
117
+
118
+ #pragma mark - UIView Lifecycle
119
+
120
+ - (void)didMoveToWindow {
121
+ [super didMoveToWindow];
122
+ if (!self.window) {
123
+ self.isCheckoutViewReadyEventSent = NO;
124
+ }
101
125
  }
102
126
 
103
127
  #pragma mark - KlarnaEventHandler
@@ -114,13 +138,13 @@ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
114
138
  }
115
139
  });
116
140
  } else {
117
- RCTLogInfo(@"_eventEmitter is nil!");
141
+ RCTLogInfo(@"Could not send onEvent event. _eventEmitter is nil!");
118
142
  }
119
143
  }
120
144
 
121
145
  - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent encounteredError:(KlarnaError *)error {
122
146
  if (_eventEmitter) {
123
- RCTLogInfo(@"Sending onEvent event");
147
+ RCTLogInfo(@"Sending onError event");
124
148
  std::dynamic_pointer_cast<const RNKlarnaCheckoutViewEventEmitter>(_eventEmitter)
125
149
  ->onError(RNKlarnaCheckoutViewEventEmitter::OnError{
126
150
  .error = {
@@ -130,7 +154,7 @@ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
130
154
  }
131
155
  });
132
156
  } else {
133
- RCTLogInfo(@"_eventEmitter is nil!");
157
+ RCTLogInfo(@"Could not send onError event. _eventEmitter is nil!");
134
158
  }
135
159
  }
136
160
 
@@ -144,7 +168,7 @@ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
144
168
  .height = std::string([[[NSNumber numberWithFloat:height] stringValue] UTF8String]),
145
169
  });
146
170
  } else {
147
- RCTLogInfo(@"_eventEmitter is nil!");
171
+ RCTLogInfo(@"Could not send onResized event. _eventEmitter is nil!");
148
172
  }
149
173
  }
150
174
 
@@ -1,25 +1,36 @@
1
1
  #if !RCT_NEW_ARCH_ENABLED
2
2
 
3
+ #import <React/RCTLog.h>
3
4
  #import "../KlarnaCheckoutViewWrapper.h"
4
5
  #import "../../common/RNMobileSDKUtils.h"
5
-
6
6
  #import <KlarnaMobileSDK/KlarnaMobileSDK-Swift.h>
7
- #import <React/RCTLog.h>
8
7
 
9
8
  @interface KlarnaCheckoutViewWrapper () <KlarnaEventHandler, KlarnaSizingDelegate>
10
9
 
11
- @property (nonatomic, strong) KlarnaCheckoutView* actualCheckoutView;
10
+ @property (nonatomic, strong) KlarnaCheckoutView* klarnaCheckoutView;
11
+ @property (nonatomic, assign) BOOL isCheckoutViewReadyEventSent;
12
12
 
13
13
  @end
14
14
 
15
15
  @implementation KlarnaCheckoutViewWrapper
16
16
 
17
- #pragma mark - React Native Overrides
17
+ #pragma mark - Initialization
18
+
19
+ - (instancetype)initWithFrame:(CGRect)frame
20
+ {
21
+ self = [super initWithFrame:frame];
22
+ if (self) {
23
+ self.isCheckoutViewReadyEventSent = NO;
24
+ }
25
+ return self;
26
+ }
27
+
28
+ #pragma mark - React Native Property Setters
18
29
 
19
30
  - (void) setReturnUrl:(NSString *)returnUrl {
20
31
  _returnUrl = returnUrl;
21
32
  if (returnUrl.length > 0) {
22
- self.actualCheckoutView.returnURL = [NSURL URLWithString:self.returnUrl];
33
+ self.klarnaCheckoutView.returnURL = [NSURL URLWithString:self.returnUrl];
23
34
  }
24
35
  [self evaluateProps];
25
36
  }
@@ -28,43 +39,70 @@
28
39
  [self initializeActualCheckoutView];
29
40
  }
30
41
 
42
+ #pragma mark - KlarnaCheckoutView Setup
43
+
31
44
  - (void) initializeActualCheckoutView {
32
- self.actualCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:self.returnUrl] eventHandler:self];
33
- self.actualCheckoutView.sizingDelegate = self;
45
+ self.isCheckoutViewReadyEventSent = NO;
46
+ self.klarnaCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:self.returnUrl] eventHandler:self];
47
+ self.klarnaCheckoutView.sizingDelegate = self;
34
48
 
35
- self.actualCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
49
+ self.klarnaCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
36
50
 
37
- [self addSubview:self.actualCheckoutView];
51
+ [self addSubview:self.klarnaCheckoutView];
38
52
 
39
53
  [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
40
- [self.actualCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
41
- [self.actualCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
42
- [self.actualCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
43
- [self.actualCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
54
+ [self.klarnaCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
55
+ [self.klarnaCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
56
+ [self.klarnaCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
57
+ [self.klarnaCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
44
58
  ]];
45
59
  }
46
60
 
61
+ #pragma mark - Layout
62
+
47
63
  - (void)layoutSubviews {
48
64
  [super layoutSubviews];
49
- self.actualCheckoutView.frame = self.bounds;
50
- [self.actualCheckoutView layoutSubviews];
65
+ self.klarnaCheckoutView.frame = self.bounds;
66
+ [self.klarnaCheckoutView layoutSubviews];
67
+ }
68
+
69
+ #pragma mark - UIView Lifecycle
70
+
71
+ - (void)didMoveToWindow {
72
+ [super didMoveToWindow];
73
+ if (!self.window) {
74
+ self.isCheckoutViewReadyEventSent = NO;
75
+ }
76
+ }
77
+
78
+ #pragma mark - React Native Lifecycle
79
+
80
+ - (void)didSetProps:(NSArray<NSString *> *)changedProps {
81
+ [super didSetProps:changedProps];
82
+ [self sendCheckoutViewReadyEvent];
51
83
  }
52
84
 
53
- #pragma mark - KlarnaCheckoutView Methods
85
+ - (void)sendCheckoutViewReadyEvent {
86
+ if (self.klarnaCheckoutView && self.onCheckoutViewReady && !self.isCheckoutViewReadyEventSent) {
87
+ self.isCheckoutViewReadyEventSent = YES;
88
+ self.onCheckoutViewReady(@{});
89
+ }
90
+ }
91
+
92
+ #pragma mark - Methods Exposed to React Native
54
93
 
55
94
  - (void)setSnippet:(NSString *)snippet {
56
- [self.actualCheckoutView setSnippet:snippet];
95
+ [self.klarnaCheckoutView setSnippet:snippet];
57
96
  }
58
97
 
59
98
  - (void)suspend {
60
- [self.actualCheckoutView suspend];
99
+ [self.klarnaCheckoutView suspend];
61
100
  }
62
101
 
63
102
  - (void)resume {
64
- [self.actualCheckoutView resume];
103
+ [self.klarnaCheckoutView resume];
65
104
  }
66
105
 
67
-
68
106
  #pragma mark - KlarnaEventHandler
69
107
 
70
108
  - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent dispatchedEvent:(KlarnaProductEvent *)event {
@@ -9,12 +9,15 @@ var _KlarnaCheckoutViewNativeComponent = _interopRequireWildcard(require("./spec
9
9
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
10
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
11
  class KlarnaCheckoutView extends _react.Component {
12
+ snippet = null;
13
+ isCheckoutViewReady = false;
12
14
  constructor(props) {
13
15
  super(props);
14
16
  this.state = {
15
17
  nativeViewHeight: 0
16
18
  };
17
19
  this.checkoutViewRef = /*#__PURE__*/_react.default.createRef();
20
+ this.isCheckoutViewReady = false;
18
21
  }
19
22
  render() {
20
23
  return /*#__PURE__*/_react.default.createElement(_KlarnaCheckoutViewNativeComponent.default, {
@@ -57,24 +60,34 @@ class KlarnaCheckoutView extends _react.Component {
57
60
  nativeViewHeight: newHeight
58
61
  });
59
62
  }
63
+ },
64
+ onCheckoutViewReady: () => {
65
+ this.isCheckoutViewReady = true;
66
+ console.log('onCheckoutViewReady');
67
+ if (this.snippet) {
68
+ console.log('Setting the snippet...');
69
+ this.setSnippet(this.snippet);
70
+ this.snippet = null;
71
+ }
60
72
  }
61
73
  });
62
74
  }
63
75
  setSnippet = snippet => {
76
+ this.snippet = snippet;
64
77
  const view = this.checkoutViewRef.current;
65
- if (view != null) {
78
+ if (view != null && this.isCheckoutViewReady) {
66
79
  _KlarnaCheckoutViewNativeComponent.Commands.setSnippet(view, snippet);
67
80
  }
68
81
  };
69
82
  suspend = () => {
70
83
  const view = this.checkoutViewRef.current;
71
- if (view != null) {
84
+ if (view != null && this.isCheckoutViewReady) {
72
85
  _KlarnaCheckoutViewNativeComponent.Commands.suspend(view);
73
86
  }
74
87
  };
75
88
  resume = () => {
76
89
  const view = this.checkoutViewRef.current;
77
- if (view != null) {
90
+ if (view != null && this.isCheckoutViewReady) {
78
91
  _KlarnaCheckoutViewNativeComponent.Commands.resume(view);
79
92
  }
80
93
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_KlarnaCheckoutViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","KlarnaCheckoutView","Component","constructor","props","state","nativeViewHeight","checkoutViewRef","React","createRef","render","createElement","ref","style","width","height","flexShrink","returnUrl","onEvent","event","_this$props$onEvent","_this$props","params","JSON","parse","nativeEvent","productEvent","e","console","error","action","onError","_this$props$onError","_this$props2","mobileSdkError","isFatal","message","name","onResized","newHeight","Number","log","setState","setSnippet","snippet","view","current","RNKlarnaCheckoutViewCommands","suspend","resume","exports","_default"],"sourceRoot":"../../src","sources":["KlarnaCheckoutView.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_KlarnaCheckoutViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","KlarnaCheckoutView","Component","snippet","isCheckoutViewReady","constructor","props","state","nativeViewHeight","checkoutViewRef","React","createRef","render","createElement","ref","style","width","height","flexShrink","returnUrl","onEvent","event","_this$props$onEvent","_this$props","params","JSON","parse","nativeEvent","productEvent","e","console","error","action","onError","_this$props$onError","_this$props2","mobileSdkError","isFatal","message","name","onResized","newHeight","Number","log","setState","onCheckoutViewReady","setSnippet","view","current","RNKlarnaCheckoutViewCommands","suspend","resume","exports","_default"],"sourceRoot":"../../src","sources":["KlarnaCheckoutView.tsx"],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KlarnaSignInSDK = void 0;
7
+ var _NativeKlarnaSignIn = _interopRequireDefault(require("./specs/NativeKlarnaSignIn"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ // declare a class that receive the KlarnaSignInProps in the initializer and expose a method to sign in
10
+ class KlarnaSignInSDK {
11
+ constructor(props, instanceId) {
12
+ this.environment = props.environment;
13
+ this.region = props.region;
14
+ this.returnUrl = props.returnUrl;
15
+ this.instanceId = instanceId;
16
+ }
17
+ static async createInstance(props) {
18
+ if (props.returnUrl.trim() === '') {
19
+ return new Promise((_, reject) => {
20
+ const sdkError = {
21
+ isFatal: true,
22
+ message: 'Invalid or null return URL',
23
+ name: 'KlarnaSignInMissingReturnUrl'
24
+ };
25
+ reject(sdkError);
26
+ });
27
+ }
28
+ return new Promise((resolve, reject) => {
29
+ let instanceId = Math.random().toString(36).substring(2, 15);
30
+ _NativeKlarnaSignIn.default.init(instanceId, props.environment, props.region, props.returnUrl).then(_ => {
31
+ resolve(new KlarnaSignInSDK(props, instanceId));
32
+ }).catch(error => {
33
+ const errorInfo = error.userInfo;
34
+ const sdkError = {
35
+ isFatal: errorInfo.isFatal,
36
+ message: errorInfo.message,
37
+ name: errorInfo.name,
38
+ sessionId: errorInfo.sessionId,
39
+ params: errorInfo.params
40
+ };
41
+ reject(sdkError);
42
+ });
43
+ });
44
+ }
45
+ dispose() {
46
+ return _NativeKlarnaSignIn.default.dispose(this.instanceId);
47
+ }
48
+ signIn(clientId, scope, market, locale, tokenizationId) {
49
+ const scopes = scope.split(' ');
50
+ const tokenizationScopes = ['payment:customer_not_present', 'payment:customer_present'];
51
+ const isTokenizationScopeIncluded = tokenizationScopes.some(value => scopes.includes(value));
52
+ if (isTokenizationScopeIncluded && (!tokenizationId || tokenizationId.trim() === '')) {
53
+ return new Promise((_, reject) => {
54
+ const sdkError = {
55
+ isFatal: false,
56
+ message: `Found ${tokenizationScopes} in scope but tokenizationId is empty.`,
57
+ name: 'KlarnaSignInMissingTokenizationId'
58
+ };
59
+ reject(sdkError);
60
+ });
61
+ }
62
+ return new Promise((resolve, reject) => {
63
+ _NativeKlarnaSignIn.default.signIn(this.instanceId, clientId, scope, market, locale, tokenizationId).then(result => {
64
+ resolve(result);
65
+ }).catch(error => {
66
+ const errorInfo = error.userInfo;
67
+ const sdkError = {
68
+ isFatal: errorInfo.isFatal,
69
+ message: errorInfo.message,
70
+ name: errorInfo.name,
71
+ sessionId: errorInfo.sessionId,
72
+ params: errorInfo.params
73
+ };
74
+ reject(sdkError);
75
+ });
76
+ });
77
+ }
78
+ }
79
+ exports.KlarnaSignInSDK = KlarnaSignInSDK;
80
+ //# sourceMappingURL=KlarnaSignInSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_NativeKlarnaSignIn","_interopRequireDefault","require","obj","__esModule","default","KlarnaSignInSDK","constructor","props","instanceId","environment","region","returnUrl","createInstance","trim","Promise","_","reject","sdkError","isFatal","message","name","resolve","Math","random","toString","substring","RNKlarnaSignIn","init","then","catch","error","errorInfo","userInfo","sessionId","params","dispose","signIn","clientId","scope","market","locale","tokenizationId","scopes","split","tokenizationScopes","isTokenizationScopeIncluded","some","value","includes","result","exports"],"sourceRoot":"../../src","sources":["KlarnaSignInSDK.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwD,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAYxD;AACO,MAAMG,eAAe,CAAC;EAMnBC,WAAWA,CAACC,KAAwB,EAAEC,UAAkB,EAAE;IAChE,IAAI,CAACC,WAAW,GAAGF,KAAK,CAACE,WAAW;IACpC,IAAI,CAACC,MAAM,GAAGH,KAAK,CAACG,MAAM;IAC1B,IAAI,CAACC,SAAS,GAAGJ,KAAK,CAACI,SAAS;IAChC,IAAI,CAACH,UAAU,GAAGA,UAAU;EAC9B;EAEA,aAAaI,cAAcA,CACzBL,KAAwB,EACE;IAC1B,IAAIA,KAAK,CAACI,SAAS,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MACjC,OAAO,IAAIC,OAAO,CAAC,CAACC,CAAC,EAAEC,MAAM,KAAK;QAChC,MAAMC,QAA8B,GAAG;UACrCC,OAAO,EAAE,IAAI;UACbC,OAAO,EAAE,4BAA4B;UACrCC,IAAI,EAAE;QACR,CAAC;QACDJ,MAAM,CAACC,QAAQ,CAAC;MAClB,CAAC,CAAC;IACJ;IACA,OAAO,IAAIH,OAAO,CAAC,CAACO,OAAO,EAAEL,MAAM,KAAK;MACtC,IAAIR,UAAU,GAAGc,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;MAC5DC,2BAAc,CAACC,IAAI,CACjBnB,UAAU,EACVD,KAAK,CAACE,WAAW,EACjBF,KAAK,CAACG,MAAM,EACZH,KAAK,CAACI,SACR,CAAC,CACEiB,IAAI,CAAEb,CAAC,IAAK;QACXM,OAAO,CAAC,IAAIhB,eAAe,CAACE,KAAK,EAAEC,UAAU,CAAC,CAAC;MACjD,CAAC,CAAC,CACDqB,KAAK,CAAEC,KAAK,IAAK;QAChB,MAAMC,SAAS,GAAGD,KAAK,CAACE,QAAQ;QAChC,MAAMf,QAA8B,GAAG;UACrCC,OAAO,EAAEa,SAAS,CAACb,OAAO;UAC1BC,OAAO,EAAEY,SAAS,CAACZ,OAAO;UAC1BC,IAAI,EAAEW,SAAS,CAACX,IAAI;UACpBa,SAAS,EAAEF,SAAS,CAACE,SAAS;UAC9BC,MAAM,EAAEH,SAAS,CAACG;QACpB,CAAC;QACDlB,MAAM,CAACC,QAAQ,CAAC;MAClB,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEAkB,OAAOA,CAAA,EAAkB;IACvB,OAAOT,2BAAc,CAACS,OAAO,CAAC,IAAI,CAAC3B,UAAU,CAAC;EAChD;EAEA4B,MAAMA,CACJC,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACdC,MAAc,EACdC,cAAuB,EACM;IAC7B,MAAMC,MAAM,GAAGJ,KAAK,CAACK,KAAK,CAAC,GAAG,CAAC;IAC/B,MAAMC,kBAAkB,GAAG,CACzB,8BAA8B,EAC9B,0BAA0B,CAC3B;IACD,MAAMC,2BAA2B,GAAGD,kBAAkB,CAACE,IAAI,CAAEC,KAAK,IAChEL,MAAM,CAACM,QAAQ,CAACD,KAAK,CACvB,CAAC;IACD,IACEF,2BAA2B,KAC1B,CAACJ,cAAc,IAAIA,cAAc,CAAC5B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EACjD;MACA,OAAO,IAAIC,OAAO,CAAC,CAACC,CAAC,EAAEC,MAAM,KAAK;QAChC,MAAMC,QAA8B,GAAG;UACrCC,OAAO,EAAE,KAAK;UACdC,OAAO,EAAG,SAAQyB,kBAAmB,wCAAuC;UAC5ExB,IAAI,EAAE;QACR,CAAC;QACDJ,MAAM,CAACC,QAAQ,CAAC;MAClB,CAAC,CAAC;IACJ;IACA,OAAO,IAAIH,OAAO,CAAC,CAACO,OAAO,EAAEL,MAAM,KAAK;MACtCU,2BAAc,CAACU,MAAM,CACnB,IAAI,CAAC5B,UAAU,EACf6B,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,cACF,CAAC,CACEb,IAAI,CAAEqB,MAAM,IAAK;QAChB5B,OAAO,CAAC4B,MAAM,CAAC;MACjB,CAAC,CAAC,CACDpB,KAAK,CAAEC,KAAK,IAAK;QAChB,MAAMC,SAAS,GAAGD,KAAK,CAACE,QAAQ;QAChC,MAAMf,QAA8B,GAAG;UACrCC,OAAO,EAAEa,SAAS,CAACb,OAAO;UAC1BC,OAAO,EAAEY,SAAS,CAACZ,OAAO;UAC1BC,IAAI,EAAEW,SAAS,CAACX,IAAI;UACpBa,SAAS,EAAEF,SAAS,CAACE,SAAS;UAC9BC,MAAM,EAAEH,SAAS,CAACG;QACpB,CAAC;QACDlB,MAAM,CAACC,QAAQ,CAAC;MAClB,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;AACF;AAACiC,OAAA,CAAA7C,eAAA,GAAAA,eAAA"}
@@ -36,4 +36,15 @@ Object.keys(_KlarnaCheckoutView).forEach(function (key) {
36
36
  }
37
37
  });
38
38
  });
39
+ var _KlarnaSignInSDK = require("./KlarnaSignInSDK");
40
+ Object.keys(_KlarnaSignInSDK).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _KlarnaSignInSDK[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _KlarnaSignInSDK[key];
47
+ }
48
+ });
49
+ });
39
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_KlarnaPaymentView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_KlarnaStandaloneWebView","_KlarnaCheckoutView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,wBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,wBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,wBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,wBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,mBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,mBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,mBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,mBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_KlarnaPaymentView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_KlarnaStandaloneWebView","_KlarnaCheckoutView","_KlarnaSignInSDK"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,wBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,wBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,wBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,wBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,mBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,mBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,mBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,mBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,gBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,gBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,gBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,gBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeCommands","_interopRequireDefault","require","_codegenNativeComponent","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/KlarnaCheckoutViewNativeComponent.ts"],"mappings":";;;;;;AAIA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA6CtF,MAAMG,QAA4C,GACvD,IAAAC,8BAAqB,EAAqC;EACxDC,iBAAiB,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ;AACvD,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEU,IAAAC,+BAAsB,EACnC,sBACF,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
1
+ {"version":3,"names":["_codegenNativeCommands","_interopRequireDefault","require","_codegenNativeComponent","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/KlarnaCheckoutViewNativeComponent.ts"],"mappings":";;;;;;AAIA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA8CtF,MAAMG,QAA4C,GACvD,IAAAC,8BAAqB,EAAqC;EACxDC,iBAAiB,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ;AACvD,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEU,IAAAC,+BAAsB,EACnC,sBACF,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = _reactNative.TurboModuleRegistry.getEnforcing('RNKlarnaSignIn');
9
+ exports.default = _default;
10
+ //# sourceMappingURL=NativeKlarnaSignIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../../src","sources":["specs/NativeKlarnaSignIn.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAuBpCC,gCAAmB,CAACC,YAAY,CAAO,gBAAgB,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KlarnaEnvironment = void 0;
7
+ let KlarnaEnvironment = /*#__PURE__*/function (KlarnaEnvironment) {
8
+ KlarnaEnvironment["Playground"] = "playground";
9
+ KlarnaEnvironment["Production"] = "production";
10
+ return KlarnaEnvironment;
11
+ }({});
12
+ exports.KlarnaEnvironment = KlarnaEnvironment;
13
+ //# sourceMappingURL=KlarnaEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KlarnaEnvironment","exports"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaEnvironment.ts"],"mappings":";;;;;;IAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAAC,OAAA,CAAAD,iBAAA,GAAAA,iBAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KlarnaRegion = void 0;
7
+ let KlarnaRegion = /*#__PURE__*/function (KlarnaRegion) {
8
+ KlarnaRegion["EU"] = "eu";
9
+ KlarnaRegion["NA"] = "na";
10
+ KlarnaRegion["OC"] = "oc";
11
+ return KlarnaRegion;
12
+ }({});
13
+ exports.KlarnaRegion = KlarnaRegion;
14
+ //# sourceMappingURL=KlarnaRegion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KlarnaRegion","exports"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaRegion.ts"],"mappings":";;;;;;IAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAAC,OAAA,CAAAD,YAAA,GAAAA,YAAA"}