@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
package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createPriceOrUndefined, extractMoneyCurrency } from '../price.helpers';
|
|
3
|
+
import { defaultImagePatterns } from './default-image-patterns.const';
|
|
4
|
+
import { VatDetailsKey } from '../vat-details-key.enum';
|
|
5
|
+
import { SalesTaxDetailsKey } from './sales-tax-details-key.enum';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SummaryFinanceDetailsAdapterService {
|
|
8
|
+
getFinanceDetails(summary) {
|
|
9
|
+
const { purchase, finance } = summary;
|
|
10
|
+
return {
|
|
11
|
+
purchase: purchase,
|
|
12
|
+
finance: finance,
|
|
13
|
+
cartItems: this.getCartItems(purchase, finance),
|
|
14
|
+
cartSummary: this.getCartSummary(finance),
|
|
15
|
+
paymentCountry: this.getPaymentCountry(finance),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
shouldShowZeroIndirectTaxRate(finance) {
|
|
19
|
+
return !!(finance?.vat?.visible ?? finance?.vat_user?.visible);
|
|
20
|
+
}
|
|
21
|
+
isSalesTaxes(finance) {
|
|
22
|
+
return !!(finance?.sales_tax?.amount ?? finance?.sales_tax_user?.amount);
|
|
23
|
+
}
|
|
24
|
+
getCartItems(purchase, finance) {
|
|
25
|
+
const checkouts = purchase.checkout_items?.map((item) => {
|
|
26
|
+
return {
|
|
27
|
+
imgSrc: item.image_url,
|
|
28
|
+
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
29
|
+
title: item.name,
|
|
30
|
+
price: extractMoneyCurrency(item, false),
|
|
31
|
+
priceBeforeDiscount: createPriceOrUndefined(item.amount_before_discount, item.currency),
|
|
32
|
+
quantity: item.quantity,
|
|
33
|
+
description: item.description,
|
|
34
|
+
tax: this.getTaxForItem(finance, item.indirect_tax_rate),
|
|
35
|
+
isBonus: item.is_bonus,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
const virtualCurrencies = purchase.virtual_currency?.map((item) => {
|
|
39
|
+
return {
|
|
40
|
+
imgSrc: item.image_url,
|
|
41
|
+
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
42
|
+
title: `${item.quantity} ${item.name}`,
|
|
43
|
+
price: extractMoneyCurrency(item),
|
|
44
|
+
description: item.description,
|
|
45
|
+
isBonus: item.is_bonus,
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
const virtualItems = purchase.virtual_items?.map((item) => {
|
|
49
|
+
return {
|
|
50
|
+
imgSrc: item.image_url,
|
|
51
|
+
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
52
|
+
title: item.name,
|
|
53
|
+
price: extractMoneyCurrency(item),
|
|
54
|
+
description: item.description,
|
|
55
|
+
quantity: item.quantity,
|
|
56
|
+
isBonus: item.is_bonus,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
let checkoutArray = undefined;
|
|
60
|
+
if (purchase.checkout) {
|
|
61
|
+
checkoutArray = [
|
|
62
|
+
{
|
|
63
|
+
key: 'checkout',
|
|
64
|
+
title: purchase.checkout.description,
|
|
65
|
+
price: extractMoneyCurrency(purchase.checkout),
|
|
66
|
+
isBonus: purchase.checkout.is_bonus ?? false,
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
return [
|
|
71
|
+
...(checkouts ?? []),
|
|
72
|
+
...(virtualCurrencies ?? []),
|
|
73
|
+
...(virtualItems ?? []),
|
|
74
|
+
...(checkoutArray ?? []),
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
getCartSummary(finance) {
|
|
78
|
+
return {
|
|
79
|
+
subtotal: {
|
|
80
|
+
title: 'Subtotal',
|
|
81
|
+
money: createPriceOrUndefined(finance?.sub_total?.amount, finance?.sub_total?.currency),
|
|
82
|
+
},
|
|
83
|
+
subtotalPayment: {
|
|
84
|
+
title: '',
|
|
85
|
+
money: createPriceOrUndefined(finance?.sub_total?.payment_amount, finance?.sub_total?.payment_currency),
|
|
86
|
+
},
|
|
87
|
+
total: {
|
|
88
|
+
title: 'Total',
|
|
89
|
+
money: extractMoneyCurrency(finance?.total),
|
|
90
|
+
},
|
|
91
|
+
totalDetails: this.getTaxesForTotalDetails(finance),
|
|
92
|
+
subtotalDetails: [
|
|
93
|
+
...this.getSubtotalDetails(finance),
|
|
94
|
+
...this.getTaxesForSubtotalDetails(finance),
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
getPaymentCountry(finance) {
|
|
99
|
+
return finance?.payment_country?.iso ?? '';
|
|
100
|
+
}
|
|
101
|
+
getTaxForItem(finance, indirectTaxRate) {
|
|
102
|
+
if (indirectTaxRate ||
|
|
103
|
+
(this.shouldShowZeroIndirectTaxRate(finance) && indirectTaxRate === 0)) {
|
|
104
|
+
if (this.isSalesTaxes(finance)) {
|
|
105
|
+
return {
|
|
106
|
+
key: SalesTaxDetailsKey.salesTaxPercent,
|
|
107
|
+
content: `Sales tax ${indirectTaxRate}%`,
|
|
108
|
+
rate: indirectTaxRate,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (this.isIndia(finance)) {
|
|
112
|
+
return {
|
|
113
|
+
key: VatDetailsKey.vatIndiaPercent,
|
|
114
|
+
content: `GST ${indirectTaxRate}%`,
|
|
115
|
+
rate: indirectTaxRate,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (this.isGhana(finance)) {
|
|
119
|
+
return {
|
|
120
|
+
key: VatDetailsKey.vatGhana,
|
|
121
|
+
content: 'VAT, NHIL, GETFund Levy, and Covid-19 Levy',
|
|
122
|
+
rate: indirectTaxRate,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
key: VatDetailsKey.vatPercent,
|
|
127
|
+
content: `VAT ${indirectTaxRate}%`,
|
|
128
|
+
rate: indirectTaxRate,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
getSubtotalDetails(finance) {
|
|
134
|
+
if (!finance) {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
// subtotal details fields
|
|
138
|
+
const subtotalDetailsSorting = [
|
|
139
|
+
{
|
|
140
|
+
key: 'discount',
|
|
141
|
+
responseKey: 'discount',
|
|
142
|
+
title: 'Discount',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
key: 'fee',
|
|
146
|
+
responseKey: 'fee',
|
|
147
|
+
title: 'Payment system fee',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
key: 'user-balance',
|
|
151
|
+
responseKey: 'user_balance',
|
|
152
|
+
title: 'Balance',
|
|
153
|
+
},
|
|
154
|
+
];
|
|
155
|
+
return subtotalDetailsSorting.map((sorting) => {
|
|
156
|
+
const field = finance[sorting.responseKey];
|
|
157
|
+
if (field) {
|
|
158
|
+
return {
|
|
159
|
+
key: sorting.key,
|
|
160
|
+
title: sorting.title,
|
|
161
|
+
money: {
|
|
162
|
+
amount: sorting.key === 'discount' && field.amount
|
|
163
|
+
? -field.amount
|
|
164
|
+
: field.amount,
|
|
165
|
+
currency: field.currency,
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return sorting;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
getTaxesForSubtotalDetails(finance) {
|
|
173
|
+
const ret = [];
|
|
174
|
+
// subtotal. VAT %p
|
|
175
|
+
if (finance?.vat_user &&
|
|
176
|
+
(finance?.vat_user?.amount ?? finance?.vat_user?.visible)) {
|
|
177
|
+
ret.push({
|
|
178
|
+
key: this.getVatNotIncludingKeyForDetails(finance),
|
|
179
|
+
title: this.getVatLabelForSubtotalDetails(finance),
|
|
180
|
+
money: extractMoneyCurrency(finance?.vat_user),
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (finance?.sales_tax_user?.amount) {
|
|
184
|
+
ret.push({
|
|
185
|
+
key: SalesTaxDetailsKey.salesTax,
|
|
186
|
+
title: 'Sales tax',
|
|
187
|
+
money: extractMoneyCurrency(finance?.sales_tax_user),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return ret;
|
|
191
|
+
}
|
|
192
|
+
getVatLabelForSubtotalDetails(finance) {
|
|
193
|
+
if (this.isIndia(finance)) {
|
|
194
|
+
return `GST ${finance?.vat_user?.percent ?? ''}%`;
|
|
195
|
+
}
|
|
196
|
+
if (this.isGhana(finance)) {
|
|
197
|
+
return `VAT, NHIL, GETFund Levy, and Covid-19 Levy`;
|
|
198
|
+
}
|
|
199
|
+
return `VAT ${finance?.vat_user?.percent ?? ''}%`;
|
|
200
|
+
}
|
|
201
|
+
getTaxesForTotalDetails(finance) {
|
|
202
|
+
const ret = [];
|
|
203
|
+
// for totalDetails. VAT
|
|
204
|
+
if ((finance?.vat?.amount || finance?.vat?.visible) &&
|
|
205
|
+
!finance?.vat_user?.amount) {
|
|
206
|
+
ret.push({
|
|
207
|
+
key: this.getVatIncludingKeyForDetails(finance),
|
|
208
|
+
title: this.getVatLabelForTotalDetails(finance),
|
|
209
|
+
money: extractMoneyCurrency(finance?.vat),
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
if (finance?.sales_tax?.amount && !finance?.sales_tax_user?.amount) {
|
|
213
|
+
ret.push({
|
|
214
|
+
key: SalesTaxDetailsKey.salesTaxIncluding,
|
|
215
|
+
title: 'Sales tax included',
|
|
216
|
+
money: extractMoneyCurrency(finance?.sales_tax),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return ret;
|
|
220
|
+
}
|
|
221
|
+
getVatNotIncludingKeyForDetails(finance) {
|
|
222
|
+
if (this.isIndia(finance)) {
|
|
223
|
+
return VatDetailsKey.vatIndiaPercent;
|
|
224
|
+
}
|
|
225
|
+
if (this.isGhana(finance)) {
|
|
226
|
+
return VatDetailsKey.vatGhana;
|
|
227
|
+
}
|
|
228
|
+
return VatDetailsKey.vatPercent;
|
|
229
|
+
}
|
|
230
|
+
getVatIncludingKeyForDetails(finance) {
|
|
231
|
+
if (this.isIndia(finance)) {
|
|
232
|
+
return VatDetailsKey.vatIndiaPercentIncluding;
|
|
233
|
+
}
|
|
234
|
+
if (this.isGhana(finance)) {
|
|
235
|
+
return VatDetailsKey.vatGhanaIncluding;
|
|
236
|
+
}
|
|
237
|
+
return VatDetailsKey.vatPercentIncluding;
|
|
238
|
+
}
|
|
239
|
+
getVatLabelForTotalDetails(finance) {
|
|
240
|
+
if (this.isIndia(finance)) {
|
|
241
|
+
return `Including ${finance?.vat.percent ?? ''}% GST`;
|
|
242
|
+
}
|
|
243
|
+
if (this.isGhana(finance)) {
|
|
244
|
+
return 'Including VAT, NHIL, GETFund Levy, and Covid-19 Levy';
|
|
245
|
+
}
|
|
246
|
+
return `Including ${finance?.vat.percent ?? ''}% VAT`;
|
|
247
|
+
}
|
|
248
|
+
isIndia(finance) {
|
|
249
|
+
return finance?.payment_country.iso === 'IN';
|
|
250
|
+
}
|
|
251
|
+
isGhana(finance) {
|
|
252
|
+
return finance?.payment_country.iso === 'GH';
|
|
253
|
+
}
|
|
254
|
+
isDefaultImage(url) {
|
|
255
|
+
return defaultImagePatterns.some((regex) => regex.test(url));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
SummaryFinanceDetailsAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SummaryFinanceDetailsAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
259
|
+
SummaryFinanceDetailsAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SummaryFinanceDetailsAdapterService, providedIn: 'root' });
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SummaryFinanceDetailsAdapterService, decorators: [{
|
|
261
|
+
type: Injectable,
|
|
262
|
+
args: [{ providedIn: 'root' }]
|
|
263
|
+
}] });
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS1maW5hbmNlLWRldGFpbHMtYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9maW5hbmNlLWRldGFpbHMvc3VtbWFyeS9zdW1tYXJ5LWZpbmFuY2UtZGV0YWlscy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2xFLE1BQU0sT0FBTyxtQ0FBbUM7SUFDdkMsaUJBQWlCLENBQUMsT0FBbUI7UUFDMUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEMsT0FBTztZQUNMLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7WUFDL0MsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1lBQ3pDLGNBQWMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBRU8sNkJBQTZCLENBQUMsT0FBMEI7UUFDOUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBMEI7UUFDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxZQUFZLENBQ2xCLFFBQXFCLEVBQ3JCLE9BQTBCO1FBRTFCLE1BQU0sU0FBUyxHQUEyQixRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FDcEUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN0QixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2hCLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUN4QyxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FDekMsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLENBQUMsUUFBUSxDQUNkO2dCQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2dCQUN4RCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdkIsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBRUYsTUFBTSxpQkFBaUIsR0FDckIsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RDLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN0QixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3ZCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sWUFBWSxHQUEyQixRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FDdEUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN0QixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2hCLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdkIsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxhQUFhLEdBQTJCLFNBQVMsQ0FBQztRQUN0RCxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDckIsYUFBYSxHQUFHO2dCQUNkO29CQUNFLEdBQUcsRUFBRSxVQUFVO29CQUNmLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVc7b0JBQ3BDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO29CQUM5QyxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksS0FBSztpQkFDN0M7YUFDRixDQUFDO1NBQ0g7UUFFRCxPQUFPO1lBQ0wsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUEwQjtRQUMvQyxPQUFPO1lBQ0wsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixLQUFLLEVBQUUsc0JBQXNCLENBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FDN0I7YUFDRjtZQUNELGVBQWUsRUFBRTtnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsc0JBQXNCLENBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUNyQzthQUNGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxPQUFPO2dCQUNkLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO2FBQzVDO1lBQ0QsWUFBWSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7WUFDbkQsZUFBZSxFQUFFO2dCQUNmLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztnQkFDbkMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDO2FBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUEwQjtRQUNsRCxPQUFPLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sYUFBYSxDQUNuQixPQUEwQixFQUMxQixlQUF3QjtRQUV4QixJQUNFLGVBQWU7WUFDZixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsSUFBSSxlQUFlLEtBQUssQ0FBQyxDQUFDLEVBQ3RFO1lBQ0EsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5QixPQUFPO29CQUNMLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlO29CQUN2QyxPQUFPLEVBQUUsYUFBYSxlQUFlLEdBQUc7b0JBQ3hDLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO2FBQ0g7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU87b0JBQ0wsR0FBRyxFQUFFLGFBQWEsQ0FBQyxlQUFlO29CQUNsQyxPQUFPLEVBQUUsT0FBTyxlQUFlLEdBQUc7b0JBQ2xDLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO2FBQ0g7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU87b0JBQ0wsR0FBRyxFQUFFLGFBQWEsQ0FBQyxRQUFRO29CQUMzQixPQUFPLEVBQUUsNENBQTRDO29CQUNyRCxJQUFJLEVBQUUsZUFBZTtpQkFDdEIsQ0FBQzthQUNIO1lBRUQsT0FBTztnQkFDTCxHQUFHLEVBQUUsYUFBYSxDQUFDLFVBQVU7Z0JBQzdCLE9BQU8sRUFBRSxPQUFPLGVBQWUsR0FBRztnQkFDbEMsSUFBSSxFQUFFLGVBQWU7YUFDdEIsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBMEI7UUFDbkQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCwwQkFBMEI7UUFDMUIsTUFBTSxzQkFBc0IsR0FBRztZQUM3QjtnQkFDRSxHQUFHLEVBQUUsVUFBVTtnQkFDZixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsS0FBSyxFQUFFLFVBQVU7YUFDbEI7WUFDRDtnQkFDRSxHQUFHLEVBQUUsS0FBSztnQkFDVixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSyxFQUFFLG9CQUFvQjthQUM1QjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixXQUFXLEVBQUUsY0FBYztnQkFDM0IsS0FBSyxFQUFFLFNBQVM7YUFDakI7U0FDRixDQUFDO1FBRUYsT0FBTyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1QyxNQUFNLEtBQUssR0FBSSxPQUFpRCxDQUM5RCxPQUFPLENBQUMsV0FBVyxDQUNYLENBQUM7WUFFWCxJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPO29CQUNMLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztvQkFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO29CQUNwQixLQUFLLEVBQUU7d0JBQ0wsTUFBTSxFQUNKLE9BQU8sQ0FBQyxHQUFHLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNOzRCQUN4QyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTTs0QkFDZixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07d0JBQ2xCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtxQkFDekI7aUJBQ0YsQ0FBQzthQUNIO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsT0FBMEI7UUFDM0QsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBRWYsbUJBQW1CO1FBQ25CLElBQ0UsT0FBTyxFQUFFLFFBQVE7WUFDakIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUN6RDtZQUNBLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ1AsR0FBRyxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsT0FBTyxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQzthQUMvQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7WUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDUCxHQUFHLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtnQkFDaEMsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2FBQ3JELENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sNkJBQTZCLENBQUMsT0FBMEI7UUFDOUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sT0FBTyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUNuRDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixPQUFPLDRDQUE0QyxDQUFDO1NBQ3JEO1FBRUQsT0FBTyxPQUFPLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxJQUFJLEVBQUUsR0FBRyxDQUFDO0lBQ3BELENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUEwQjtRQUN4RCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFFZix3QkFBd0I7UUFDeEIsSUFDRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDO1lBQy9DLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQzFCO1lBQ0EsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDUCxHQUFHLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQztnQkFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO2FBQzFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFO1lBQ2xFLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ1AsR0FBRyxFQUFFLGtCQUFrQixDQUFDLGlCQUFpQjtnQkFDekMsS0FBSyxFQUFFLG9CQUFvQjtnQkFDM0IsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7YUFDaEQsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTywrQkFBK0IsQ0FBQyxPQUEwQjtRQUNoRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekIsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQztTQUMvQjtRQUVELE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBMEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sYUFBYSxDQUFDLHdCQUF3QixDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sYUFBYSxDQUFDLGlCQUFpQixDQUFDO1NBQ3hDO1FBRUQsT0FBTyxhQUFhLENBQUMsbUJBQW1CLENBQUM7SUFDM0MsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE9BQTBCO1FBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixPQUFPLGFBQWEsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdkQ7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekIsT0FBTyxzREFBc0QsQ0FBQztTQUMvRDtRQUVELE9BQU8sYUFBYSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLE9BQU8sQ0FBQztJQUN4RCxDQUFDO0lBRU8sT0FBTyxDQUFDLE9BQTBCO1FBQ3hDLE9BQU8sT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFFTyxPQUFPLENBQUMsT0FBMEI7UUFDeEMsT0FBTyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7Z0lBOVRVLG1DQUFtQztvSUFBbkMsbUNBQW1DLGNBRHRCLE1BQU07MkZBQ25CLG1DQUFtQztrQkFEL0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBYcHNTdW1tYXJ5IH0gZnJvbSAnLi4vLi4veHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0ZpbmFuY2UgfSBmcm9tICcuLi8uLi94cHMtZmluYW5jZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUHVyY2hhc2UgfSBmcm9tICcuLi8uLi94cHMtcHVyY2hhc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENhcnRJdGVtIH0gZnJvbSAnLi4vY2FydC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDYXJ0U3VtbWFyeSB9IGZyb20gJy4uL2NhcnQtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY3JlYXRlUHJpY2VPclVuZGVmaW5lZCwgZXh0cmFjdE1vbmV5Q3VycmVuY3kgfSBmcm9tICcuLi9wcmljZS5oZWxwZXJzJztcbmltcG9ydCB7IGRlZmF1bHRJbWFnZVBhdHRlcm5zIH0gZnJvbSAnLi9kZWZhdWx0LWltYWdlLXBhdHRlcm5zLmNvbnN0JztcbmltcG9ydCB7IFByaWNlIH0gZnJvbSAnLi4vcHJpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENhcnRMaW5lIH0gZnJvbSAnLi4vY2FydC1saW5lLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlscyB9IGZyb20gJy4uL2ZpbmFuY2UtZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmF0RGV0YWlsc0tleSB9IGZyb20gJy4uL3ZhdC1kZXRhaWxzLWtleS5lbnVtJztcbmltcG9ydCB7IFNhbGVzVGF4RGV0YWlsc0tleSB9IGZyb20gJy4vc2FsZXMtdGF4LWRldGFpbHMta2V5LmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlIHtcbiAgcHVibGljIGdldEZpbmFuY2VEZXRhaWxzKHN1bW1hcnk6IFhwc1N1bW1hcnkpOiBGaW5hbmNlRGV0YWlscyB7XG4gICAgY29uc3QgeyBwdXJjaGFzZSwgZmluYW5jZSB9ID0gc3VtbWFyeTtcbiAgICByZXR1cm4ge1xuICAgICAgcHVyY2hhc2U6IHB1cmNoYXNlLFxuICAgICAgZmluYW5jZTogZmluYW5jZSxcbiAgICAgIGNhcnRJdGVtczogdGhpcy5nZXRDYXJ0SXRlbXMocHVyY2hhc2UsIGZpbmFuY2UpLFxuICAgICAgY2FydFN1bW1hcnk6IHRoaXMuZ2V0Q2FydFN1bW1hcnkoZmluYW5jZSksXG4gICAgICBwYXltZW50Q291bnRyeTogdGhpcy5nZXRQYXltZW50Q291bnRyeShmaW5hbmNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRTaG93WmVyb0luZGlyZWN0VGF4UmF0ZShmaW5hbmNlOiBYcHNGaW5hbmNlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShmaW5hbmNlPy52YXQ/LnZpc2libGUgPz8gZmluYW5jZT8udmF0X3VzZXI/LnZpc2libGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NhbGVzVGF4ZXMoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoZmluYW5jZT8uc2FsZXNfdGF4Py5hbW91bnQgPz8gZmluYW5jZT8uc2FsZXNfdGF4X3VzZXI/LmFtb3VudCk7XG4gIH1cblxuICBwcml2YXRlIGdldENhcnRJdGVtcyhcbiAgICBwdXJjaGFzZTogWHBzUHVyY2hhc2UsXG4gICAgZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGxcbiAgKTogQ2FydEl0ZW1bXSB7XG4gICAgY29uc3QgY2hlY2tvdXRzOiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID0gcHVyY2hhc2UuY2hlY2tvdXRfaXRlbXM/Lm1hcChcbiAgICAgIChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1nU3JjOiBpdGVtLmltYWdlX3VybCxcbiAgICAgICAgICBoYXNEZWZhdWx0SW1nOiB0aGlzLmlzRGVmYXVsdEltYWdlKGl0ZW0uaW1hZ2VfdXJsKSxcbiAgICAgICAgICB0aXRsZTogaXRlbS5uYW1lLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeShpdGVtLCBmYWxzZSksXG4gICAgICAgICAgcHJpY2VCZWZvcmVEaXNjb3VudDogY3JlYXRlUHJpY2VPclVuZGVmaW5lZChcbiAgICAgICAgICAgIGl0ZW0uYW1vdW50X2JlZm9yZV9kaXNjb3VudCxcbiAgICAgICAgICAgIGl0ZW0uY3VycmVuY3lcbiAgICAgICAgICApLFxuICAgICAgICAgIHF1YW50aXR5OiBpdGVtLnF1YW50aXR5LFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHRheDogdGhpcy5nZXRUYXhGb3JJdGVtKGZpbmFuY2UsIGl0ZW0uaW5kaXJlY3RfdGF4X3JhdGUpLFxuICAgICAgICAgIGlzQm9udXM6IGl0ZW0uaXNfYm9udXMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHZpcnR1YWxDdXJyZW5jaWVzOiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID1cbiAgICAgIHB1cmNoYXNlLnZpcnR1YWxfY3VycmVuY3k/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGltZ1NyYzogaXRlbS5pbWFnZV91cmwsXG4gICAgICAgICAgaGFzRGVmYXVsdEltZzogdGhpcy5pc0RlZmF1bHRJbWFnZShpdGVtLmltYWdlX3VybCksXG4gICAgICAgICAgdGl0bGU6IGAke2l0ZW0ucXVhbnRpdHl9ICR7aXRlbS5uYW1lfWAsXG4gICAgICAgICAgcHJpY2U6IGV4dHJhY3RNb25leUN1cnJlbmN5KGl0ZW0pLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGlzQm9udXM6IGl0ZW0uaXNfYm9udXMsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgIGNvbnN0IHZpcnR1YWxJdGVtczogQ2FydEl0ZW1bXSB8IHVuZGVmaW5lZCA9IHB1cmNoYXNlLnZpcnR1YWxfaXRlbXM/Lm1hcChcbiAgICAgIChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1nU3JjOiBpdGVtLmltYWdlX3VybCxcbiAgICAgICAgICBoYXNEZWZhdWx0SW1nOiB0aGlzLmlzRGVmYXVsdEltYWdlKGl0ZW0uaW1hZ2VfdXJsKSxcbiAgICAgICAgICB0aXRsZTogaXRlbS5uYW1lLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeShpdGVtKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eSxcbiAgICAgICAgICBpc0JvbnVzOiBpdGVtLmlzX2JvbnVzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICk7XG5cbiAgICBsZXQgY2hlY2tvdXRBcnJheTogQ2FydEl0ZW1bXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAocHVyY2hhc2UuY2hlY2tvdXQpIHtcbiAgICAgIGNoZWNrb3V0QXJyYXkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdjaGVja291dCcsXG4gICAgICAgICAgdGl0bGU6IHB1cmNoYXNlLmNoZWNrb3V0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeShwdXJjaGFzZS5jaGVja291dCksXG4gICAgICAgICAgaXNCb251czogcHVyY2hhc2UuY2hlY2tvdXQuaXNfYm9udXMgPz8gZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oY2hlY2tvdXRzID8/IFtdKSxcbiAgICAgIC4uLih2aXJ0dWFsQ3VycmVuY2llcyA/PyBbXSksXG4gICAgICAuLi4odmlydHVhbEl0ZW1zID8/IFtdKSxcbiAgICAgIC4uLihjaGVja291dEFycmF5ID8/IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXJ0U3VtbWFyeShmaW5hbmNlOiBYcHNGaW5hbmNlIHwgbnVsbCk6IENhcnRTdW1tYXJ5IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3VidG90YWw6IHtcbiAgICAgICAgdGl0bGU6ICdTdWJ0b3RhbCcsXG4gICAgICAgIG1vbmV5OiBjcmVhdGVQcmljZU9yVW5kZWZpbmVkKFxuICAgICAgICAgIGZpbmFuY2U/LnN1Yl90b3RhbD8uYW1vdW50LFxuICAgICAgICAgIGZpbmFuY2U/LnN1Yl90b3RhbD8uY3VycmVuY3lcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBzdWJ0b3RhbFBheW1lbnQ6IHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBtb25leTogY3JlYXRlUHJpY2VPclVuZGVmaW5lZChcbiAgICAgICAgICBmaW5hbmNlPy5zdWJfdG90YWw/LnBheW1lbnRfYW1vdW50LFxuICAgICAgICAgIGZpbmFuY2U/LnN1Yl90b3RhbD8ucGF5bWVudF9jdXJyZW5jeVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIHRpdGxlOiAnVG90YWwnLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3koZmluYW5jZT8udG90YWwpLFxuICAgICAgfSxcbiAgICAgIHRvdGFsRGV0YWlsczogdGhpcy5nZXRUYXhlc0ZvclRvdGFsRGV0YWlscyhmaW5hbmNlKSxcbiAgICAgIHN1YnRvdGFsRGV0YWlsczogW1xuICAgICAgICAuLi50aGlzLmdldFN1YnRvdGFsRGV0YWlscyhmaW5hbmNlKSxcbiAgICAgICAgLi4udGhpcy5nZXRUYXhlc0ZvclN1YnRvdGFsRGV0YWlscyhmaW5hbmNlKSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bWVudENvdW50cnkoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBzdHJpbmcge1xuICAgIHJldHVybiBmaW5hbmNlPy5wYXltZW50X2NvdW50cnk/LmlzbyA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGF4Rm9ySXRlbShcbiAgICBmaW5hbmNlOiBYcHNGaW5hbmNlIHwgbnVsbCxcbiAgICBpbmRpcmVjdFRheFJhdGU/OiBudW1iZXJcbiAgKTogQ2FydExpbmUgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICBpbmRpcmVjdFRheFJhdGUgfHxcbiAgICAgICh0aGlzLnNob3VsZFNob3daZXJvSW5kaXJlY3RUYXhSYXRlKGZpbmFuY2UpICYmIGluZGlyZWN0VGF4UmF0ZSA9PT0gMClcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmlzU2FsZXNUYXhlcyhmaW5hbmNlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogU2FsZXNUYXhEZXRhaWxzS2V5LnNhbGVzVGF4UGVyY2VudCxcbiAgICAgICAgICBjb250ZW50OiBgU2FsZXMgdGF4ICR7aW5kaXJlY3RUYXhSYXRlfSVgLFxuICAgICAgICAgIHJhdGU6IGluZGlyZWN0VGF4UmF0ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNJbmRpYShmaW5hbmNlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogVmF0RGV0YWlsc0tleS52YXRJbmRpYVBlcmNlbnQsXG4gICAgICAgICAgY29udGVudDogYEdTVCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzR2hhbmEoZmluYW5jZSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IFZhdERldGFpbHNLZXkudmF0R2hhbmEsXG4gICAgICAgICAgY29udGVudDogJ1ZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eScsXG4gICAgICAgICAgcmF0ZTogaW5kaXJlY3RUYXhSYXRlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IFZhdERldGFpbHNLZXkudmF0UGVyY2VudCxcbiAgICAgICAgY29udGVudDogYFZBVCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgcmF0ZTogaW5kaXJlY3RUYXhSYXRlLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YnRvdGFsRGV0YWlscyhmaW5hbmNlOiBYcHNGaW5hbmNlIHwgbnVsbCk6IENhcnRMaW5lW10ge1xuICAgIGlmICghZmluYW5jZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIHN1YnRvdGFsIGRldGFpbHMgZmllbGRzXG4gICAgY29uc3Qgc3VidG90YWxEZXRhaWxzU29ydGluZyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZGlzY291bnQnLFxuICAgICAgICByZXNwb25zZUtleTogJ2Rpc2NvdW50JyxcbiAgICAgICAgdGl0bGU6ICdEaXNjb3VudCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdmZWUnLFxuICAgICAgICByZXNwb25zZUtleTogJ2ZlZScsXG4gICAgICAgIHRpdGxlOiAnUGF5bWVudCBzeXN0ZW0gZmVlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3VzZXItYmFsYW5jZScsXG4gICAgICAgIHJlc3BvbnNlS2V5OiAndXNlcl9iYWxhbmNlJyxcbiAgICAgICAgdGl0bGU6ICdCYWxhbmNlJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBzdWJ0b3RhbERldGFpbHNTb3J0aW5nLm1hcCgoc29ydGluZykgPT4ge1xuICAgICAgY29uc3QgZmllbGQgPSAoZmluYW5jZSBhcyB1bmtub3duIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KVtcbiAgICAgICAgc29ydGluZy5yZXNwb25zZUtleVxuICAgICAgXSBhcyBQcmljZTtcblxuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBzb3J0aW5nLmtleSxcbiAgICAgICAgICB0aXRsZTogc29ydGluZy50aXRsZSxcbiAgICAgICAgICBtb25leToge1xuICAgICAgICAgICAgYW1vdW50OlxuICAgICAgICAgICAgICBzb3J0aW5nLmtleSA9PT0gJ2Rpc2NvdW50JyAmJiBmaWVsZC5hbW91bnRcbiAgICAgICAgICAgICAgICA/IC1maWVsZC5hbW91bnRcbiAgICAgICAgICAgICAgICA6IGZpZWxkLmFtb3VudCxcbiAgICAgICAgICAgIGN1cnJlbmN5OiBmaWVsZC5jdXJyZW5jeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNvcnRpbmc7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRheGVzRm9yU3VidG90YWxEZXRhaWxzKGZpbmFuY2U6IFhwc0ZpbmFuY2UgfCBudWxsKTogQ2FydExpbmVbXSB7XG4gICAgY29uc3QgcmV0ID0gW107XG5cbiAgICAvLyBzdWJ0b3RhbC4gVkFUICVwXG4gICAgaWYgKFxuICAgICAgZmluYW5jZT8udmF0X3VzZXIgJiZcbiAgICAgIChmaW5hbmNlPy52YXRfdXNlcj8uYW1vdW50ID8/IGZpbmFuY2U/LnZhdF91c2VyPy52aXNpYmxlKVxuICAgICkge1xuICAgICAgcmV0LnB1c2goe1xuICAgICAgICBrZXk6IHRoaXMuZ2V0VmF0Tm90SW5jbHVkaW5nS2V5Rm9yRGV0YWlscyhmaW5hbmNlKSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZ2V0VmF0TGFiZWxGb3JTdWJ0b3RhbERldGFpbHMoZmluYW5jZSksXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeShmaW5hbmNlPy52YXRfdXNlciksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoZmluYW5jZT8uc2FsZXNfdGF4X3VzZXI/LmFtb3VudCkge1xuICAgICAgcmV0LnB1c2goe1xuICAgICAgICBrZXk6IFNhbGVzVGF4RGV0YWlsc0tleS5zYWxlc1RheCxcbiAgICAgICAgdGl0bGU6ICdTYWxlcyB0YXgnLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3koZmluYW5jZT8uc2FsZXNfdGF4X3VzZXIpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmF0TGFiZWxGb3JTdWJ0b3RhbERldGFpbHMoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoZmluYW5jZSkpIHtcbiAgICAgIHJldHVybiBgR1NUICR7ZmluYW5jZT8udmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYShmaW5hbmNlKSkge1xuICAgICAgcmV0dXJuIGBWQVQsIE5ISUwsIEdFVEZ1bmQgTGV2eSwgYW5kIENvdmlkLTE5IExldnlgO1xuICAgIH1cblxuICAgIHJldHVybiBgVkFUICR7ZmluYW5jZT8udmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gIH1cblxuICBwcml2YXRlIGdldFRheGVzRm9yVG90YWxEZXRhaWxzKGZpbmFuY2U6IFhwc0ZpbmFuY2UgfCBudWxsKTogQ2FydExpbmVbXSB7XG4gICAgY29uc3QgcmV0ID0gW107XG5cbiAgICAvLyBmb3IgdG90YWxEZXRhaWxzLiBWQVRcbiAgICBpZiAoXG4gICAgICAoZmluYW5jZT8udmF0Py5hbW91bnQgfHwgZmluYW5jZT8udmF0Py52aXNpYmxlKSAmJlxuICAgICAgIWZpbmFuY2U/LnZhdF91c2VyPy5hbW91bnRcbiAgICApIHtcbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAga2V5OiB0aGlzLmdldFZhdEluY2x1ZGluZ0tleUZvckRldGFpbHMoZmluYW5jZSksXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldFZhdExhYmVsRm9yVG90YWxEZXRhaWxzKGZpbmFuY2UpLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3koZmluYW5jZT8udmF0KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChmaW5hbmNlPy5zYWxlc190YXg/LmFtb3VudCAmJiAhZmluYW5jZT8uc2FsZXNfdGF4X3VzZXI/LmFtb3VudCkge1xuICAgICAgcmV0LnB1c2goe1xuICAgICAgICBrZXk6IFNhbGVzVGF4RGV0YWlsc0tleS5zYWxlc1RheEluY2x1ZGluZyxcbiAgICAgICAgdGl0bGU6ICdTYWxlcyB0YXggaW5jbHVkZWQnLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3koZmluYW5jZT8uc2FsZXNfdGF4KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIGdldFZhdE5vdEluY2x1ZGluZ0tleUZvckRldGFpbHMoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoZmluYW5jZSkpIHtcbiAgICAgIHJldHVybiBWYXREZXRhaWxzS2V5LnZhdEluZGlhUGVyY2VudDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0doYW5hKGZpbmFuY2UpKSB7XG4gICAgICByZXR1cm4gVmF0RGV0YWlsc0tleS52YXRHaGFuYTtcbiAgICB9XG5cbiAgICByZXR1cm4gVmF0RGV0YWlsc0tleS52YXRQZXJjZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRJbmNsdWRpbmdLZXlGb3JEZXRhaWxzKGZpbmFuY2U6IFhwc0ZpbmFuY2UgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0luZGlhKGZpbmFuY2UpKSB7XG4gICAgICByZXR1cm4gVmF0RGV0YWlsc0tleS52YXRJbmRpYVBlcmNlbnRJbmNsdWRpbmc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYShmaW5hbmNlKSkge1xuICAgICAgcmV0dXJuIFZhdERldGFpbHNLZXkudmF0R2hhbmFJbmNsdWRpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIFZhdERldGFpbHNLZXkudmF0UGVyY2VudEluY2x1ZGluZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmF0TGFiZWxGb3JUb3RhbERldGFpbHMoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoZmluYW5jZSkpIHtcbiAgICAgIHJldHVybiBgSW5jbHVkaW5nICR7ZmluYW5jZT8udmF0LnBlcmNlbnQgPz8gJyd9JSBHU1RgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR2hhbmEoZmluYW5jZSkpIHtcbiAgICAgIHJldHVybiAnSW5jbHVkaW5nIFZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBJbmNsdWRpbmcgJHtmaW5hbmNlPy52YXQucGVyY2VudCA/PyAnJ30lIFZBVGA7XG4gIH1cblxuICBwcml2YXRlIGlzSW5kaWEoZmluYW5jZTogWHBzRmluYW5jZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmluYW5jZT8ucGF5bWVudF9jb3VudHJ5LmlzbyA9PT0gJ0lOJztcbiAgfVxuXG4gIHByaXZhdGUgaXNHaGFuYShmaW5hbmNlOiBYcHNGaW5hbmNlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaW5hbmNlPy5wYXltZW50X2NvdW50cnkuaXNvID09PSAnR0gnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RlZmF1bHRJbWFnZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWZhdWx0SW1hZ2VQYXR0ZXJucy5zb21lKChyZWdleCkgPT4gcmVnZXgudGVzdCh1cmwpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var VatDetailsKey;
|
|
2
|
+
(function (VatDetailsKey) {
|
|
3
|
+
VatDetailsKey["vat"] = "vat";
|
|
4
|
+
VatDetailsKey["vatPercent"] = "vat-percent";
|
|
5
|
+
VatDetailsKey["vatIncluding"] = "vat-including";
|
|
6
|
+
VatDetailsKey["vatPercentIncluding"] = "vat-percent-including";
|
|
7
|
+
VatDetailsKey["vatIndia"] = "vat-india";
|
|
8
|
+
VatDetailsKey["vatIndiaPercent"] = "vat-india-percent";
|
|
9
|
+
VatDetailsKey["vatIndiaIncluding"] = "vat-india-including";
|
|
10
|
+
VatDetailsKey["vatIndiaPercentIncluding"] = "vat-india-percent-including";
|
|
11
|
+
VatDetailsKey["vatGhana"] = "vat-ghana";
|
|
12
|
+
VatDetailsKey["vatGhanaIncluding"] = "vat-ghana-including";
|
|
13
|
+
})(VatDetailsKey || (VatDetailsKey = {}));
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF0LWRldGFpbHMta2V5LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy92YXQtZGV0YWlscy1rZXkuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQWFYO0FBYkQsV0FBWSxhQUFhO0lBQ3ZCLDRCQUFXLENBQUE7SUFDWCwyQ0FBMEIsQ0FBQTtJQUMxQiwrQ0FBOEIsQ0FBQTtJQUM5Qiw4REFBNkMsQ0FBQTtJQUU3Qyx1Q0FBc0IsQ0FBQTtJQUN0QixzREFBcUMsQ0FBQTtJQUNyQywwREFBeUMsQ0FBQTtJQUN6Qyx5RUFBd0QsQ0FBQTtJQUV4RCx1Q0FBc0IsQ0FBQTtJQUN0QiwwREFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBYlcsYUFBYSxLQUFiLGFBQWEsUUFheEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBWYXREZXRhaWxzS2V5IHtcbiAgdmF0ID0gJ3ZhdCcsXG4gIHZhdFBlcmNlbnQgPSAndmF0LXBlcmNlbnQnLFxuICB2YXRJbmNsdWRpbmcgPSAndmF0LWluY2x1ZGluZycsXG4gIHZhdFBlcmNlbnRJbmNsdWRpbmcgPSAndmF0LXBlcmNlbnQtaW5jbHVkaW5nJyxcblxuICB2YXRJbmRpYSA9ICd2YXQtaW5kaWEnLFxuICB2YXRJbmRpYVBlcmNlbnQgPSAndmF0LWluZGlhLXBlcmNlbnQnLFxuICB2YXRJbmRpYUluY2x1ZGluZyA9ICd2YXQtaW5kaWEtaW5jbHVkaW5nJyxcbiAgdmF0SW5kaWFQZXJjZW50SW5jbHVkaW5nID0gJ3ZhdC1pbmRpYS1wZXJjZW50LWluY2x1ZGluZycsXG5cbiAgdmF0R2hhbmEgPSAndmF0LWdoYW5hJyxcbiAgdmF0R2hhbmFJbmNsdWRpbmcgPSAndmF0LWdoYW5hLWluY2x1ZGluZycsXG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ControlConfig } from './control-config';
|
|
2
|
+
export class PhoneControlConfig extends ControlConfig {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.controlType = 'phone';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtY29udHJvbC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2Zvcm0vY29udHJvbHMvcGhvbmUtY29udHJvbC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBQXJEOztRQUNTLGdCQUFXLEdBQUcsT0FBTyxDQUFDO0lBRy9CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2NvbnRyb2wtY29uZmlnJztcblxuZXhwb3J0IGNsYXNzIFBob25lQ29udHJvbENvbmZpZyBleHRlbmRzIENvbnRyb2xDb25maWcge1xuICBwdWJsaWMgY29udHJvbFR5cGUgPSAncGhvbmUnO1xuICBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBpY29uPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -17,6 +17,7 @@ import { RadioGroupConverter } from './radio-group/radio-group.converter';
|
|
|
17
17
|
import { PricepointConverter } from './pricepoint/pricepoint.converter';
|
|
18
18
|
import { CouponConverter } from './coupon/coupon.converter';
|
|
19
19
|
import { CardYearConverter } from './card-year/card-year.converter';
|
|
20
|
+
import { PhoneConverter } from './phone.converter';
|
|
20
21
|
export const convertersMapToken = new InjectionToken('ConvertersTokensMap');
|
|
21
22
|
export const convertersMap = {
|
|
22
23
|
card_number: CardNumberConverter,
|
|
@@ -41,5 +42,6 @@ export const convertersMap = {
|
|
|
41
42
|
sum: PricepointConverter,
|
|
42
43
|
out: PricepointConverter,
|
|
43
44
|
couponCode: CouponConverter,
|
|
45
|
+
phone: PhoneConverter,
|
|
44
46
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVycy1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2Zvcm0vY29udmVydGVycy9jb252ZXJ0ZXJzLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ2xELHFCQUFxQixDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFrQjtJQUMxQyxXQUFXLEVBQUUsbUJBQW1CO0lBQ2hDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixHQUFHLEVBQUUsWUFBWTtJQUNqQixTQUFTLEVBQUUsWUFBWTtJQUN2QixHQUFHLEVBQUUsWUFBWTtJQUNqQixjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLElBQUksRUFBRSxhQUFhO0lBQ25CLEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsR0FBRyxFQUFFLFlBQVk7SUFDakIsVUFBVSxFQUFFLG1CQUFtQjtJQUMvQixLQUFLLEVBQUUsY0FBYztJQUNyQixPQUFPLEVBQUUsY0FBYztJQUN2QixVQUFVLEVBQUUsY0FBYztJQUMxQixhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsR0FBRyxFQUFFLG1CQUFtQjtJQUN4QixVQUFVLEVBQUUsZUFBZTtJQUMzQixLQUFLLEVBQUUsY0FBYztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnZlcnRlcnNNYXAgfSBmcm9tICcuL2NvbnZlcnRlcnMtbWFwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFbWFpbENvbnZlcnRlciB9IGZyb20gJy4vZW1haWwvZW1haWwuY29udmVydGVyJztcbmltcG9ydCB7IFppcENvbnZlcnRlciB9IGZyb20gJy4vemlwL3ppcC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ2FyZE51bWJlckNvbnZlcnRlciB9IGZyb20gJy4vY2FyZC1udW1iZXIvY2FyZC1udW1iZXIuY29udmVydGVyJztcbmltcG9ydCB7IENhcmRNb250aENvbnZlcnRlciB9IGZyb20gJy4vY2FyZC1tb250aC9jYXJkLW1vbnRoLmNvbnZlcnRlcic7XG5pbXBvcnQgeyBDdnZDb252ZXJ0ZXIgfSBmcm9tICcuL2N2di9jdnYuY29udmVydGVyJztcbmltcG9ydCB7IEJpcnRoRGF0ZUNvbnZlcnRlciB9IGZyb20gJy4vYmlydGgtZGF0ZS9iaXJ0aC1kYXRlLmNvbnZlcnRlcic7XG5pbXBvcnQgeyBDYXJkaG9sZGVyTmFtZUNvbnZlcnRlciB9IGZyb20gJy4vY2FyZGhvbGRlci1uYW1lL2NhcmRob2xkZXItbmFtZS5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ3BmTmFtZUNvbnZlcnRlciB9IGZyb20gJy4vY3BmLW5hbWUvY3BmLW5hbWUuY29udmVydGVyJztcbmltcG9ydCB7IENwZk51bWJlckNvbnZlcnRlciB9IGZyb20gJy4vY3BmLW51bWJlci9jcGYtbnVtYmVyLmNvbnZlcnRlcic7XG5pbXBvcnQgeyBTdHJlZXROdW1iZXJDb252ZXJ0ZXIgfSBmcm9tICcuL3N0cmVldC1udW1iZXIvc3RyZWV0LW51bWJlci5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgVGV4dENvbnZlcnRlciB9IGZyb20gJy4vdGV4dC90ZXh0LmNvbnZlcnRlcic7XG5pbXBvcnQgeyBDaGVja2JveENvbnZlcnRlciB9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29udmVydGVyJztcbmltcG9ydCB7IFNlbGVjdENvbnZlcnRlciB9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgUGluQ29udmVydGVyIH0gZnJvbSAnLi9waW4vcGluLmNvbnZlcnRlcic7XG5pbXBvcnQgeyBSYWRpb0dyb3VwQ29udmVydGVyIH0gZnJvbSAnLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgUHJpY2Vwb2ludENvbnZlcnRlciB9IGZyb20gJy4vcHJpY2Vwb2ludC9wcmljZXBvaW50LmNvbnZlcnRlcic7XG5pbXBvcnQgeyBDb3Vwb25Db252ZXJ0ZXIgfSBmcm9tICcuL2NvdXBvbi9jb3Vwb24uY29udmVydGVyJztcbmltcG9ydCB7IENhcmRZZWFyQ29udmVydGVyIH0gZnJvbSAnLi9jYXJkLXllYXIvY2FyZC15ZWFyLmNvbnZlcnRlcic7XG5pbXBvcnQgeyBQaG9uZUNvbnZlcnRlciB9IGZyb20gJy4vcGhvbmUuY29udmVydGVyJztcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRlcnNNYXBUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb252ZXJ0ZXJzTWFwPihcbiAgJ0NvbnZlcnRlcnNUb2tlbnNNYXAnXG4pO1xuXG5leHBvcnQgY29uc3QgY29udmVydGVyc01hcDogQ29udmVydGVyc01hcCA9IHtcbiAgY2FyZF9udW1iZXI6IENhcmROdW1iZXJDb252ZXJ0ZXIsXG4gIGNhcmRfbW9udGg6IENhcmRNb250aENvbnZlcnRlcixcbiAgY2FyZF95ZWFyOiBDYXJkWWVhckNvbnZlcnRlcixcbiAgY3Z2OiBDdnZDb252ZXJ0ZXIsXG4gIGV4dHJhX2N2djogQ3Z2Q29udmVydGVyLFxuICB6aXA6IFppcENvbnZlcnRlcixcbiAgY2FyZGhvbGRlcm5hbWU6IENhcmRob2xkZXJOYW1lQ29udmVydGVyLFxuICBjcGZfbnVtYmVyOiBDcGZOdW1iZXJDb252ZXJ0ZXIsXG4gIGNwZl9uYW1lOiBDcGZOYW1lQ29udmVydGVyLFxuICBiaXJ0aF9kYXRlOiBCaXJ0aERhdGVDb252ZXJ0ZXIsXG4gIHRleHQ6IFRleHRDb252ZXJ0ZXIsXG4gIGNoZWNrOiBDaGVja2JveENvbnZlcnRlcixcbiAgc2VsZWN0OiBTZWxlY3RDb252ZXJ0ZXIsXG4gIHBpbjogUGluQ29udmVydGVyLFxuICByYWRpb2dyb3VwOiBSYWRpb0dyb3VwQ29udmVydGVyLFxuICBlbWFpbDogRW1haWxDb252ZXJ0ZXIsXG4gIHBzRW1haWw6IEVtYWlsQ29udmVydGVyLFxuICBiYXppdGVtYWlsOiBFbWFpbENvbnZlcnRlcixcbiAgc3RyZWV0X251bWJlcjogU3RyZWV0TnVtYmVyQ29udmVydGVyLFxuICBzdW06IFByaWNlcG9pbnRDb252ZXJ0ZXIsXG4gIG91dDogUHJpY2Vwb2ludENvbnZlcnRlcixcbiAgY291cG9uQ29kZTogQ291cG9uQ29udmVydGVyLFxuICBwaG9uZTogUGhvbmVDb252ZXJ0ZXIsXG59O1xuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Converter } from './converter.abstract';
|
|
3
|
+
import { phoneValidator } from '../validators/phone-validator';
|
|
4
|
+
import { minLengthValidator } from '../validators/min-length-validator';
|
|
5
|
+
import { maxLengthValidator } from '../validators/max-length-validator';
|
|
6
|
+
import { PhoneControlConfig } from '../controls/phone-control.config';
|
|
7
|
+
import { convertedRequiredValidator } from '../validators/required/required.validator';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../sync/sync.service";
|
|
10
|
+
export class PhoneConverter extends Converter {
|
|
11
|
+
constructor(syncService) {
|
|
12
|
+
super(syncService);
|
|
13
|
+
}
|
|
14
|
+
getValidators(field) {
|
|
15
|
+
const minLength = 10;
|
|
16
|
+
const maxLength = 15;
|
|
17
|
+
return super
|
|
18
|
+
.getValidators(field)
|
|
19
|
+
.concat([
|
|
20
|
+
convertedRequiredValidator(),
|
|
21
|
+
phoneValidator(),
|
|
22
|
+
minLengthValidator(minLength),
|
|
23
|
+
maxLengthValidator(maxLength),
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
createControlConfig(field) {
|
|
27
|
+
const config = this.createDefaultControlConfig(PhoneControlConfig, field);
|
|
28
|
+
config.inputMode = 'numeric';
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
PhoneConverter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PhoneConverter, deps: [{ token: i1.SyncService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
PhoneConverter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PhoneConverter });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PhoneConverter, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i1.SyncService }]; } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUuY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9mb3JtL2NvbnZlcnRlcnMvcGhvbmUuY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUMzQyxZQUFtQixXQUF3QjtRQUN6QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFZO1FBQy9CLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFckIsT0FBTyxLQUFLO2FBQ1QsYUFBYSxDQUFDLEtBQUssQ0FBQzthQUNwQixNQUFNLENBQUM7WUFDTiwwQkFBMEIsRUFBRTtZQUM1QixjQUFjLEVBQUU7WUFDaEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1lBQzdCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztTQUM5QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsbUJBQW1CLENBQUMsS0FBWTtRQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MkdBdkJVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlci5hYnN0cmFjdCc7XG5pbXBvcnQgeyBTeW5jU2VydmljZSB9IGZyb20gJy4uLy4uL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IHBob25lVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9ycy9waG9uZS12YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluTGVuZ3RoVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9ycy9taW4tbGVuZ3RoLXZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhMZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3JzL21heC1sZW5ndGgtdmFsaWRhdG9yJztcbmltcG9ydCB7IFBob25lQ29udHJvbENvbmZpZyB9IGZyb20gJy4uL2NvbnRyb2xzL3Bob25lLWNvbnRyb2wuY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnRlZFJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9ycy9yZXF1aXJlZC9yZXF1aXJlZC52YWxpZGF0b3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGhvbmVDb252ZXJ0ZXIgZXh0ZW5kcyBDb252ZXJ0ZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc3luY1NlcnZpY2U6IFN5bmNTZXJ2aWNlKSB7XG4gICAgc3VwZXIoc3luY1NlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbGlkYXRvcnMoZmllbGQ6IEZpZWxkKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgbWluTGVuZ3RoID0gMTA7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gMTU7XG5cbiAgICByZXR1cm4gc3VwZXJcbiAgICAgIC5nZXRWYWxpZGF0b3JzKGZpZWxkKVxuICAgICAgLmNvbmNhdChbXG4gICAgICAgIGNvbnZlcnRlZFJlcXVpcmVkVmFsaWRhdG9yKCksXG4gICAgICAgIHBob25lVmFsaWRhdG9yKCksXG4gICAgICAgIG1pbkxlbmd0aFZhbGlkYXRvcihtaW5MZW5ndGgpLFxuICAgICAgICBtYXhMZW5ndGhWYWxpZGF0b3IobWF4TGVuZ3RoKSxcbiAgICAgIF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnRyb2xDb25maWcoZmllbGQ6IEZpZWxkKTogUGhvbmVDb250cm9sQ29uZmlnIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNyZWF0ZURlZmF1bHRDb250cm9sQ29uZmlnKFBob25lQ29udHJvbENvbmZpZywgZmllbGQpO1xuICAgIGNvbmZpZy5pbnB1dE1vZGUgPSAnbnVtZXJpYyc7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
|
|
@@ -22,6 +22,7 @@ import { PinConverter } from './converters/pin/pin.converter';
|
|
|
22
22
|
import { RadioGroupConverter } from './converters/radio-group/radio-group.converter';
|
|
23
23
|
import { PricepointConverter } from './converters/pricepoint/pricepoint.converter';
|
|
24
24
|
import { CouponConverter } from './converters/coupon/coupon.converter';
|
|
25
|
+
import { PhoneConverter } from './converters/phone.converter';
|
|
25
26
|
import * as i0 from "@angular/core";
|
|
26
27
|
export class FormModule {
|
|
27
28
|
}
|
|
@@ -52,6 +53,8 @@ FormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15
|
|
|
52
53
|
PricepointConverter,
|
|
53
54
|
PricepointConverter,
|
|
54
55
|
CouponConverter,
|
|
56
|
+
TextConverter,
|
|
57
|
+
PhoneConverter,
|
|
55
58
|
{ provide: convertersMapToken, useValue: convertersMap },
|
|
56
59
|
], imports: [ReactiveFormsModule, ValidatorsModule] });
|
|
57
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormModule, decorators: [{
|
|
@@ -83,8 +86,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
83
86
|
PricepointConverter,
|
|
84
87
|
PricepointConverter,
|
|
85
88
|
CouponConverter,
|
|
89
|
+
TextConverter,
|
|
90
|
+
PhoneConverter,
|
|
86
91
|
{ provide: convertersMapToken, useValue: convertersMap },
|
|
87
92
|
],
|
|
88
93
|
}]
|
|
89
94
|
}] });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2Zvcm0vZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBa0M5RCxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLFlBL0JYLG1CQUFtQixFQUFFLGdCQUFnQjt3R0ErQnBDLFVBQVUsYUE5QlY7UUFDVCxXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxjQUFjO1FBQ2QsY0FBYztRQUNkLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7S0FDekQsWUE3QlMsbUJBQW1CLEVBQUUsZ0JBQWdCOzJGQStCcEMsVUFBVTtrQkFoQ3RCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ2hELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtxQkFDekQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb250cm9scy9jb250cm9sLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbnZlcnRlcnNNYXAsIGNvbnZlcnRlcnNNYXBUb2tlbiB9IGZyb20gJy4vY29udmVydGVycy9jb252ZXJ0ZXJzLW1hcCc7XG5pbXBvcnQgeyBFbWFpbENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy9lbWFpbC9lbWFpbC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgWmlwQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL3ppcC96aXAuY29udmVydGVyJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FyZE51bWJlckNvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy9jYXJkLW51bWJlci9jYXJkLW51bWJlci5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ2FyZE1vbnRoQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2NhcmQtbW9udGgvY2FyZC1tb250aC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ3Z2Q29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2N2di9jdnYuY29udmVydGVyJztcbmltcG9ydCB7IFZhbGlkYXRvcnNNb2R1bGUgfSBmcm9tICcuL3ZhbGlkYXRvcnMvdmFsaWRhdG9ycy5tb2R1bGUnO1xuaW1wb3J0IHsgQmlydGhEYXRlQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2JpcnRoLWRhdGUvYmlydGgtZGF0ZS5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ2FyZGhvbGRlck5hbWVDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvY2FyZGhvbGRlci1uYW1lL2NhcmRob2xkZXItbmFtZS5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ3BmTmFtZUNvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy9jcGYtbmFtZS9jcGYtbmFtZS5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgQ3BmTnVtYmVyQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2NwZi1udW1iZXIvY3BmLW51bWJlci5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgU3RyZWV0TnVtYmVyQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL3N0cmVldC1udW1iZXIvc3RyZWV0LW51bWJlci5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgVGV4dENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVycy90ZXh0L3RleHQuY29udmVydGVyJztcbmltcG9ydCB7IENhcmRZZWFyQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2NhcmQteWVhci9jYXJkLXllYXIuY29udmVydGVyJztcbmltcG9ydCB7IENoZWNrYm94Q29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL2NoZWNrYm94L2NoZWNrYm94LmNvbnZlcnRlcic7XG5pbXBvcnQgeyBTZWxlY3RDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvc2VsZWN0L3NlbGVjdC5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgUGluQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXJzL3Bpbi9waW4uY29udmVydGVyJztcbmltcG9ydCB7IFJhZGlvR3JvdXBDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29udmVydGVyJztcbmltcG9ydCB7IFByaWNlcG9pbnRDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvcHJpY2Vwb2ludC9wcmljZXBvaW50LmNvbnZlcnRlcic7XG5pbXBvcnQgeyBDb3Vwb25Db252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvY291cG9uL2NvdXBvbi5jb252ZXJ0ZXInO1xuaW1wb3J0IHsgUGhvbmVDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcnMvcGhvbmUuY29udmVydGVyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtU2VydmljZSxcbiAgICBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBDYXJkTnVtYmVyQ29udmVydGVyLFxuICAgIENhcmRNb250aENvbnZlcnRlcixcbiAgICBDYXJkWWVhckNvbnZlcnRlcixcbiAgICBDdnZDb252ZXJ0ZXIsXG4gICAgQ3Z2Q29udmVydGVyLFxuICAgIFppcENvbnZlcnRlcixcbiAgICBDYXJkaG9sZGVyTmFtZUNvbnZlcnRlcixcbiAgICBDcGZOdW1iZXJDb252ZXJ0ZXIsXG4gICAgQ3BmTmFtZUNvbnZlcnRlcixcbiAgICBCaXJ0aERhdGVDb252ZXJ0ZXIsXG4gICAgVGV4dENvbnZlcnRlcixcbiAgICBDaGVja2JveENvbnZlcnRlcixcbiAgICBTZWxlY3RDb252ZXJ0ZXIsXG4gICAgUGluQ29udmVydGVyLFxuICAgIFJhZGlvR3JvdXBDb252ZXJ0ZXIsXG4gICAgRW1haWxDb252ZXJ0ZXIsXG4gICAgRW1haWxDb252ZXJ0ZXIsXG4gICAgRW1haWxDb252ZXJ0ZXIsXG4gICAgU3RyZWV0TnVtYmVyQ29udmVydGVyLFxuICAgIFByaWNlcG9pbnRDb252ZXJ0ZXIsXG4gICAgUHJpY2Vwb2ludENvbnZlcnRlcixcbiAgICBDb3Vwb25Db252ZXJ0ZXIsXG4gICAgVGV4dENvbnZlcnRlcixcbiAgICBQaG9uZUNvbnZlcnRlcixcbiAgICB7IHByb3ZpZGU6IGNvbnZlcnRlcnNNYXBUb2tlbiwgdXNlVmFsdWU6IGNvbnZlcnRlcnNNYXAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { convert } from './convert.function';
|
|
3
|
+
export function maxLengthValidator(maxLength) {
|
|
4
|
+
return convert(Validators.maxLength(maxLength), `Enter no more than ${maxLength} characters`);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxlbmd0aC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2Zvcm0vdmFsaWRhdG9ycy9tYXgtbGVuZ3RoLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQjtJQUNsRCxPQUFPLE9BQU8sQ0FDWixVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUMvQixzQkFBc0IsU0FBUyxhQUFhLENBQzdDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnLi92YWxpZGF0b3ItZm4udHlwZSc7XG5pbXBvcnQgeyBjb252ZXJ0IH0gZnJvbSAnLi9jb252ZXJ0LmZ1bmN0aW9uJztcbmV4cG9ydCBmdW5jdGlvbiBtYXhMZW5ndGhWYWxpZGF0b3IobWF4TGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiBjb252ZXJ0KFxuICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKG1heExlbmd0aCksXG4gICAgYEVudGVyIG5vIG1vcmUgdGhhbiAke21heExlbmd0aH0gY2hhcmFjdGVyc2BcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { convert } from './convert.function';
|
|
3
|
+
export function minLengthValidator(minLength) {
|
|
4
|
+
return convert(Validators.minLength(minLength), `Enter at least ${minLength} characters`);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWxlbmd0aC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L2Zvcm0vdmFsaWRhdG9ycy9taW4tbGVuZ3RoLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQjtJQUNsRCxPQUFPLE9BQU8sQ0FDWixVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUMvQixrQkFBa0IsU0FBUyxhQUFhLENBQ3pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb252ZXJ0IH0gZnJvbSAnLi9jb252ZXJ0LmZ1bmN0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1pbkxlbmd0aFZhbGlkYXRvcihtaW5MZW5ndGg6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIGNvbnZlcnQoXG4gICAgVmFsaWRhdG9ycy5taW5MZW5ndGgobWluTGVuZ3RoKSxcbiAgICBgRW50ZXIgYXQgbGVhc3QgJHttaW5MZW5ndGh9IGNoYXJhY3RlcnNgXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { convert } from './convert.function';
|
|
3
|
+
export function phoneValidator() {
|
|
4
|
+
return convert(Validators.pattern(/^\d*$/), 'Enter a valid phone');
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9mb3JtL3ZhbGlkYXRvcnMvcGhvbmUtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0MsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICcuL3ZhbGlkYXRvci1mbi50eXBlJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuL2NvbnZlcnQuZnVuY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gcGhvbmVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gY29udmVydChWYWxpZGF0b3JzLnBhdHRlcm4oL15cXGQqJC8pLCAnRW50ZXIgYSB2YWxpZCBwaG9uZScpO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3BheW1lbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmV4dEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHMgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElucHV0RXZlbnROYW1lIH0gZnJvbSAnLi9mb3JtL2lucHV0LWV2ZW50LmVudW0nO1xuaW1wb3J0IHsgRm9ybUZpZWxkc1N0YXR1cyB9IGZyb20gJy4vZm9ybS9mb3JtLWZpZWxkcy1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gJy4vZm9ybS9mb3JtLXN0YXRlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudCB7XG4gIGluaXRpYWxpemUoKTogUHJvbWlzZTxGaWVsZFtdPjtcbiAgc3VibWl0KCk6IFByb21pc2U8TmV4dEFjdGlvbiB8IG51bGwgfCB2b2lkPjtcbiAgZ2V0RmllbGRzKCk6IEZpZWxkW107XG4gIHZhbGlkYXRlKGZpZWxkOiBGaWVsZCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+O1xuICBnZXRGaW5hbmNlRGV0YWlscygpOiBGaW5hbmNlRGV0YWlscyB8IG51bGw7XG4gIHJ1blRocmVlRHMoKTogdm9pZDtcbiAgZ2V0U3RhdHVzKCk6IFByb21pc2U8U3RhdHVzPjtcbiAgZm9ybToge1xuICAgIGZpZWxkc1N0YXR1cyQ6IE9ic2VydmFibGU8Rm9ybUZpZWxkc1N0YXR1cz47XG4gICAgY2hhbmdlRmllbGRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdldENvbnRyb2xDb25maWcoZmllbGQ6IEZpZWxkKTogQ29udHJvbENvbmZpZyB8IG51bGw7XG4gICAgY2hhbmdlRmllbGRTdGF0ZShuYW1lOiBzdHJpbmcsIHN0YXRlOiBJbnB1dEV2ZW50TmFtZSk6IHZvaWQ7XG4gICAgdXBkYXRlRmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBzdHJpbmcsIGZvcm1TdGF0ZTogRm9ybVN0YXRlKTogdm9pZDtcbiAgfTtcbiAgZmxvd1VwZGF0ZXMkOiBPYnNlcnZhYmxlPE5leHRBY3Rpb24+O1xuICBmaW5hbmNlRGV0YWlsc1VwZGF0ZXMkOiBPYnNlcnZhYmxlPEZpbmFuY2VEZXRhaWxzPjtcbn1cbiJdfQ==
|