@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.
- package/esm2022/lib/billing/billing.module.mjs +9 -12
- package/esm2022/lib/billing/components/braintree/braintree.component.mjs +155 -0
- package/esm2022/lib/billing/components/exports.mjs +22 -0
- package/esm2022/lib/billing/components/index.mjs +25 -0
- package/esm2022/lib/billing/components/paypal/paypal-button.component.mjs +157 -0
- package/esm2022/lib/billing/components/paypal/paypal.component.mjs +316 -0
- package/esm2022/lib/billing/components/stripe/stripe.component.mjs +109 -0
- package/esm2022/lib/billing/exports.mjs +3 -4
- package/esm2022/lib/billing/services/payments.service.mjs +173 -0
- package/esm2022/lib/core/exports.mjs +2 -1
- package/fesm2022/osovitny-anatoly.mjs +44 -47
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/billing/billing.module.d.ts +4 -4
- package/lib/billing/{payments/components → components}/braintree/braintree.component.d.ts +3 -3
- package/lib/billing/components/index.d.ts +2 -0
- package/lib/billing/{payments/components → components}/paypal/paypal-button.component.d.ts +3 -3
- package/lib/billing/{payments/components → components}/paypal/paypal.component.d.ts +3 -3
- package/lib/billing/{payments/components → components}/stripe/stripe.component.d.ts +2 -2
- package/lib/billing/exports.d.ts +2 -2
- package/lib/billing/{payments/services → services}/payments.service.d.ts +4 -4
- package/lib/core/exports.d.ts +1 -0
- package/package.json +1 -1
- package/esm2022/lib/billing/payments/components/braintree/braintree.component.mjs +0 -155
- package/esm2022/lib/billing/payments/components/exports.mjs +0 -22
- package/esm2022/lib/billing/payments/components/index.mjs +0 -25
- package/esm2022/lib/billing/payments/components/paypal/paypal-button.component.mjs +0 -157
- package/esm2022/lib/billing/payments/components/paypal/paypal.component.mjs +0 -316
- package/esm2022/lib/billing/payments/components/stripe/stripe.component.mjs +0 -109
- package/esm2022/lib/billing/payments/services/payments.service.mjs +0 -173
- package/lib/billing/payments/components/index.d.ts +0 -2
- /package/lib/billing/{payments/components → components}/exports.d.ts +0 -0
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Dhruv Agarwal dhruv.agarwal@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
11 Aug 2024
|
|
12
|
-
|
|
13
|
-
Details:
|
|
14
|
-
https://blog.thoughtram.io/angular/2017/02/21/using-zones-in-angular-for-better-performance.html
|
|
15
|
-
|
|
16
|
-
Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
|
|
17
|
-
</file>
|
|
18
|
-
*/
|
|
19
|
-
//Node
|
|
20
|
-
import { Injectable } from '@angular/core';
|
|
21
|
-
import { Subject } from 'rxjs';
|
|
22
|
-
//App
|
|
23
|
-
import { GABillingEvents } from '../../../core/consts/ga';
|
|
24
|
-
import { PaymentMethod, PaymentStage } from '../../../core/enums/billing';
|
|
25
|
-
import * as i0 from "@angular/core";
|
|
26
|
-
import * as i1 from "../../../data/services/billing/payments-api.service";
|
|
27
|
-
import * as i2 from "../../../core/notifications/services/notification-service";
|
|
28
|
-
import * as i3 from "../../../core/services/google-analytics.service";
|
|
29
|
-
export class PaymentsService {
|
|
30
|
-
constructor(zone, api, ns, ga) {
|
|
31
|
-
this.zone = zone;
|
|
32
|
-
this.api = api;
|
|
33
|
-
this.ns = ns;
|
|
34
|
-
this.ga = ga;
|
|
35
|
-
this.paymentInProgress = false;
|
|
36
|
-
this.isPaymentFailed = false;
|
|
37
|
-
this.subtotal = 0;
|
|
38
|
-
this.discountCode = null;
|
|
39
|
-
this.discountPercentage = null;
|
|
40
|
-
this.discountAmount = null;
|
|
41
|
-
this.total = 0;
|
|
42
|
-
this.currency = 'USD';
|
|
43
|
-
//Private Streams
|
|
44
|
-
this._discountCodeApplied = new Subject();
|
|
45
|
-
this._paymentAdded = new Subject();
|
|
46
|
-
this._showStripeDialog = new Subject();
|
|
47
|
-
this._showBraintreeDialog = new Subject();
|
|
48
|
-
//Public Streams
|
|
49
|
-
this.discountCodeApplied$ = this._discountCodeApplied.asObservable();
|
|
50
|
-
this.paymentAdded$ = this._paymentAdded.asObservable();
|
|
51
|
-
this.showStripeDialog$ = this._showStripeDialog.asObservable();
|
|
52
|
-
this.showBraintreeDialog$ = this._showBraintreeDialog.asObservable();
|
|
53
|
-
}
|
|
54
|
-
setDefaults() {
|
|
55
|
-
}
|
|
56
|
-
setValues() {
|
|
57
|
-
}
|
|
58
|
-
//fires
|
|
59
|
-
fireDiscountCodeApplied() {
|
|
60
|
-
this._discountCodeApplied.next(this.discountCode);
|
|
61
|
-
}
|
|
62
|
-
firePaymentAdded(paymentId) {
|
|
63
|
-
this._paymentAdded.next(paymentId);
|
|
64
|
-
}
|
|
65
|
-
//Public
|
|
66
|
-
init() {
|
|
67
|
-
this.setDefaults();
|
|
68
|
-
this.setValues();
|
|
69
|
-
}
|
|
70
|
-
resetState() {
|
|
71
|
-
this.subtotal = 0;
|
|
72
|
-
this.total = 0;
|
|
73
|
-
}
|
|
74
|
-
getTotal() {
|
|
75
|
-
let subtotal = this.subtotal;
|
|
76
|
-
if (this.discountAmount != 0) {
|
|
77
|
-
subtotal = subtotal - this.discountAmount;
|
|
78
|
-
}
|
|
79
|
-
else if (this.discountPercentage != 0) {
|
|
80
|
-
subtotal = subtotal - (subtotal * (this.discountPercentage / 100));
|
|
81
|
-
subtotal = +subtotal.toFixed(2);
|
|
82
|
-
}
|
|
83
|
-
return subtotal > 0 ? subtotal : 0;
|
|
84
|
-
}
|
|
85
|
-
//DiscountCode
|
|
86
|
-
applyDiscountCode(discountCode, data) {
|
|
87
|
-
if (!data) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
this.discountCode = discountCode;
|
|
91
|
-
if (data.amount) {
|
|
92
|
-
this.discountPercentage = 0;
|
|
93
|
-
this.discountAmount = parseInt(data.amount);
|
|
94
|
-
}
|
|
95
|
-
else if (data.percentage) {
|
|
96
|
-
this.discountPercentage = parseInt(data.percentage);
|
|
97
|
-
this.discountAmount = 0;
|
|
98
|
-
}
|
|
99
|
-
this.fireDiscountCodeApplied();
|
|
100
|
-
}
|
|
101
|
-
getDiscountCodeAsString() {
|
|
102
|
-
if (this.discountAmount > 0) {
|
|
103
|
-
return "$" + this.discountAmount;
|
|
104
|
-
}
|
|
105
|
-
else if (this.discountPercentage > 0) {
|
|
106
|
-
return this.discountPercentage + "%";
|
|
107
|
-
}
|
|
108
|
-
return '$0';
|
|
109
|
-
}
|
|
110
|
-
openStripePaymentDialog() {
|
|
111
|
-
this._showStripeDialog.next(true);
|
|
112
|
-
}
|
|
113
|
-
openBraintreePaymentDialog() {
|
|
114
|
-
this._showBraintreeDialog.next(true);
|
|
115
|
-
}
|
|
116
|
-
closeBraintreePaymentDialog() {
|
|
117
|
-
this._showBraintreeDialog.next(false);
|
|
118
|
-
}
|
|
119
|
-
createStripeSession(title, description, image) {
|
|
120
|
-
const amount = this.getTotal();
|
|
121
|
-
const currency = this.currency;
|
|
122
|
-
return this.api.createStripeSession(amount, currency, title, description, image);
|
|
123
|
-
}
|
|
124
|
-
createBraintreeToken() {
|
|
125
|
-
return this.api.createBraintreeToken();
|
|
126
|
-
}
|
|
127
|
-
pay(paidFor, payId, payStatus, payDetails) {
|
|
128
|
-
//GA
|
|
129
|
-
this.ga.event(GABillingEvents.payment);
|
|
130
|
-
let paidForAsString = JSON.stringify(paidFor);
|
|
131
|
-
let payType = this.selectedPaymentType;
|
|
132
|
-
let payMethod = this.selectedPaymentMethod;
|
|
133
|
-
//Amount
|
|
134
|
-
let subtotal = this.subtotal;
|
|
135
|
-
let promoCode = this.discountCode;
|
|
136
|
-
let total = this.getTotal();
|
|
137
|
-
let currency = this.currency;
|
|
138
|
-
if (total == 0) {
|
|
139
|
-
payMethod = PaymentMethod.None;
|
|
140
|
-
}
|
|
141
|
-
this.zone.run(() => {
|
|
142
|
-
this.api.pay(paidForAsString, payMethod,
|
|
143
|
-
//Amount
|
|
144
|
-
subtotal, promoCode, total, currency,
|
|
145
|
-
//Payment method details (PayPal/Stripe/Braintree)
|
|
146
|
-
payId, payStatus, payDetails, (data) => {
|
|
147
|
-
if (!data || !data?.isPaymentValid) {
|
|
148
|
-
this.paymentFailed(PaymentStage.External);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (payMethod == PaymentMethod.CreditCard) {
|
|
152
|
-
//this.closeBraintreePaymentDialog();
|
|
153
|
-
}
|
|
154
|
-
this.paymentInProgress = false;
|
|
155
|
-
this.firePaymentAdded(data.paymentId);
|
|
156
|
-
}, () => {
|
|
157
|
-
this.paymentFailed(PaymentStage.External);
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
paymentFailed(stage) {
|
|
162
|
-
this.paymentStage = stage;
|
|
163
|
-
this.paymentInProgress = false;
|
|
164
|
-
this.isPaymentFailed = true;
|
|
165
|
-
this.ns.error("Payment Failed");
|
|
166
|
-
}
|
|
167
|
-
static { this.ɵfac = function PaymentsService_Factory(t) { return new (t || PaymentsService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.PaymentsApiService), i0.ɵɵinject(i2.NotificationService), i0.ɵɵinject(i3.GoogleAnalyticsService)); }; }
|
|
168
|
-
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaymentsService, factory: PaymentsService.ɵfac }); }
|
|
169
|
-
}
|
|
170
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaymentsService, [{
|
|
171
|
-
type: Injectable
|
|
172
|
-
}], () => [{ type: i0.NgZone }, { type: i1.PaymentsApiService }, { type: i2.NotificationService }, { type: i3.GoogleAnalyticsService }], null); })();
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL3BheW1lbnRzL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixLQUFLO0FBQ0wsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBTTFFLE1BQU0sT0FBTyxlQUFlO0lBMkIxQixZQUNVLElBQVksRUFDWixHQUF1QixFQUN2QixFQUF1QixFQUN2QixFQUEwQjtRQUgxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osUUFBRyxHQUFILEdBQUcsQ0FBb0I7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUE1QnBDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl4QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGlCQUFpQjtRQUNULHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ25D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QUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsQ0FBQztnRkFyTFUsZUFBZTt1RUFBZixlQUFlLFdBQWYsZUFBZTs7aUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIERocnV2IEFnYXJ3YWwgZGhydXYuYWdhcndhbEBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDExIEF1ZyAyMDI0XHJcblxyXG4gIERldGFpbHM6XHJcbiAgICBodHRwczovL2Jsb2cudGhvdWdodHJhbS5pby9hbmd1bGFyLzIwMTcvMDIvMjEvdXNpbmctem9uZXMtaW4tYW5ndWxhci1mb3ItYmV0dGVyLXBlcmZvcm1hbmNlLmh0bWxcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEdBQmlsbGluZ0V2ZW50cyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29uc3RzL2dhJztcclxuaW1wb3J0IHsgUGF5bWVudE1ldGhvZCwgUGF5bWVudFN0YWdlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy9iaWxsaW5nJztcclxuaW1wb3J0IHsgUGF5bWVudHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nL3BheW1lbnRzLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSc7XHJcbmltcG9ydCB7IEdvb2dsZUFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50c1NlcnZpY2Uge1xyXG4gIC8vUGF5bWVudFxyXG4gIHBheW1lbnRTdGFnZTtcclxuICBwYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gIGlzUGF5bWVudEZhaWxlZCA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZFBheW1lbnRUeXBlO1xyXG4gIHNlbGVjdGVkUGF5bWVudE1ldGhvZDtcclxuICBzdWJ0b3RhbCA9IDA7XHJcbiAgZGlzY291bnRDb2RlID0gbnVsbDtcclxuICBkaXNjb3VudFBlcmNlbnRhZ2UgPSBudWxsO1xyXG4gIGRpc2NvdW50QW1vdW50ID0gbnVsbDtcclxuICB0b3RhbCA9IDA7XHJcbiAgY3VycmVuY3kgPSAnVVNEJztcclxuXHJcbiAgLy9Qcml2YXRlIFN0cmVhbXNcclxuICBwcml2YXRlIF9kaXNjb3VudENvZGVBcHBsaWVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgX3BheW1lbnRBZGRlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIF9zaG93U3RyaXBlRGlhbG9nID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgX3Nob3dCcmFpbnRyZWVEaWFsb2cgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIC8vUHVibGljIFN0cmVhbXNcclxuICByZWFkb25seSBkaXNjb3VudENvZGVBcHBsaWVkJCA9IHRoaXMuX2Rpc2NvdW50Q29kZUFwcGxpZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgcGF5bWVudEFkZGVkJCA9IHRoaXMuX3BheW1lbnRBZGRlZC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBzaG93U3RyaXBlRGlhbG9nJCA9IHRoaXMuX3Nob3dTdHJpcGVEaWFsb2cuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgc2hvd0JyYWludHJlZURpYWxvZyQgPSB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBhcGk6IFBheW1lbnRzQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdhOiBHb29nbGVBbmFseXRpY3NTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmF1bHRzKCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXMoKSB7XHJcbiAgfVxyXG5cclxuICAvL2ZpcmVzXHJcbiAgcHJpdmF0ZSBmaXJlRGlzY291bnRDb2RlQXBwbGllZCgpIHtcclxuICAgIHRoaXMuX2Rpc2NvdW50Q29kZUFwcGxpZWQubmV4dCh0aGlzLmRpc2NvdW50Q29kZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpcmVQYXltZW50QWRkZWQocGF5bWVudElkKSB7XHJcbiAgICB0aGlzLl9wYXltZW50QWRkZWQubmV4dChwYXltZW50SWQpO1xyXG4gIH1cclxuXHJcbiAgLy9QdWJsaWNcclxuICBpbml0KCkge1xyXG4gICAgdGhpcy5zZXREZWZhdWx0cygpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U3RhdGUoKSB7XHJcbiAgICB0aGlzLnN1YnRvdGFsID0gMDtcclxuICAgIHRoaXMudG90YWwgPSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG90YWwoKSB7XHJcbiAgICBsZXQgc3VidG90YWwgPSB0aGlzLnN1YnRvdGFsO1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50ICE9IDApIHtcclxuICAgICAgc3VidG90YWwgPSBzdWJ0b3RhbCAtIHRoaXMuZGlzY291bnRBbW91bnQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmRpc2NvdW50UGVyY2VudGFnZSAhPSAwKSB7XHJcbiAgICAgIHN1YnRvdGFsID0gc3VidG90YWwgLSAoc3VidG90YWwgKiAodGhpcy5kaXNjb3VudFBlcmNlbnRhZ2UgLyAxMDApKTtcclxuICAgICAgc3VidG90YWwgPSArc3VidG90YWwudG9GaXhlZCgyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3VidG90YWwgPiAwID8gc3VidG90YWwgOiAwO1xyXG4gIH1cclxuXHJcbiAgLy9EaXNjb3VudENvZGVcclxuICBhcHBseURpc2NvdW50Q29kZShkaXNjb3VudENvZGUsIGRhdGEpIHtcclxuICAgIGlmICghZGF0YSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNjb3VudENvZGUgPSBkaXNjb3VudENvZGU7XHJcblxyXG4gICAgaWYgKGRhdGEuYW1vdW50KSB7XHJcbiAgICAgIHRoaXMuZGlzY291bnRQZXJjZW50YWdlID0gMDtcclxuICAgICAgdGhpcy5kaXNjb3VudEFtb3VudCA9IHBhcnNlSW50KGRhdGEuYW1vdW50KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEucGVyY2VudGFnZSkge1xyXG4gICAgICB0aGlzLmRpc2NvdW50UGVyY2VudGFnZSA9IHBhcnNlSW50KGRhdGEucGVyY2VudGFnZSk7XHJcbiAgICAgIHRoaXMuZGlzY291bnRBbW91bnQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlyZURpc2NvdW50Q29kZUFwcGxpZWQoKTtcclxuICB9XHJcblxyXG4gIGdldERpc2NvdW50Q29kZUFzU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kaXNjb3VudEFtb3VudCA+IDApIHtcclxuICAgICAgcmV0dXJuIFwiJFwiICsgdGhpcy5kaXNjb3VudEFtb3VudDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZGlzY291bnRQZXJjZW50YWdlID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNjb3VudFBlcmNlbnRhZ2UgKyBcIiVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyQwJztcclxuICB9XHJcblxyXG4gIG9wZW5TdHJpcGVQYXltZW50RGlhbG9nKCkge1xyXG4gICAgdGhpcy5fc2hvd1N0cmlwZURpYWxvZy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkJyYWludHJlZVBheW1lbnREaWFsb2coKSB7XHJcbiAgICB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUJyYWludHJlZVBheW1lbnREaWFsb2coKSB7XHJcbiAgICB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3RyaXBlU2Vzc2lvbih0aXRsZSwgZGVzY3JpcHRpb24sIGltYWdlKSB7XHJcbiAgICBjb25zdCBhbW91bnQgPSB0aGlzLmdldFRvdGFsKCk7XHJcbiAgICBjb25zdCBjdXJyZW5jeSA9IHRoaXMuY3VycmVuY3k7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBpLmNyZWF0ZVN0cmlwZVNlc3Npb24oYW1vdW50LCBjdXJyZW5jeSwgdGl0bGUsIGRlc2NyaXB0aW9uLCBpbWFnZSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVCcmFpbnRyZWVUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaS5jcmVhdGVCcmFpbnRyZWVUb2tlbigpO1xyXG4gIH1cclxuXHJcbiAgcGF5KHBhaWRGb3IsIHBheUlkLCBwYXlTdGF0dXMsIHBheURldGFpbHMpIHtcclxuICAgIC8vR0FcclxuICAgIHRoaXMuZ2EuZXZlbnQoR0FCaWxsaW5nRXZlbnRzLnBheW1lbnQpO1xyXG5cclxuICAgIGxldCBwYWlkRm9yQXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShwYWlkRm9yKTtcclxuICAgIGxldCBwYXlUeXBlID0gdGhpcy5zZWxlY3RlZFBheW1lbnRUeXBlO1xyXG4gICAgbGV0IHBheU1ldGhvZCA9IHRoaXMuc2VsZWN0ZWRQYXltZW50TWV0aG9kO1xyXG5cclxuICAgIC8vQW1vdW50XHJcbiAgICBsZXQgc3VidG90YWwgPSB0aGlzLnN1YnRvdGFsO1xyXG4gICAgbGV0IHByb21vQ29kZSA9IHRoaXMuZGlzY291bnRDb2RlO1xyXG4gICAgbGV0IHRvdGFsID0gdGhpcy5nZXRUb3RhbCgpO1xyXG4gICAgbGV0IGN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeTtcclxuXHJcbiAgICBpZiAodG90YWwgPT0gMCkge1xyXG4gICAgICBwYXlNZXRob2QgPSBQYXltZW50TWV0aG9kLk5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBpLnBheShcclxuICAgICAgICBwYWlkRm9yQXNTdHJpbmcsIHBheU1ldGhvZCxcclxuXHJcbiAgICAgICAgLy9BbW91bnRcclxuICAgICAgICBzdWJ0b3RhbCwgcHJvbW9Db2RlLCB0b3RhbCwgY3VycmVuY3ksXHJcblxyXG4gICAgICAgIC8vUGF5bWVudCBtZXRob2QgZGV0YWlscyAoUGF5UGFsL1N0cmlwZS9CcmFpbnRyZWUpXHJcbiAgICAgICAgcGF5SWQsIHBheVN0YXR1cywgcGF5RGV0YWlscyxcclxuXHJcbiAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgIGlmICghZGF0YSB8fCAhZGF0YT8uaXNQYXltZW50VmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXltZW50RmFpbGVkKFBheW1lbnRTdGFnZS5FeHRlcm5hbCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAocGF5TWV0aG9kID09IFBheW1lbnRNZXRob2QuQ3JlZGl0Q2FyZCkge1xyXG4gICAgICAgICAgICAvL3RoaXMuY2xvc2VCcmFpbnRyZWVQYXltZW50RGlhbG9nKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maXJlUGF5bWVudEFkZGVkKGRhdGEucGF5bWVudElkKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGF5bWVudEZhaWxlZChQYXltZW50U3RhZ2UuRXh0ZXJuYWwpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwYXltZW50RmFpbGVkKHN0YWdlOiBQYXltZW50U3RhZ2UpIHtcclxuICAgIHRoaXMucGF5bWVudFN0YWdlID0gc3RhZ2U7XHJcbiAgICB0aGlzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzUGF5bWVudEZhaWxlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5ucy5lcnJvcihcIlBheW1lbnQgRmFpbGVkXCIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
File without changes
|