@osovitny/anatoly 3.17.78 → 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 (31) 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/esm2022/lib/core/exports.mjs +2 -1
  11. package/fesm2022/osovitny-anatoly.mjs +44 -47
  12. package/fesm2022/osovitny-anatoly.mjs.map +1 -1
  13. package/lib/billing/billing.module.d.ts +4 -4
  14. package/lib/billing/{payments/components → components}/braintree/braintree.component.d.ts +3 -3
  15. package/lib/billing/components/index.d.ts +2 -0
  16. package/lib/billing/{payments/components → components}/paypal/paypal-button.component.d.ts +3 -3
  17. package/lib/billing/{payments/components → components}/paypal/paypal.component.d.ts +3 -3
  18. package/lib/billing/{payments/components → components}/stripe/stripe.component.d.ts +2 -2
  19. package/lib/billing/exports.d.ts +2 -2
  20. package/lib/billing/{payments/services → services}/payments.service.d.ts +4 -4
  21. package/lib/core/exports.d.ts +1 -0
  22. package/package.json +1 -1
  23. package/esm2022/lib/billing/payments/components/braintree/braintree.component.mjs +0 -155
  24. package/esm2022/lib/billing/payments/components/exports.mjs +0 -22
  25. package/esm2022/lib/billing/payments/components/index.mjs +0 -25
  26. package/esm2022/lib/billing/payments/components/paypal/paypal-button.component.mjs +0 -157
  27. package/esm2022/lib/billing/payments/components/paypal/paypal.component.mjs +0 -316
  28. package/esm2022/lib/billing/payments/components/stripe/stripe.component.mjs +0 -109
  29. package/esm2022/lib/billing/payments/services/payments.service.mjs +0 -173
  30. package/lib/billing/payments/components/index.d.ts +0 -2
  31. /package/lib/billing/{payments/components → components}/exports.d.ts +0 -0
@@ -22,21 +22,19 @@ import { KendoModule } from '../external/kendo.module';
22
22
  //App
23
23
  import { ScriptService } from '../core/services/script.service';
24
24
  import { PayPalScriptService } from './services/paypal-script.service';
25
- //Payments
26
- import { PAYMENTS_COMPONENTS } from './payments/components';
27
- import { PaymentsService } from './payments/services/payments.service';
25
+ import { PaymentsService } from './services/payments.service';
26
+ import { COMPONENTS } from './components';
28
27
  import * as i0 from "@angular/core";
29
- import * as i1 from "./payments/components/paypal/paypal-button.component";
30
- import * as i2 from "./payments/components/paypal/paypal.component";
31
- import * as i3 from "./payments/components/braintree/braintree.component";
32
- import * as i4 from "./payments/components/stripe/stripe.component";
28
+ import * as i1 from "./components/paypal/paypal-button.component";
29
+ import * as i2 from "./components/paypal/paypal.component";
30
+ import * as i3 from "./components/braintree/braintree.component";
31
+ import * as i4 from "./components/stripe/stripe.component";
33
32
  export class AnatolyBillingModule {
34
33
  static { this.ɵfac = function AnatolyBillingModule_Factory(t) { return new (t || AnatolyBillingModule)(); }; }
35
34
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyBillingModule }); }
36
35
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
37
36
  ScriptService,
38
37
  PayPalScriptService,
39
- //Payments
40
38
  PaymentsService
41
39
  ], imports: [CommonModule,
42
40
  FaModule,
@@ -51,15 +49,14 @@ export class AnatolyBillingModule {
51
49
  KendoModule
52
50
  ],
53
51
  declarations: [
54
- PAYMENTS_COMPONENTS
52
+ COMPONENTS
55
53
  ],
56
54
  exports: [
57
- PAYMENTS_COMPONENTS
55
+ COMPONENTS
58
56
  ],
59
57
  providers: [
60
58
  ScriptService,
61
59
  PayPalScriptService,
62
- //Payments
63
60
  PaymentsService
64
61
  ]
65
62
  }]
