@coinflowlabs/angular 1.0.1 → 1.0.3

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 (33) hide show
  1. package/README.md +18 -0
  2. package/fesm2022/coinflowlabs-angular.mjs +98 -56
  3. package/fesm2022/coinflowlabs-angular.mjs.map +1 -1
  4. package/lib/common/CoinflowLibMessageHandlers.d.ts +1 -1
  5. package/lib/common/CoinflowTypes.d.ts +35 -5
  6. package/lib/common/CoinflowUtils.d.ts +7 -2
  7. package/package.json +1 -3
  8. package/esm2022/coinflowlabs-angular.mjs +0 -5
  9. package/esm2022/lib/card-form/CardFormService.mjs +0 -64
  10. package/esm2022/lib/card-form/coinflow-card-number-input.component.mjs +0 -53
  11. package/esm2022/lib/card-form/coinflow-card-number-only-input.component.mjs +0 -53
  12. package/esm2022/lib/card-form/coinflow-cvv-input.component.mjs +0 -20
  13. package/esm2022/lib/card-form/coinflow-cvv-only-input.component.mjs +0 -70
  14. package/esm2022/lib/coinflow-iframe.component.mjs +0 -73
  15. package/esm2022/lib/coinflow-purchase-history.component.mjs +0 -16
  16. package/esm2022/lib/coinflow-purchase-protection.component.mjs +0 -16
  17. package/esm2022/lib/coinflow-purchase.component.mjs +0 -32
  18. package/esm2022/lib/coinflow-withdraw-history.component.mjs +0 -16
  19. package/esm2022/lib/coinflow-withdraw.component.mjs +0 -32
  20. package/esm2022/lib/common/CoinflowLibMessageHandlers.mjs +0 -207
  21. package/esm2022/lib/common/CoinflowTypes.mjs +0 -26
  22. package/esm2022/lib/common/CoinflowUtils.mjs +0 -219
  23. package/esm2022/lib/common/SolanaPeerDeps.mjs +0 -17
  24. package/esm2022/lib/common/Subtotal.mjs +0 -8
  25. package/esm2022/lib/common/card-form/TokenEx.mjs +0 -11
  26. package/esm2022/lib/common/card-form/tokenexHelpers.mjs +0 -157
  27. package/esm2022/lib/common/index.mjs +0 -7
  28. package/esm2022/lib/mobile-wallet/apple-pay-overlay.component.mjs +0 -93
  29. package/esm2022/lib/mobile-wallet/coinflow-apple-pay-button.component.mjs +0 -106
  30. package/esm2022/lib/mobile-wallet/coinflow-google-pay-button.component.mjs +0 -43
  31. package/esm2022/lib/mobile-wallet/coinflow-mobile-wallet-button.component.mjs +0 -96
  32. package/esm2022/lib/mobile-wallet/google-pay-overlay.component.mjs +0 -124
  33. package/esm2022/public-api.mjs +0 -16
package/README.md CHANGED
@@ -4,6 +4,20 @@ This library was generated with [Angular CLI](https://github.com/angular/angular
4
4
 
5
5
  # Changelog
6
6
 
7
+ ## 1.0.2
8
+
9
+ - Added `allowedPaymentMethods` to `CoinflowPurchase`
10
+ - Options are:
11
+ - 'card' = Credit and debit cards
12
+ - 'ach' = ACH bank account transfers
13
+ - 'fasterPayments' = UK Faster Payments (GBP Bank Transfers)
14
+ - 'sepa' = SEPA bank account transfers (EUR Bank Transfers)
15
+ - 'pix' = Pix bank account transfers (BRL Bank Transfers)
16
+ - 'usdc' = USDC
17
+ - 'googlePay' = Google Pay
18
+ - 'applePay' = Apple Pay
19
+ - 'credits' = Credits
20
+
7
21
  ## 1.0.1
8
22
 
9
23
  - Allow copy to clipboard for Coinflow Iframe
@@ -30,6 +44,10 @@ or
30
44
  }
