@osovitny/anatoly 3.17.79 → 3.17.80

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 (30) hide show
  1. package/esm2022/lib/billing/billing.module.mjs +9 -12
  2. package/esm2022/lib/billing/components/braintree/braintree.component.mjs +155 -0
  3. package/esm2022/lib/billing/components/exports.mjs +22 -0
  4. package/esm2022/lib/billing/components/index.mjs +25 -0
  5. package/esm2022/lib/billing/components/paypal/paypal-button.component.mjs +157 -0
  6. package/esm2022/lib/billing/components/paypal/paypal.component.mjs +316 -0
  7. package/esm2022/lib/billing/components/stripe/stripe.component.mjs +109 -0
  8. package/esm2022/lib/billing/exports.mjs +3 -4
  9. package/esm2022/lib/billing/services/payments.service.mjs +173 -0
  10. package/fesm2022/osovitny-anatoly.mjs +17 -20
  11. package/fesm2022/osovitny-anatoly.mjs.map +1 -1
  12. package/lib/billing/billing.module.d.ts +4 -4
  13. package/lib/billing/{payments/components → components}/braintree/braintree.component.d.ts +3 -3
  14. package/lib/billing/components/index.d.ts +2 -0
  15. package/lib/billing/{payments/components → components}/paypal/paypal-button.component.d.ts +3 -3
  16. package/lib/billing/{payments/components → components}/paypal/paypal.component.d.ts +3 -3
  17. package/lib/billing/{payments/components → components}/stripe/stripe.component.d.ts +2 -2
  18. package/lib/billing/exports.d.ts +2 -2
  19. package/lib/billing/{payments/services → services}/payments.service.d.ts +4 -4
  20. package/lib/ui/forms/index.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/esm2022/lib/billing/payments/components/braintree/braintree.component.mjs +0 -155
  23. package/esm2022/lib/billing/payments/components/exports.mjs +0 -22
  24. package/esm2022/lib/billing/payments/components/index.mjs +0 -25
  25. package/esm2022/lib/billing/payments/components/paypal/paypal-button.component.mjs +0 -157
  26. package/esm2022/lib/billing/payments/components/paypal/paypal.component.mjs +0 -316
  27. package/esm2022/lib/billing/payments/components/stripe/stripe.component.mjs +0 -109
  28. package/esm2022/lib/billing/payments/services/payments.service.mjs +0 -173
  29. package/lib/billing/payments/components/index.d.ts +0 -2
  30. /package/lib/billing/{payments/components → components}/exports.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./payments/components/paypal/paypal-button.component";
3
- import * as i2 from "./payments/components/paypal/paypal.component";
4
- import * as i3 from "./payments/components/braintree/braintree.component";
5
- import * as i4 from "./payments/components/stripe/stripe.component";
2
+ import * as i1 from "./components/paypal/paypal-button.component";
3
+ import * as i2 from "./components/paypal/paypal.component";
4
+ import * as i3 from "./components/braintree/braintree.component";
5
+ import * as i4 from "./components/stripe/stripe.component";
6
6
  import * as i5 from "@angular/common";
7
7
  import * as i6 from "../external/fa.module";
8
8
  import * as i7 from "../external/kendo.module";
@@ -1,6 +1,6 @@
1
- import { DialogBase } from '../../../../ui/components/base/dialog';
1
+ import { DialogBase } from '../../../ui/components/base/dialog';
2
2
  import { PaymentsService } from '../../services/payments.service';
3
- import { NotificationService } from '../../../../core/notifications/services/notification-service';
3
+ import { NotificationService } from '../../../core/notifications/services/notification-service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class BraintreeDialog extends DialogBase {
6
6
  ps: PaymentsService;
@@ -21,5 +21,5 @@ export declare class BraintreeDialog extends DialogBase {
21
21
  onClose(): void;
22
22
  get visible(): boolean;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<BraintreeDialog, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<BraintreeDialog, "anatoly-payments-braintree-dialog", never, { "paidFor": { "alias": "paidFor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "image": { "alias": "image"; "required": false; }; }, {}, never, never, false, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<BraintreeDialog, "anatoly-billing-braintree-dialog", never, { "paidFor": { "alias": "paidFor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "image": { "alias": "image"; "required": false; }; }, {}, never, never, false, never>;
25
25
  }
@@ -0,0 +1,2 @@
1
+ import { PaypalButtonComponent, PayPalComponent, BraintreeDialog, StripeDialog } from './exports';
2
+ export declare const COMPONENTS: (typeof BraintreeDialog | typeof PaypalButtonComponent | typeof PayPalComponent | typeof StripeDialog)[];
@@ -1,6 +1,6 @@
1
- import { ComponentBase } from '../../../../ui/components/base/components/component';
1
+ import { ComponentBase } from '../../../ui/components/base/components/component';
2
2
  import { PaymentsService } from '../../services/payments.service';
3
- import { IPayPalConfig } from '../../../models/paypal-models';
3
+ import { IPayPalConfig } from '../../models/paypal-models';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class PaypalButtonComponent extends ComponentBase {
6
6
  ps: PaymentsService;
@@ -14,5 +14,5 @@ export declare class PaypalButtonComponent extends ComponentBase {
14
14
  private initPayPal;
15
15
  get visible(): boolean;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<PaypalButtonComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<PaypalButtonComponent, "anatoly-payments-paypal-button", never, { "paidForTitle": { "alias": "paidForTitle"; "required": false; }; "paidFor": { "alias": "paidFor"; "required": false; }; }, {}, never, never, false, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaypalButtonComponent, "anatoly-billing-paypal-button", never, { "paidForTitle": { "alias": "paidForTitle"; "required": false; }; "paidFor": { "alias": "paidFor"; "required": false; }; }, {}, never, never, false, never>;
18
18
  }
@@ -1,6 +1,6 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, SimpleChanges } from "@angular/core";
2
- import { IPayPalConfig } from '../../../models/paypal-models';
3
- import { PayPalScriptService } from '../../../services/paypal-script.service';
2
+ import { IPayPalConfig } from '../../models/paypal-models';
3
+ import { PayPalScriptService } from '../../services/paypal-script.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class PayPalComponent implements OnChanges, OnDestroy, AfterViewInit {
6
6
  private paypalScriptService;
@@ -46,5 +46,5 @@ export declare class PayPalComponent implements OnChanges, OnDestroy, AfterViewI
46
46
  private initPayPal;
47
47
  private generateGuid;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<PayPalComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<PayPalComponent, "anatoly-payments-paypal-container", never, { "config": { "alias": "config"; "required": false; }; "registerScript": { "alias": "registerScript"; "required": false; }; }, { "scriptLoaded": "scriptLoaded"; }, never, never, false, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<PayPalComponent, "anatoly-billing-paypal-container", never, { "config": { "alias": "config"; "required": false; }; "registerScript": { "alias": "registerScript"; "required": false; }; }, { "scriptLoaded": "scriptLoaded"; }, never, never, false, never>;
50
50
  }
