vk-payments 0.2.29 → 0.2.31

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.
@@ -4,7 +4,7 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  import { Component, EventEmitter, Input, Output } from '@angular/core';
7
- import { FormControl, FormGroup, Validators } from '@angular/forms';
7
+ import { FormControl, FormGroup } from '@angular/forms';
8
8
  import { BankTransferApiService } from '../services/bank-transfer.api.service';
9
9
  export class BankTransferComponent {
10
10
  /**
@@ -12,23 +12,41 @@ export class BankTransferComponent {
12
12
  */
13
13
  constructor(bankTransferApi) {
14
14
  this.bankTransferApi = bankTransferApi;
15
+ this.discountRate = 0.10; // Tasa de descuento (10% por defecto)
16
+ // Descuento explícito desde el carrito
15
17
  this.statusPay = new EventEmitter();
16
18
  this.isLoading = false;
17
19
  this.errorMessage = '';
20
+ this.submittedSuccessfully = false;
21
+ this.amountCopied = false;
22
+ // CUIT no se pide al usuario por ahora — se envía valor genérico
18
23
  this.paymentForm = new FormGroup({
19
- cuit: new FormControl('', [
20
- Validators.required,
21
- Validators.minLength(11),
22
- Validators.maxLength(11),
23
- Validators.pattern('^[0-9]*$')
24
- ]),
24
+ cuit: new FormControl('00000000000')
25
25
  });
26
26
  }
27
+ // Calculados a partir de `amount` (que ya tiene el descuento aplicado)
27
28
  /**
28
29
  * @return {?}
29
30
  */
30
- ngOnInit() {
31
+ get subtotalAmount() {
32
+ if (this.discountAmountValue !== undefined && this.discountAmountValue !== null) {
33
+ return this.amount + this.discountAmountValue;
34
+ }
35
+ return this.amount ? Math.round(this.amount / (1 - this.discountRate)) : 0;
36
+ }
37
+ /**
38
+ * @return {?}
39
+ */
40
+ get discountAmount() {
41
+ if (this.discountAmountValue !== undefined && this.discountAmountValue !== null) {
42
+ return this.discountAmountValue;
43
+ }
44
+ return this.subtotalAmount - (this.amount || 0);
31
45
  }
46
+ /**
47
+ * @return {?}
48
+ */
49
+ ngOnInit() { }
32
50
  /**
33
51
  * @param {?} text
34
52
  * @return {?}
@@ -38,7 +56,6 @@ export class BankTransferComponent {
38
56
  * @return {?}
39
57
  */
40
58
  () => {
41
- // fallback para browsers sin clipboard API
42
59
  /** @type {?} */
43
60
  const el = document.createElement('textarea');
44
61
  el.value = text;
@@ -48,23 +65,31 @@ export class BankTransferComponent {
48
65
  document.body.removeChild(el);
49
66
  }));
50
67
  }
68
+ /**
69
+ * @return {?}
70
+ */
71
+ copyAmount() {
72
+ /** @type {?} */
73
+ const amountStr = this.amount ? this.amount.toFixed(2) : '0';
74
+ this.copyToClipboard(amountStr);
75
+ this.amountCopied = true;
76
+ setTimeout((/**
77
+ * @return {?}
78
+ */
79
+ () => this.amountCopied = false), 2000);
80
+ }
51
81
  /**
52
82
  * @return {?}
53
83
  */