31
45
  ```
32
46
 
47
+ ## 0.3.6
48
+
49
+ - Added 3DS Challenge Handling to the standalone Google Pay button
50
+
33
51
  ## 0.3.5
34
52
 
35
53
  - Added cleanup code to handle arg changes in `CoinflowCvvOnlyInputComponent`
@@ -23,6 +23,18 @@ var ThreeDsChallengePreference;
23
23
  ThreeDsChallengePreference["Frictionless"] = "Frictionless";
24
24
  ThreeDsChallengePreference["Challenge"] = "Challenge";
25
25
  })(ThreeDsChallengePreference || (ThreeDsChallengePreference = {}));
26
+ var PaymentMethods;
27
+ (function (PaymentMethods) {
28
+ PaymentMethods["card"] = "card";
29
+ PaymentMethods["ach"] = "ach";
30
+ PaymentMethods["fasterPayments"] = "fasterPayments";
31
+ PaymentMethods["sepa"] = "sepa";
32
+ PaymentMethods["pix"] = "pix";
33
+ PaymentMethods["usdc"] = "usdc";
34
+ PaymentMethods["googlePay"] = "googlePay";
35
+ PaymentMethods["applePay"] = "applePay";
36
+ PaymentMethods["credits"] = "credits";
37
+ })(PaymentMethods || (PaymentMethods = {}));
26
38
  var CardType;
27
39
  (function (CardType) {
28
40
  CardType["VISA"] = "VISA";
@@ -75,6 +87,9 @@ class CoinflowUtils {
75
87
  static getCoinflowBaseUrl(env) {
76
88
  if (!env || env === 'prod')
77
89
  return 'https://coinflow.cash';
90
+ // @ts-expect-error This is for testing
91
+ if (env === 'ngrok')
92
+ return 'https://coinflow.ngrok.app';
78
93
  if (env === 'local')
79
94
  return 'http://localhost:3000';
80
95
  return `https://${env}.coinflow.cash`;
@@ -86,7 +101,7 @@ class CoinflowUtils {
86
101
  return 'http://localhost:5000';
87
102
  return `https://api-${env}.coinflow.cash`;
88
103
  }
