@xsolla/payment-client-core 0.1.6 → 0.1.8
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/esm2020/lib/core/country/country-iso-code.enum.mjs +6 -0
- package/esm2020/lib/core/payment/finance-details/cart-summary.interface.mjs +1 -1
- package/esm2020/lib/core/payment/finance-details/finance-details.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +25 -12
- package/esm2020/lib/core/payment/finance-details/price.helpers.mjs +2 -2
- package/esm2020/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/status/fields-with-currency.mjs +16 -0
- package/esm2020/lib/core/payment/finance-details/status/finance-info.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +290 -0
- package/esm2020/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +10 -0
- package/esm2020/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +7 -0
- package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
- package/esm2020/lib/core/payment/finance-details/vat-details-key.enum.mjs +14 -0
- package/esm2020/lib/core/payment/form/controls/phone-control.config.mjs +8 -0
- package/esm2020/lib/core/payment/form/converters/converters-map.mjs +3 -1
- package/esm2020/lib/core/payment/form/converters/phone.converter.mjs +37 -0
- package/esm2020/lib/core/payment/form/form.module.mjs +6 -1
- package/esm2020/lib/core/payment/form/validators/max-length-validator.mjs +6 -0
- package/esm2020/lib/core/payment/form/validators/min-length-validator.mjs +6 -0
- package/esm2020/lib/core/payment/form/validators/phone-validator.mjs +6 -0
- package/esm2020/lib/core/payment/payment.interface.mjs +1 -1
- package/esm2020/lib/core/payment/payment.service.mjs +2 -2
- package/esm2020/lib/core/payment/status/status-finance-info.interface.mjs +2 -0
- package/esm2020/lib/core/payment/status/status-order.interface.mjs +2 -0
- package/esm2020/lib/core/payment/status/status.interface.mjs +1 -1
- package/esm2020/lib/core/payment/status/status.service.mjs +10 -6
- package/esm2020/lib/core/payment/xps-summary.interface.mjs +1 -1
- package/esm2020/lib/core/session/session.service.mjs +57 -0
- package/esm2020/lib/core/type-guards/is-null.function.mjs +4 -0
- package/esm2020/lib/core/type-guards/is-undefined.function.mjs +4 -0
- package/esm2020/lib/core-library.module.mjs +1 -4
- package/esm2020/lib/core-library.service.mjs +4 -1
- package/fesm2015/xsolla-payment-client-core.mjs +829 -352
- package/fesm2015/xsolla-payment-client-core.mjs.map +1 -1
- package/fesm2020/xsolla-payment-client-core.mjs +812 -344
- package/fesm2020/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/country/country-iso-code.enum.d.ts +4 -0
- package/lib/core/payment/finance-details/cart-summary.interface.d.ts +2 -2
- package/lib/core/payment/finance-details/finance-details.interface.d.ts +11 -0
- package/lib/core/payment/finance-details/finance-details.service.d.ts +12 -5
- package/lib/core/payment/finance-details/price.helpers.d.ts +3 -3
- package/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.d.ts +7 -0
- package/lib/core/payment/finance-details/status/fields-with-currency.d.ts +1 -0
- package/lib/core/payment/finance-details/status/finance-info.interface.d.ts +4 -0
- package/lib/core/payment/finance-details/status/status-finance-details-adapter.service.d.ts +31 -0
- package/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.d.ts +5 -0
- package/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.d.ts +24 -0
- package/lib/core/payment/finance-details/vat-details-key.enum.d.ts +12 -0
- package/lib/core/payment/form/controls/phone-control.config.d.ts +6 -0
- package/lib/core/payment/form/converters/phone.converter.d.ts +13 -0
- package/lib/core/payment/form/validators/max-length-validator.d.ts +2 -0
- package/lib/core/payment/form/validators/min-length-validator.d.ts +2 -0
- package/lib/core/payment/form/validators/phone-validator.d.ts +2 -0
- package/lib/core/payment/payment.interface.d.ts +1 -1
- package/lib/core/payment/payment.service.d.ts +1 -1
- package/lib/core/payment/status/status-finance-info.interface.d.ts +4 -0
- package/lib/core/payment/status/status-order.interface.d.ts +12 -0
- package/lib/core/payment/status/status.interface.d.ts +4 -16
- package/lib/core/payment/status/status.service.d.ts +3 -1
- package/lib/core/payment/xps-summary.interface.d.ts +1 -1
- package/lib/core/session/session.service.d.ts +18 -0
- package/lib/core/type-guards/is-null.function.d.ts +1 -0
- package/lib/core/type-guards/is-undefined.function.d.ts +1 -0
- package/lib/core-library.service.d.ts +1 -0
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.1.8.tgz +0 -0
- package/esm2020/lib/core/payment/finance-details/default-image-patterns.const.mjs +0 -10
- package/esm2020/lib/core/payment/finance-details/finance-details-response.token.mjs +0 -8
- package/esm2020/lib/core/payment/finance-details/finance-details.class.mjs +0 -237
- package/lib/core/payment/finance-details/finance-details-response.token.d.ts +0 -7
- package/lib/core/payment/finance-details/finance-details.class.d.ts +0 -29
- package/xsolla-payment-client-core-0.1.6.tgz +0 -0
- /package/lib/core/payment/finance-details/{default-image-patterns.const.d.ts → summary/default-image-patterns.const.d.ts} +0 -0
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import { defaultImagePatterns } from './default-image-patterns.const';
|
|
2
|
-
import { createPriceOrUndefined, extractMoneyCurrency } from './price.helpers';
|
|
3
|
-
export class FinanceDetails {
|
|
4
|
-
get shouldShowZeroIndirectTaxRate() {
|
|
5
|
-
return !!(this.finance?.vat?.visible || this.finance?.vat_user?.visible);
|
|
6
|
-
}
|
|
7
|
-
get isSalesTaxes() {
|
|
8
|
-
return !!(this.finance?.sales_tax?.amount || this.finance?.sales_tax_user?.amount);
|
|
9
|
-
}
|
|
10
|
-
constructor(parameters) {
|
|
11
|
-
this.purchase = parameters.purchase;
|
|
12
|
-
this.finance = parameters.finance;
|
|
13
|
-
this.cartItems = this.getFormattedPurchaseForCart();
|
|
14
|
-
this.cartSummary = this.getFormattedPricingForCart();
|
|
15
|
-
this.paymentCountry = this.getPaymentCountry();
|
|
16
|
-
}
|
|
17
|
-
getFormattedPurchaseForCart() {
|
|
18
|
-
const checkouts = this.purchase.checkout_items?.map((item) => {
|
|
19
|
-
return {
|
|
20
|
-
imgSrc: item.image_url,
|
|
21
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
22
|
-
title: item.name,
|
|
23
|
-
price: extractMoneyCurrency(item, false),
|
|
24
|
-
priceBeforeDiscount: createPriceOrUndefined(item.amount_before_discount, item.currency),
|
|
25
|
-
quantity: item.quantity,
|
|
26
|
-
description: item.description,
|
|
27
|
-
tax: this.getTaxForItem(item.indirect_tax_rate),
|
|
28
|
-
isBonus: item.is_bonus,
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
const virtualCurrencies = this.purchase.virtual_currency?.map((item) => {
|
|
32
|
-
return {
|
|
33
|
-
imgSrc: item.image_url,
|
|
34
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
35
|
-
title: `${item.quantity} ${item.name}`,
|
|
36
|
-
price: extractMoneyCurrency(item),
|
|
37
|
-
description: item.description,
|
|
38
|
-
isBonus: item.is_bonus,
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
const virtualItems = this.purchase.virtual_items?.map((item) => {
|
|
42
|
-
return {
|
|
43
|
-
imgSrc: item.image_url,
|
|
44
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
45
|
-
title: item.name,
|
|
46
|
-
price: extractMoneyCurrency(item),
|
|
47
|
-
description: item.description,
|
|
48
|
-
quantity: item.quantity,
|
|
49
|
-
isBonus: item.is_bonus,
|
|
50
|
-
};
|
|
51
|
-
});
|
|
52
|
-
let checkoutArray = undefined;
|
|
53
|
-
if (this.purchase.checkout) {
|
|
54
|
-
checkoutArray = [
|
|
55
|
-
{
|
|
56
|
-
key: 'checkout',
|
|
57
|
-
title: this.purchase.checkout.description,
|
|
58
|
-
price: extractMoneyCurrency(this.purchase.checkout),
|
|
59
|
-
isBonus: this.purchase.checkout.is_bonus ?? false,
|
|
60
|
-
},
|
|
61
|
-
];
|
|
62
|
-
}
|
|
63
|
-
return [
|
|
64
|
-
...(checkouts ?? []),
|
|
65
|
-
...(virtualCurrencies ?? []),
|
|
66
|
-
...(virtualItems ?? []),
|
|
67
|
-
...(checkoutArray ?? []),
|
|
68
|
-
];
|
|
69
|
-
}
|
|
70
|
-
getFormattedPricingForCart() {
|
|
71
|
-
// subtotal details fields
|
|
72
|
-
const subtotalDetailsSorting = [
|
|
73
|
-
{
|
|
74
|
-
key: 'discount',
|
|
75
|
-
responseKey: 'discount',
|
|
76
|
-
title: 'Discount',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
key: 'fee',
|
|
80
|
-
responseKey: 'fee',
|
|
81
|
-
title: 'Payment system fee',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
key: 'user-balance',
|
|
85
|
-
responseKey: 'user_balance',
|
|
86
|
-
title: 'Balance',
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
return {
|
|
90
|
-
subtotal: {
|
|
91
|
-
title: 'Subtotal',
|
|
92
|
-
money: createPriceOrUndefined(this.finance.sub_total.amount, this.finance.sub_total.currency),
|
|
93
|
-
},
|
|
94
|
-
subtotalPayment: {
|
|
95
|
-
title: '',
|
|
96
|
-
money: createPriceOrUndefined(this.finance.sub_total.payment_amount, this.finance.sub_total.payment_currency),
|
|
97
|
-
},
|
|
98
|
-
total: {
|
|
99
|
-
title: 'Total',
|
|
100
|
-
money: extractMoneyCurrency(this.finance.total),
|
|
101
|
-
},
|
|
102
|
-
totalDetails: this.getTaxesForTotalDetails(),
|
|
103
|
-
subtotalDetails: [
|
|
104
|
-
...subtotalDetailsSorting.map((sorting) => {
|
|
105
|
-
const field = this.finance[sorting.responseKey];
|
|
106
|
-
if (field) {
|
|
107
|
-
return {
|
|
108
|
-
key: sorting.key,
|
|
109
|
-
title: sorting.title,
|
|
110
|
-
money: {
|
|
111
|
-
amount: sorting.key === 'discount' && field.amount
|
|
112
|
-
? -field.amount
|
|
113
|
-
: field.amount,
|
|
114
|
-
currency: field.currency,
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
return sorting;
|
|
119
|
-
}),
|
|
120
|
-
...this.getTaxesForSubtotalDetails(),
|
|
121
|
-
],
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
getPaymentCountry() {
|
|
125
|
-
return this.finance.payment_country.iso;
|
|
126
|
-
}
|
|
127
|
-
getTaxForItem(indirectTaxRate) {
|
|
128
|
-
if (indirectTaxRate ||
|
|
129
|
-
(this.shouldShowZeroIndirectTaxRate && indirectTaxRate === 0)) {
|
|
130
|
-
if (this.isSalesTaxes) {
|
|
131
|
-
return {
|
|
132
|
-
key: 'sales-tax',
|
|
133
|
-
content: `Sales tax ${indirectTaxRate}%`,
|
|
134
|
-
rate: indirectTaxRate,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
if (this.isIndia()) {
|
|
138
|
-
return {
|
|
139
|
-
key: 'vat-india',
|
|
140
|
-
content: `GST ${indirectTaxRate}%`,
|
|
141
|
-
rate: indirectTaxRate,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
if (this.isGhana()) {
|
|
145
|
-
return {
|
|
146
|
-
key: 'vat-ghana',
|
|
147
|
-
content: 'VAT, NHIL, GETFund Levy, and Covid-19 Levy',
|
|
148
|
-
rate: indirectTaxRate,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
key: 'vat',
|
|
153
|
-
content: `VAT ${indirectTaxRate}%`,
|
|
154
|
-
rate: indirectTaxRate,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
getTaxesForSubtotalDetails() {
|
|
160
|
-
const ret = [];
|
|
161
|
-
// subtotal. VAT %p
|
|
162
|
-
if (this.finance.vat_user &&
|
|
163
|
-
(this.finance?.vat_user?.amount ?? this.finance?.vat_user?.visible)) {
|
|
164
|
-
ret.push({
|
|
165
|
-
key: this.getVatKeyForDetails(),
|
|
166
|
-
title: this.getVatLabelForSubtotalDetails(),
|
|
167
|
-
money: extractMoneyCurrency(this.finance.vat_user),
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (this.finance.sales_tax_user?.amount) {
|
|
171
|
-
ret.push({
|
|
172
|
-
key: 'sales-tax',
|
|
173
|
-
title: 'Sales tax',
|
|
174
|
-
money: extractMoneyCurrency(this.finance.sales_tax_user),
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
return ret;
|
|
178
|
-
}
|
|
179
|
-
getVatLabelForSubtotalDetails() {
|
|
180
|
-
if (this.isIndia()) {
|
|
181
|
-
return `GST ${this.finance.vat_user?.percent ?? ''}%`;
|
|
182
|
-
}
|
|
183
|
-
if (this.isGhana()) {
|
|
184
|
-
return `VAT, NHIL, GETFund Levy, and Covid-19 Levy`;
|
|
185
|
-
}
|
|
186
|
-
return `VAT ${this.finance.vat_user?.percent ?? ''}%`;
|
|
187
|
-
}
|
|
188
|
-
getTaxesForTotalDetails() {
|
|
189
|
-
const ret = [];
|
|
190
|
-
// for totalDetails. VAT
|
|
191
|
-
if ((this.finance?.vat?.amount || this.finance?.vat?.visible) &&
|
|
192
|
-
!this.finance?.vat_user?.amount) {
|
|
193
|
-
ret.push({
|
|
194
|
-
key: this.getVatKeyForDetails(),
|
|
195
|
-
title: this.getVatLabelForTotalDetails(),
|
|
196
|
-
money: extractMoneyCurrency(this.finance.vat),
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
if (this.finance?.sales_tax?.amount &&
|
|
200
|
-
!this.finance?.sales_tax_user?.amount) {
|
|
201
|
-
ret.push({
|
|
202
|
-
key: 'sales-tax',
|
|
203
|
-
title: 'Sales tax included',
|
|
204
|
-
money: extractMoneyCurrency(this.finance.sales_tax),
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
return ret;
|
|
208
|
-
}
|
|
209
|
-
getVatKeyForDetails() {
|
|
210
|
-
if (this.isIndia()) {
|
|
211
|
-
return 'vat-india';
|
|
212
|
-
}
|
|
213
|
-
if (this.isGhana()) {
|
|
214
|
-
return 'vat-ghana';
|
|
215
|
-
}
|
|
216
|
-
return 'vat';
|
|
217
|
-
}
|
|
218
|
-
getVatLabelForTotalDetails() {
|
|
219
|
-
if (this.isIndia()) {
|
|
220
|
-
return `Including ${this.finance.vat.percent}% GST`;
|
|
221
|
-
}
|
|
222
|
-
if (this.isGhana()) {
|
|
223
|
-
return 'Including VAT, NHIL, GETFund Levy, and Covid-19 Levy';
|
|
224
|
-
}
|
|
225
|
-
return `Including ${this.finance.vat.percent}% VAT`;
|
|
226
|
-
}
|
|
227
|
-
isIndia() {
|
|
228
|
-
return this.finance?.payment_country.iso === 'IN';
|
|
229
|
-
}
|
|
230
|
-
isGhana() {
|
|
231
|
-
return this.finance?.payment_country.iso === 'GH';
|
|
232
|
-
}
|
|
233
|
-
isDefaultImage(url) {
|
|
234
|
-
return defaultImagePatterns.some((regex) => regex.test(url));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jZS1kZXRhaWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9FLE1BQU0sT0FBTyxjQUFjO0lBT3pCLElBQVksNkJBQTZCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxDQUFDLENBQUMsQ0FDUCxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQW1CLFVBR2xCO1FBQ0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8sMkJBQTJC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QUFDO1NBQ3BCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQztTQUNyRDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sc0RBQXNELENBQUM7U0FDL0Q7UUFFRCxPQUFPLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWHBzRmluYW5jZSB9IGZyb20gJy4uL3hwcy1maW5hbmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNQdXJjaGFzZSB9IGZyb20gJy4uL3hwcy1wdXJjaGFzZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydEl0ZW0gfSBmcm9tICcuL2NhcnQtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydExpbmUgfSBmcm9tICcuL2NhcnQtbGluZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydFN1bW1hcnkgfSBmcm9tICcuL2NhcnQtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGVmYXVsdEltYWdlUGF0dGVybnMgfSBmcm9tICcuL2RlZmF1bHQtaW1hZ2UtcGF0dGVybnMuY29uc3QnO1xuaW1wb3J0IHsgY3JlYXRlUHJpY2VPclVuZGVmaW5lZCwgZXh0cmFjdE1vbmV5Q3VycmVuY3kgfSBmcm9tICcuL3ByaWNlLmhlbHBlcnMnO1xuaW1wb3J0IHsgUHJpY2UgfSBmcm9tICcuL3ByaWNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBGaW5hbmNlRGV0YWlscyB7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZTogWHBzUHVyY2hhc2U7XG4gIHB1YmxpYyByZWFkb25seSBmaW5hbmNlOiBYcHNGaW5hbmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FydEl0ZW1zOiBDYXJ0SXRlbVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FydFN1bW1hcnk6IENhcnRTdW1tYXJ5O1xuICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudENvdW50cnk6IHN0cmluZztcblxuICBwcml2YXRlIGdldCBzaG91bGRTaG93WmVyb0luZGlyZWN0VGF4UmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5maW5hbmNlPy52YXQ/LnZpc2libGUgfHwgdGhpcy5maW5hbmNlPy52YXRfdXNlcj8udmlzaWJsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1NhbGVzVGF4ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5maW5hbmNlPy5zYWxlc190YXg/LmFtb3VudCB8fCB0aGlzLmZpbmFuY2U/LnNhbGVzX3RheF91c2VyPy5hbW91bnRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnM6IHtcbiAgICBwdXJjaGFzZTogWHBzUHVyY2hhc2U7XG4gICAgZmluYW5jZTogWHBzRmluYW5jZTtcbiAgfSkge1xuICAgIHRoaXMucHVyY2hhc2UgPSBwYXJhbWV0ZXJzLnB1cmNoYXNlO1xuICAgIHRoaXMuZmluYW5jZSA9IHBhcmFtZXRlcnMuZmluYW5jZTtcbiAgICB0aGlzLmNhcnRJdGVtcyA9IHRoaXMuZ2V0Rm9ybWF0dGVkUHVyY2hhc2VGb3JDYXJ0KCk7XG4gICAgdGhpcy5jYXJ0U3VtbWFyeSA9IHRoaXMuZ2V0Rm9ybWF0dGVkUHJpY2luZ0ZvckNhcnQoKTtcbiAgICB0aGlzLnBheW1lbnRDb3VudHJ5ID0gdGhpcy5nZXRQYXltZW50Q291bnRyeSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRQdXJjaGFzZUZvckNhcnQoKTogQ2FydEl0ZW1bXSB7XG4gICAgY29uc3QgY2hlY2tvdXRzOiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID0gdGhpcy5wdXJjaGFzZS5jaGVja291dF9pdGVtcz8ubWFwKFxuICAgICAgKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXG4gICAgICAgICAgcHJpY2U6IGV4dHJhY3RNb25leUN1cnJlbmN5KGl0ZW0sIGZhbHNlKSxcbiAgICAgICAgICBwcmljZUJlZm9yZURpc2NvdW50OiBjcmVhdGVQcmljZU9yVW5kZWZpbmVkKFxuICAgICAgICAgICAgaXRlbS5hbW91bnRfYmVmb3JlX2Rpc2NvdW50LFxuICAgICAgICAgICAgaXRlbS5jdXJyZW5jeVxuICAgICAgICAgICksXG4gICAgICAgICAgcXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHksXG4gICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgdGF4OiB0aGlzLmdldFRheEZvckl0ZW0oaXRlbS5pbmRpcmVjdF90YXhfcmF0ZSksXG4gICAgICAgICAgaXNCb251czogaXRlbS5pc19ib251cyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgdmlydHVhbEN1cnJlbmNpZXM6IENhcnRJdGVtW10gfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5wdXJjaGFzZS52aXJ0dWFsX2N1cnJlbmN5Py5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBgJHtpdGVtLnF1YW50aXR5fSAke2l0ZW0ubmFtZX1gLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeShpdGVtKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpc0JvbnVzOiBpdGVtLmlzX2JvbnVzLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICBjb25zdCB2aXJ0dWFsSXRlbXM6IENhcnRJdGVtW10gfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5wdXJjaGFzZS52aXJ0dWFsX2l0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXG4gICAgICAgICAgcHJpY2U6IGV4dHJhY3RNb25leUN1cnJlbmN5KGl0ZW0pLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHF1YW50aXR5OiBpdGVtLnF1YW50aXR5LFxuICAgICAgICAgIGlzQm9udXM6IGl0ZW0uaXNfYm9udXMsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgIGxldCBjaGVja291dEFycmF5OiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnB1cmNoYXNlLmNoZWNrb3V0KSB7XG4gICAgICBjaGVja291dEFycmF5ID0gW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnY2hlY2tvdXQnLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLnB1cmNoYXNlLmNoZWNrb3V0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLnB1cmNoYXNlLmNoZWNrb3V0KSxcbiAgICAgICAgICBpc0JvbnVzOiB0aGlzLnB1cmNoYXNlLmNoZWNrb3V0LmlzX2JvbnVzID8/IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4uKGNoZWNrb3V0cyA/PyBbXSksXG4gICAgICAuLi4odmlydHVhbEN1cnJlbmNpZXMgPz8gW10pLFxuICAgICAgLi4uKHZpcnR1YWxJdGVtcyA/PyBbXSksXG4gICAgICAuLi4oY2hlY2tvdXRBcnJheSA/PyBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkUHJpY2luZ0ZvckNhcnQoKTogQ2FydFN1bW1hcnkge1xuICAgIC8vIHN1YnRvdGFsIGRldGFpbHMgZmllbGRzXG4gICAgY29uc3Qgc3VidG90YWxEZXRhaWxzU29ydGluZyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZGlzY291bnQnLFxuICAgICAgICByZXNwb25zZUtleTogJ2Rpc2NvdW50JyxcbiAgICAgICAgdGl0bGU6ICdEaXNjb3VudCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdmZWUnLFxuICAgICAgICByZXNwb25zZUtleTogJ2ZlZScsXG4gICAgICAgIHRpdGxlOiAnUGF5bWVudCBzeXN0ZW0gZmVlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3VzZXItYmFsYW5jZScsXG4gICAgICAgIHJlc3BvbnNlS2V5OiAndXNlcl9iYWxhbmNlJyxcbiAgICAgICAgdGl0bGU6ICdCYWxhbmNlJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWJ0b3RhbDoge1xuICAgICAgICB0aXRsZTogJ1N1YnRvdGFsJyxcbiAgICAgICAgbW9uZXk6IGNyZWF0ZVByaWNlT3JVbmRlZmluZWQoXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5hbW91bnQsXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5jdXJyZW5jeVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHN1YnRvdGFsUGF5bWVudDoge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIG1vbmV5OiBjcmVhdGVQcmljZU9yVW5kZWZpbmVkKFxuICAgICAgICAgIHRoaXMuZmluYW5jZS5zdWJfdG90YWwucGF5bWVudF9hbW91bnQsXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5wYXltZW50X2N1cnJlbmN5XG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdG90YWw6IHtcbiAgICAgICAgdGl0bGU6ICdUb3RhbCcsXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudG90YWwpLFxuICAgICAgfSxcbiAgICAgIHRvdGFsRGV0YWlsczogdGhpcy5nZXRUYXhlc0ZvclRvdGFsRGV0YWlscygpLFxuICAgICAgc3VidG90YWxEZXRhaWxzOiBbXG4gICAgICAgIC4uLnN1YnRvdGFsRGV0YWlsc1NvcnRpbmcubWFwKChzb3J0aW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSAodGhpcy5maW5hbmNlIGFzIHVua25vd24gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pW1xuICAgICAgICAgICAgc29ydGluZy5yZXNwb25zZUtleVxuICAgICAgICAgIF0gYXMgUHJpY2U7XG5cbiAgICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGtleTogc29ydGluZy5rZXksXG4gICAgICAgICAgICAgIHRpdGxlOiBzb3J0aW5nLnRpdGxlLFxuICAgICAgICAgICAgICBtb25leToge1xuICAgICAgICAgICAgICAgIGFtb3VudDpcbiAgICAgICAgICAgICAgICAgIHNvcnRpbmcua2V5ID09PSAnZGlzY291bnQnICYmIGZpZWxkLmFtb3VudFxuICAgICAgICAgICAgICAgICAgICA/IC1maWVsZC5hbW91bnRcbiAgICAgICAgICAgICAgICAgICAgOiBmaWVsZC5hbW91bnQsXG4gICAgICAgICAgICAgICAgY3VycmVuY3k6IGZpZWxkLmN1cnJlbmN5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNvcnRpbmc7XG4gICAgICAgIH0pLFxuICAgICAgICAuLi50aGlzLmdldFRheGVzRm9yU3VidG90YWxEZXRhaWxzKCksXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRDb3VudHJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmluYW5jZS5wYXltZW50X2NvdW50cnkuaXNvO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXhGb3JJdGVtKGluZGlyZWN0VGF4UmF0ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogQ2FydExpbmUgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICBpbmRpcmVjdFRheFJhdGUgfHxcbiAgICAgICh0aGlzLnNob3VsZFNob3daZXJvSW5kaXJlY3RUYXhSYXRlICYmIGluZGlyZWN0VGF4UmF0ZSA9PT0gMClcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmlzU2FsZXNUYXhlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3NhbGVzLXRheCcsXG4gICAgICAgICAgY29udGVudDogYFNhbGVzIHRheCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3ZhdC1pbmRpYScsXG4gICAgICAgICAgY29udGVudDogYEdTVCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzR2hhbmEoKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3ZhdC1naGFuYScsXG4gICAgICAgICAgY29udGVudDogJ1ZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eScsXG4gICAgICAgICAgcmF0ZTogaW5kaXJlY3RUYXhSYXRlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6ICd2YXQnLFxuICAgICAgICBjb250ZW50OiBgVkFUICR7aW5kaXJlY3RUYXhSYXRlfSVgLFxuICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGF4ZXNGb3JTdWJ0b3RhbERldGFpbHMoKTogQ2FydExpbmVbXSB7XG4gICAgY29uc3QgcmV0ID0gW107XG5cbiAgICAvLyBzdWJ0b3RhbC4gVkFUICVwXG4gICAgaWYgKFxuICAgICAgdGhpcy5maW5hbmNlLnZhdF91c2VyICYmXG4gICAgICAodGhpcy5maW5hbmNlPy52YXRfdXNlcj8uYW1vdW50ID8/IHRoaXMuZmluYW5jZT8udmF0X3VzZXI/LnZpc2libGUpXG4gICAgKSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5nZXRWYXRLZXlGb3JEZXRhaWxzKCksXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldFZhdExhYmVsRm9yU3VidG90YWxEZXRhaWxzKCksXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudmF0X3VzZXIpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmluYW5jZS5zYWxlc190YXhfdXNlcj8uYW1vdW50KSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogJ3NhbGVzLXRheCcsXG4gICAgICAgIHRpdGxlOiAnU2FsZXMgdGF4JyxcbiAgICAgICAgbW9uZXk6IGV4dHJhY3RNb25leUN1cnJlbmN5KHRoaXMuZmluYW5jZS5zYWxlc190YXhfdXNlciksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRMYWJlbEZvclN1YnRvdGFsRGV0YWlscygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgcmV0dXJuIGBHU1QgJHt0aGlzLmZpbmFuY2UudmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYSgpKSB7XG4gICAgICByZXR1cm4gYFZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBWQVQgJHt0aGlzLmZpbmFuY2UudmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gIH1cblxuICBwcml2YXRlIGdldFRheGVzRm9yVG90YWxEZXRhaWxzKCk6IENhcnRMaW5lW10ge1xuICAgIGNvbnN0IHJldCA9IFtdO1xuXG4gICAgLy8gZm9yIHRvdGFsRGV0YWlscy4gVkFUXG4gICAgaWYgKFxuICAgICAgKHRoaXMuZmluYW5jZT8udmF0Py5hbW91bnQgfHwgdGhpcy5maW5hbmNlPy52YXQ/LnZpc2libGUpICYmXG4gICAgICAhdGhpcy5maW5hbmNlPy52YXRfdXNlcj8uYW1vdW50XG4gICAgKSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5nZXRWYXRLZXlGb3JEZXRhaWxzKCksXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldFZhdExhYmVsRm9yVG90YWxEZXRhaWxzKCksXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudmF0KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmluYW5jZT8uc2FsZXNfdGF4Py5hbW91bnQgJiZcbiAgICAgICF0aGlzLmZpbmFuY2U/LnNhbGVzX3RheF91c2VyPy5hbW91bnRcbiAgICApIHtcbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAga2V5OiAnc2FsZXMtdGF4JyxcbiAgICAgICAgdGl0bGU6ICdTYWxlcyB0YXggaW5jbHVkZWQnLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3kodGhpcy5maW5hbmNlLnNhbGVzX3RheCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRLZXlGb3JEZXRhaWxzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNJbmRpYSgpKSB7XG4gICAgICByZXR1cm4gJ3ZhdC1pbmRpYSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYSgpKSB7XG4gICAgICByZXR1cm4gJ3ZhdC1naGFuYSc7XG4gICAgfVxuXG4gICAgcmV0dXJuICd2YXQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRMYWJlbEZvclRvdGFsRGV0YWlscygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgcmV0dXJuIGBJbmNsdWRpbmcgJHt0aGlzLmZpbmFuY2UudmF0LnBlcmNlbnR9JSBHU1RgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR2hhbmEoKSkge1xuICAgICAgcmV0dXJuICdJbmNsdWRpbmcgVkFULCBOSElMLCBHRVRGdW5kIExldnksIGFuZCBDb3ZpZC0xOSBMZXZ5JztcbiAgICB9XG5cbiAgICByZXR1cm4gYEluY2x1ZGluZyAke3RoaXMuZmluYW5jZS52YXQucGVyY2VudH0lIFZBVGA7XG4gIH1cblxuICBwcml2YXRlIGlzSW5kaWEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluYW5jZT8ucGF5bWVudF9jb3VudHJ5LmlzbyA9PT0gJ0lOJztcbiAgfVxuXG4gIHByaXZhdGUgaXNHaGFuYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlPy5wYXltZW50X2NvdW50cnkuaXNvID09PSAnR0gnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RlZmF1bHRJbWFnZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWZhdWx0SW1hZ2VQYXR0ZXJucy5zb21lKChyZWdleCkgPT4gcmVnZXgudGVzdCh1cmwpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, ValueProvider } from '@angular/core';
|
|
2
|
-
import { FinanceDetails } from './finance-details.class';
|
|
3
|
-
type ResponseParameters = ConstructorParameters<typeof FinanceDetails>;
|
|
4
|
-
export type FinanceDetailsResponseFactory = (...args: ResponseParameters) => FinanceDetails;
|
|
5
|
-
export declare const financeDetailsResponseFactoryToken: InjectionToken<FinanceDetailsResponseFactory>;
|
|
6
|
-
export declare const financeDetailsResponseFactoryProvider: ValueProvider;
|
|
7
|
-
export {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { XpsFinance } from '../xps-finance.interface';
|
|
2
|
-
import { XpsPurchase } from '../xps-purchase.interface';
|
|
3
|
-
import { CartItem } from './cart-item.interface';
|
|
4
|
-
import { CartSummary } from './cart-summary.interface';
|
|
5
|
-
export declare class FinanceDetails {
|
|
6
|
-
readonly purchase: XpsPurchase;
|
|
7
|
-
readonly finance: XpsFinance;
|
|
8
|
-
readonly cartItems: CartItem[];
|
|
9
|
-
readonly cartSummary: CartSummary;
|
|
10
|
-
readonly paymentCountry: string;
|
|
11
|
-
private get shouldShowZeroIndirectTaxRate();
|
|
12
|
-
private get isSalesTaxes();
|
|
13
|
-
constructor(parameters: {
|
|
14
|
-
purchase: XpsPurchase;
|
|
15
|
-
finance: XpsFinance;
|
|
16
|
-
});
|
|
17
|
-
private getFormattedPurchaseForCart;
|
|
18
|
-
private getFormattedPricingForCart;
|
|
19
|
-
private getPaymentCountry;
|
|
20
|
-
private getTaxForItem;
|
|
21
|
-
private getTaxesForSubtotalDetails;
|
|
22
|
-
private getVatLabelForSubtotalDetails;
|
|
23
|
-
private getTaxesForTotalDetails;
|
|
24
|
-
private getVatKeyForDetails;
|
|
25
|
-
private getVatLabelForTotalDetails;
|
|
26
|
-
private isIndia;
|
|
27
|
-
private isGhana;
|
|
28
|
-
private isDefaultImage;
|
|
29
|
-
}
|
|
Binary file
|