54
84
  onSubmit() {
55
- if (this.paymentForm.invalid) {
56
- this.paymentForm.markAllAsTouched();
85
+ if (this.submittedSuccessfully || this.isLoading)
57
86
  return;
58
- }
59
87
  this.isLoading = true;
60
88
  this.errorMessage = '';
61
89
  /** @type {?} */
62
- const cuitControl = this.paymentForm.get('cuit');
63
- /** @type {?} */
64
- const cuitValue = cuitControl ? cuitControl.value : '';
65
- /** @type {?} */
66
90
  const request = {
67
- cuit: cuitValue.toString(),
91
+ cuit: '00000000000',
92
+ // Valor genérico mientras no se pide al usuario
68
93
  checkoutId: this.checkoutId,
69
94
  checkoutAdditionalData: this.checkoutAdditionalData,
70
95
  storeName: this.storeName || 'Tienda VK',
@@ -77,7 +102,7 @@ export class BankTransferComponent {
77
102
  (response) => {
78
103
  this.isLoading = false;
79
104
  if (response && response.success) {
80
- // Exito!
105
+ this.submittedSuccessfully = true;
81
106
  this.statusPay.emit({
82
107
  success: true,
83
108
  paymentId: (response.data && response.data.bankTransferEcommId) ? response.data.bankTransferEcommId : '',
@@ -85,8 +110,9 @@ export class BankTransferComponent {
85
110
  });
86
111
  }
87
112
  else {
88
- // El API respondió HTTP 200 pero success: false
89
- this.errorMessage = (response.errorsMessages && response.errorsMessages.length > 0) ? response.errorsMessages[0] : 'Ocurrió un error al registrar la transferencia.';
113
+ this.errorMessage = (response.errorsMessages && response.errorsMessages.length > 0)
114
+ ? response.errorsMessages[0]
115
+ : 'Ocurrió un error al registrar la transferencia.';
90
116
  this.statusPay.emit({
91
117
  success: false,
92
118
  paymentId: '',
@@ -98,9 +124,10 @@ export class BankTransferComponent {
98
124
  * @return {?}
99
125
  */
100
126
  (error) => {
101
- // Error HTTP (500, 400, etc)
102
127
  this.isLoading = false;
103
- this.errorMessage = (error && error.error && error.error.errorsMessages && error.error.errorsMessages.length > 0) ? error.error.errorsMessages[0] : 'Ocurrió un error de conexión al registrar la transferencia.';
128
+ this.errorMessage = (error && error.error && error.error.errorsMessages && error.error.errorsMessages.length > 0)
129
+ ? error.error.errorsMessages[0]
130
+ : 'Ocurrió un error de conexión al registrar la transferencia.';
104
131
  this.statusPay.emit({
105
132
  success: false,
106
133
  paymentId: '',
@@ -109,7 +136,6 @@ export class BankTransferComponent {
109
136
  console.error('Error BankTransferApiService:', error);
110
137
  }));
111
138
  }
112
- // Helper para validación visual en el template
113
139
  /**
114
140
  * @return {?}
115
141
  */
@@ -120,8 +146,8 @@ export class BankTransferComponent {
120
146
  BankTransferComponent.decorators = [
121
147
  { type: Component, args: [{
122
148
  selector: 'vk-bank-transfer',
123
- template: "<form\n [formGroup]=\"paymentForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"bt-payment\"\n id=\"formularioBT\"\n autocomplete=\"off\"\n>\n\n \n\n <div class=\"bank-info-box\">\n <div class=\"bank-info-header\">\n <i class=\"material-icons\">account_balance</i>\n <span>Datos para la transferencia</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">tag</i>N\u00FAmero de cuenta</span>\n <span class=\"bank-info-value\">2-311972/1</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">qr_code</i>CBU</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">4150002012003119720013</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar CBU\" (click)=\"copyToClipboard('4150002012003119720013')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">alternate_email</i>Alias</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">reba.vitnik</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar alias\" (click)=\"copyToClipboard('reba.vitnik')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">badge</i>CUIT/CUIL</span>\n <span class=\"bank-info-value\">30708777893</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">attach_money</i>Moneda</span>\n <span class=\"bank-info-value\">Peso Argentino</span>\n </div>\n </div>\n\n <div class=\"summary-box\">\n <div class=\"summary-row total\">\n <span>Total a transferir:</span>\n <span class=\"amount\">${{ amount | number:'1.2-2' }}</span>\n </div>\n <small>* El 10% de descuento extra ya se encuentra aplicado a este total.</small>\n </div>\n\n <div class=\"formRow\">\n <p class=\"description\">\n Complet\u00E1 tu CUIT/CUIL para registrar el pago por transferencia. \n Una vez confirmado, tu pedido quedar\u00E1 sujeto a la aprobaci\u00F3n del pago.\n </p>\n </div>\n\n <div class=\"formRow\">\n <label for=\"cuit\">CUIT / CUIL del titular de la cuenta origen *</label>\n <span>\n <input\n id=\"cuit\"\n type=\"text\"\n formControlName=\"cuit\"\n name=\"cuit\"\n required\n maxlength=\"11\"\n placeholder=\"Ej: 20112223334 (Sin guiones)\"\n [ngClass]=\"{'is-invalid': cuitControl?.invalid && (cuitControl?.dirty || cuitControl?.touched)}\"\n />\n </span>\n \n <p\n class=\"alert-text\"\n *ngIf=\"cuitControl?.invalid && (cuitControl?.dirty || cuitControl?.touched)\"\n >\n <span *ngIf=\"cuitControl?.errors?.required\">El CUIT/CUIL es obligatorio.</span>\n <span *ngIf=\"cuitControl?.errors?.pattern\">Debe contener solo n\u00FAmeros.</span>\n <span *ngIf=\"cuitControl?.errors?.minlength || cuitControl?.errors?.maxlength\">Debe tener exactamente 11 d\u00EDgitos.</span>\n </p>\n </div>\n\n \n <!-- Loading State -->\n <div *ngIf=\"isLoading\" class=\"pay-message info\">\n <i class=\"material-icons\">info</i>\n <p>Procesando informaci\u00F3n de transferencia...</p>\n </div>\n\n <!-- Error devuelto por la API -->\n <div class=\"pay-message error\" *ngIf=\"errorMessage && !isLoading\">\n <i class=\"material-icons\">error</i>\n <p>{{ errorMessage }}</p>\n </div>\n\n <div>\n <button type=\"submit\" [disabled]=\"paymentForm.invalid || isLoading\">\n Confirmar Transferencia\n </button>\n </div>\n\n</form>\n",
124
- styles: [".bt-payment{background-color:transparent;font-family:inherit,sans-serif;padding:0 12px}.bt-payment p.description{font-size:16px;color:#888;margin-bottom:5px}.bt-payment .bank-info-box{border:1px solid #c8e0f0;border-radius:8px;overflow:hidden;margin-bottom:18px}.bt-payment .bank-info-box .bank-info-header{display:flex;align-items:center;gap:8px;background-color:#009ee3;color:#fff;padding:10px 14px;font-size:18px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.bt-payment .bank-info-box .bank-info-header i.material-icons{font-size:18px}.bt-payment .bank-info-box .bank-info-row{display:flex;justify-content:space-between;align-items:center;font-size:18px;padding:8px 14px;background-color:#fff;border-bottom:1px solid #eef3f7}.bt-payment .bank-info-box .bank-info-row:last-child{border-bottom:none}.bt-payment .bank-info-box .bank-info-label{display:flex;align-items:center;gap:6px;color:#777;flex-shrink:0;margin-right:8px}.bt-payment .bank-info-box .bank-info-label i.material-icons{font-size:15px;color:#009ee3}.bt-payment .bank-info-box .bank-info-value{font-weight:600;color:#1a1a1a;text-align:right}.bt-payment .bank-info-box .bank-info-value.bank-info-copy{display:flex;align-items:center;gap:4px}.bt-payment .bank-info-box .bank-info-value .bank-info-copy-text{font-family:\"Courier New\",monospace;font-size:18px;letter-spacing:.3px}.bt-payment .bank-info-box .copy-btn{background:0 0;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#009ee3;display:flex;align-items:center;margin-top:0;width:auto;min-width:unset}.bt-payment .bank-info-box .copy-btn i.material-icons{font-size:16px}.bt-payment .bank-info-box .copy-btn:hover{background-color:#e8f4fb}.bt-payment .bank-info-box .copy-btn:disabled{background-color:transparent;cursor:default}.bt-payment .formRow{margin-top:10px}.bt-payment .formRow label{font-size:16px;color:#888}.bt-payment .formRow span{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:2px 10px;display:block;margin-top:4px}.bt-payment .formRow span input[type=text]{background:0 0;border:none;color:#000;font-size:16px;height:23px;width:100%;text-transform:uppercase;vertical-align:top;padding:0;margin:0}.bt-payment .formRow span input[type=text]:focus{outline:0}.bt-payment .alert-text{font-size:16px;color:#009ee3;margin-top:7px;margin-bottom:0}.bt-payment .summary-box{margin-top:20px;margin-bottom:20px;text-align:right}.bt-payment .summary-box .summary-row{display:flex;justify-content:flex-end;align-items:center;font-size:18px;color:#333}.bt-payment .summary-box .summary-row span.amount{font-weight:700;color:#000;margin-left:10px}.bt-payment .summary-box small{display:block;color:#888;font-size:16px;margin-top:5px}.bt-payment button{background-color:#009ee3;color:#fff;font-size:18px;text-align:center;padding:10px 0;width:100%;border:none;border-radius:20px;margin-top:20px;cursor:pointer}.bt-payment button:disabled{background-color:#525252;cursor:not-allowed}.bt-payment .pay-message{margin-top:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px}.bt-payment .pay-message p{font-size:1.1rem;text-align:center;line-height:130%;margin-bottom:10px}.bt-payment .pay-message i.data{font-size:.9rem;text-align:center}.bt-payment .pay-message i.material-icons{font-size:2rem;margin-bottom:5px}.bt-payment .success{background-color:#dff2bf;color:#4f8a10}.bt-payment .error{color:#d8000c;background-color:#ffd2d2}.bt-payment .info{color:#00529b;background-color:#bde5f8}:focus{outline:0}"]
149
+ template: "<form\n [formGroup]=\"paymentForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"bt-payment\"\n id=\"formularioBT\"\n autocomplete=\"off\"\n>\n\n <!-- Datos bancarios -->\n <div class=\"bank-info-box\">\n <div class=\"bank-info-header\">\n <i class=\"material-icons\">account_balance</i>\n <span>Datos para la transferencia</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">tag</i>N\u00FAmero de cuenta</span>\n <span class=\"bank-info-value\">2-311972/1</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">qr_code</i>CBU</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">4150002012003119720013</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar CBU\" (click)=\"copyToClipboard('4150002012003119720013')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">alternate_email</i>Alias</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">reba.vitnik</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar alias\" (click)=\"copyToClipboard('reba.vitnik')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">badge</i>CUIT/CUIL</span>\n <span class=\"bank-info-value\">30708777893</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">attach_money</i>Moneda</span>\n <span class=\"bank-info-value\">Peso Argentino</span>\n </div>\n </div>\n\n <!-- Resumen con desglose del descuento -->\n <div class=\"summary-box\">\n <div class=\"summary-row\">\n <span class=\"summary-label\">Subtotal</span>\n <span class=\"summary-value\">${{ subtotalAmount | number:'1.2-2' }}</span>\n </div>\n <div class=\"summary-row discount\">\n <span class=\"summary-label\">\n <i class=\"material-icons\">local_offer</i>\n Descuento transferencia ({{ discountRate * 100 | number:'1.0-0' }}%)\n </span>\n <span class=\"summary-value discount-value\">-${{ discountAmount | number:'1.2-2' }}</span>\n </div>\n <div class=\"summary-row total\">\n <span class=\"summary-label\">Total a transferir</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }}\n <button\n class=\"copy-btn copy-amount-btn\"\n type=\"button\"\n [title]=\"amountCopied ? 'Copiado!' : 'Copiar monto'\"\n (click)=\"copyAmount()\"\n >\n <i class=\"material-icons\">{{ amountCopied ? 'check' : 'content_copy' }}</i>\n </button>\n </span>\n </div>\n </div>\n\n <!-- Leyenda de monto exacto -->\n <div class=\"exact-amount-notice\">\n <i class=\"material-icons notice-icon\">info</i>\n <p>\n <strong>\u00A1Ya casi es tuyo!</strong> Para que podamos procesar tu pedido sin demoras,\n asegurate de que el importe de la transferencia sea <strong>id\u00E9ntico</strong> al total indicado arriba.\n </p>\n </div>\n\n <!-- Error devuelto por la API -->\n <div class=\"pay-message error\" *ngIf=\"errorMessage && !isLoading\">\n <i class=\"material-icons\">error</i>\n <p>{{ errorMessage }}</p>\n </div>\n\n <!-- Loading -->\n <div *ngIf=\"isLoading\" class=\"pay-message info\">\n <i class=\"material-icons\">info</i>\n <p>Procesando informaci\u00F3n de transferencia...</p>\n </div>\n\n <!-- Bot\u00F3n confirmar (oculto tras \u00E9xito) -->\n <div *ngIf=\"!submittedSuccessfully\">\n <button type=\"submit\" [disabled]=\"paymentForm.invalid || isLoading\">\n Confirmar Transferencia\n </button>\n </div>\n\n</form>\n",
150
+ styles: [".bt-payment{background-color:transparent;font-family:inherit,sans-serif;padding:0 12px}.bt-payment p.description{font-size:16px;color:#888;margin-bottom:5px}.bt-payment .bank-info-box{border:1px solid #c8e0f0;border-radius:8px;overflow:hidden;margin-bottom:18px}.bt-payment .bank-info-box .bank-info-header{display:flex;align-items:center;gap:8px;background-color:#009ee3;color:#fff;padding:10px 14px;font-size:18px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.bt-payment .bank-info-box .bank-info-header i.material-icons{font-size:18px}.bt-payment .bank-info-box .bank-info-row{display:flex;justify-content:space-between;align-items:center;font-size:18px;padding:8px 14px;background-color:#fff;border-bottom:1px solid #eef3f7}.bt-payment .bank-info-box .bank-info-row:last-child{border-bottom:none}.bt-payment .bank-info-box .bank-info-label{display:flex;align-items:center;gap:6px;color:#777;flex-shrink:0;margin-right:8px}.bt-payment .bank-info-box .bank-info-label i.material-icons{font-size:15px;color:#009ee3}.bt-payment .bank-info-box .bank-info-value{font-weight:600;color:#1a1a1a;text-align:right}.bt-payment .bank-info-box .bank-info-value.bank-info-copy{display:flex;align-items:center;gap:4px}.bt-payment .bank-info-box .bank-info-value .bank-info-copy-text{font-family:\"Courier New\",monospace;font-size:18px;letter-spacing:.3px}.bt-payment .bank-info-box .copy-btn{background:0 0;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#009ee3;display:flex;align-items:center;margin-top:0;width:auto;min-width:unset}.bt-payment .bank-info-box .copy-btn i.material-icons{font-size:16px}.bt-payment .bank-info-box .copy-btn:hover{background-color:#e8f4fb}.bt-payment .bank-info-box .copy-btn:disabled{background-color:transparent;cursor:default}.bt-payment .summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.bt-payment .summary-box .summary-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-size:16px;background-color:#fff;border-bottom:1px solid #f0f0f0}.bt-payment .summary-box .summary-row:last-child{border-bottom:none}.bt-payment .summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.bt-payment .summary-box .summary-row .summary-label i.material-icons{font-size:14px}.bt-payment .summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;gap:6px}.bt-payment .summary-box .summary-row.discount{background-color:#f0fdf4}.bt-payment .summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.bt-payment .summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.bt-payment .summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.bt-payment .summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.bt-payment .summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.bt-payment .summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.bt-payment .summary-box .copy-amount-btn{background:0 0;border:1px solid #009ee3;border-radius:6px;cursor:pointer;padding:2px 6px;color:#009ee3;display:flex;align-items:center;width:auto;min-width:unset;margin-top:0;transition:background-color .2s}.bt-payment .summary-box .copy-amount-btn i.material-icons{font-size:16px}.bt-payment .summary-box .copy-amount-btn:hover{background-color:#e8f4fb}.bt-payment .exact-amount-notice{display:flex;align-items:flex-start;gap:10px;background-color:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:12px 14px;margin-bottom:20px}.bt-payment .exact-amount-notice .notice-icon{font-size:20px;color:#d97706;flex-shrink:0;margin-top:2px}.bt-payment .exact-amount-notice p{font-size:14px;color:#78350f;margin:0;line-height:1.5}.bt-payment .formRow{margin-top:10px;display:none}.bt-payment .formRow label{font-size:16px;color:#888}.bt-payment .formRow span{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:2px 10px;display:block;margin-top:4px}.bt-payment .formRow span input[type=text]{background:0 0;border:none;color:#000;font-size:16px;height:23px;width:100%;text-transform:uppercase;vertical-align:top;padding:0;margin:0}.bt-payment .formRow span input[type=text]:focus{outline:0}.bt-payment .alert-text{font-size:16px;color:#009ee3;margin-top:7px;margin-bottom:0}.bt-payment button[type=submit]{background-color:#009ee3;color:#fff;font-size:18px;text-align:center;padding:10px 0;width:100%;border:none;border-radius:20px;margin-top:20px;cursor:pointer}.bt-payment button[type=submit]:disabled{background-color:#525252;cursor:not-allowed}.bt-payment .pay-message{margin-top:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;border-radius:8px}.bt-payment .pay-message p{font-size:1.1rem;text-align:center;line-height:130%;margin-bottom:10px}.bt-payment .pay-message i.material-icons{font-size:2rem;margin-bottom:5px}.bt-payment .success{background-color:#dff2bf;color:#4f8a10}.bt-payment .error{color:#d8000c;background-color:#ffd2d2}.bt-payment .info{color:#00529b;background-color:#bde5f8}:focus{outline:0}"]
125
151
  }] }
126
152
  ];
127
153
  /** @nocollapse */
@@ -136,6 +162,8 @@ BankTransferComponent.propDecorators = {
136
162
  storeName: [{ type: Input }],
137
163
  checkoutId: [{ type: Input }],
138
164
  checkoutAdditionalData: [{ type: Input }],
165
+ discountRate: [{ type: Input }],
166
+ discountAmountValue: [{ type: Input }],
139
167
  statusPay: [{ type: Output }]
140
168
  };
141
169
  if (false) {
@@ -154,6 +182,10 @@ if (false) {
154
182
  /** @type {?} */
155
183
  BankTransferComponent.prototype.checkoutAdditionalData;
156
184
  /** @type {?} */
185
+ BankTransferComponent.prototype.discountRate;
186
+ /** @type {?} */
187
+ BankTransferComponent.prototype.discountAmountValue;
188
+ /** @type {?} */
157
189
  BankTransferComponent.prototype.statusPay;
158
190
  /** @type {?} */
159
191
  BankTransferComponent.prototype.paymentForm;
@@ -161,10 +193,14 @@ if (false) {
161
193
  BankTransferComponent.prototype.isLoading;
162
194
  /** @type {?} */
163
195
  BankTransferComponent.prototype.errorMessage;
196
+ /** @type {?} */
197
+ BankTransferComponent.prototype.submittedSuccessfully;
198
+ /** @type {?} */
199
+ BankTransferComponent.prototype.amountCopied;
164
200
  /**
165
201
  * @type {?}
166
202
  * @private
167
203
  */
168
204
  BankTransferComponent.prototype.bankTransferApi;
169
205
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYW5rLXRyYW5zZmVyL2NvbXBvbmVudHMvYmFuay10cmFuc2Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBUS9FLE1BQU0sT0FBTyxxQkFBcUI7Ozs7SUFtQmhDLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQVRqRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFNN0QsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQy9CLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hCLFVBQVUsQ0FBQyxRQUFRO2dCQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2FBQy9CLENBQUM7U0FJSCxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7Ozs7O0lBRU0sZUFBZSxDQUFDLElBQVk7UUFDakMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSzs7O1FBQUMsR0FBRyxFQUFFOzs7a0JBRXZDLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUM3QyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQzs7Y0FFakIsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQzs7Y0FDMUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTs7Y0FFaEQsT0FBTyxHQUErQjtZQUMxQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUMxQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0Isc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtZQUNuRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxXQUFXO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTOzs7O1FBQ3BGLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUV2QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxTQUFTO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO29CQUNsQixPQUFPLEVBQUUsSUFBSTtvQkFDYixTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDeEcsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCxDQUFDO2dCQUNySyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDbEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQzs7OztRQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUiw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDZEQUE2RCxDQUFDO1lBQ2xOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsZUFBZTthQUM1QixDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hELENBQUMsRUFDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFHRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7WUEvR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDYySEFBNkM7O2FBRTlDOzs7O1lBUFEsc0JBQXNCOzs7MEJBVTVCLEtBQUs7dUJBQ0wsS0FBSztxQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3FDQUNMLEtBQUs7d0JBRUwsTUFBTTs7OztJQVJQLDRDQUE4Qjs7SUFDOUIseUNBQTJCOztJQUMzQix1Q0FBeUI7O0lBQ3pCLHdDQUEwQjs7SUFDMUIsMENBQTRCOztJQUM1QiwyQ0FBNkI7O0lBQzdCLHVEQUF5Qzs7SUFFekMsMENBQW9FOztJQUtwRSw0Q0FBOEI7O0lBQzlCLDBDQUFrQzs7SUFDbEMsNkNBQWlDOzs7OztJQUVyQixnREFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFua1RyYW5zZmVyQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2JhbmstdHJhbnNmZXIuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua1RyYW5zZmVyUGF5bWVudFJlcXVlc3QsIEJhbmtUcmFuc2ZlclBheW1lbnRSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvYmFuay10cmFuc2Zlci5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ay1iYW5rLXRyYW5zZmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhbmstdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYW5rLXRyYW5zZmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFua1RyYW5zZmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBhY2Nlc3NUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgdmtVcmxBcGkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFtb3VudCE6IG51bWJlcjtcbiAgQElucHV0KCkgc3RvcmVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjaGVja291dElkITogbnVtYmVyO1xuICBASW5wdXQoKSBjaGVja291dEFkZGl0aW9uYWxEYXRhITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBzdGF0dXNQYXkgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbmtUcmFuc2ZlclBheW1lbnRSZXN1bHQ+KCk7XG5cbiAgLy8gRWwgZGVzY3VlbnRvIHlhIGxvIG1hbmVqYSBlbCBCYWNrZW5kIGFqdXN0YW5kbyBlbCBpbXBvcnRlIGRlIGxhIG9yZGVuLiBcbiAgLy8gTm8gbG8gbWFuZGFtb3MsIHNvbG8gcG9kcsOtYW1vcyB1c2FybG8gdmlzdWFsbWVudGUgc2kgbGEgVVggbG8gcmVxdWllcmUuXG5cbiAgcHVibGljIHBheW1lbnRGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYW5rVHJhbnNmZXJBcGk6IEJhbmtUcmFuc2ZlckFwaVNlcnZpY2UpIHtcbiAgICB0aGlzLnBheW1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBjdWl0OiBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTEpLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlswLTldKiQnKVxuICAgICAgXSksXG4gICAgICAvLyBFbCBiYW5jbyBvcmlnZW4gbm8gc2UgZXN0w6EgbWFuZGFuZG8gYWwgYmFja2VuZCBhY3R1YWwgKGVsIFNQIG5vIGxvIHBpZGUpLFxuICAgICAgLy8gcGVybyBwb2Ryw61hbW9zIHBlZGlybG8gc2kgZXMgw7p0aWwgcGFyYSBjb25jaWxpYWNpb25lcyBtYW51YWxlcyBmdXR1cmFzLlxuICAgICAgLy8gUG9yIGVsIG1vbWVudG8sIHBlZGlyZW1vcyBlbCBDVUlULCBxdWUgc8OtIGxvIGV4aWdlIGVsIERUTy5cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS5jYXRjaCgoKSA9PiB7XG4gICAgICAvLyBmYWxsYmFjayBwYXJhIGJyb3dzZXJzIHNpbiBjbGlwYm9hcmQgQVBJXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICBlbC52YWx1ZSA9IHRleHQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtcbiAgICAgIGVsLnNlbGVjdCgpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBheW1lbnRGb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMucGF5bWVudEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgY29uc3QgY3VpdENvbnRyb2wgPSB0aGlzLnBheW1lbnRGb3JtLmdldCgnY3VpdCcpO1xuICAgIGNvbnN0IGN1aXRWYWx1ZSA9IGN1aXRDb250cm9sID8gY3VpdENvbnRyb2wudmFsdWUgOiAnJztcblxuICAgIGNvbnN0IHJlcXVlc3Q6IEJhbmtUcmFuc2ZlclBheW1lbnRSZXF1ZXN0ID0ge1xuICAgICAgY3VpdDogY3VpdFZhbHVlLnRvU3RyaW5nKCksXG4gICAgICBjaGVja291dElkOiB0aGlzLmNoZWNrb3V0SWQsXG4gICAgICBjaGVja291dEFkZGl0aW9uYWxEYXRhOiB0aGlzLmNoZWNrb3V0QWRkaXRpb25hbERhdGEsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVOYW1lIHx8ICdUaWVuZGEgVksnLFxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkXG4gICAgfTtcblxuICAgIHRoaXMuYmFua1RyYW5zZmVyQXBpLmNyZWF0ZVBheW1lbnQodGhpcy5hY2Nlc3NUb2tlbiwgcmVxdWVzdCwgdGhpcy52a1VybEFwaSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAvLyBFeGl0byFcbiAgICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICBwYXltZW50SWQ6IChyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEuYmFua1RyYW5zZmVyRWNvbW1JZCkgPyByZXNwb25zZS5kYXRhLmJhbmtUcmFuc2ZlckVjb21tSWQgOiAnJyxcbiAgICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVsIEFQSSByZXNwb25kacOzIEhUVFAgMjAwIHBlcm8gc3VjY2VzczogZmFsc2VcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChyZXNwb25zZS5lcnJvcnNNZXNzYWdlcyAmJiByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKSA/IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzWzBdIDogJ09jdXJyacOzIHVuIGVycm9yIGFsIHJlZ2lzdHJhciBsYSB0cmFuc2ZlcmVuY2lhLic7XG4gICAgICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIHBheW1lbnRJZDogJycsXG4gICAgICAgICAgICBpbnRlZ3JhdG9yOiAnQkFOS19UUkFOU0ZFUidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAvLyBFcnJvciBIVFRQICg1MDAsIDQwMCwgZXRjKVxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcyAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKSA/IGVycm9yLmVycm9yLmVycm9yc01lc3NhZ2VzWzBdIDogJ09jdXJyacOzIHVuIGVycm9yIGRlIGNvbmV4acOzbiBhbCByZWdpc3RyYXIgbGEgdHJhbnNmZXJlbmNpYS4nO1xuICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBwYXltZW50SWQ6ICcnLFxuICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgQmFua1RyYW5zZmVyQXBpU2VydmljZTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8vIEhlbHBlciBwYXJhIHZhbGlkYWNpw7NuIHZpc3VhbCBlbiBlbCB0ZW1wbGF0ZVxuICBwdWJsaWMgZ2V0IGN1aXRDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRGb3JtLmdldCgnY3VpdCcpO1xuICB9XG59XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYW5rLXRyYW5zZmVyL2NvbXBvbmVudHMvYmFuay10cmFuc2Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFRL0UsTUFBTSxPQUFPLHFCQUFxQjs7OztJQW1DaEMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBMUJsRCxpQkFBWSxHQUFXLElBQUksQ0FBQyxDQUFDLHNDQUFzQzs7UUFHbEUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRzdELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBa0JuQyxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBbkJELElBQUksY0FBYztRQUNoQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUMvRSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQy9DO1FBQ0QsT0FBTyxJQUFJLENB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QyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7WUF4SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDQvSEFBNkM7O2FBRTlDOzs7O1lBUFEsc0JBQXNCOzs7MEJBVTVCLEtBQUs7dUJBQ0wsS0FBSztxQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3FDQUNMLEtBQUs7MkJBQ0wsS0FBSztrQ0FDTCxLQUFLO3dCQUVMLE1BQU07Ozs7SUFWUCw0Q0FBOEI7O0lBQzlCLHlDQUEyQjs7SUFDM0IsdUNBQXlCOztJQUN6Qix3Q0FBMEI7O0lBQzFCLDBDQUE0Qjs7SUFDNUIsMkNBQTZCOztJQUM3Qix1REFBeUM7O0lBQ3pDLDZDQUFxQzs7SUFDckMsb0RBQXNDOztJQUV0QywwQ0FBb0U7O0lBRXBFLDRDQUE4Qjs7SUFDOUIsMENBQWtDOztJQUNsQyw2Q0FBaUM7O0lBQ2pDLHNEQUE4Qzs7SUFDOUMsNkNBQXFDOzs7OztJQWlCekIsZ0RBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhbmtUcmFuc2ZlckFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYW5rLXRyYW5zZmVyLmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEJhbmtUcmFuc2ZlclBheW1lbnRSZXF1ZXN0LCBCYW5rVHJhbnNmZXJQYXltZW50UmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2JhbmstdHJhbnNmZXIubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmstYmFuay10cmFuc2ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYW5rLXRyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFuay10cmFuc2Zlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtUcmFuc2ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYWNjZXNzVG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZrVXJsQXBpITogc3RyaW5nO1xuICBASW5wdXQoKSBhbW91bnQhOiBudW1iZXI7ICAgICAgIC8vIFRvdGFsIHlhIGNvbiBkZXNjdWVudG8gYXBsaWNhZG8gcG9yIGVsIGJhY2tlbmRcbiAgQElucHV0KCkgc3RvcmVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjaGVja291dElkITogbnVtYmVyO1xuICBASW5wdXQoKSBjaGVja291dEFkZGl0aW9uYWxEYXRhITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNjb3VudFJhdGU6IG51bWJlciA9IDAuMTA7IC8vIFRhc2EgZGUgZGVzY3VlbnRvICgxMCUgcG9yIGRlZmVjdG8pXG4gIEBJbnB1dCgpIGRpc2NvdW50QW1vdW50VmFsdWU/OiBudW1iZXI7IC8vIERlc2N1ZW50byBleHBsw61jaXRvIGRlc2RlIGVsIGNhcnJpdG9cblxuICBAT3V0cHV0KCkgc3RhdHVzUGF5ID0gbmV3IEV2ZW50RW1pdHRlcjxCYW5rVHJhbnNmZXJQYXltZW50UmVzdWx0PigpO1xuXG4gIHB1YmxpYyBwYXltZW50Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc3VibWl0dGVkU3VjY2Vzc2Z1bGx5OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBhbW91bnRDb3BpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBDYWxjdWxhZG9zIGEgcGFydGlyIGRlIGBhbW91bnRgIChxdWUgeWEgdGllbmUgZWwgZGVzY3VlbnRvIGFwbGljYWRvKVxuICBnZXQgc3VidG90YWxBbW91bnQoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5hbW91bnQgKyB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFtb3VudCA/IE1hdGgucm91bmQodGhpcy5hbW91bnQgLyAoMSAtIHRoaXMuZGlzY291bnRSYXRlKSkgOiAwO1xuICB9XG5cbiAgZ2V0IGRpc2NvdW50QW1vdW50KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3VidG90YWxBbW91bnQgLSAodGhpcy5hbW91bnQgfHwgMCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhbmtUcmFuc2ZlckFwaTogQmFua1RyYW5zZmVyQXBpU2VydmljZSkge1xuICAgIC8vIENVSVQgbm8gc2UgcGlkZSBhbCB1c3VhcmlvIHBvciBhaG9yYSDigJQgc2UgZW52w61hIHZhbG9yIGdlbsOpcmljb1xuICAgIHRoaXMucGF5bWVudEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGN1aXQ6IG5ldyBGb3JtQ29udHJvbCgnMDAwMDAwMDAwMDAnKVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCkuY2F0Y2goKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgZWwudmFsdWUgPSB0ZXh0O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gICAgICBlbC5zZWxlY3QoKTtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5QW1vdW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFtb3VudFN0ciA9IHRoaXMuYW1vdW50ID8gdGhpcy5hbW91bnQudG9GaXhlZCgyKSA6ICcwJztcbiAgICB0aGlzLmNvcHlUb0NsaXBib2FyZChhbW91bnRTdHIpO1xuICAgIHRoaXMuYW1vdW50Q29waWVkID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYW1vdW50Q29waWVkID0gZmFsc2UsIDIwMDApO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRlZFN1Y2Nlc3NmdWxseSB8fCB0aGlzLmlzTG9hZGluZykgcmV0dXJuO1xuXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBCYW5rVHJhbnNmZXJQYXltZW50UmVxdWVzdCA9IHtcbiAgICAgIGN1aXQ6ICcwMDAwMDAwMDAwMCcsICAvLyBWYWxvciBnZW7DqXJpY28gbWllbnRyYXMgbm8gc2UgcGlkZSBhbCB1c3VhcmlvXG4gICAgICBjaGVja291dElkOiB0aGlzLmNoZWNrb3V0SWQsXG4gICAgICBjaGVja291dEFkZGl0aW9uYWxEYXRhOiB0aGlzLmNoZWNrb3V0QWRkaXRpb25hbERhdGEsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVOYW1lIHx8ICdUaWVuZGEgVksnLFxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkXG4gICAgfTtcblxuICAgIHRoaXMuYmFua1RyYW5zZmVyQXBpLmNyZWF0ZVBheW1lbnQodGhpcy5hY2Nlc3NUb2tlbiwgcmVxdWVzdCwgdGhpcy52a1VybEFwaSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRlZFN1Y2Nlc3NmdWxseSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh7XG4gICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgcGF5bWVudElkOiAocmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmJhbmtUcmFuc2ZlckVjb21tSWQpID8gcmVzcG9uc2UuZGF0YS5iYW5rVHJhbnNmZXJFY29tbUlkIDogJycsXG4gICAgICAgICAgICBpbnRlZ3JhdG9yOiAnQkFOS19UUkFOU0ZFUidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChyZXNwb25zZS5lcnJvcnNNZXNzYWdlcyAmJiByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgPyByZXNwb25zZS5lcnJvcnNNZXNzYWdlc1swXVxuICAgICAgICAgICAgOiAnT2N1cnJpw7MgdW4gZXJyb3IgYWwgcmVnaXN0cmFyIGxhIHRyYW5zZmVyZW5jaWEuJztcbiAgICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgcGF5bWVudElkOiAnJyxcbiAgICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLmVycm9yc01lc3NhZ2VzICYmIGVycm9yLmVycm9yLmVycm9yc01lc3NhZ2VzLmxlbmd0aCA+IDApXG4gICAgICAgICAgPyBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlc1swXVxuICAgICAgICAgIDogJ09jdXJyacOzIHVuIGVycm9yIGRlIGNvbmV4acOzbiBhbCByZWdpc3RyYXIgbGEgdHJhbnNmZXJlbmNpYS4nO1xuICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBwYXltZW50SWQ6ICcnLFxuICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgQmFua1RyYW5zZmVyQXBpU2VydmljZTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VpdENvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudEZvcm0uZ2V0KCdjdWl0Jyk7XG4gIH1cbn1cbiJdfQ==
@@ -4,31 +4,59 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  import { Component, EventEmitter, Input, Output } from '@angular/core';
7
- import { FormControl, FormGroup, Validators } from '@angular/forms';
7
+ import { FormControl, FormGroup } from '@angular/forms';
8
8
  import { BankTransferApiService } from '../services/bank-transfer.api.service';
9
9
  var BankTransferComponent = /** @class */ (function () {
10
10
  function BankTransferComponent(bankTransferApi) {
11
11
  this.bankTransferApi = bankTransferApi;
12
+ this.discountRate = 0.10; // Tasa de descuento (10% por defecto)
13
+ // Descuento explícito desde el carrito
12
14
  this.statusPay = new EventEmitter();
13
15
  this.isLoading = false;
14
16
  this.errorMessage = '';
17
+ this.submittedSuccessfully = false;
18
+ this.amountCopied = false;
19
+ // CUIT no se pide al usuario por ahora — se envía valor genérico
15
20
  this.paymentForm = new FormGroup({
16
- cuit: new FormControl('', [
17
- Validators.required,
18
- Validators.minLength(11),
19
- Validators.maxLength(11),
20
- Validators.pattern('^[0-9]*$')
21
- ]),
21
+ cuit: new FormControl('00000000000')
22
22
  });
23
23
  }
24
+ Object.defineProperty(BankTransferComponent.prototype, "subtotalAmount", {
25
+ // Calculados a partir de `amount` (que ya tiene el descuento aplicado)
26
+ get:
27
+ // Calculados a partir de `amount` (que ya tiene el descuento aplicado)
28
+ /**
29
+ * @return {?}
30
+ */
31
+ function () {
32
+ if (this.discountAmountValue !== undefined && this.discountAmountValue !== null) {
33
+ return this.amount + this.discountAmountValue;
34
+ }
35
+ return this.amount ? Math.round(this.amount / (1 - this.discountRate)) : 0;
36
+ },
37
+ enumerable: true,
38
+ configurable: true
39
+ });
40
+ Object.defineProperty(BankTransferComponent.prototype, "discountAmount", {
41
+ get: /**
42
+ * @return {?}
43
+ */
44
+ function () {
45
+ if (this.discountAmountValue !== undefined && this.discountAmountValue !== null) {
46
+ return this.discountAmountValue;
47
+ }
48
+ return this.subtotalAmount - (this.amount || 0);
49
+ },
50
+ enumerable: true,
51
+ configurable: true
52
+ });
24
53
  /**
25
54
  * @return {?}
26
55
  */
27
56
  BankTransferComponent.prototype.ngOnInit = /**
28
57
  * @return {?}
29
58
  */
30
- function () {
31
- };
59
+ function () { };
32
60
  /**
33
61
  * @param {?} text
34
62
  * @return {?}
@@ -42,7 +70,6 @@ var BankTransferComponent = /** @class */ (function () {
42
70
  * @return {?}
43
71
  */
44
72
  function () {
45
- // fallback para browsers sin clipboard API
46
73
  /** @type {?} */
47
74
  var el = document.createElement('textarea');
48
75
  el.value = text;
@@ -52,6 +79,23 @@ var BankTransferComponent = /** @class */ (function () {
52
79
  document.body.removeChild(el);
53
80
  }));
54
81
  };
82
+ /**
83
+ * @return {?}
84
+ */
85
+ BankTransferComponent.prototype.copyAmount = /**
86
+ * @return {?}
87
+ */
88
+ function () {
89
+ var _this = this;
90
+ /** @type {?} */
91
+ var amountStr = this.amount ? this.amount.toFixed(2) : '0';
92
+ this.copyToClipboard(amountStr);
93
+ this.amountCopied = true;
94
+ setTimeout((/**
95
+ * @return {?}
96
+ */
97
+ function () { return _this.amountCopied = false; }), 2000);
98
+ };
55
99
  /**
56
100
  * @return {?}
57
101
  */
@@ -60,19 +104,14 @@ var BankTransferComponent = /** @class */ (function () {
60
104
  */
61
105
  function () {
62
106
  var _this = this;
63
- if (this.paymentForm.invalid) {
64
- this.paymentForm.markAllAsTouched();
107
+ if (this.submittedSuccessfully || this.isLoading)
65
108
  return;
66
- }
67
109
  this.isLoading = true;
68
110
  this.errorMessage = '';
69
111
  /** @type {?} */
70
- var cuitControl = this.paymentForm.get('cuit');
71
- /** @type {?} */
72
- var cuitValue = cuitControl ? cuitControl.value : '';
73
- /** @type {?} */
74
112
  var request = {
75
- cuit: cuitValue.toString(),
113
+ cuit: '00000000000',
114
+ // Valor genérico mientras no se pide al usuario
76
115
  checkoutId: this.checkoutId,
77
116
  checkoutAdditionalData: this.checkoutAdditionalData,
78
117
  storeName: this.storeName || 'Tienda VK',
@@ -85,7 +124,7 @@ var BankTransferComponent = /** @class */ (function () {
85
124
  function (response) {
86
125
  _this.isLoading = false;
87
126
  if (response && response.success) {
88
- // Exito!
127
+ _this.submittedSuccessfully = true;
89
128
  _this.statusPay.emit({
90
129
  success: true,
91
130
  paymentId: (response.data && response.data.bankTransferEcommId) ? response.data.bankTransferEcommId : '',
@@ -93,8 +132,9 @@ var BankTransferComponent = /** @class */ (function () {
93
132
  });
94
133
  }
95
134
  else {
96
- // El API respondió HTTP 200 pero success: false
97
- _this.errorMessage = (response.errorsMessages && response.errorsMessages.length > 0) ? response.errorsMessages[0] : 'Ocurrió un error al registrar la transferencia.';
135
+ _this.errorMessage = (response.errorsMessages && response.errorsMessages.length > 0)
136
+ ? response.errorsMessages[0]
137
+ : 'Ocurrió un error al registrar la transferencia.';
98
138
  _this.statusPay.emit({
99
139
  success: false,
100
140
  paymentId: '',
@@ -106,9 +146,10 @@ var BankTransferComponent = /** @class */ (function () {
106
146
  * @return {?}
107
147
  */
108
148
  function (error) {
109
- // Error HTTP (500, 400, etc)
110
149
  _this.isLoading = false;
111
- _this.errorMessage = (error && error.error && error.error.errorsMessages && error.error.errorsMessages.length > 0) ? error.error.errorsMessages[0] : 'Ocurrió un error de conexión al registrar la transferencia.';
150
+ _this.errorMessage = (error && error.error && error.error.errorsMessages && error.error.errorsMessages.length > 0)
151
+ ? error.error.errorsMessages[0]
152
+ : 'Ocurrió un error de conexión al registrar la transferencia.';
112
153
  _this.statusPay.emit({
113
154
  success: false,
114
155
  paymentId: '',
@@ -118,10 +159,7 @@ var BankTransferComponent = /** @class */ (function () {
118
159
  }));
119
160
  };
120
161
  Object.defineProperty(BankTransferComponent.prototype, "cuitControl", {
121
- // Helper para validación visual en el template
122
- get:
123
- // Helper para validación visual en el template
124
- /**
162
+ get: /**
125
163
  * @return {?}
126
164
  */
127
165
  function () {
@@ -133,8 +171,8 @@ var BankTransferComponent = /** @class */ (function () {
133
171
  BankTransferComponent.decorators = [
134
172
  { type: Component, args: [{
135
173
  selector: 'vk-bank-transfer',
136
- template: "<form\n [formGroup]=\"paymentForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"bt-payment\"\n id=\"formularioBT\"\n autocomplete=\"off\"\n>\n\n \n\n <div class=\"bank-info-box\">\n <div class=\"bank-info-header\">\n <i class=\"material-icons\">account_balance</i>\n <span>Datos para la transferencia</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">tag</i>N\u00FAmero de cuenta</span>\n <span class=\"bank-info-value\">2-311972/1</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">qr_code</i>CBU</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">4150002012003119720013</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar CBU\" (click)=\"copyToClipboard('4150002012003119720013')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">alternate_email</i>Alias</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">reba.vitnik</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar alias\" (click)=\"copyToClipboard('reba.vitnik')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">badge</i>CUIT/CUIL</span>\n <span class=\"bank-info-value\">30708777893</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">attach_money</i>Moneda</span>\n <span class=\"bank-info-value\">Peso Argentino</span>\n </div>\n </div>\n\n <div class=\"summary-box\">\n <div class=\"summary-row total\">\n <span>Total a transferir:</span>\n <span class=\"amount\">${{ amount | number:'1.2-2' }}</span>\n </div>\n <small>* El 10% de descuento extra ya se encuentra aplicado a este total.</small>\n </div>\n\n <div class=\"formRow\">\n <p class=\"description\">\n Complet\u00E1 tu CUIT/CUIL para registrar el pago por transferencia. \n Una vez confirmado, tu pedido quedar\u00E1 sujeto a la aprobaci\u00F3n del pago.\n </p>\n </div>\n\n <div class=\"formRow\">\n <label for=\"cuit\">CUIT / CUIL del titular de la cuenta origen *</label>\n <span>\n <input\n id=\"cuit\"\n type=\"text\"\n formControlName=\"cuit\"\n name=\"cuit\"\n required\n maxlength=\"11\"\n placeholder=\"Ej: 20112223334 (Sin guiones)\"\n [ngClass]=\"{'is-invalid': cuitControl?.invalid && (cuitControl?.dirty || cuitControl?.touched)}\"\n />\n </span>\n \n <p\n class=\"alert-text\"\n *ngIf=\"cuitControl?.invalid && (cuitControl?.dirty || cuitControl?.touched)\"\n >\n <span *ngIf=\"cuitControl?.errors?.required\">El CUIT/CUIL es obligatorio.</span>\n <span *ngIf=\"cuitControl?.errors?.pattern\">Debe contener solo n\u00FAmeros.</span>\n <span *ngIf=\"cuitControl?.errors?.minlength || cuitControl?.errors?.maxlength\">Debe tener exactamente 11 d\u00EDgitos.</span>\n </p>\n </div>\n\n \n <!-- Loading State -->\n <div *ngIf=\"isLoading\" class=\"pay-message info\">\n <i class=\"material-icons\">info</i>\n <p>Procesando informaci\u00F3n de transferencia...</p>\n </div>\n\n <!-- Error devuelto por la API -->\n <div class=\"pay-message error\" *ngIf=\"errorMessage && !isLoading\">\n <i class=\"material-icons\">error</i>\n <p>{{ errorMessage }}</p>\n </div>\n\n <div>\n <button type=\"submit\" [disabled]=\"paymentForm.invalid || isLoading\">\n Confirmar Transferencia\n </button>\n </div>\n\n</form>\n",
137
- styles: [".bt-payment{background-color:transparent;font-family:inherit,sans-serif;padding:0 12px}.bt-payment p.description{font-size:16px;color:#888;margin-bottom:5px}.bt-payment .bank-info-box{border:1px solid #c8e0f0;border-radius:8px;overflow:hidden;margin-bottom:18px}.bt-payment .bank-info-box .bank-info-header{display:flex;align-items:center;gap:8px;background-color:#009ee3;color:#fff;padding:10px 14px;font-size:18px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.bt-payment .bank-info-box .bank-info-header i.material-icons{font-size:18px}.bt-payment .bank-info-box .bank-info-row{display:flex;justify-content:space-between;align-items:center;font-size:18px;padding:8px 14px;background-color:#fff;border-bottom:1px solid #eef3f7}.bt-payment .bank-info-box .bank-info-row:last-child{border-bottom:none}.bt-payment .bank-info-box .bank-info-label{display:flex;align-items:center;gap:6px;color:#777;flex-shrink:0;margin-right:8px}.bt-payment .bank-info-box .bank-info-label i.material-icons{font-size:15px;color:#009ee3}.bt-payment .bank-info-box .bank-info-value{font-weight:600;color:#1a1a1a;text-align:right}.bt-payment .bank-info-box .bank-info-value.bank-info-copy{display:flex;align-items:center;gap:4px}.bt-payment .bank-info-box .bank-info-value .bank-info-copy-text{font-family:\"Courier New\",monospace;font-size:18px;letter-spacing:.3px}.bt-payment .bank-info-box .copy-btn{background:0 0;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#009ee3;display:flex;align-items:center;margin-top:0;width:auto;min-width:unset}.bt-payment .bank-info-box .copy-btn i.material-icons{font-size:16px}.bt-payment .bank-info-box .copy-btn:hover{background-color:#e8f4fb}.bt-payment .bank-info-box .copy-btn:disabled{background-color:transparent;cursor:default}.bt-payment .formRow{margin-top:10px}.bt-payment .formRow label{font-size:16px;color:#888}.bt-payment .formRow span{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:2px 10px;display:block;margin-top:4px}.bt-payment .formRow span input[type=text]{background:0 0;border:none;color:#000;font-size:16px;height:23px;width:100%;text-transform:uppercase;vertical-align:top;padding:0;margin:0}.bt-payment .formRow span input[type=text]:focus{outline:0}.bt-payment .alert-text{font-size:16px;color:#009ee3;margin-top:7px;margin-bottom:0}.bt-payment .summary-box{margin-top:20px;margin-bottom:20px;text-align:right}.bt-payment .summary-box .summary-row{display:flex;justify-content:flex-end;align-items:center;font-size:18px;color:#333}.bt-payment .summary-box .summary-row span.amount{font-weight:700;color:#000;margin-left:10px}.bt-payment .summary-box small{display:block;color:#888;font-size:16px;margin-top:5px}.bt-payment button{background-color:#009ee3;color:#fff;font-size:18px;text-align:center;padding:10px 0;width:100%;border:none;border-radius:20px;margin-top:20px;cursor:pointer}.bt-payment button:disabled{background-color:#525252;cursor:not-allowed}.bt-payment .pay-message{margin-top:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px}.bt-payment .pay-message p{font-size:1.1rem;text-align:center;line-height:130%;margin-bottom:10px}.bt-payment .pay-message i.data{font-size:.9rem;text-align:center}.bt-payment .pay-message i.material-icons{font-size:2rem;margin-bottom:5px}.bt-payment .success{background-color:#dff2bf;color:#4f8a10}.bt-payment .error{color:#d8000c;background-color:#ffd2d2}.bt-payment .info{color:#00529b;background-color:#bde5f8}:focus{outline:0}"]
174
+ template: "<form\n [formGroup]=\"paymentForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"bt-payment\"\n id=\"formularioBT\"\n autocomplete=\"off\"\n>\n\n <!-- Datos bancarios -->\n <div class=\"bank-info-box\">\n <div class=\"bank-info-header\">\n <i class=\"material-icons\">account_balance</i>\n <span>Datos para la transferencia</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">tag</i>N\u00FAmero de cuenta</span>\n <span class=\"bank-info-value\">2-311972/1</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">qr_code</i>CBU</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">4150002012003119720013</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar CBU\" (click)=\"copyToClipboard('4150002012003119720013')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">alternate_email</i>Alias</span>\n <span class=\"bank-info-value bank-info-copy\">\n <span class=\"bank-info-copy-text\">reba.vitnik</span>\n <button class=\"copy-btn\" type=\"button\" title=\"Copiar alias\" (click)=\"copyToClipboard('reba.vitnik')\">\n <i class=\"material-icons\">content_copy</i>\n </button>\n </span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">badge</i>CUIT/CUIL</span>\n <span class=\"bank-info-value\">30708777893</span>\n </div>\n <div class=\"bank-info-row\">\n <span class=\"bank-info-label\"><i class=\"material-icons\">attach_money</i>Moneda</span>\n <span class=\"bank-info-value\">Peso Argentino</span>\n </div>\n </div>\n\n <!-- Resumen con desglose del descuento -->\n <div class=\"summary-box\">\n <div class=\"summary-row\">\n <span class=\"summary-label\">Subtotal</span>\n <span class=\"summary-value\">${{ subtotalAmount | number:'1.2-2' }}</span>\n </div>\n <div class=\"summary-row discount\">\n <span class=\"summary-label\">\n <i class=\"material-icons\">local_offer</i>\n Descuento transferencia ({{ discountRate * 100 | number:'1.0-0' }}%)\n </span>\n <span class=\"summary-value discount-value\">-${{ discountAmount | number:'1.2-2' }}</span>\n </div>\n <div class=\"summary-row total\">\n <span class=\"summary-label\">Total a transferir</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }}\n <button\n class=\"copy-btn copy-amount-btn\"\n type=\"button\"\n [title]=\"amountCopied ? 'Copiado!' : 'Copiar monto'\"\n (click)=\"copyAmount()\"\n >\n <i class=\"material-icons\">{{ amountCopied ? 'check' : 'content_copy' }}</i>\n </button>\n </span>\n </div>\n </div>\n\n <!-- Leyenda de monto exacto -->\n <div class=\"exact-amount-notice\">\n <i class=\"material-icons notice-icon\">info</i>\n <p>\n <strong>\u00A1Ya casi es tuyo!</strong> Para que podamos procesar tu pedido sin demoras,\n asegurate de que el importe de la transferencia sea <strong>id\u00E9ntico</strong> al total indicado arriba.\n </p>\n </div>\n\n <!-- Error devuelto por la API -->\n <div class=\"pay-message error\" *ngIf=\"errorMessage && !isLoading\">\n <i class=\"material-icons\">error</i>\n <p>{{ errorMessage }}</p>\n </div>\n\n <!-- Loading -->\n <div *ngIf=\"isLoading\" class=\"pay-message info\">\n <i class=\"material-icons\">info</i>\n <p>Procesando informaci\u00F3n de transferencia...</p>\n </div>\n\n <!-- Bot\u00F3n confirmar (oculto tras \u00E9xito) -->\n <div *ngIf=\"!submittedSuccessfully\">\n <button type=\"submit\" [disabled]=\"paymentForm.invalid || isLoading\">\n Confirmar Transferencia\n </button>\n </div>\n\n</form>\n",
175
+ styles: [".bt-payment{background-color:transparent;font-family:inherit,sans-serif;padding:0 12px}.bt-payment p.description{font-size:16px;color:#888;margin-bottom:5px}.bt-payment .bank-info-box{border:1px solid #c8e0f0;border-radius:8px;overflow:hidden;margin-bottom:18px}.bt-payment .bank-info-box .bank-info-header{display:flex;align-items:center;gap:8px;background-color:#009ee3;color:#fff;padding:10px 14px;font-size:18px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.bt-payment .bank-info-box .bank-info-header i.material-icons{font-size:18px}.bt-payment .bank-info-box .bank-info-row{display:flex;justify-content:space-between;align-items:center;font-size:18px;padding:8px 14px;background-color:#fff;border-bottom:1px solid #eef3f7}.bt-payment .bank-info-box .bank-info-row:last-child{border-bottom:none}.bt-payment .bank-info-box .bank-info-label{display:flex;align-items:center;gap:6px;color:#777;flex-shrink:0;margin-right:8px}.bt-payment .bank-info-box .bank-info-label i.material-icons{font-size:15px;color:#009ee3}.bt-payment .bank-info-box .bank-info-value{font-weight:600;color:#1a1a1a;text-align:right}.bt-payment .bank-info-box .bank-info-value.bank-info-copy{display:flex;align-items:center;gap:4px}.bt-payment .bank-info-box .bank-info-value .bank-info-copy-text{font-family:\"Courier New\",monospace;font-size:18px;letter-spacing:.3px}.bt-payment .bank-info-box .copy-btn{background:0 0;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#009ee3;display:flex;align-items:center;margin-top:0;width:auto;min-width:unset}.bt-payment .bank-info-box .copy-btn i.material-icons{font-size:16px}.bt-payment .bank-info-box .copy-btn:hover{background-color:#e8f4fb}.bt-payment .bank-info-box .copy-btn:disabled{background-color:transparent;cursor:default}.bt-payment .summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.bt-payment .summary-box .summary-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-size:16px;background-color:#fff;border-bottom:1px solid #f0f0f0}.bt-payment .summary-box .summary-row:last-child{border-bottom:none}.bt-payment .summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.bt-payment .summary-box .summary-row .summary-label i.material-icons{font-size:14px}.bt-payment .summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;gap:6px}.bt-payment .summary-box .summary-row.discount{background-color:#f0fdf4}.bt-payment .summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.bt-payment .summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.bt-payment .summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.bt-payment .summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.bt-payment .summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.bt-payment .summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.bt-payment .summary-box .copy-amount-btn{background:0 0;border:1px solid #009ee3;border-radius:6px;cursor:pointer;padding:2px 6px;color:#009ee3;display:flex;align-items:center;width:auto;min-width:unset;margin-top:0;transition:background-color .2s}.bt-payment .summary-box .copy-amount-btn i.material-icons{font-size:16px}.bt-payment .summary-box .copy-amount-btn:hover{background-color:#e8f4fb}.bt-payment .exact-amount-notice{display:flex;align-items:flex-start;gap:10px;background-color:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:12px 14px;margin-bottom:20px}.bt-payment .exact-amount-notice .notice-icon{font-size:20px;color:#d97706;flex-shrink:0;margin-top:2px}.bt-payment .exact-amount-notice p{font-size:14px;color:#78350f;margin:0;line-height:1.5}.bt-payment .formRow{margin-top:10px;display:none}.bt-payment .formRow label{font-size:16px;color:#888}.bt-payment .formRow span{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:2px 10px;display:block;margin-top:4px}.bt-payment .formRow span input[type=text]{background:0 0;border:none;color:#000;font-size:16px;height:23px;width:100%;text-transform:uppercase;vertical-align:top;padding:0;margin:0}.bt-payment .formRow span input[type=text]:focus{outline:0}.bt-payment .alert-text{font-size:16px;color:#009ee3;margin-top:7px;margin-bottom:0}.bt-payment button[type=submit]{background-color:#009ee3;color:#fff;font-size:18px;text-align:center;padding:10px 0;width:100%;border:none;border-radius:20px;margin-top:20px;cursor:pointer}.bt-payment button[type=submit]:disabled{background-color:#525252;cursor:not-allowed}.bt-payment .pay-message{margin-top:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;border-radius:8px}.bt-payment .pay-message p{font-size:1.1rem;text-align:center;line-height:130%;margin-bottom:10px}.bt-payment .pay-message i.material-icons{font-size:2rem;margin-bottom:5px}.bt-payment .success{background-color:#dff2bf;color:#4f8a10}.bt-payment .error{color:#d8000c;background-color:#ffd2d2}.bt-payment .info{color:#00529b;background-color:#bde5f8}:focus{outline:0}"]
138
176
  }] }
139
177
  ];
140
178
  /** @nocollapse */
@@ -149,6 +187,8 @@ var BankTransferComponent = /** @class */ (function () {
149
187
  storeName: [{ type: Input }],
150
188
  checkoutId: [{ type: Input }],
151
189
  checkoutAdditionalData: [{ type: Input }],
190
+ discountRate: [{ type: Input }],
191
+ discountAmountValue: [{ type: Input }],
152
192
  statusPay: [{ type: Output }]
153
193
  };
154
194
  return BankTransferComponent;
@@ -170,6 +210,10 @@ if (false) {
170
210
  /** @type {?} */
171
211
  BankTransferComponent.prototype.checkoutAdditionalData;
172
212
  /** @type {?} */
213
+ BankTransferComponent.prototype.discountRate;
214
+ /** @type {?} */
215
+ BankTransferComponent.prototype.discountAmountValue;
216
+ /** @type {?} */
173
217
  BankTransferComponent.prototype.statusPay;
174
218
  /** @type {?} */
175
219
  BankTransferComponent.prototype.paymentForm;
@@ -177,10 +221,14 @@ if (false) {
177
221
  BankTransferComponent.prototype.isLoading;
178
222
  /** @type {?} */
179
223
  BankTransferComponent.prototype.errorMessage;
224
+ /** @type {?} */
225
+ BankTransferComponent.prototype.submittedSuccessfully;
226
+ /** @type {?} */
227
+ BankTransferComponent.prototype.amountCopied;
180
228
  /**
181
229
  * @type {?}
182
230
  * @private
183
231
  */
184
232
  BankTransferComponent.prototype.bankTransferApi;
185
233
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYW5rLXRyYW5zZmVyL2NvbXBvbmVudHMvYmFuay10cmFuc2Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRy9FO0lBd0JFLCtCQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFUakQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBTTdELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFHL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFO2dCQUN4QixVQUFVLENBQUMsUUFBUTtnQkFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN4QixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQzthQUMvQixDQUFDO1NBSUgsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELHdDQUFROzs7SUFBUjtJQUNBLENBQUM7Ozs7O0lBRU0sK0NBQWU7Ozs7SUFBdEIsVUFBdUIsSUFBWTtRQUNqQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLOzs7UUFBQzs7O2dCQUVsQyxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDN0MsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDaEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFTSx3Q0FBUTs7O0lBQWY7UUFBQSxpQkFxREM7UUFwREMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7O1lBRWpCLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7O1lBQzFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBRWhELE9BQU8sR0FBK0I7WUFDMUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksV0FBVztZQUN4QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEI7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUzs7OztRQUNwRixVQUFDLFFBQVE7WUFDUCxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUV2QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxTQUFTO2dCQUNULEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO29CQUNsQixPQUFPLEVBQUUsSUFBSTtvQkFDYixTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDeEcsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLGdEQUFnRDtnQkFDaEQsS0FBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCxDQUFDO2dCQUNySyxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDbEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQzs7OztRQUNELFVBQUMsS0FBSztZQUNKLDZCQUE2QjtZQUM3QixLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkRBQTZELENBQUM7WUFDbE4sS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxlQUFlO2FBQzVCLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxFQUNGLENBQUM7SUFDSixDQUFDO0lBR0Qsc0JBQVcsOENBQVc7UUFEdEIsK0NBQStDOzs7Ozs7UUFDL0M7WUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7OztPQUFBOztnQkEvR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLDYySEFBNkM7O2lCQUU5Qzs7OztnQkFQUSxzQkFBc0I7Ozs4QkFVNUIsS0FBSzsyQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzs0QkFDTCxLQUFLOzZCQUNMLEtBQUs7eUNBQ0wsS0FBSzs0QkFFTCxNQUFNOztJQWlHVCw0QkFBQztDQUFBLEFBaEhELElBZ0hDO1NBM0dZLHFCQUFxQjs7O0lBRWhDLDRDQUE4Qjs7SUFDOUIseUNBQTJCOztJQUMzQix1Q0FBeUI7O0lBQ3pCLHdDQUEwQjs7SUFDMUIsMENBQTRCOztJQUM1QiwyQ0FBNkI7O0lBQzdCLHVEQUF5Qzs7SUFFekMsMENBQW9FOztJQUtwRSw0Q0FBOEI7O0lBQzlCLDBDQUFrQzs7SUFDbEMsNkNBQWlDOzs7OztJQUVyQixnREFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFua1RyYW5zZmVyQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2JhbmstdHJhbnNmZXIuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFua1RyYW5zZmVyUGF5bWVudFJlcXVlc3QsIEJhbmtUcmFuc2ZlclBheW1lbnRSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvYmFuay10cmFuc2Zlci5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ay1iYW5rLXRyYW5zZmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhbmstdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYW5rLXRyYW5zZmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFua1RyYW5zZmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBhY2Nlc3NUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgdmtVcmxBcGkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFtb3VudCE6IG51bWJlcjtcbiAgQElucHV0KCkgc3RvcmVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjaGVja291dElkITogbnVtYmVyO1xuICBASW5wdXQoKSBjaGVja291dEFkZGl0aW9uYWxEYXRhITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBzdGF0dXNQYXkgPSBuZXcgRXZlbnRFbWl0dGVyPEJhbmtUcmFuc2ZlclBheW1lbnRSZXN1bHQ+KCk7XG5cbiAgLy8gRWwgZGVzY3VlbnRvIHlhIGxvIG1hbmVqYSBlbCBCYWNrZW5kIGFqdXN0YW5kbyBlbCBpbXBvcnRlIGRlIGxhIG9yZGVuLiBcbiAgLy8gTm8gbG8gbWFuZGFtb3MsIHNvbG8gcG9kcsOtYW1vcyB1c2FybG8gdmlzdWFsbWVudGUgc2kgbGEgVVggbG8gcmVxdWllcmUuXG5cbiAgcHVibGljIHBheW1lbnRGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYW5rVHJhbnNmZXJBcGk6IEJhbmtUcmFuc2ZlckFwaVNlcnZpY2UpIHtcbiAgICB0aGlzLnBheW1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBjdWl0OiBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTEpLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlswLTldKiQnKVxuICAgICAgXSksXG4gICAgICAvLyBFbCBiYW5jbyBvcmlnZW4gbm8gc2UgZXN0w6EgbWFuZGFuZG8gYWwgYmFja2VuZCBhY3R1YWwgKGVsIFNQIG5vIGxvIHBpZGUpLFxuICAgICAgLy8gcGVybyBwb2Ryw61hbW9zIHBlZGlybG8gc2kgZXMgw7p0aWwgcGFyYSBjb25jaWxpYWNpb25lcyBtYW51YWxlcyBmdXR1cmFzLlxuICAgICAgLy8gUG9yIGVsIG1vbWVudG8sIHBlZGlyZW1vcyBlbCBDVUlULCBxdWUgc8OtIGxvIGV4aWdlIGVsIERUTy5cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS5jYXRjaCgoKSA9PiB7XG4gICAgICAvLyBmYWxsYmFjayBwYXJhIGJyb3dzZXJzIHNpbiBjbGlwYm9hcmQgQVBJXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICBlbC52YWx1ZSA9IHRleHQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtcbiAgICAgIGVsLnNlbGVjdCgpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBheW1lbnRGb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMucGF5bWVudEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgY29uc3QgY3VpdENvbnRyb2wgPSB0aGlzLnBheW1lbnRGb3JtLmdldCgnY3VpdCcpO1xuICAgIGNvbnN0IGN1aXRWYWx1ZSA9IGN1aXRDb250cm9sID8gY3VpdENvbnRyb2wudmFsdWUgOiAnJztcblxuICAgIGNvbnN0IHJlcXVlc3Q6IEJhbmtUcmFuc2ZlclBheW1lbnRSZXF1ZXN0ID0ge1xuICAgICAgY3VpdDogY3VpdFZhbHVlLnRvU3RyaW5nKCksXG4gICAgICBjaGVja291dElkOiB0aGlzLmNoZWNrb3V0SWQsXG4gICAgICBjaGVja291dEFkZGl0aW9uYWxEYXRhOiB0aGlzLmNoZWNrb3V0QWRkaXRpb25hbERhdGEsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVOYW1lIHx8ICdUaWVuZGEgVksnLFxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkXG4gICAgfTtcblxuICAgIHRoaXMuYmFua1RyYW5zZmVyQXBpLmNyZWF0ZVBheW1lbnQodGhpcy5hY2Nlc3NUb2tlbiwgcmVxdWVzdCwgdGhpcy52a1VybEFwaSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAvLyBFeGl0byFcbiAgICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICBwYXltZW50SWQ6IChyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEuYmFua1RyYW5zZmVyRWNvbW1JZCkgPyByZXNwb25zZS5kYXRhLmJhbmtUcmFuc2ZlckVjb21tSWQgOiAnJyxcbiAgICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVsIEFQSSByZXNwb25kacOzIEhUVFAgMjAwIHBlcm8gc3VjY2VzczogZmFsc2VcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChyZXNwb25zZS5lcnJvcnNNZXNzYWdlcyAmJiByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKSA/IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzWzBdIDogJ09jdXJyacOzIHVuIGVycm9yIGFsIHJlZ2lzdHJhciBsYSB0cmFuc2ZlcmVuY2lhLic7XG4gICAgICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIHBheW1lbnRJZDogJycsXG4gICAgICAgICAgICBpbnRlZ3JhdG9yOiAnQkFOS19UUkFOU0ZFUidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAvLyBFcnJvciBIVFRQICg1MDAsIDQwMCwgZXRjKVxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcyAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKSA/IGVycm9yLmVycm9yLmVycm9yc01lc3NhZ2VzWzBdIDogJ09jdXJyacOzIHVuIGVycm9yIGRlIGNvbmV4acOzbiBhbCByZWdpc3RyYXIgbGEgdHJhbnNmZXJlbmNpYS4nO1xuICAgICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBwYXltZW50SWQ6ICcnLFxuICAgICAgICAgIGludGVncmF0b3I6ICdCQU5LX1RSQU5TRkVSJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgQmFua1RyYW5zZmVyQXBpU2VydmljZTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8vIEhlbHBlciBwYXJhIHZhbGlkYWNpw7NuIHZpc3VhbCBlbiBlbCB0ZW1wbGF0ZVxuICBwdWJsaWMgZ2V0IGN1aXRDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRGb3JtLmdldCgnY3VpdCcpO1xuICB9XG59XG4iXX0=
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYW5rLXRyYW5zZmVyL2NvbXBvbmVudHMvYmFuay10cmFuc2Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0U7SUF3Q0UsK0JBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQTFCbEQsaUJBQVksR0FBVyxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7O1FBR2xFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUc3RCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQWtCbkMsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDL0IsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBbkJELHNCQUFJLGlEQUFjO1FBRGxCLHVFQUF1RTs7Ozs7O1FBQ3ZFO1lBQ0UsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7Z0JBQy9FLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7YUFDL0M7WUFDRCxPQUFPLElBQUks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Q0FBQztJQUVELHNCQUFXLDhDQUFXOzs7O1FBQXRCO1lBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTs7Z0JBeEhGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1Qiw0L0hBQTZDOztpQkFFOUM7Ozs7Z0JBUFEsc0JBQXNCOzs7OEJBVTVCLEtBQUs7MkJBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lDQUNMLEtBQUs7K0JBQ0wsS0FBSztzQ0FDTCxLQUFLOzRCQUVMLE1BQU07O0lBd0dULDRCQUFDO0NBQUEsQUF6SEQsSUF5SEM7U0FwSFkscUJBQXFCOzs7SUFFaEMsNENBQThCOztJQUM5Qix5Q0FBMkI7O0lBQzNCLHVDQUF5Qjs7SUFDekIsd0NBQTBCOztJQUMxQiwwQ0FBNEI7O0lBQzVCLDJDQUE2Qjs7SUFDN0IsdURBQXlDOztJQUN6Qyw2Q0FBcUM7O0lBQ3JDLG9EQUFzQzs7SUFFdEMsMENBQW9FOztJQUVwRSw0Q0FBOEI7O0lBQzlCLDBDQUFrQzs7SUFDbEMsNkNBQWlDOztJQUNqQyxzREFBOEM7O0lBQzlDLDZDQUFxQzs7Ozs7SUFpQnpCLGdEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYW5rVHJhbnNmZXJBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFuay10cmFuc2Zlci5hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBCYW5rVHJhbnNmZXJQYXltZW50UmVxdWVzdCwgQmFua1RyYW5zZmVyUGF5bWVudFJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9iYW5rLXRyYW5zZmVyLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZrLWJhbmstdHJhbnNmZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFuay10cmFuc2Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JhbmstdHJhbnNmZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYW5rVHJhbnNmZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGFjY2Vzc1Rva2VuITogc3RyaW5nO1xuICBASW5wdXQoKSB2a1VybEFwaSE6IHN0cmluZztcbiAgQElucHV0KCkgYW1vdW50ITogbnVtYmVyOyAgICAgICAvLyBUb3RhbCB5YSBjb24gZGVzY3VlbnRvIGFwbGljYWRvIHBvciBlbCBiYWNrZW5kXG4gIEBJbnB1dCgpIHN0b3JlSWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0b3JlTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY2hlY2tvdXRJZCE6IG51bWJlcjtcbiAgQElucHV0KCkgY2hlY2tvdXRBZGRpdGlvbmFsRGF0YSE6IHN0cmluZztcbiAgQElucHV0KCkgZGlzY291bnRSYXRlOiBudW1iZXIgPSAwLjEwOyAvLyBUYXNhIGRlIGRlc2N1ZW50byAoMTAlIHBvciBkZWZlY3RvKVxuICBASW5wdXQoKSBkaXNjb3VudEFtb3VudFZhbHVlPzogbnVtYmVyOyAvLyBEZXNjdWVudG8gZXhwbMOtY2l0byBkZXNkZSBlbCBjYXJyaXRvXG5cbiAgQE91dHB1dCgpIHN0YXR1c1BheSA9IG5ldyBFdmVudEVtaXR0ZXI8QmFua1RyYW5zZmVyUGF5bWVudFJlc3VsdD4oKTtcblxuICBwdWJsaWMgcGF5bWVudEZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHN1Ym1pdHRlZFN1Y2Nlc3NmdWxseTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYW1vdW50Q29waWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gQ2FsY3VsYWRvcyBhIHBhcnRpciBkZSBgYW1vdW50YCAocXVlIHlhIHRpZW5lIGVsIGRlc2N1ZW50byBhcGxpY2FkbylcbiAgZ2V0IHN1YnRvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYW1vdW50ICsgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hbW91bnQgPyBNYXRoLnJvdW5kKHRoaXMuYW1vdW50IC8gKDEgLSB0aGlzLmRpc2NvdW50UmF0ZSkpIDogMDtcbiAgfVxuXG4gIGdldCBkaXNjb3VudEFtb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN1YnRvdGFsQW1vdW50IC0gKHRoaXMuYW1vdW50IHx8IDApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYW5rVHJhbnNmZXJBcGk6IEJhbmtUcmFuc2ZlckFwaVNlcnZpY2UpIHtcbiAgICAvLyBDVUlUIG5vIHNlIHBpZGUgYWwgdXN1YXJpbyBwb3IgYWhvcmEg4oCUIHNlIGVudsOtYSB2YWxvciBnZW7DqXJpY29cbiAgICB0aGlzLnBheW1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBjdWl0OiBuZXcgRm9ybUNvbnRyb2woJzAwMDAwMDAwMDAwJylcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBwdWJsaWMgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLmNhdGNoKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIGVsLnZhbHVlID0gdGV4dDtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgZWwuc2VsZWN0KCk7XG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29weUFtb3VudCgpOiB2b2lkIHtcbiAgICBjb25zdCBhbW91bnRTdHIgPSB0aGlzLmFtb3VudCA/IHRoaXMuYW1vdW50LnRvRml4ZWQoMikgOiAnMCc7XG4gICAgdGhpcy5jb3B5VG9DbGlwYm9hcmQoYW1vdW50U3RyKTtcbiAgICB0aGlzLmFtb3VudENvcGllZCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFtb3VudENvcGllZCA9IGZhbHNlLCAyMDAwKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJtaXR0ZWRTdWNjZXNzZnVsbHkgfHwgdGhpcy5pc0xvYWRpbmcpIHJldHVybjtcblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgY29uc3QgcmVxdWVzdDogQmFua1RyYW5zZmVyUGF5bWVudFJlcXVlc3QgPSB7XG4gICAgICBjdWl0OiAnMDAwMDAwMDAwMDAnLCAgLy8gVmFsb3IgZ2Vuw6lyaWNvIG1pZW50cmFzIG5vIHNlIHBpZGUgYWwgdXN1YXJpb1xuICAgICAgY2hlY2tvdXRJZDogdGhpcy5jaGVja291dElkLFxuICAgICAgY2hlY2tvdXRBZGRpdGlvbmFsRGF0YTogdGhpcy5jaGVja291dEFkZGl0aW9uYWxEYXRhLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlTmFtZSB8fCAnVGllbmRhIFZLJyxcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZFxuICAgIH07XG5cbiAgICB0aGlzLmJhbmtUcmFuc2ZlckFwaS5jcmVhdGVQYXltZW50KHRoaXMuYWNjZXNzVG9rZW4sIHJlcXVlc3QsIHRoaXMudmtVcmxBcGkpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0ZWRTdWNjZXNzZnVsbHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQoe1xuICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgIHBheW1lbnRJZDogKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5iYW5rVHJhbnNmZXJFY29tbUlkKSA/IHJlc3BvbnNlLmRhdGEuYmFua1RyYW5zZmVyRWNvbW1JZCA6ICcnLFxuICAgICAgICAgICAgaW50ZWdyYXRvcjogJ0JBTktfVFJBTlNGRVInXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAocmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMgJiYgcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgID8gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXNbMF1cbiAgICAgICAgICAgIDogJ09jdXJyacOzIHVuIGVycm9yIGFsIHJlZ2lzdHJhciBsYSB0cmFuc2ZlcmVuY2lhLic7XG4gICAgICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIHBheW1lbnRJZDogJycsXG4gICAgICAgICAgICBpbnRlZ3JhdG9yOiAnQkFOS19UUkFOU0ZFUidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcyAmJiBlcnJvci5lcnJvci5lcnJvcnNNZXNzYWdlcy5sZW5ndGggPiAwKVxuICAgICAgICAgID8gZXJyb3IuZXJyb3IuZXJyb3JzTWVzc2FnZXNbMF1cbiAgICAgICAgICA6ICdPY3VycmnDsyB1biBlcnJvciBkZSBjb25leGnDs24gYWwgcmVnaXN0cmFyIGxhIHRyYW5zZmVyZW5jaWEuJztcbiAgICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgcGF5bWVudElkOiAnJyxcbiAgICAgICAgICBpbnRlZ3JhdG9yOiAnQkFOS19UUkFOU0ZFUidcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIEJhbmtUcmFuc2ZlckFwaVNlcnZpY2U6JywgZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1aXRDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRGb3JtLmdldCgnY3VpdCcpO1xuICB9XG59XG4iXX0=