@@ -1,4 +1,4 @@
1
- import { DialogBase } from '../../../../ui/components/base/dialog';
1
+ import { DialogBase } from '../../../ui/components/base/dialog';
2
2
  import { PaymentsService } from '../../services/payments.service';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class StripeDialog extends DialogBase {
@@ -17,5 +17,5 @@ export declare class StripeDialog extends DialogBase {
17
17
  onClose(): void;
18
18
  get visible(): boolean;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<StripeDialog, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<StripeDialog, "anatoly-payments-stripe-dialog", never, { "paidFor": { "alias": "paidFor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "image": { "alias": "image"; "required": false; }; }, {}, never, never, false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<StripeDialog, "anatoly-billing-stripe-dialog", never, { "paidFor": { "alias": "paidFor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "image": { "alias": "image"; "required": false; }; }, {}, never, never, false, never>;
21
21
  }
@@ -1,3 +1,3 @@
1
- export * from './payments/components/exports';
2
- export * from './payments/services/payments.service';
1
+ export * from './components/exports';
2
+ export * from './services/payments.service';
3
3
  export * from './services/paypal-script.service';
@@ -1,8 +1,8 @@
1
1
  import { NgZone } from '@angular/core';
2
- import { PaymentStage } from '../../../core/enums/billing';
3
- import { PaymentsApiService } from '../../../data/services/billing/payments-api.service';
4
- import { NotificationService } from '../../../core/notifications/services/notification-service';
5
- import { GoogleAnalyticsService } from '../../../core/services/google-analytics.service';
2
+ import { PaymentStage } from '../../core/enums/billing';
3
+ import { PaymentsApiService } from '../../data/services/billing/payments-api.service';
4
+ import { NotificationService } from '../../core/notifications/services/notification-service';
5
+ import { GoogleAnalyticsService } from '../../core/services/google-analytics.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class PaymentsService {
8
8
  private zone;
@@ -1,2 +1,2 @@
1
1
  import { AddressComponent, CompanyComponent, ContactUsForm } from './exports';
2
- export declare const FORMS: (typeof AddressComponent | typeof ContactUsForm | typeof CompanyComponent)[];
2
+ export declare const FORMS: (typeof ContactUsForm | typeof AddressComponent | typeof CompanyComponent)[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osovitny/anatoly",
3
- "version": "3.17.79",
3
+ "version": "3.17.80",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "17.1.2",
6
6
  "@angular/core": "17.1.2",
@@ -1,155 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Dhruv Agarwal dhruv.agarwal@osovitny.com
8
-
9
- Created:
10
- 14 Aug 2024
11
-
12
- Description:
13
- Credit Card payment form via braintree integration
14
-
15
- Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
16
- </file>
17
- */
18
- //Node
19
- import { Component, Input } from '@angular/core';
20
- import * as dropin from 'braintree-web-drop-in';
21
- //App
22
- import { DialogBase } from '../../../../ui/components/base/dialog';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "../../services/payments.service";
25
- import * as i2 from "../../../../core/notifications/services/notification-service";
26
- import * as i3 from "@progress/kendo-angular-dialog";
27
- function BraintreeDialog_Conditional_0_Template(rf, ctx) { if (rf & 1) {
28
- const _r2 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "div", 1)(1, "kendo-dialog", 2);
30
- i0.ɵɵlistener("close", function BraintreeDialog_Conditional_0_Template_kendo_dialog_close_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClose()); });
31
- i0.ɵɵelementStart(2, "kendo-dialog-titlebar");
32
- i0.ɵɵtext(3, "Pay with Credit Card");
33
- i0.ɵɵelementEnd();
34
- i0.ɵɵelementStart(4, "div", 3);
35
- i0.ɵɵelement(5, "div", 4);
36
- i0.ɵɵelementEnd();
37
- i0.ɵɵelementStart(6, "kendo-dialog-actions", 5)(7, "button", 6);
38
- i0.ɵɵlistener("click", function BraintreeDialog_Conditional_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onPay()); });
39
- i0.ɵɵtext(8, "Pay");
40
- i0.ɵɵelementEnd();
41
- i0.ɵɵelementStart(9, "button", 7);
42
- i0.ɵɵlistener("click", function BraintreeDialog_Conditional_0_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r2); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onClose()); });
43
- i0.ɵɵtext(10, "Cancel");
44
- i0.ɵɵelementEnd()()()();
45
- } if (rf & 2) {
46
- const ctx_r0 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance();
48
- i0.ɵɵproperty("width", 480)("height", 560)("themeColor", ctx_r0.themeColor);
49
- } }
50
- export class BraintreeDialog extends DialogBase {
51
- constructor(ps, ns) {
52
- super();
53
- this.ps = ps;
54
- this.ns = ns;
55
- }
56
- ngOnInit() {
57
- this.setValues();
58
- }
59
- setValues() {
60
- this.ps.showBraintreeDialog$.subscribe((isOpen) => {
61
- this.isOpen = true;
62
- this.initializeEmbedForm();
63
- });
64
- }
65
- initializeEmbedForm() {
66
- const that = this;
67
- // let totalPrice = this.bs.getTotal().toString();
68
- // let currency = this.bs.currency;
69
- this.ps.createBraintreeToken().subscribe((response) => {
70
- if (response?.token) {
71
- dropin.create({
72
- authorization: response?.token,
73
- container: '#braintree-container',
74
- card: {
75
- cardholderName: true
76
- },
77
- //UNCOMMENT BELOW FOR GOOGLEPAY / VENMO
78
- // googlePay: {
79
- // merchantId: '',
80
- // transactionInfo: {
81
- // currencyCode: currency,
82
- // totalPriceStatus: 'FINAL',
83
- // totalPrice: totalPrice,
84
- // }
85
- // },
86
- // venmo: {
87
- // allowNewBrowserTab: false
88
- // },
89
- dataCollector: true
90
- }, function (createErr, instance) {
91
- if (instance) {
92
- that.braintreeInstance = instance;
93
- instance._dataCollector._instance.getDeviceData().then((deviceData) => {
94
- that.deviceData = deviceData;
95
- });
96
- }
97
- else {
98
- that.ns.error('Credit Card Payment is facing issues. Please try other payment methods.');
99
- that.closeDialog();
100
- }
101
- });
102
- }
103
- });
104
- }
105
- submitPayment(payload) {
106
- this.ps.pay(this.paidFor, payload.nonce, 'COMPLETED', this.deviceData);
107
- }
108
- closeDialog() {
109
- super.close();
110
- this.braintreeInstance = null;
111
- }
112
- //Events
113
- onPay() {
114
- if (this.braintreeInstance && this.deviceData) {
115
- const that = this;
116
- this.braintreeInstance.requestPaymentMethod(function (requestPaymentErr, payload) {
117
- that.submitPayment(payload);
118
- });
119
- }
120
- }
121
- onClose() {
122
- const closeDialog = this.closeDialog;
123
- if (this.braintreeInstance) {
124
- this.braintreeInstance.teardown(function (err) {
125
- closeDialog();
126
- });
127
- }
128
- else {
129
- closeDialog();
130
- }
131
- }
132
- get visible() {
133
- return this.isOpen && this.ps.getTotal() > 0;
134
- }
135
- static { this.ɵfac = function BraintreeDialog_Factory(t) { return new (t || BraintreeDialog)(i0.ɵɵdirectiveInject(i1.PaymentsService), i0.ɵɵdirectiveInject(i2.NotificationService)); }; }
136
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BraintreeDialog, selectors: [["anatoly-payments-braintree-dialog"]], inputs: { paidFor: "paidFor", title: "title", description: "description", image: "image" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "send-message__kendo-dialog"], [1, "send-message__kendo-dialog"], [3, "width", "height", "themeColor", "close"], [1, "kendo-dialog-content"], ["id", "braintree-container"], ["layout", "end"], ["type", "button", 1, "btn", "btn-sm", "btn-success", 3, "click"], ["type", "button", 1, "btn", "btn-sm", "btn-danger", 3, "click"]], template: function BraintreeDialog_Template(rf, ctx) { if (rf & 1) {
137
- i0.ɵɵtemplate(0, BraintreeDialog_Conditional_0_Template, 11, 3, "div", 0);
138
- } if (rf & 2) {
139
- i0.ɵɵconditional(0, ctx.visible ? 0 : -1);
140
- } }, dependencies: [i3.DialogComponent, i3.DialogTitleBarComponent, i3.DialogActionsComponent], encapsulation: 2 }); }
141
- }
142
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BraintreeDialog, [{
143
- type: Component,
144
- args: [{ selector: 'anatoly-payments-braintree-dialog', template: "@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='480' [height]='560' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Credit Card</kendo-dialog-titlebar>\r\n <div class='kendo-dialog-content'>\r\n <div id=\"braintree-container\"></div>\r\n </div>\r\n <kendo-dialog-actions layout='end'>\r\n <button class='btn btn-sm btn-success' type='button' (click)='onPay()'>Pay</button>\r\n <button class='btn btn-sm btn-danger' type='button' (click)='onClose()'>Cancel</button>\r\n </kendo-dialog-actions>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n" }]
145
- }], () => [{ type: i1.PaymentsService }, { type: i2.NotificationService }], { paidFor: [{
146
- type: Input
147
- }], title: [{
148
- type: Input
149
- }], description: [{
150
- type: Input
151
- }], image: [{
152
- type: Input
153
- }] }); })();
154
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BraintreeDialog, { className: "BraintreeDialog", filePath: "lib\\billing\\payments\\components\\braintree\\braintree.component.ts", lineNumber: 32 }); })();
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhaW50cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL3BheW1lbnRzL2NvbXBvbmVudHMvYnJhaW50cmVlL2JyYWludHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9wYXltZW50cy9jb21wb25lbnRzL2JyYWludHJlZS9icmFpbnRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxLQUFLO0FBQ0wsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7O0lDdEJqRSw4QkFBd0Msc0JBQUE7SUFDK0IsMEtBQVMsZUFBQSxnQkFBUyxDQUFBLElBQUM7SUFDdEYsNkNBQXVCO0lBQUEsb0NBQW9CO0lBQUEsaUJBQXdCO0lBQ25FLDhCQUFrQztJQUNoQyx5QkFBb0M7SUFDdEMsaUJBQU07SUFDTiwrQ0FBbUMsZ0JBQUE7SUFDb0Isb0tBQVMsZUFBQSxjQUFPLENBQUEsSUFBQztJQUFDLG1CQUFHO0lBQUEsaUJBQVM7SUFDbkYsaUNBQXlFO0lBQXBCLG9LQUFTLGVBQUEsZ0JBQVMsQ0FBQSxJQUFDO0lBQUMsdUJBQU07SUFBQSxpQkFBUyxFQUFBLEVBQUEsRUFBQTs7O0lBUDlFLGNBQWE7SUFBYiwyQkFBYSxlQUFBLGlDQUFBOztBRDZCL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQVM3QyxZQUNTLEVBQW1CLEVBQ2xCLEVBQXVCO1FBQy9CLEtBQUssRUFB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Q0FBQyxVQUFTLEdBQUc7Z0JBQzFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUNJLENBQUM7WUFDSixXQUFXLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztnRkF2R1UsZUFBZTtvRUFBZixlQUFlO1lDL0I1Qix5RUFhQzs7WUFiRCx5Q0FhQzs7O2lGRGtCWSxlQUFlO2NBSjNCLFNBQVM7MkJBQ0UsbUNBQW1DO2tGQU9wQyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLOztrRkFQSyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBEaHJ1diBBZ2Fyd2FsIGRocnV2LmFnYXJ3YWxAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNCBBdWcgMjAyNFxyXG5cclxuICBEZXNjcmlwdGlvbjpcclxuICAgIENyZWRpdCBDYXJkIHBheW1lbnQgZm9ybSB2aWEgYnJhaW50cmVlIGludGVncmF0aW9uXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgZHJvcGluIGZyb20gJ2JyYWludHJlZS13ZWItZHJvcC1pbic7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBEaWFsb2dCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkvY29tcG9uZW50cy9iYXNlL2RpYWxvZyc7XHJcbmltcG9ydCB7IFBheW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1wYXltZW50cy1icmFpbnRyZWUtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnJhaW50cmVlLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJhaW50cmVlRGlhbG9nIGV4dGVuZHMgRGlhbG9nQmFzZSB7XHJcbiAgYnJhaW50cmVlSW5zdGFuY2U6IGFueTtcclxuICBkZXZpY2VEYXRhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHBhaWRGb3I7XHJcbiAgQElucHV0KCkgdGl0bGU7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb247XHJcbiAgQElucHV0KCkgaW1hZ2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHBzOiBQYXltZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5zOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLnBzLnNob3dCcmFpbnRyZWVEaWFsb2ckLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRW1iZWRGb3JtKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVFbWJlZEZvcm0oKSB7XHJcbiAgICBjb25zdCB0aGF0ID0gdGhpcztcclxuICAgIC8vIGxldCB0b3RhbFByaWNlID0gdGhpcy5icy5nZXRUb3RhbCgpLnRvU3RyaW5nKCk7XHJcbiAgICAvLyBsZXQgY3VycmVuY3kgPSB0aGlzLmJzLmN1cnJlbmN5O1xyXG5cclxuICAgIHRoaXMucHMuY3JlYXRlQnJhaW50cmVlVG9rZW4oKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmKHJlc3BvbnNlPy50b2tlbikge1xyXG4gICAgICAgIGRyb3Bpbi5jcmVhdGUoe1xyXG4gICAgICAgICAgYXV0aG9yaXphdGlvbjogcmVzcG9uc2U/LnRva2VuLFxyXG4gICAgICAgICAgY29udGFpbmVyOiAnI2JyYWludHJlZS1jb250YWluZXInLFxyXG4gICAgICAgICAgY2FyZDoge1xyXG4gICAgICAgICAgICBjYXJkaG9sZGVyTmFtZTogdHJ1ZVxyXG4gICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAvL1VOQ09NTUVOVCBCRUxPVyBGT1IgR09PR0xFUEFZIC8gVkVOTU9cclxuICAgICAgICAgIC8vIGdvb2dsZVBheToge1xyXG4gICAgICAgICAgLy8gICBtZXJjaGFudElkOiAnJyxcclxuICAgICAgICAgIC8vICAgdHJhbnNhY3Rpb25JbmZvOiB7XHJcbiAgICAgICAgICAvLyAgICAgY3VycmVuY3lDb2RlOiBjdXJyZW5jeSxcclxuICAgICAgICAgIC8vICAgICB0b3RhbFByaWNlU3RhdHVzOiAnRklOQUwnLFxyXG4gICAgICAgICAgLy8gICAgIHRvdGFsUHJpY2U6IHRvdGFsUHJpY2UsXHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICAvLyB2ZW5tbzoge1xyXG4gICAgICAgICAgLy8gICBhbGxvd05ld0Jyb3dzZXJUYWI6IGZhbHNlXHJcbiAgICAgICAgICAvLyB9LFxyXG4gICAgICAgICAgZGF0YUNvbGxlY3RvcjogdHJ1ZVxyXG4gICAgICAgIH0sIGZ1bmN0aW9uKGNyZWF0ZUVyciwgaW5zdGFuY2UpIHtcclxuICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGF0LmJyYWludHJlZUluc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICAgICAgICAgIGluc3RhbmNlLl9kYXRhQ29sbGVjdG9yLl9pbnN0YW5jZS5nZXREZXZpY2VEYXRhKCkudGhlbigoZGV2aWNlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoYXQuZGV2aWNlRGF0YSA9IGRldmljZURhdGE7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhhdC5ucy5lcnJvcignQ3JlZGl0IENhcmQgUGF5bWVudCBpcyBmYWNpbmcgaXNzdWVzLiBQbGVhc2UgdHJ5IG90aGVyIHBheW1lbnQgbWV0aG9kcy4nKVxyXG4gICAgICAgICAgICB0aGF0LmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0UGF5bWVudChwYXlsb2FkKSB7XHJcbiAgICB0aGlzLnBzLnBheSh0aGlzLnBhaWRGb3IsIHBheWxvYWQubm9uY2UsICdDT01QTEVURUQnLCB0aGlzLmRldmljZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICBzdXBlci5jbG9zZSgpO1xyXG4gICAgdGhpcy5icmFpbnRyZWVJbnN0YW5jZSA9IG51bGw7XHJcbiAgfVxyXG5cclxuICAvL0V2ZW50c1xyXG4gIG9uUGF5KCkge1xyXG4gICAgaWYgKHRoaXMuYnJhaW50cmVlSW5zdGFuY2UgJiYgdGhpcy5kZXZpY2VEYXRhKSB7XHJcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgICB0aGlzLmJyYWludHJlZUluc3RhbmNlLnJlcXVlc3RQYXltZW50TWV0aG9kKGZ1bmN0aW9uKHJlcXVlc3RQYXltZW50RXJyLCBwYXlsb2FkKSB7XHJcbiAgICAgICAgdGhhdC5zdWJtaXRQYXltZW50KHBheWxvYWQpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xvc2UoKSB7XHJcbiAgICBjb25zdCBjbG9zZURpYWxvZyA9IHRoaXMuY2xvc2VEaWFsb2c7XHJcblxyXG4gICAgaWYgKHRoaXMuYnJhaW50cmVlSW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5icmFpbnRyZWVJbnN0YW5jZS50ZWFyZG93bihmdW5jdGlvbihlcnIpIHtcclxuICAgICAgICBjbG9zZURpYWxvZygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB2aXNpYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuICYmIHRoaXMucHMuZ2V0VG90YWwoKSA+IDA7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAodmlzaWJsZSkge1xyXG4gIDxkaXYgY2xhc3M9J3NlbmQtbWVzc2FnZV9fa2VuZG8tZGlhbG9nJz5cclxuICAgIDxrZW5kby1kaWFsb2cgW3dpZHRoXT0nNDgwJyBbaGVpZ2h0XT0nNTYwJyBbdGhlbWVDb2xvcl09J3RoZW1lQ29sb3InIChjbG9zZSk9J29uQ2xvc2UoKSc+XHJcbiAgICAgIDxrZW5kby1kaWFsb2ctdGl0bGViYXI+UGF5IHdpdGggQ3JlZGl0IENhcmQ8L2tlbmRvLWRpYWxvZy10aXRsZWJhcj5cclxuICAgICAgPGRpdiBjbGFzcz0na2VuZG8tZGlhbG9nLWNvbnRlbnQnPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJicmFpbnRyZWUtY29udGFpbmVyXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8a2VuZG8tZGlhbG9nLWFjdGlvbnMgbGF5b3V0PSdlbmQnPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9J2J0biBidG4tc20gYnRuLXN1Y2Nlc3MnIHR5cGU9J2J1dHRvbicgKGNsaWNrKT0nb25QYXkoKSc+UGF5PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz0nYnRuIGJ0bi1zbSBidG4tZGFuZ2VyJyB0eXBlPSdidXR0b24nICAoY2xpY2spPSdvbkNsb3NlKCknPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPC9rZW5kby1kaWFsb2c+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
@@ -1,22 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim.osovitny@osovitny.com
8
-
9
- Created:
10
- 11 Nov 2024
11
-
12
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
13
- </file>
14
- */
15
- //braintree
16
- export * from './braintree/braintree.component';
17
- //paypal
18
- export * from './paypal/paypal-button.component';
19
- export * from './paypal/paypal.component';
20
- //stripe
21
- export * from './stripe/stripe.component';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL3BheW1lbnRzL2NvbXBvbmVudHMvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsV0FBVztBQUNYLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsUUFBUTtBQUNSLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxRQUFRO0FBQ1IsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMSBOb3YgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vYnJhaW50cmVlXHJcbmV4cG9ydCAqIGZyb20gJy4vYnJhaW50cmVlL2JyYWludHJlZS5jb21wb25lbnQnO1xyXG5cclxuLy9wYXlwYWxcclxuZXhwb3J0ICogZnJvbSAnLi9wYXlwYWwvcGF5cGFsLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BheXBhbC9wYXlwYWwuY29tcG9uZW50JztcclxuXHJcbi8vc3RyaXBlXHJcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXBlL3N0cmlwZS5jb21wb25lbnQnO1xyXG5cclxuIl19
@@ -1,25 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim.osovitny@osovitny.com
8
-
9
- Created:
10
- 8 Nov 2024
11
-
12
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
13
- </file>
14
- */
15
- import { PaypalButtonComponent, PayPalComponent,
16
- //Dialogs
17
- BraintreeDialog, StripeDialog } from './exports';
18
- export const PAYMENTS_COMPONENTS = [
19
- PaypalButtonComponent,
20
- PayPalComponent,
21
- //Dialogs
22
- BraintreeDialog,
23
- StripeDialog
24
- ];
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9wYXltZW50cy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0VBYUU7QUFFRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWU7QUFFZixTQUFTO0FBQ1QsZUFBZSxFQUNmLFlBQVksRUFDYixNQUFNLFdBQVcsQ0FBQztBQUVuQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxxQkFBcUI7SUFDckIsZUFBZTtJQUVmLFNBQVM7SUFDVCxlQUFlO0lBQ2YsWUFBWTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgOCBOb3YgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgUGF5cGFsQnV0dG9uQ29tcG9uZW50LFxyXG4gIFBheVBhbENvbXBvbmVudCxcclxuXHJcbiAgLy9EaWFsb2dzXHJcbiAgQnJhaW50cmVlRGlhbG9nLFxyXG4gIFN0cmlwZURpYWxvZ1xyXG59IGZyb20gJy4vZXhwb3J0cyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFZTUVOVFNfQ09NUE9ORU5UUyA9IFtcclxuICBQYXlwYWxCdXR0b25Db21wb25lbnQsXHJcbiAgUGF5UGFsQ29tcG9uZW50LFxyXG5cclxuICAvL0RpYWxvZ3NcclxuICBCcmFpbnRyZWVEaWFsb2csXHJcbiAgU3RyaXBlRGlhbG9nXHJcbl07XHJcbiJdfQ==
@@ -1,157 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- Atlas Cross
5
-
6
- Authors:
7
- Vadim Osovitny vadim.osovitny@osovitny.com
8
-
9
- Created:
10
- 14 Jun 2024
11
-
12
- Description:
13
- https://github.com/braintree/braintree-web-drop-in/issues/433
14
- It's impossible to trigger the paypal flow programmatically, as opening a popup window must be as a result of
15
- a direct user action. If it is not, the browser will usually block it.
16
-
17
- https://stackoverflow.com/questions/43276570/trigger-paypal-checkout-button-click
18
- This isn't something that's supported by the PayPal button right now. The official policy is, only a click on the button
19
- itself should open a checkout window.
20
-
21
- shipping_preference:
22
- https://developer.paypal.com/docs/api/payments/v1/?mark=shipping_preference%20#definition-application_context
23
-
24
- Copyright (c) 2023-2024 Atlas Cross Inc. All rights reserved.
25
- </file>
26
- */
27
- //Node
28
- import { Component, Input } from '@angular/core';
29
- //App
30
- import { AppCoreSettings } from '../../../../core/consts/core-settings';
31
- import { ComponentBase } from '../../../../ui/components/base/components/component';
32
- import { PaymentMethod, PaymentStage } from '../../../../core/enums/billing';
33
- import * as i0 from "@angular/core";
34
- import * as i1 from "../../services/payments.service";
35
- import * as i2 from "./paypal.component";
36
- function PaypalButtonComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelement(0, "anatoly-payments-paypal-container", 0);
38
- } if (rf & 2) {
39
- const ctx_r0 = i0.ɵɵnextContext();
40
- i0.ɵɵproperty("config", ctx_r0.payPalConfig);
41
- } }
42
- export class PaypalButtonComponent extends ComponentBase {
43
- constructor(ps) {
44
- super();
45
- this.ps = ps;
46
- this.paidForTitle = 'Payment for Prodiuct';
47
- }
48
- ngOnInit() {
49
- this.setDefaults();
50
- this.setValues();
51
- }
52
- setDefaults() {
53
- }
54
- setValues() {
55
- this.initPayPal();
56
- this.ps.discountCodeApplied$.subscribe((data) => {
57
- this.initPayPal();
58
- });
59
- }
60
- initPayPal() {
61
- let that = this;
62
- let clientId = AppCoreSettings.external.pm.payPal.clientId;
63
- let totalPrice = this.ps.getTotal().toString();
64
- let currency = this.ps.currency;
65
- this.payPalConfig = {
66
- currency: currency,
67
- clientId: clientId,
68
- advanced: {
69
- commit: 'true',
70
- extraQueryParams: [
71
- {
72
- name: "disable-funding",
73
- value: "credit,card"
74
- }
75
- ]
76
- },
77
- style: {
78
- color: 'white'
79
- },
80
- createOrderOnClient: (data) => ({
81
- intent: 'CAPTURE',
82
- application_context: {
83
- shipping_preference: "NO_SHIPPING"
84
- },
85
- purchase_units: [
86
- {
87
- amount: {
88
- currency_code: currency,
89
- value: totalPrice,
90
- breakdown: {
91
- item_total: {
92
- currency_code: currency,
93
- value: totalPrice
94
- }
95
- }
96
- },
97
- items: [
98
- {
99
- name: this.paidForTitle,
100
- quantity: '1',
101
- category: 'DIGITAL_GOODS',
102
- unit_amount: {
103
- currency_code: currency,
104
- value: totalPrice
105
- },
106
- }
107
- ]
108
- }
109
- ]
110
- }),
111
- onApprove: (data, actions) => {
112
- return actions.order.capture().then(function (orderData) {
113
- try {
114
- let payment = orderData.purchase_units[0].payments.captures[0];
115
- let paymentId = payment.id;
116
- let status = payment.status;
117
- let amount = payment.amount.value;
118
- let currencyCode = payment.amount.currency_code;
119
- let details = JSON.stringify(orderData);
120
- that.ps.pay(that.paidFor, paymentId, status, details);
121
- }
122
- catch {
123
- that.ps.paymentFailed(PaymentStage.External);
124
- }
125
- });
126
- },
127
- onCancel: (data, actions) => {
128
- that.ps.paymentInProgress = false;
129
- },
130
- onError: err => {
131
- that.ps.paymentInProgress = false;
132
- },
133
- onClick: (data, actions) => {
134
- that.ps.paymentInProgress = true;
135
- }
136
- };
137
- }
138
- get visible() {
139
- return this.ps.selectedPaymentMethod == PaymentMethod.PayPal && this.ps.getTotal() > 0;
140
- }
141
- static { this.ɵfac = function PaypalButtonComponent_Factory(t) { return new (t || PaypalButtonComponent)(i0.ɵɵdirectiveInject(i1.PaymentsService)); }; }
142
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaypalButtonComponent, selectors: [["anatoly-payments-paypal-button"]], inputs: { paidForTitle: "paidForTitle", paidFor: "paidFor" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "config"]], template: function PaypalButtonComponent_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵtemplate(0, PaypalButtonComponent_Conditional_0_Template, 1, 1, "anatoly-payments-paypal-container", 0);
144
- } if (rf & 2) {
145
- i0.ɵɵconditional(0, ctx.visible ? 0 : -1);
146
- } }, dependencies: [i2.PayPalComponent], encapsulation: 2 }); }
147
- }
148
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaypalButtonComponent, [{
149
- type: Component,
150
- args: [{ selector: 'anatoly-payments-paypal-button', template: "@if (visible) {\r\n <anatoly-payments-paypal-container [config]='payPalConfig' />\r\n}\r\n" }]
151
- }], () => [{ type: i1.PaymentsService }], { paidForTitle: [{
152
- type: Input
153
- }], paidFor: [{
154
- type: Input
155
- }] }); })();
156
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaypalButtonComponent, { className: "PaypalButtonComponent", filePath: "lib\\billing\\payments\\components\\paypal\\paypal-button.component.ts", lineNumber: 42 }); })();
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5cGFsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9wYXltZW50cy9jb21wb25lbnRzL3BheXBhbC9wYXlwYWwtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL3BheW1lbnRzL2NvbXBvbmVudHMvcGF5cGFsL3BheXBhbC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsS0FBSztBQUNMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFFcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7SUNqQzNFLHVEQUE2RDs7O0lBQTFCLDRDQUF1Qjs7QUR3QzVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTXRELFlBQW1CLEVBQW1CO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFMsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFIN0IsaUJBQVksR0FBRyxzQkFBc0IsQ0FBQztJQUsvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLFdBQVc7SUFDbkIsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxD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QU8sRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUNwQyxDQUFDO1lBRUQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6RixDQUFDO3NGQW5IVSxxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQ3pDbEMsNEdBRUM7O1lBRkQseUNBRUM7OztpRkR1Q1kscUJBQXFCO2NBSmpDLFNBQVM7MkJBQ0UsZ0NBQWdDO2dEQU1qQyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLOztrRkFKSyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQXRsYXMgQ3Jvc3NcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTQgSnVuIDIwMjRcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vYnJhaW50cmVlL2JyYWludHJlZS13ZWItZHJvcC1pbi9pc3N1ZXMvNDMzXHJcbiAgICBJdCdzIGltcG9zc2libGUgdG8gdHJpZ2dlciB0aGUgcGF5cGFsIGZsb3cgcHJvZ3JhbW1hdGljYWxseSwgYXMgb3BlbmluZyBhIHBvcHVwIHdpbmRvdyBtdXN0IGJlIGFzIGEgcmVzdWx0IG9mXHJcbiAgICBhIGRpcmVjdCB1c2VyIGFjdGlvbi4gSWYgaXQgaXMgbm90LCB0aGUgYnJvd3NlciB3aWxsIHVzdWFsbHkgYmxvY2sgaXQuXHJcblxyXG4gICAgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMyNzY1NzAvdHJpZ2dlci1wYXlwYWwtY2hlY2tvdXQtYnV0dG9uLWNsaWNrXHJcbiAgICBUaGlzIGlzbid0IHNvbWV0aGluZyB0aGF0J3Mgc3VwcG9ydGVkIGJ5IHRoZSBQYXlQYWwgYnV0dG9uIHJpZ2h0IG5vdy4gVGhlIG9mZmljaWFsIHBvbGljeSBpcywgb25seSBhIGNsaWNrIG9uIHRoZSBidXR0b25cclxuICAgIGl0c2VsZiBzaG91bGQgb3BlbiBhIGNoZWNrb3V0IHdpbmRvdy5cclxuXHJcbiAgICBzaGlwcGluZ19wcmVmZXJlbmNlOlxyXG4gICAgaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS9wYXltZW50cy92MS8/bWFyaz1zaGlwcGluZ19wcmVmZXJlbmNlJTIwI2RlZmluaXRpb24tYXBwbGljYXRpb25fY29udGV4dFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMjMtMjAyNCBBdGxhcyBDcm9zcyBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcHBDb3JlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2NvbnN0cy9jb3JlLXNldHRpbmdzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpL2NvbXBvbmVudHMvYmFzZS9jb21wb25lbnRzL2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBheW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXltZW50TWV0aG9kLCBQYXltZW50U3RhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2VudW1zL2JpbGxpbmcnO1xyXG5pbXBvcnQgeyBJQ3JlYXRlT3JkZXJSZXF1ZXN0LCBJUGF5UGFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3BheXBhbC1tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LXBheW1lbnRzLXBheXBhbC1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXlwYWwtYnV0dG9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGF5cGFsQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7XHJcbiAgcGF5UGFsQ29uZmlnPzogSVBheVBhbENvbmZpZztcclxuXHJcbiAgQElucHV0KCkgcGFpZEZvclRpdGxlID0gJ1BheW1lbnQgZm9yIFByb2RpdWN0JztcclxuICBASW5wdXQoKSBwYWlkRm9yO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcHM6IFBheW1lbnRzU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXREZWZhdWx0cygpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdHMoKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlcygpIHtcclxuICAgIHRoaXMuaW5pdFBheVBhbCgpO1xyXG5cclxuICAgIHRoaXMucHMuZGlzY291bnRDb2RlQXBwbGllZCQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdFBheVBhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRQYXlQYWwoKSB7XHJcbiAgICBsZXQgdGhhdCA9IHRoaXM7XHJcbiAgICBsZXQgY2xpZW50SWQgPSBBcHBDb3JlU2V0dGluZ3MuZXh0ZXJuYWwucG0ucGF5UGFsLmNsaWVudElkO1xyXG4gICAgbGV0IHRvdGFsUHJpY2UgPSB0aGlzLnBzLmdldFRvdGFsKCkudG9TdHJpbmcoKTtcclxuICAgIGxldCBjdXJyZW5jeSA9IHRoaXMucHMuY3VycmVuY3k7XHJcblxyXG4gICAgdGhpcy5wYXlQYWxDb25maWcgPSB7XHJcbiAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcclxuICAgICAgY2xpZW50SWQ6IGNsaWVudElkLFxyXG4gICAgICBhZHZhbmNlZDoge1xyXG4gICAgICAgIGNvbW1pdDogJ3RydWUnLFxyXG4gICAgICAgIGV4dHJhUXVlcnlQYXJhbXM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogXCJkaXNhYmxlLWZ1bmRpbmdcIixcclxuICAgICAgICAgICAgdmFsdWU6IFwiY3JlZGl0LGNhcmRcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAgc3R5bGU6IHtcclxuICAgICAgICBjb2xvcjogJ3doaXRlJ1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgY3JlYXRlT3JkZXJPbkNsaWVudDogKGRhdGEpID0+IDxJQ3JlYXRlT3JkZXJSZXF1ZXN0PntcclxuICAgICAgICBpbnRlbnQ6ICdDQVBUVVJFJyxcclxuICAgICAgICBhcHBsaWNhdGlvbl9jb250ZXh0OiB7XHJcbiAgICAgICAgICBzaGlwcGluZ19wcmVmZXJlbmNlOiBcIk5PX1NISVBQSU5HXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIHB1cmNoYXNlX3VuaXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFtb3VudDoge1xyXG4gICAgICAgICAgICAgIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5LFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB0b3RhbFByaWNlLFxyXG4gICAgICAgICAgICAgIGJyZWFrZG93bjoge1xyXG4gICAgICAgICAgICAgICAgaXRlbV90b3RhbDoge1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW5jeV9jb2RlOiBjdXJyZW5jeSxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvdGFsUHJpY2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5wYWlkRm9yVGl0bGUsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogJzEnLFxyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdESUdJVEFMX0dPT0RTJyxcclxuICAgICAgICAgICAgICAgIHVuaXRfYW1vdW50OiB7XHJcbiAgICAgICAgICAgICAgICAgIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5LFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdG90YWxQcmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBvbkFwcHJvdmU6IChkYXRhLCBhY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGFjdGlvbnMub3JkZXIuY2FwdHVyZSgpLnRoZW4oZnVuY3Rpb24gKG9yZGVyRGF0YSkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHBheW1lbnQgPSBvcmRlckRhdGEucHVyY2hhc2VfdW5pdHNbMF0ucGF5bWVudHMuY2FwdHVyZXNbMF07XHJcbiAgICAgICAgICAgIGxldCBwYXltZW50SWQgPSBwYXltZW50LmlkO1xyXG4gICAgICAgICAgICBsZXQgc3RhdHVzID0gcGF5bWVudC5zdGF0dXM7XHJcbiAgICAgICAgICAgIGxldCBhbW91bnQgPSBwYXltZW50LmFtb3VudC52YWx1ZTtcclxuICAgICAgICAgICAgbGV0IGN1cnJlbmN5Q29kZSA9IHBheW1lbnQuYW1vdW50LmN1cnJlbmN5X2NvZGU7XHJcbiAgICAgICAgICAgIGxldCBkZXRhaWxzID0gSlNPTi5zdHJpbmdpZnkob3JkZXJEYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoYXQucHMucGF5KHRoYXQucGFpZEZvciwgcGF5bWVudElkLCBzdGF0dXMsIGRldGFpbHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2hcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGhhdC5wcy5wYXltZW50RmFpbGVkKFBheW1lbnRTdGFnZS5FeHRlcm5hbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBvbkNhbmNlbDogKGRhdGEsIGFjdGlvbnMpID0+IHtcclxuICAgICAgICB0aGF0LnBzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBvbkVycm9yOiBlcnIgPT4ge1xyXG4gICAgICAgIHRoYXQucHMucGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIG9uQ2xpY2s6IChkYXRhLCBhY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgdGhhdC5wcy5wYXltZW50SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcy5zZWxlY3RlZFBheW1lbnRNZXRob2QgPT0gUGF5bWVudE1ldGhvZC5QYXlQYWwgJiYgdGhpcy5wcy5nZXRUb3RhbCgpID4gMDtcclxuICB9XHJcbn1cclxuIiwiQGlmICh2aXNpYmxlKSB7XHJcbiAgPGFuYXRvbHktcGF5bWVudHMtcGF5cGFsLWNvbnRhaW5lciBbY29uZmlnXT0ncGF5UGFsQ29uZmlnJyAvPlxyXG59XHJcbiJdfQ==