89
- static getCoinflowUrl({ walletPubkey, sessionKey, route, routePrefix, env, subtotal, transaction, blockchain = 'solana', webhookInfo, email, loaderBackground, handleHeightChange, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, color, rent, lockDefaultToken, tokens, planCode, disableApplePay, disableGooglePay, customerInfo, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, deviceId, jwtToken, origins, threeDsChallengePreference, supportEmail, destinationAuthKey, }) {
104
+ static getCoinflowUrl({ walletPubkey, sessionKey, route, routePrefix, env, subtotal, transaction, blockchain = 'solana', webhookInfo, email, loaderBackground, handleHeightChangeId, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, color, rent, lockDefaultToken, tokens, planCode, disableApplePay, disableGooglePay, customerInfo, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, deviceId, jwtToken, origins, threeDsChallengePreference, supportEmail, destinationAuthKey, allowedPaymentMethods, }) {
90
105
  const prefix = routePrefix
91
106
  ? `/${routePrefix}/${blockchain}`
92
107
  : `/${blockchain}`;
@@ -133,8 +148,8 @@ class CoinflowUtils {
133
148
  if (loaderBackground) {
134
149
  url.searchParams.append('loaderBackground', loaderBackground);
135
150
  }
136
- if (handleHeightChange) {
137
- url.searchParams.append('useHeightChange', 'true');
151
+ if (handleHeightChangeId) {
152
+ url.searchParams.append('useHeightChange', handleHeightChangeId.toString());
138
153
  }
139
154
  if (bankAccountLinkRedirect) {
140
155
  url.searchParams.append('bankAccountLinkRedirect', bankAccountLinkRedirect);
@@ -187,6 +202,8 @@ class CoinflowUtils {
187
202
  url.searchParams.append('jwtToken', jwtToken);
188
203
  if (origins)
189
204
  url.searchParams.append('origins', LZString.compressToEncodedURIComponent(JSON.stringify(origins)));
205
+ if (allowedPaymentMethods)
206
+ url.searchParams.append('allowedPaymentMethods', allowedPaymentMethods.join(','));
190
207
  if (threeDsChallengePreference)
191
208
  url.searchParams.append('threeDsChallengePreference', threeDsChallengePreference);
192
209
  if (destinationAuthKey)
@@ -268,6 +285,25 @@ class CoinflowUtils {
268
285
  }
269
286
  }
270
287
  }
288
+ function getCustomerName(info) {
289
+ if (!info)
290
+ return undefined;
291
+ let firstName, lastName;
292
+ if ('name' in info && info.name) {
293
+ firstName = info.name.split(' ')[0];
294
+ lastName = info.name.split(' ').slice(1).join(' ');
295
+ }
296
+ if ('firstName' in info && info.firstName)
297
+ firstName = info.firstName;
298
+ if ('lastName' in info && info.lastName)
299
+ lastName = info.lastName;
300
+ if (firstName && lastName)
301
+ return {
302
+ firstName,
303
+ lastName,
304
+ };
305
+ return undefined;
306
+ }
271
307
 
272
308
  var IFrameMessageMethods;
273
309
  (function (IFrameMessageMethods) {
@@ -301,7 +337,7 @@ function getWalletPubkey(input) {
301
337
  }
302
338
  return null;
303
339
  }
304
- function handleIFrameMessage(rawMessage, handlers) {
340
+ function handleIFrameMessage(rawMessage, handlers, handleHeightChangeId) {
305
341
  let walletCall;
306
342
  try {
307
343
  walletCall = JSON.parse(rawMessage);
@@ -324,7 +360,7 @@ function handleIFrameMessage(rawMessage, handlers) {
324
360
  return handlers.handleSignTransaction(data);
325
361
  case IFrameMessageMethods.SendTransaction:
326
362
  return handlers.handleSendTransaction(data);
327
- case IFrameMessageMethods.HeightChange:
363
+ case IFrameMessageMethods.HeightChange + ':' + handleHeightChangeId:
328
364
  if (!handlers.handleHeightChange)
329
365
  return;
330
366
  return handlers.handleHeightChange(data);
@@ -653,7 +689,7 @@ class CoinflowIFrameComponent {
653
689
  if (!event.origin.includes(CoinflowUtils.getCoinflowBaseUrl(this.iframeProps.env)))
654
690
  return;
655
691
  this.messageEvent.emit(event);
656
- const promise = handleIFrameMessage(event.data, this.messageHandlers);
692
+ const promise = handleIFrameMessage(event.data, this.messageHandlers, this.iframeProps.handleHeightChangeId);
657
693
  if (!promise)
658
694
  return;
659
695
  promise
@@ -665,19 +701,19 @@ class CoinflowIFrameComponent {
665
701
  return;
666
702
  this.iframe.nativeElement.contentWindow.postMessage(message, '*');
667
703
  }
668
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowIFrameComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowIFrameComponent, isStandalone: true, selector: "lib-coinflow-iframe", inputs: { iframeProps: "iframeProps", messageHandlers: "messageHandlers" }, outputs: { messageEvent: "messageEvent" }, host: { listeners: { "window:message": "onPostMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: ` <iframe
704
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowIFrameComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
705
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowIFrameComponent, isStandalone: true, selector: "lib-coinflow-iframe", inputs: { iframeProps: "iframeProps", messageHandlers: "messageHandlers" }, outputs: { messageEvent: "messageEvent" }, host: { listeners: { "window:message": "onPostMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: ` <iframe
670
706
  width="100%"
671
707
  height="100%"
672
708
  #iframe
673
- scrolling="{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}"
709
+ scrolling="{{ iframeProps?.handleHeightChangeId ? 'no' : 'yes' }}"
674
710
  allow="payment;camera;clipboard-write"
675
711
  title="withdraw"
676
712
  frameBorder="0"
677
713
  [src]="dynamicUrl"
678
714
  ></iframe>`, isInline: true }); }
679
715
  }
680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowIFrameComponent, decorators: [{
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowIFrameComponent, decorators: [{
681
717
  type: Component,
682
718
  args: [{
683
719
  selector: 'lib-coinflow-iframe',
@@ -687,7 +723,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
687
723
  width="100%"
688
724
  height="100%"
689
725
  #iframe
690
- scrolling="{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}"
726
+ scrolling="{{ iframeProps?.handleHeightChangeId ? 'no' : 'yes' }}"
691
727
  allow="payment;camera;clipboard-write"
692
728
  title="withdraw"
693
729
  frameBorder="0"
@@ -714,17 +750,19 @@ class CoinflowPurchaseComponent {
714
750
  this.messageHandlers = getHandlers(this.purchaseProps);
715
751
  this.messageHandlers.handleHeightChange =
716
752
  this.purchaseProps.handleHeightChange;
753
+ const handleHeightChangeId = Math.random().toString(16).substring(2);
717
754
  this.iframeProps = {
718
755
  ...this.purchaseProps,
719
756
  walletPubkey,
720
757
  route: `/purchase-v2/${this.purchaseProps?.merchantId}`,
721
758
  transaction: CoinflowUtils.getTransaction(this.purchaseProps),
759
+ handleHeightChangeId,
722
760
  };
723
761
  }
724
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
725
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseComponent, isStandalone: true, selector: "lib-coinflow-purchase", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"], outputs: ["messageEvent"] }] }); }
762
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
763
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowPurchaseComponent, isStandalone: true, selector: "lib-coinflow-purchase", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"], outputs: ["messageEvent"] }] }); }
726
764
  }
727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseComponent, decorators: [{
765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseComponent, decorators: [{
728
766
  type: Component,
729
767
  args: [{
730
768
  selector: 'lib-coinflow-purchase',
@@ -737,10 +775,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
737
775
  }] } });
738
776
 
739
777
  class CoinflowPurchaseHistoryComponent {
740
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
741
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseHistoryComponent, isStandalone: true, selector: "lib-coinflow-purchase-history", ngImport: i0, template: ' <p>coinflow-purchase-history works!</p> ', isInline: true }); }
778
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
779
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowPurchaseHistoryComponent, isStandalone: true, selector: "lib-coinflow-purchase-history", ngImport: i0, template: ' <p>coinflow-purchase-history works!</p> ', isInline: true }); }
742
780
  }
743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseHistoryComponent, decorators: [{
781
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseHistoryComponent, decorators: [{
744
782
  type: Component,
745
783
  args: [{
746
784
  selector: 'lib-coinflow-purchase-history',
@@ -751,10 +789,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
751
789
  }] });
752
790
 
753
791
  class CoinflowPurchaseProtectionComponent {
754
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseProtectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
755
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseProtectionComponent, isStandalone: true, selector: "lib-coinflow-purchase-protection", ngImport: i0, template: ' <p>coinflow-purchase-protection works!</p> ', isInline: true }); }
792
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseProtectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
793
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowPurchaseProtectionComponent, isStandalone: true, selector: "lib-coinflow-purchase-protection", ngImport: i0, template: ' <p>coinflow-purchase-protection works!</p> ', isInline: true }); }
756
794
  }
757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseProtectionComponent, decorators: [{
795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowPurchaseProtectionComponent, decorators: [{
758
796
  type: Component,
759
797
  args: [{
760
798
  selector: 'lib-coinflow-purchase-protection',
@@ -770,17 +808,19 @@ class CoinflowWithdrawComponent {
770
808
  this.messageHandlers = getHandlers(this.withdrawProps);
771
809
  this.messageHandlers.handleHeightChange =
772
810
  this.withdrawProps.handleHeightChange;
811
+ const handleHeightChangeId = Math.random().toString(16).substring(2);
773
812
  this.iframeProps = {
774
813
  ...this.withdrawProps,
775
814
  walletPubkey,
776
815
  route: `/withdraw/${this.withdrawProps?.merchantId}`,
777
816
  transaction: undefined,
817
+ handleHeightChangeId,
778
818
  };
779
819
  }
780
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
781
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowWithdrawComponent, isStandalone: true, selector: "lib-coinflow-withdraw", inputs: { withdrawProps: "withdrawProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"], outputs: ["messageEvent"] }] }); }
820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowWithdrawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
821
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowWithdrawComponent, isStandalone: true, selector: "lib-coinflow-withdraw", inputs: { withdrawProps: "withdrawProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"], outputs: ["messageEvent"] }] }); }
782
822
  }
783
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawComponent, decorators: [{
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowWithdrawComponent, decorators: [{
784
824
  type: Component,
785
825
  args: [{
786
826
  selector: 'lib-coinflow-withdraw',
@@ -793,10 +833,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
793
833
  }] } });
794
834
 
795
835
  class CoinflowWithdrawHistoryComponent {
796
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
797
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowWithdrawHistoryComponent, isStandalone: true, selector: "lib-coinflow-withdraw-history", ngImport: i0, template: ' <p>coinflow-withdraw-history works!</p> ', isInline: true }); }
836
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowWithdrawHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
837
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowWithdrawHistoryComponent, isStandalone: true, selector: "lib-coinflow-withdraw-history", ngImport: i0, template: ' <p>coinflow-withdraw-history works!</p> ', isInline: true }); }
798
838
  }
799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawHistoryComponent, decorators: [{
839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowWithdrawHistoryComponent, decorators: [{
800
840
  type: Component,
801
841
  args: [{
802
842
  selector: 'lib-coinflow-withdraw-history',
@@ -857,10 +897,10 @@ class CardFormService {
857
897
  iframe.load();
858
898
  return iframe;
859
899
  }
860
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
861
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, providedIn: 'root' }); }
900
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CardFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
901
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CardFormService, providedIn: 'root' }); }
862
902
  }
863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, decorators: [{
903
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CardFormService, decorators: [{
864
904
  type: Injectable,
865
905
  args: [{
866
906
  providedIn: 'root',
@@ -901,10 +941,10 @@ class CoinflowCardNumberInput {
901
941
  tokenize() {
902
942
  return this.iframe.tokenize();
903
943
  }
904
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
905
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCardNumberInput, isStandalone: true, selector: "lib-coinflow-card-number-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
944
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCardNumberInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
945
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowCardNumberInput, isStandalone: true, selector: "lib-coinflow-card-number-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
906
946
  }
907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberInput, decorators: [{
947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCardNumberInput, decorators: [{
908
948
  type: Component,
909
949
  args: [{
910
950
  selector: 'lib-coinflow-card-number-input',
@@ -950,10 +990,10 @@ class CoinflowCardNumberOnlyInput {
950
990
  tokenize() {
951
991
  return this.iframe.tokenize();
952
992
  }
953
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberOnlyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
954
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCardNumberOnlyInput, isStandalone: true, selector: "lib-coinflow-card-number-only-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
993
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCardNumberOnlyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
994
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowCardNumberOnlyInput, isStandalone: true, selector: "lib-coinflow-card-number-only-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
955
995
  }
956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberOnlyInput, decorators: [{
996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCardNumberOnlyInput, decorators: [{
957
997
  type: Component,
958
998
  args: [{
959
999
  selector: 'lib-coinflow-card-number-only-input',
@@ -969,10 +1009,10 @@ class CoinflowCvvInputComponent {
969
1009
  constructor() {
970
1010
  this.TokenExCvvContainerID = TokenExCvvContainerID;
971
1011
  }
972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
973
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCvvInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-input", ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}" ></div>', isInline: true }); }
1012
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCvvInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1013
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowCvvInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-input", ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}" ></div>', isInline: true }); }
974
1014
  }
975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvInputComponent, decorators: [{
1015
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCvvInputComponent, decorators: [{
976
1016
  type: Component,
977
1017
  args: [{
978
1018
  selector: 'lib-coinflow-cvv-input',
@@ -1033,10 +1073,10 @@ class CoinflowCvvOnlyInputComponent {
1033
1073
  tokenize() {
1034
1074
  return this.iframe.tokenize();
1035
1075
  }
1036
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvOnlyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1037
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCvvOnlyInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-only-input", inputs: { args: "args" }, usesOnChanges: true, ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}"></div>', isInline: true }); }
1076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCvvOnlyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1077
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowCvvOnlyInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-only-input", inputs: { args: "args" }, usesOnChanges: true, ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}"></div>', isInline: true }); }
1038
1078
  }
1039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvOnlyInputComponent, decorators: [{
1079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowCvvOnlyInputComponent, decorators: [{
1040
1080
  type: Component,
1041
1081
  args: [{
1042
1082
  selector: 'lib-coinflow-cvv-only-input',
@@ -1075,16 +1115,18 @@ class CoinflowMobileWalletButtonComponent {
1075
1115
  this.messageHandlers = getHandlers(this.purchaseProps);
1076
1116
  this.messageHandlers.handleHeightChange =
1077
1117
  this.purchaseProps.handleHeightChange;
1118
+ const handleHeightChangeId = Math.random().toString(16).substring(2);
1078
1119
  this.iframeProps = {
1079
1120
  ...this.purchaseProps,
1080
1121
  walletPubkey,
1081
1122
  route: `/${this.route}/${this.purchaseProps?.merchantId}`,
1082
1123
  routePrefix: 'form',
1083
1124
  transaction: CoinflowUtils.getTransaction(this.purchaseProps),
1125
+ handleHeightChangeId,
1084
1126
  };
1085
1127
  }
1086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowMobileWalletButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1087
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowMobileWalletButtonComponent, isStandalone: true, selector: "lib-coinflow-mobile-wallet-button", inputs: { purchaseProps: "purchaseProps", route: "route", overlayDisplayOverride: "overlayDisplayOverride", alignItems: "alignItems" }, ngImport: i0, template: ` <div style="position: relative; height: 100%;">
1128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowMobileWalletButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowMobileWalletButtonComponent, isStandalone: true, selector: "lib-coinflow-mobile-wallet-button", inputs: { purchaseProps: "purchaseProps", route: "route", overlayDisplayOverride: "overlayDisplayOverride", alignItems: "alignItems" }, ngImport: i0, template: ` <div style="position: relative; height: 100%;">
1088
1130
  <div
1089
1131
  [style.background-color]="purchaseProps.color"
1090
1132
  [style.display]="overlayDisplayOverride ?? display"
@@ -1104,7 +1146,7 @@ class CoinflowMobileWalletButtonComponent {
1104
1146
  </div>
1105
1147
  </div>`, isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"], outputs: ["messageEvent"] }] }); }
1106
1148
  }
1107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowMobileWalletButtonComponent, decorators: [{
1149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowMobileWalletButtonComponent, decorators: [{
1108
1150
  type: Component,
1109
1151
  args: [{
1110
1152
  selector: 'lib-coinflow-mobile-wallet-button',
@@ -1144,8 +1186,8 @@ class CoinflowApplePayOverlayComponent {
1144
1186
  fill() {
1145
1187
  return this.color === 'white' ? '#000' : '#FFF';
1146
1188
  }
1147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowApplePayOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowApplePayOverlayComponent, isStandalone: true, selector: "coinflow-apple-pay-overlay", inputs: { color: "color" }, ngImport: i0, template: `
1189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowApplePayOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowApplePayOverlayComponent, isStandalone: true, selector: "coinflow-apple-pay-overlay", inputs: { color: "color" }, ngImport: i0, template: `
1149
1191
  <svg id="svg-logo" viewBox="0 0 35 15">
1150
1192
  <svg
1151
1193
  id="svg-logo"
@@ -1183,7 +1225,7 @@ class CoinflowApplePayOverlayComponent {
1183
1225
  </svg>
1184
1226
  `, isInline: true }); }
1185
1227
  }
1186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowApplePayOverlayComponent, decorators: [{
1228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowApplePayOverlayComponent, decorators: [{
1187
1229
  type: Component,
1188
1230
  args: [{
1189
1231
  selector: 'coinflow-apple-pay-overlay',
@@ -1235,8 +1277,8 @@ class CoinflowApplePayButtonComponent {
1235
1277
  fill() {
1236
1278
  return this.purchaseProps.color === 'white' ? '#000' : '#FFF';
1237
1279
  }
1238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowApplePayButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1239
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowApplePayButtonComponent, isStandalone: true, selector: "lib-coinflow-apple-pay-button", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ` <lib-coinflow-mobile-wallet-button
1280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowApplePayButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowApplePayButtonComponent, isStandalone: true, selector: "lib-coinflow-apple-pay-button", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ` <lib-coinflow-mobile-wallet-button
1240
1282
  ng-if="iframeProps && messageHandlers"
1241
1283
  [purchaseProps]="purchaseProps"
1242
1284
  route="apple-pay"
@@ -1278,7 +1320,7 @@ class CoinflowApplePayButtonComponent {
1278
1320
  </svg>
1279
1321
  </lib-coinflow-mobile-wallet-button>`, isInline: true, dependencies: [{ kind: "component", type: CoinflowMobileWalletButtonComponent, selector: "lib-coinflow-mobile-wallet-button", inputs: ["purchaseProps", "route", "overlayDisplayOverride", "alignItems"] }] }); }
1280
1322
  }
1281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowApplePayButtonComponent, decorators: [{
1323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowApplePayButtonComponent, decorators: [{
1282
1324
  type: Component,
1283
1325
  args: [{
1284
1326
  selector: 'lib-coinflow-apple-pay-button',
@@ -1334,8 +1376,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
1334
1376
  }] } });
1335
1377
 
1336
1378
  class CoinflowGooglePayOverlayComponent {
1337
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowGooglePayOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1338
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: CoinflowGooglePayOverlayComponent, isStandalone: true, selector: "coinflow-google-pay-overlay", inputs: { color: "color" }, ngImport: i0, template: `
1379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowGooglePayOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.1", type: CoinflowGooglePayOverlayComponent, isStandalone: true, selector: "coinflow-google-pay-overlay", inputs: { color: "color" }, ngImport: i0, template: `
1339
1381
  @if (color === 'white') {
1340
1382
  <svg xmlns="http://www.w3.org/2000/svg" width="41" height="17">
1341
1383
  <g fill="none" fill-rule="evenodd">
@@ -1390,7 +1432,7 @@ class CoinflowGooglePayOverlayComponent {
1390
1432
  }
1391
1433
  `, isInline: true }); }
1392
1434
  }
1393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowGooglePayOverlayComponent, decorators: [{
1435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowGooglePayOverlayComponent, decorators: [{
1394
1436
  type: Component,
1395
1437
  args: [{
1396
1438
  selector: 'coinflow-google-pay-overlay',
@@ -1456,8 +1498,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
1456
1498
  }] } });
1457
1499
 
1458
1500
  class CoinflowGooglePayButtonComponent {
1459
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowGooglePayButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1460
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowGooglePayButtonComponent, isStandalone: true, selector: "lib-coinflow-google-pay-button", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: `<lib-coinflow-mobile-wallet-button
1501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowGooglePayButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: CoinflowGooglePayButtonComponent, isStandalone: true, selector: "lib-coinflow-google-pay-button", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: `<lib-coinflow-mobile-wallet-button
1461
1503
  ng-if="iframeProps && messageHandlers"
1462
1504
  [purchaseProps]="purchaseProps"
1463
1505
  route="google-pay"
@@ -1469,7 +1511,7 @@ class CoinflowGooglePayButtonComponent {
1469
1511
  ></coinflow-google-pay-overlay>
1470
1512
  </lib-coinflow-mobile-wallet-button> `, isInline: true, dependencies: [{ kind: "component", type: CoinflowMobileWalletButtonComponent, selector: "lib-coinflow-mobile-wallet-button", inputs: ["purchaseProps", "route", "overlayDisplayOverride", "alignItems"] }, { kind: "component", type: CoinflowGooglePayOverlayComponent, selector: "coinflow-google-pay-overlay", inputs: ["color"] }] }); }
1471
1513
  }
1472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowGooglePayButtonComponent, decorators: [{
1514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: CoinflowGooglePayButtonComponent, decorators: [{
1473
1515
  type: Component,
1474
1516
  args: [{
1475
1517
  selector: 'lib-coinflow-google-pay-button',