@@ -67,4 +64,4 @@ export class AnatolyBillingModule {
67
64
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyBillingModule, { declarations: [i1.PaypalButtonComponent, i2.PayPalComponent, i3.BraintreeDialog, i4.StripeDialog], imports: [CommonModule,
68
65
  FaModule,
69
66
  KendoModule], exports: [i1.PaypalButtonComponent, i2.PayPalComponent, i3.BraintreeDialog, i4.StripeDialog] }); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9iaWxsaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV0RCxLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXZFLFVBQVU7QUFDVixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQXVCdkUsTUFBTSxPQUFPLG9CQUFvQjtxRkFBcEIsb0JBQW9CO21FQUFwQixvQkFBb0I7d0VBUnBCO1lBQ1QsYUFBYTtZQUNiLG1CQUFtQjtZQUVuQixVQUFVO1lBQ1YsZUFBZTtTQUNoQixZQWpCQyxZQUFZO1lBRVosUUFBUTtZQUNSLFdBQVc7O2lGQWdCRixvQkFBb0I7Y0FyQmhDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFFWixRQUFRO29CQUNSLFdBQVc7aUJBQ1o7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGFBQWE7b0JBQ2IsbUJBQW1CO29CQUVuQixVQUFVO29CQUNWLGVBQWU7aUJBQ2hCO2FBQ0Y7O3dGQUNZLG9CQUFvQixpSEFuQjdCLFlBQVk7UUFFWixRQUFRO1FBQ1IsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNCBKdW4gMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLy9FeHRlcm5hbCBNb2R1bGVzXHJcbmltcG9ydCB7IEZhTW9kdWxlIH0gZnJvbSAnLi4vZXh0ZXJuYWwvZmEubW9kdWxlJ1xyXG5pbXBvcnQgeyBLZW5kb01vZHVsZSB9IGZyb20gJy4uL2V4dGVybmFsL2tlbmRvLm1vZHVsZSdcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3NjcmlwdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGF5UGFsU2NyaXB0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcGF5cGFsLXNjcmlwdC5zZXJ2aWNlJztcclxuXHJcbi8vUGF5bWVudHNcclxuaW1wb3J0IHsgUEFZTUVOVFNfQ09NUE9ORU5UUyB9IGZyb20gJy4vcGF5bWVudHMvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFBheW1lbnRzU2VydmljZSB9IGZyb20gJy4vcGF5bWVudHMvc2VydmljZXMvcGF5bWVudHMuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuXHJcbiAgICBGYU1vZHVsZSxcclxuICAgIEtlbmRvTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFBBWU1FTlRTX0NPTVBPTkVOVFNcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFBBWU1FTlRTX0NPTVBPTkVOVFNcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgU2NyaXB0U2VydmljZSxcclxuICAgIFBheVBhbFNjcmlwdFNlcnZpY2UsXHJcblxyXG4gICAgLy9QYXltZW50c1xyXG4gICAgUGF5bWVudHNTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUJpbGxpbmdNb2R1bGUge1xyXG59XHJcbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9iaWxsaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV0RCxLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFxQjFDLE1BQU0sT0FBTyxvQkFBb0I7cUZBQXBCLG9CQUFvQjttRUFBcEIsb0JBQW9CO3dFQU5wQjtZQUNULGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZUFBZTtTQUNoQixZQWZDLFlBQVk7WUFFWixRQUFRO1lBQ1IsV0FBVzs7aUZBY0Ysb0JBQW9CO2NBbkJoQyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBRVosUUFBUTtvQkFDUixXQUFXO2lCQUNaO2dCQUNELFlBQVksRUFBRTtvQkFDWixVQUFVO2lCQUNYO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxVQUFVO2lCQUNYO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsZUFBZTtpQkFDaEI7YUFDRjs7d0ZBQ1ksb0JBQW9CLGlIQWpCN0IsWUFBWTtRQUVaLFFBQVE7UUFDUixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE0IEp1biAyMDI0XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vL0V4dGVybmFsIE1vZHVsZXNcclxuaW1wb3J0IHsgRmFNb2R1bGUgfSBmcm9tICcuLi9leHRlcm5hbC9mYS5tb2R1bGUnXHJcbmltcG9ydCB7IEtlbmRvTW9kdWxlIH0gZnJvbSAnLi4vZXh0ZXJuYWwva2VuZG8ubW9kdWxlJ1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgU2NyaXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXlQYWxTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wYXlwYWwtc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXltZW50c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDT01QT05FTlRTIH0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG5cclxuICAgIEZhTW9kdWxlLFxyXG4gICAgS2VuZG9Nb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ09NUE9ORU5UU1xyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ09NUE9ORU5UU1xyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTY3JpcHRTZXJ2aWNlLFxyXG4gICAgUGF5UGFsU2NyaXB0U2VydmljZSxcclxuICAgIFBheW1lbnRzU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlCaWxsaW5nTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,155 @@
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-billing-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-billing-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\\components\\braintree\\braintree.component.ts", lineNumber: 32 }); })();
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhaW50cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL2NvbXBvbmVudHMvYnJhaW50cmVlL2JyYWludHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9jb21wb25lbnRzL2JyYWludHJlZS9icmFpbnRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxLQUFLO0FBQ0wsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0lDdEI5RCw4QkFBd0Msc0JBQUE7SUFDK0IsMEtBQVMsZUFBQSxnQkFBUyxDQUFBLElBQUM7SUFDdEYsNkNBQXVCO0lBQUEsb0NBQW9CO0lBQUEsaUJBQXdCO0lBQ25FLDhCQUFrQztJQUNoQyx5QkFBb0M7SUFDdEMsaUJBQU07SUFDTiwrQ0FBbUMsZ0JBQUE7SUFDb0Isb0tBQVMsZUFBQSxjQUFPLENBQUEsSUFBQztJQUFDLG1CQUFHO0lBQUEsaUJBQVM7SUFDbkYsaUNBQXlFO0lBQXBCLG9LQUFTLGVBQUEsZ0JBQVMsQ0FBQSxJQUFDO0lBQUMsdUJBQU07SUFBQSxpQkFBUyxFQUFBLEVBQUEsRUFBQTs7O0lBUDlFLGNBQWE7SUFBYiwyQkFBYSxlQUFBLGlDQUFBOztBRDZCL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQVM3QyxZQUNTLEVBQW1CLEVBQ2xCLEVBQXVCO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBRkQsT0FBRSxHQUFGLEVB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QVcsRUFBRSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUNJLENBQUM7WUFDSixXQUFXLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztnRkF2R1UsZUFBZTtvRUFBZixlQUFlO1lDL0I1Qix5RUFhQzs7WUFiRCx5Q0FhQzs7O2lGRGtCWSxlQUFlO2NBSjNCLFNBQVM7MkJBQ0Usa0NBQWtDO2tGQU9uQyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLOztrRkFQSyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBEaHJ1diBBZ2Fyd2FsIGRocnV2LmFnYXJ3YWxAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNCBBdWcgMjAyNFxyXG5cclxuICBEZXNjcmlwdGlvbjpcclxuICAgIENyZWRpdCBDYXJkIHBheW1lbnQgZm9ybSB2aWEgYnJhaW50cmVlIGludGVncmF0aW9uXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgZHJvcGluIGZyb20gJ2JyYWludHJlZS13ZWItZHJvcC1pbic7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBEaWFsb2dCYXNlIH0gZnJvbSAnLi4vLi4vLi4vdWkvY29tcG9uZW50cy9iYXNlL2RpYWxvZyc7XHJcbmltcG9ydCB7IFBheW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1iaWxsaW5nLWJyYWludHJlZS1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9icmFpbnRyZWUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcmFpbnRyZWVEaWFsb2cgZXh0ZW5kcyBEaWFsb2dCYXNlIHtcclxuICBicmFpbnRyZWVJbnN0YW5jZTogYW55O1xyXG4gIGRldmljZURhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgcGFpZEZvcjtcclxuICBASW5wdXQoKSB0aXRsZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbjtcclxuICBASW5wdXQoKSBpbWFnZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcHM6IFBheW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlcygpIHtcclxuICAgIHRoaXMucHMuc2hvd0JyYWludHJlZURpYWxvZyQuc3Vic2NyaWJlKChpc09wZW4pID0+IHtcclxuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVFbWJlZEZvcm0oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUVtYmVkRm9ybSgpIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgLy8gbGV0IHRvdGFsUHJpY2UgPSB0aGlzLmJzLmdldFRvdGFsKCkudG9TdHJpbmcoKTtcclxuICAgIC8vIGxldCBjdXJyZW5jeSA9IHRoaXMuYnMuY3VycmVuY3k7XHJcblxyXG4gICAgdGhpcy5wcy5jcmVhdGVCcmFpbnRyZWVUb2tlbigpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYocmVzcG9uc2U/LnRva2VuKSB7XHJcbiAgICAgICAgZHJvcGluLmNyZWF0ZSh7XHJcbiAgICAgICAgICBhdXRob3JpemF0aW9uOiByZXNwb25zZT8udG9rZW4sXHJcbiAgICAgICAgICBjb250YWluZXI6ICcjYnJhaW50cmVlLWNvbnRhaW5lcicsXHJcbiAgICAgICAgICBjYXJkOiB7XHJcbiAgICAgICAgICAgIGNhcmRob2xkZXJOYW1lOiB0cnVlXHJcbiAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgIC8vVU5DT01NRU5UIEJFTE9XIEZPUiBHT09HTEVQQVkgLyBWRU5NT1xyXG4gICAgICAgICAgLy8gZ29vZ2xlUGF5OiB7XHJcbiAgICAgICAgICAvLyAgIG1lcmNoYW50SWQ6ICcnLFxyXG4gICAgICAgICAgLy8gICB0cmFuc2FjdGlvbkluZm86IHtcclxuICAgICAgICAgIC8vICAgICBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5LFxyXG4gICAgICAgICAgLy8gICAgIHRvdGFsUHJpY2VTdGF0dXM6ICdGSU5BTCcsXHJcbiAgICAgICAgICAvLyAgICAgdG90YWxQcmljZTogdG90YWxQcmljZSxcclxuICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgLy8gfSxcclxuICAgICAgICAgIC8vIHZlbm1vOiB7XHJcbiAgICAgICAgICAvLyAgIGFsbG93TmV3QnJvd3NlclRhYjogZmFsc2VcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICBkYXRhQ29sbGVjdG9yOiB0cnVlXHJcbiAgICAgICAgfSwgZnVuY3Rpb24oY3JlYXRlRXJyLCBpbnN0YW5jZSkge1xyXG4gICAgICAgICAgaWYgKGluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHRoYXQuYnJhaW50cmVlSW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgICAgICAgICAgaW5zdGFuY2UuX2RhdGFDb2xsZWN0b3IuX2luc3RhbmNlLmdldERldmljZURhdGEoKS50aGVuKChkZXZpY2VEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhhdC5kZXZpY2VEYXRhID0gZGV2aWNlRGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGF0Lm5zLmVycm9yKCdDcmVkaXQgQ2FyZCBQYXltZW50IGlzIGZhY2luZyBpc3N1ZXMuIFBsZWFzZSB0cnkgb3RoZXIgcGF5bWVudCBtZXRob2RzLicpXHJcbiAgICAgICAgICAgIHRoYXQuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRQYXltZW50KHBheWxvYWQpIHtcclxuICAgIHRoaXMucHMucGF5KHRoaXMucGFpZEZvciwgcGF5bG9hZC5ub25jZSwgJ0NPTVBMRVRFRCcsIHRoaXMuZGV2aWNlRGF0YSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHN1cGVyLmNsb3NlKCk7XHJcbiAgICB0aGlzLmJyYWludHJlZUluc3RhbmNlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vRXZlbnRzXHJcbiAgb25QYXkoKSB7XHJcbiAgICBpZiAodGhpcy5icmFpbnRyZWVJbnN0YW5jZSAmJiB0aGlzLmRldmljZURhdGEpIHtcclxuICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcbiAgICAgIHRoaXMuYnJhaW50cmVlSW5zdGFuY2UucmVxdWVzdFBheW1lbnRNZXRob2QoZnVuY3Rpb24ocmVxdWVzdFBheW1lbnRFcnIsIHBheWxvYWQpIHtcclxuICAgICAgICB0aGF0LnN1Ym1pdFBheW1lbnQocGF5bG9hZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIGNvbnN0IGNsb3NlRGlhbG9nID0gdGhpcy5jbG9zZURpYWxvZztcclxuXHJcbiAgICBpZiAodGhpcy5icmFpbnRyZWVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLmJyYWludHJlZUluc3RhbmNlLnRlYXJkb3duKGZ1bmN0aW9uKGVycikge1xyXG4gICAgICAgIGNsb3NlRGlhbG9nKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc09wZW4gJiYgdGhpcy5wcy5nZXRUb3RhbCgpID4gMDtcclxuICB9XHJcbn1cclxuIiwiQGlmICh2aXNpYmxlKSB7XHJcbiAgPGRpdiBjbGFzcz0nc2VuZC1tZXNzYWdlX19rZW5kby1kaWFsb2cnPlxyXG4gICAgPGtlbmRvLWRpYWxvZyBbd2lkdGhdPSc0ODAnIFtoZWlnaHRdPSc1NjAnIFt0aGVtZUNvbG9yXT0ndGhlbWVDb2xvcicgKGNsb3NlKT0nb25DbG9zZSgpJz5cclxuICAgICAgPGtlbmRvLWRpYWxvZy10aXRsZWJhcj5QYXkgd2l0aCBDcmVkaXQgQ2FyZDwva2VuZG8tZGlhbG9nLXRpdGxlYmFyPlxyXG4gICAgICA8ZGl2IGNsYXNzPSdrZW5kby1kaWFsb2ctY29udGVudCc+XHJcbiAgICAgICAgPGRpdiBpZD1cImJyYWludHJlZS1jb250YWluZXJcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxrZW5kby1kaWFsb2ctYWN0aW9ucyBsYXlvdXQ9J2VuZCc+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz0nYnRuIGJ0bi1zbSBidG4tc3VjY2VzcycgdHlwZT0nYnV0dG9uJyAoY2xpY2spPSdvblBheSgpJz5QYXk8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPSdidG4gYnRuLXNtIGJ0bi1kYW5nZXInIHR5cGU9J2J1dHRvbicgIChjbGljayk9J29uQ2xvc2UoKSc+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgIDwva2VuZG8tZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8L2tlbmRvLWRpYWxvZz5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -0,0 +1,22 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL2NvbXBvbmVudHMvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsV0FBVztBQUNYLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsUUFBUTtBQUNSLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxRQUFRO0FBQ1IsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMSBOb3YgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vYnJhaW50cmVlXHJcbmV4cG9ydCAqIGZyb20gJy4vYnJhaW50cmVlL2JyYWludHJlZS5jb21wb25lbnQnO1xyXG5cclxuLy9wYXlwYWxcclxuZXhwb3J0ICogZnJvbSAnLi9wYXlwYWwvcGF5cGFsLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BheXBhbC9wYXlwYWwuY29tcG9uZW50JztcclxuXHJcbi8vc3RyaXBlXHJcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXBlL3N0cmlwZS5jb21wb25lbnQnO1xyXG5cclxuIl19
@@ -0,0 +1,25 @@
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 COMPONENTS = [
19
+ PaypalButtonComponent,
20
+ PayPalComponent,
21
+ //Dialogs
22
+ BraintreeDialog,
23
+ StripeDialog
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0VBYUU7QUFFRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWU7QUFFZixTQUFTO0FBQ1QsZUFBZSxFQUNmLFlBQVksRUFDYixNQUFNLFdBQVcsQ0FBQztBQUVuQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIscUJBQXFCO0lBQ3JCLGVBQWU7SUFFZixTQUFTO0lBQ1QsZUFBZTtJQUNmLFlBQVk7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDggTm92IDIwMjRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQge1xyXG4gIFBheXBhbEJ1dHRvbkNvbXBvbmVudCxcclxuICBQYXlQYWxDb21wb25lbnQsXHJcblxyXG4gIC8vRGlhbG9nc1xyXG4gIEJyYWludHJlZURpYWxvZyxcclxuICBTdHJpcGVEaWFsb2dcclxufSBmcm9tICcuL2V4cG9ydHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgUGF5cGFsQnV0dG9uQ29tcG9uZW50LFxyXG4gIFBheVBhbENvbXBvbmVudCxcclxuXHJcbiAgLy9EaWFsb2dzXHJcbiAgQnJhaW50cmVlRGlhbG9nLFxyXG4gIFN0cmlwZURpYWxvZ1xyXG5dO1xyXG4iXX0=
@@ -0,0 +1,157 @@
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-billing-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-billing-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-billing-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-billing-paypal-button', template: "@if (visible) {\r\n <anatoly-billing-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\\components\\paypal\\paypal-button.component.ts", lineNumber: 42 }); })();
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5cGFsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy9jb21wb25lbnRzL3BheXBhbC9wYXlwYWwtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL2NvbXBvbmVudHMvcGF5cGFsL3BheXBhbC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsS0FBSztBQUNMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7SUNqQ3hFLHNEQUE0RDs7O0lBQTFCLDRDQUF1Qjs7QUR3QzNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTXRELFlBQW1CLEVBQW1CO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFMsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFIN0IsaUJBQVksR0FBRyxzQkFBc0IsQ0FBQztJQUsvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLFdBQVc7SUFDbkIsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMzRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxNQUFNO2dCQUNkLGdCQUFnQixFQUFFO29CQUNoQjt3QkFDRSxJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixLQUFLLEVBQUUsYUFBYTtxQkFDckI7aUJBQ0Y7YUFDRjtZQUNELEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsT0FBTzthQUNmO1lBRUQsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQXFCO2dCQUNsRCxNQUFNLEVBQUUsU0FBUztnQkFDakIsbUJBQW1CLEVBQUU7b0JBQ25CLG1CQUFtQixFQUFFLGFBQWE7aUJBQ25DO2dCQUNELGNBQWMsRUFBRTtvQkFDZDt3QkFDRSxNQUFNLEVBQUU7NEJBQ04sYUFBYSxFQUFFLFFBQVE7NEJBQ3ZCLEtBQUssRUFBRSxVQUFVOzRCQUNqQixTQUFTLEVBQUU7Z0NBQ1QsVUFBVSxFQUFFO29DQUNWLGFBQWEsRUFBRSxRQUFRO29DQUN2QixLQUFLLEVBQUUsVUFBVTtpQ0FDbEI7NkJBQ0Y7eUJBQ0Y7d0JBQ0QsS0FBSyxFQUFFOzRCQUNMO2dDQUNFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtnQ0FDdkIsUUFBUSxFQUFFLEdBQUc7Z0NBQ2IsUUFBUSxFQUFFLGVBQWU7Z0NBQ3pCLFdBQVcsRUFBRTtvQ0FDWCxhQUFhLEVBQUUsUUFBUTtvQ0FDdkIsS0FBSyxFQUFFLFVBQVU7aUNBQ2xCOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQTtZQUVELFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDM0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLFNBQVM7b0JBQ3JELElBQUksQ0FBQzt3QkFDSCxJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQy9ELElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQzNCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQzVCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO3dCQUNsQyxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQzt3QkFDaEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFFeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN4RCxDQUFDO29CQUNELE1BQ0EsQ0FBQzt3QkFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQy9DLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUNwQyxDQUFDO1lBRUQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6RixDQUFDO3NGQW5IVSxxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQ3pDbEMsMkdBRUM7O1lBRkQseUNBRUM7OztpRkR1Q1kscUJBQXFCO2NBSmpDLFNBQVM7MkJBQ0UsK0JBQStCO2dEQU1oQyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLOztrRkFKSyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQXRsYXMgQ3Jvc3NcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTQgSnVuIDIwMjRcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vYnJhaW50cmVlL2JyYWludHJlZS13ZWItZHJvcC1pbi9pc3N1ZXMvNDMzXHJcbiAgICBJdCdzIGltcG9zc2libGUgdG8gdHJpZ2dlciB0aGUgcGF5cGFsIGZsb3cgcHJvZ3JhbW1hdGljYWxseSwgYXMgb3BlbmluZyBhIHBvcHVwIHdpbmRvdyBtdXN0IGJlIGFzIGEgcmVzdWx0IG9mXHJcbiAgICBhIGRpcmVjdCB1c2VyIGFjdGlvbi4gSWYgaXQgaXMgbm90LCB0aGUgYnJvd3NlciB3aWxsIHVzdWFsbHkgYmxvY2sgaXQuXHJcblxyXG4gICAgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMyNzY1NzAvdHJpZ2dlci1wYXlwYWwtY2hlY2tvdXQtYnV0dG9uLWNsaWNrXHJcbiAgICBUaGlzIGlzbid0IHNvbWV0aGluZyB0aGF0J3Mgc3VwcG9ydGVkIGJ5IHRoZSBQYXlQYWwgYnV0dG9uIHJpZ2h0IG5vdy4gVGhlIG9mZmljaWFsIHBvbGljeSBpcywgb25seSBhIGNsaWNrIG9uIHRoZSBidXR0b25cclxuICAgIGl0c2VsZiBzaG91bGQgb3BlbiBhIGNoZWNrb3V0IHdpbmRvdy5cclxuXHJcbiAgICBzaGlwcGluZ19wcmVmZXJlbmNlOlxyXG4gICAgaHR0cHM6Ly9kZXZlbG9wZXIucGF5cGFsLmNvbS9kb2NzL2FwaS9wYXltZW50cy92MS8/bWFyaz1zaGlwcGluZ19wcmVmZXJlbmNlJTIwI2RlZmluaXRpb24tYXBwbGljYXRpb25fY29udGV4dFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMjMtMjAyNCBBdGxhcyBDcm9zcyBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcHBDb3JlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnN0cy9jb3JlLXNldHRpbmdzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL3VpL2NvbXBvbmVudHMvYmFzZS9jb21wb25lbnRzL2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBheW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXltZW50TWV0aG9kLCBQYXltZW50U3RhZ2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW1zL2JpbGxpbmcnO1xyXG5pbXBvcnQgeyBJQ3JlYXRlT3JkZXJSZXF1ZXN0LCBJUGF5UGFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BheXBhbC1tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWJpbGxpbmctcGF5cGFsLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BheXBhbC1idXR0b24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXlwYWxCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHtcclxuICBwYXlQYWxDb25maWc/OiBJUGF5UGFsQ29uZmlnO1xyXG5cclxuICBASW5wdXQoKSBwYWlkRm9yVGl0bGUgPSAnUGF5bWVudCBmb3IgUHJvZGl1Y3QnO1xyXG4gIEBJbnB1dCgpIHBhaWRGb3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwczogUGF5bWVudHNTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldERlZmF1bHRzKCk7XHJcbiAgICB0aGlzLnNldFZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0cygpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzKCkge1xyXG4gICAgdGhpcy5pbml0UGF5UGFsKCk7XHJcblxyXG4gICAgdGhpcy5wcy5kaXNjb3VudENvZGVBcHBsaWVkJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5pbml0UGF5UGFsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFBheVBhbCgpIHtcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIGxldCBjbGllbnRJZCA9IEFwcENvcmVTZXR0aW5ncy5leHRlcm5hbC5wbS5wYXlQYWwuY2xpZW50SWQ7XHJcbiAgICBsZXQgdG90YWxQcmljZSA9IHRoaXMucHMuZ2V0VG90YWwoKS50b1N0cmluZygpO1xyXG4gICAgbGV0IGN1cnJlbmN5ID0gdGhpcy5wcy5jdXJyZW5jeTtcclxuXHJcbiAgICB0aGlzLnBheVBhbENvbmZpZyA9IHtcclxuICAgICAgY3VycmVuY3k6IGN1cnJlbmN5LFxyXG4gICAgICBjbGllbnRJZDogY2xpZW50SWQsXHJcbiAgICAgIGFkdmFuY2VkOiB7XHJcbiAgICAgICAgY29tbWl0OiAndHJ1ZScsXHJcbiAgICAgICAgZXh0cmFRdWVyeVBhcmFtczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiBcImRpc2FibGUtZnVuZGluZ1wiLFxyXG4gICAgICAgICAgICB2YWx1ZTogXCJjcmVkaXQsY2FyZFwiXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgICBzdHlsZToge1xyXG4gICAgICAgIGNvbG9yOiAnd2hpdGUnXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBjcmVhdGVPcmRlck9uQ2xpZW50OiAoZGF0YSkgPT4gPElDcmVhdGVPcmRlclJlcXVlc3Q+e1xyXG4gICAgICAgIGludGVudDogJ0NBUFRVUkUnLFxyXG4gICAgICAgIGFwcGxpY2F0aW9uX2NvbnRleHQ6IHtcclxuICAgICAgICAgIHNoaXBwaW5nX3ByZWZlcmVuY2U6IFwiTk9fU0hJUFBJTkdcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHVyY2hhc2VfdW5pdHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW1vdW50OiB7XHJcbiAgICAgICAgICAgICAgY3VycmVuY3lfY29kZTogY3VycmVuY3ksXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRvdGFsUHJpY2UsXHJcbiAgICAgICAgICAgICAgYnJlYWtkb3duOiB7XHJcbiAgICAgICAgICAgICAgICBpdGVtX3RvdGFsOiB7XHJcbiAgICAgICAgICAgICAgICAgIGN1cnJlbmN5X2NvZGU6IGN1cnJlbmN5LFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdG90YWxQcmljZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnBhaWRGb3JUaXRsZSxcclxuICAgICAgICAgICAgICAgIHF1YW50aXR5OiAnMScsXHJcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0RJR0lUQUxfR09PRFMnLFxyXG4gICAgICAgICAgICAgICAgdW5pdF9hbW91bnQ6IHtcclxuICAgICAgICAgICAgICAgICAgY3VycmVuY3lfY29kZTogY3VycmVuY3ksXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b3RhbFByaWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuXHJcbiAgICAgIG9uQXBwcm92ZTogKGRhdGEsIGFjdGlvbnMpID0+IHtcclxuICAgICAgICByZXR1cm4gYWN0aW9ucy5vcmRlci5jYXB0dXJlKCkudGhlbihmdW5jdGlvbiAob3JkZXJEYXRhKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgcGF5bWVudCA9IG9yZGVyRGF0YS5wdXJjaGFzZV91bml0c1swXS5wYXltZW50cy5jYXB0dXJlc1swXTtcclxuICAgICAgICAgICAgbGV0IHBheW1lbnRJZCA9IHBheW1lbnQuaWQ7XHJcbiAgICAgICAgICAgIGxldCBzdGF0dXMgPSBwYXltZW50LnN0YXR1cztcclxuICAgICAgICAgICAgbGV0IGFtb3VudCA9IHBheW1lbnQuYW1vdW50LnZhbHVlO1xyXG4gICAgICAgICAgICBsZXQgY3VycmVuY3lDb2RlID0gcGF5bWVudC5hbW91bnQuY3VycmVuY3lfY29kZTtcclxuICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBKU09OLnN0cmluZ2lmeShvcmRlckRhdGEpO1xyXG5cclxuICAgICAgICAgICAgdGhhdC5wcy5wYXkodGhhdC5wYWlkRm9yLCBwYXltZW50SWQsIHN0YXR1cywgZGV0YWlscyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aGF0LnBzLnBheW1lbnRGYWlsZWQoUGF5bWVudFN0YWdlLkV4dGVybmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIG9uQ2FuY2VsOiAoZGF0YSwgYWN0aW9ucykgPT4ge1xyXG4gICAgICAgIHRoYXQucHMucGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIG9uRXJyb3I6IGVyciA9PiB7XHJcbiAgICAgICAgdGhhdC5wcy5wYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgb25DbGljazogKGRhdGEsIGFjdGlvbnMpID0+IHtcclxuICAgICAgICB0aGF0LnBzLnBheW1lbnRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnBzLnNlbGVjdGVkUGF5bWVudE1ldGhvZCA9PSBQYXltZW50TWV0aG9kLlBheVBhbCAmJiB0aGlzLnBzLmdldFRvdGFsKCkgPiAwO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHZpc2libGUpIHtcclxuICA8YW5hdG9seS1iaWxsaW5nLXBheXBhbC1jb250YWluZXIgW2NvbmZpZ109J3BheVBhbENvbmZpZycgLz5cclxufVxyXG4iXX0=