vk-payments 0.2.35 → 0.2.36

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.
@@ -118,7 +118,7 @@ export class GaliciaComponent {
118
118
  this.isLoading = false;
119
119
  this.hasError = true;
120
120
  this.statusPay.emit(this.paymentResult);
121
- this.errorMessage = response.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
121
+ this.errorMessage = response.errorsMessages[0] || 'No se pudo generar el código QR.';
122
122
  return;
123
123
  }
124
124
  /** @type {?} */
@@ -134,7 +134,7 @@ export class GaliciaComponent {
134
134
  initPaymentErrorHandler(error) {
135
135
  this.isLoading = false;
136
136
  this.hasError = true;
137
- this.errorMessage = error.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
137
+ this.errorMessage = error.errorsMessages[0] || 'No se pudo generar el código QR.';
138
138
  this.paymentResult.success = false;
139
139
  this.statusPay.emit(this.paymentResult);
140
140
  }
@@ -195,6 +195,8 @@ export class GaliciaComponent {
195
195
  if (!response.success) {
196
196
  this.isLoading = false;
197
197
  this.statusPay.emit(this.paymentResult);
198
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
199
+ this.hasError = true;
198
200
  return;
199
201
  }
200
202
  if (response.data.isPaid) {
@@ -218,6 +220,7 @@ export class GaliciaComponent {
218
220
  */
219
221
  paymentStatusErrorHandler(error) {
220
222
  clearInterval(this.validationInterval);
223
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
221
224
  this.hasError = true;
222
225
  }
223
226
  /**
@@ -226,6 +229,7 @@ export class GaliciaComponent {
226
229
  showQrAgain() {
227
230
  this.showQr = true;
228
231
  this.expired = false;
232
+ this.hasError = false;
229
233
  this.startTimer();
230
234
  this.startPaymentValidation();
231
235
  }
@@ -241,8 +245,8 @@ export class GaliciaComponent {
241
245
  GaliciaComponent.decorators = [
242
246
  { type: Component, args: [{
243
247
  selector: 'lib-galicia',
244
- template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>No fue posible generar el c\u00F3digo QR</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
245
- styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.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}.summary-box .copy-amount-btn i.material-icons{font-size:16px}.summary-box .copy-amount-btn:hover{background-color:#e8f4fb}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
248
+ template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr && !hasError\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>Ocurri\u00F3 un error:</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired && !hasError\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button class=\"regen-button\" type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
249
+ styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;width:100%;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.regen-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;min-width:250px;max-width:400px;cursor:pointer}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
246
250
  }] }
247
251
  ];
248
252
  /** @nocollapse */
@@ -335,4 +339,4 @@ if (false) {
335
339
  */
336
340
  GaliciaComponent.prototype.galiciaApiService;
337
341
  }
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsaWNpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9nYWxpY2lhL2NvbXBvbmVudHMvZ2FsaWNpYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUXBFLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUF1QzNCLFlBQ1UsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QnJDLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBRzNCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUV4RCxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFHMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFLWixrQkFBYSxHQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFJcEYsQ0FBQzs7OztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlC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QUF5Qjs7SUFDekIsa0NBQXlCOztJQUN6QixtQ0FBMEI7O0lBQzFCLHFDQUE0Qjs7SUFDNUIscUNBQTRCOztJQUM1QixzQ0FBNkI7O0lBQzdCLGtDQUF5Qjs7SUFDekIsd0NBQXFDOztJQUNyQywrQ0FBc0M7O0lBQ3RDLGdDQUF1Qjs7SUFDdkIscUNBQXdEOztJQUV4RCxtQ0FBcUI7O0lBQ3JCLHNDQUF3Qjs7SUFDeEIsd0NBQTBCOztJQUMxQix3Q0FBMkI7O0lBRTNCLDBDQUFzQjs7SUFDdEIsNENBQXlCOztJQUN6QixxQ0FBZTs7SUFFZixrQ0FBZTs7SUFDZixtQ0FBZ0I7O0lBQ2hCLHFDQUEyQjs7SUFDM0Isb0NBQTBCOztJQUUxQixtQ0FBWTs7SUFDWixtQ0FBWTs7Ozs7SUFFWixvQ0FBc0I7O0lBQ3RCLDhDQUF3Qjs7SUFFeEIseUNBQXdGOzs7OztJQUd0Riw2Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBRUkNvZGUgZnJvbSAncXJjb2RlJztcbmltcG9ydCB7IEdhbGljaWFBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZ2FsaWNpYS5hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJbml0UGF5bWVudCwgUGF5bWVudFJlc3VsdCwgUmVzcG9uc2VBcGkgfSBmcm9tICcuLi9tb2RlbHMvZ2FsaWNpYS5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZ2FsaWNpYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9nYWxpY2lhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2FsaWNpYS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdhbGljaWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGFjY2Vzc1Rva2VuITogc3RyaW5nO1xuICBASW5wdXQoKSBnYVVybEFwaSE6IHN0cmluZztcbiAgQElucHV0KCkgdmtVcmxBcGkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXJJZCE6IHN0cmluZztcbiAgQElucHV0KCkgbG9nb0dhITogc3RyaW5nO1xuICBASW5wdXQoKSBzdG9yZUlkITogc3RyaW5nO1xuICBASW5wdXQoKSBzdG9yZU5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlc3Npb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgY2hlY2tvdXRJZCE6IG51bWJlcjtcbiAgQElucHV0KCkgYW1vdW50ITogbnVtYmVyO1xuICBASW5wdXQoKSBkaXNjb3VudFJhdGU6IG51bWJlciA9IDAuMTA7XG4gIEBJbnB1dCgpIGRpc2NvdW50QW1vdW50VmFsdWU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRhdGEhOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzdGF0dXNQYXkgPSBuZXcgRXZlbnRFbWl0dGVyPFBheW1lbnRSZXN1bHQ+KCk7XG5cbiAgcXJJbWFnZTogc3RyaW5nID0gJyc7XG4gIGJpbGxOdW1iZXI6IHN0cmluZyA9ICcnO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBPaW5pdFBheW1lbnQhOiBJbml0UGF5bWVudDtcblxuICBpc0dlbmVyYXRpbmdRciA9IHRydWU7XG4gIHBheW1lbnRDb21wbGV0ZWQgPSBmYWxzZTtcbiAgcGF5bWVudElkID0gJyc7XG5cbiAgc2hvd1FyID0gZmFsc2U7XG4gIGV4cGlyZWQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbWludXRlcyA9IDA7XG4gIHNlY29uZHMgPSAwO1xuXG4gIHByaXZhdGUgaW50ZXJ2YWw6IGFueTtcbiAgdmFsaWRhdGlvbkludGVydmFsOiBhbnk7XG5cbiAgcGF5bWVudFJlc3VsdDogUGF5bWVudFJlc3VsdCA9IHsgc3VjY2VzczogZmFsc2UsIHBheW1lbnRJZDogJycsIGludGVncmF0b3I6ICdHQUxJQ0lBJyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZ2FsaWNpYUFwaVNlcnZpY2U6IEdhbGljaWFBcGlTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVJbml0UGF5bWVudCgpO1xuICB9XG5cbiAgZ2VuZXJhdGVRcihkYXRvczogc3RyaW5nKSB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGF0b2IoZGF0b3MpO1xuXG4gICAgUVJDb2RlLnRvRGF0YVVSTChkZWNvZGVkLCB7XG4gICAgICB3aWR0aDogMzAwLFxuICAgICAgbWFyZ2luOiAyXG4gICAgfSlcbiAgICAgIC50aGVuKHVybCA9PiB7XG4gICAgICAgIHRoaXMucXJJbWFnZSA9IHVybDtcblxuICAgICAgICB0aGlzLmlzR2VuZXJhdGluZ1FyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5zaG93UXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnN0YXJ0VGltZXIoKTtcblxuICAgICAgICB0aGlzLnN0YXJ0UGF5bWVudFZhbGlkYXRpb24oKTtcblxuICAgICAgfSk7XG4gIH1cblxuICBnZXQgc3VidG90YWxBbW91bnQoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5hbW91bnQgKyB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFtb3VudCA/IE1hdGgucm91bmQodGhpcy5hbW91bnQgLyAoMSAtIHRoaXMuZGlzY291bnRSYXRlKSkgOiAwO1xuICB9XG5cbiAgZ2V0IGRpc2NvdW50QW1vdW50KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3VidG90YWxBbW91bnQgLSAodGhpcy5hbW91bnQgfHwgMCk7XG4gIH1cblxuICBjcmVhdGVJbml0UGF5bWVudCgpIHtcbiAgICB0aGlzLk9pbml0UGF5bWVudCA9IHtcbiAgICAgIHNlc3Npb25JZDogJycsXG4gICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlTmFtZSxcbiAgICAgIGNoZWNrb3V0SWQ6IHRoaXMuY2hlY2tvdXRJZFxuICAgIH1cblxuICAgIHRoaXMuaW5pdFBheW1lbnQoKTtcbiAgfVxuXG4gIGluaXRQYXltZW50KCkge1xuICAgIHRoaXMuaXNHZW5lcmF0aW5nUXIgPSB0cnVlO1xuXG4gICAgdGhpcy5nYWxpY2lhQXBpU2VydmljZS5pbml0UGF5bWVudCh0aGlzLnZrVXJsQXBpLCB0aGlzLk9pbml0UGF5bWVudClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4gdGhpcy5pbml0UGF5bWVudFJlc3BvbnNlSGFuZGxlcih2KSxcbiAgICAgICAgZXJyb3I6ICh2KSA9PiB0aGlzLmluaXRQYXltZW50RXJyb3JIYW5kbGVyKHYpXG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0UGF5bWVudFJlc3BvbnNlSGFuZGxlcihyZXNwb25zZTogUmVzcG9uc2VBcGkpIHtcbiAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXNbMF0gfHwgJ09jdXJyacOzIHVuIGVycm9yIGFsIGdlbmVyYXIgZWwgY8OzZGlnbyBRUi4nO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHFyRGF0YSA9IHJlc3BvbnNlLmRhdGEuYmlsbHNbMF0ucXIuZGF0b3M7XG4gICAgdGhpcy5iaWxsTnVtYmVyID0gcmVzcG9uc2UuZGF0YS5iaWxsc1swXS5ucm9Cb2xldGE7XG5cbiAgICB0aGlzLmdlbmVyYXRlUXIocXJEYXRhKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0UGF5bWVudEVycm9ySGFuZGxlcihlcnJvcjogYW55KSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IuZXJyb3JzTWVzc2FnZXNbMF0gfHwgJ09jdXJyacOzIHVuIGVycm9yIGFsIGdlbmVyYXIgZWwgY8OzZGlnbyBRUi4nO1xuXG4gICAgdGhpcy5wYXltZW50UmVzdWx0LnN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcbiAgfVxuXG4gIHN0YXJ0VGltZXIoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcblxuICAgIHRoaXMubWludXRlcyA9IDE7XG4gICAgdGhpcy5zZWNvbmRzID0gMDtcblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWNvbmRzID09PSAwKSB7XG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZXMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLnN0b3BWYWxpZGF0aW9uKCk7XG5cbiAgICAgICAgICB0aGlzLnNob3dRciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1pbnV0ZXMtLTtcbiAgICAgICAgdGhpcy5zZWNvbmRzID0gNTk7XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgdGhpcy5zZWNvbmRzLS07XG4gICAgICB9XG5cbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIHN0YXJ0UGF5bWVudFZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cbiAgICAgIHRoaXMuZ2FsaWNpYUFwaVNlcnZpY2UucGF5bWVudFN0YXR1cyh0aGlzLnZrVXJsQXBpLCB0aGlzLmJpbGxOdW1iZXIpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2KSA9PiB0aGlzLnBheW1lbnRTdGF0dXNSZXNwb25zZUhhbmRsZXIodiksXG4gICAgICAgICAgZXJyb3I6ICh2KSA9PiB0aGlzLnBheW1lbnRTdGF0dXNFcnJvckhhbmRsZXIodilcbiAgICAgICAgfSk7XG4gICAgfSwgNTAwMCk7XG4gIH1cblxuICBwYXltZW50U3RhdHVzUmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlOiBSZXNwb25zZUFwaSkge1xuICAgIGlmICghcmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5kYXRhLmlzUGFpZCkge1xuICAgICAgdGhpcy5zdG9wVmFsaWRhdGlvbigpO1xuXG4gICAgICB0aGlzLnNob3dRciA9IGZhbHNlO1xuICAgICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLnBheW1lbnRDb21wbGV0ZWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLnBheW1lbnRJZCA9IHJlc3BvbnNlLmRhdGEucGF5bWVudElkO1xuXG4gICAgICB0aGlzLnBheW1lbnRSZXN1bHQgPSB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIHBheW1lbnRJZDogdGhpcy5wYXltZW50SWQsXG4gICAgICAgIGludGVncmF0b3I6ICdHQUxJQ0lBJ1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh0aGlzLnBheW1lbnRSZXN1bHQpO1xuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXltZW50U3RhdHVzRXJyb3JIYW5kbGVyKGVycm9yOiBhbnkpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMudmFsaWRhdGlvbkludGVydmFsKTtcblxuICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgc2hvd1FyQWdhaW4oKSB7XG4gICAgdGhpcy5zaG93UXIgPSB0cnVlO1xuICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgdGhpcy5zdGFydFBheW1lbnRWYWxpZGF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BWYWxpZGF0aW9uKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy52YWxpZGF0aW9uSW50ZXJ2YWwpO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gIH1cbn0iXX0=
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsaWNpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9nYWxpY2lhL2NvbXBvbmVudHMvZ2FsaWNpYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUXBFLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUF1QzNCLFlBQ1UsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QnJDLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBRzNCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUV4RCxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFHMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFLWixrQkFBYSxHQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFJcEYsQ0FBQzs7OztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlC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Q0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7a0NBQ0wsS0FBSzttQkFDTCxLQUFLO3dCQUNMLE1BQU07Ozs7SUFiUCx1Q0FBOEI7O0lBQzlCLG9DQUEyQjs7SUFDM0Isb0NBQTJCOztJQUMzQixrQ0FBeUI7O0lBQ3pCLGtDQUF5Qjs7SUFDekIsbUNBQTBCOztJQUMxQixxQ0FBNEI7O0lBQzVCLHFDQUE0Qjs7SUFDNUIsc0NBQTZCOztJQUM3QixrQ0FBeUI7O0lBQ3pCLHdDQUFxQzs7SUFDckMsK0NBQXNDOztJQUN0QyxnQ0FBdUI7O0lBQ3ZCLHFDQUF3RDs7SUFFeEQsbUNBQXFCOztJQUNyQixzQ0FBd0I7O0lBQ3hCLHdDQUEwQjs7SUFDMUIsd0NBQTJCOztJQUUzQiwwQ0FBc0I7O0lBQ3RCLDRDQUF5Qjs7SUFDekIscUNBQWU7O0lBRWYsa0NBQWU7O0lBQ2YsbUNBQWdCOztJQUNoQixxQ0FBMkI7O0lBQzNCLG9DQUEwQjs7SUFFMUIsbUNBQVk7O0lBQ1osbUNBQVk7Ozs7O0lBRVosb0NBQXNCOztJQUN0Qiw4Q0FBd0I7O0lBRXhCLHlDQUF3Rjs7Ozs7SUFHdEYsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgUVJDb2RlIGZyb20gJ3FyY29kZSc7XG5pbXBvcnQgeyBHYWxpY2lhQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dhbGljaWEuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5pdFBheW1lbnQsIFBheW1lbnRSZXN1bHQsIFJlc3BvbnNlQXBpIH0gZnJvbSAnLi4vbW9kZWxzL2dhbGljaWEubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdhbGljaWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2FsaWNpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dhbGljaWEuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHYWxpY2lhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBhY2Nlc3NUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgZ2FVcmxBcGkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZrVXJsQXBpITogc3RyaW5nO1xuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvZ29HYSE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBzZXNzaW9uSWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNoZWNrb3V0SWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGFtb3VudCE6IG51bWJlcjtcbiAgQElucHV0KCkgZGlzY291bnRSYXRlOiBudW1iZXIgPSAwLjEwO1xuICBASW5wdXQoKSBkaXNjb3VudEFtb3VudFZhbHVlPzogbnVtYmVyO1xuICBASW5wdXQoKSBkYXRhITogc3RyaW5nO1xuICBAT3V0cHV0KCkgc3RhdHVzUGF5ID0gbmV3IEV2ZW50RW1pdHRlcjxQYXltZW50UmVzdWx0PigpO1xuXG4gIHFySW1hZ2U6IHN0cmluZyA9ICcnO1xuICBiaWxsTnVtYmVyOiBzdHJpbmcgPSAnJztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgT2luaXRQYXltZW50ITogSW5pdFBheW1lbnQ7XG5cbiAgaXNHZW5lcmF0aW5nUXIgPSB0cnVlO1xuICBwYXltZW50Q29tcGxldGVkID0gZmFsc2U7XG4gIHBheW1lbnRJZCA9ICcnO1xuXG4gIHNob3dRciA9IGZhbHNlO1xuICBleHBpcmVkID0gZmFsc2U7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1pbnV0ZXMgPSAwO1xuICBzZWNvbmRzID0gMDtcblxuICBwcml2YXRlIGludGVydmFsOiBhbnk7XG4gIHZhbGlkYXRpb25JbnRlcnZhbDogYW55O1xuXG4gIHBheW1lbnRSZXN1bHQ6IFBheW1lbnRSZXN1bHQgPSB7IHN1Y2Nlc3M6IGZhbHNlLCBwYXltZW50SWQ6ICcnLCBpbnRlZ3JhdG9yOiAnR0FMSUNJQScgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdhbGljaWFBcGlTZXJ2aWNlOiBHYWxpY2lhQXBpU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlSW5pdFBheW1lbnQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlUXIoZGF0b3M6IHN0cmluZykge1xuICAgIGNvbnN0IGRlY29kZWQgPSBhdG9iKGRhdG9zKTtcblxuICAgIFFSQ29kZS50b0RhdGFVUkwoZGVjb2RlZCwge1xuICAgICAgd2lkdGg6IDMwMCxcbiAgICAgIG1hcmdpbjogMlxuICAgIH0pXG4gICAgICAudGhlbih1cmwgPT4ge1xuICAgICAgICB0aGlzLnFySW1hZ2UgPSB1cmw7XG5cbiAgICAgICAgdGhpcy5pc0dlbmVyYXRpbmdRciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2hvd1FyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG5cbiAgICAgICAgdGhpcy5zdGFydFBheW1lbnRWYWxpZGF0aW9uKCk7XG5cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0IHN1YnRvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYW1vdW50ICsgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hbW91bnQgPyBNYXRoLnJvdW5kKHRoaXMuYW1vdW50IC8gKDEgLSB0aGlzLmRpc2NvdW50UmF0ZSkpIDogMDtcbiAgfVxuXG4gIGdldCBkaXNjb3VudEFtb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN1YnRvdGFsQW1vdW50IC0gKHRoaXMuYW1vdW50IHx8IDApO1xuICB9XG5cbiAgY3JlYXRlSW5pdFBheW1lbnQoKSB7XG4gICAgdGhpcy5PaW5pdFBheW1lbnQgPSB7XG4gICAgICBzZXNzaW9uSWQ6ICcnLFxuICAgICAgdXNlcklkOiB0aGlzLnVzZXJJZCxcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCxcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zdG9yZU5hbWUsXG4gICAgICBjaGVja291dElkOiB0aGlzLmNoZWNrb3V0SWRcbiAgICB9XG5cbiAgICB0aGlzLmluaXRQYXltZW50KCk7XG4gIH1cblxuICBpbml0UGF5bWVudCgpIHtcbiAgICB0aGlzLmlzR2VuZXJhdGluZ1FyID0gdHJ1ZTtcblxuICAgIHRoaXMuZ2FsaWNpYUFwaVNlcnZpY2UuaW5pdFBheW1lbnQodGhpcy52a1VybEFwaSwgdGhpcy5PaW5pdFBheW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHYpID0+IHRoaXMuaW5pdFBheW1lbnRSZXNwb25zZUhhbmRsZXIodiksXG4gICAgICAgIGVycm9yOiAodikgPT4gdGhpcy5pbml0UGF5bWVudEVycm9ySGFuZGxlcih2KVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBheW1lbnRSZXNwb25zZUhhbmRsZXIocmVzcG9uc2U6IFJlc3BvbnNlQXBpKSB7XG4gICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHRoaXMucGF5bWVudFJlc3VsdCk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzWzBdIHx8ICdObyBzZSBwdWRvIGdlbmVyYXIgZWwgY8OzZGlnbyBRUi4nO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHFyRGF0YSA9IHJlc3BvbnNlLmRhdGEuYmlsbHNbMF0ucXIuZGF0b3M7XG4gICAgdGhpcy5iaWxsTnVtYmVyID0gcmVzcG9uc2UuZGF0YS5iaWxsc1swXS5ucm9Cb2xldGE7XG5cbiAgICB0aGlzLmdlbmVyYXRlUXIocXJEYXRhKVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0UGF5bWVudEVycm9ySGFuZGxlcihlcnJvcjogYW55KSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IuZXJyb3JzTWVzc2FnZXNbMF0gfHwgJ05vIHNlIHB1ZG8gZ2VuZXJhciBlbCBjw7NkaWdvIFFSLic7XG5cbiAgICB0aGlzLnBheW1lbnRSZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh0aGlzLnBheW1lbnRSZXN1bHQpO1xuICB9XG5cbiAgc3RhcnRUaW1lcigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuXG4gICAgdGhpcy5taW51dGVzID0gMTtcbiAgICB0aGlzLnNlY29uZHMgPSAwO1xuXG4gICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlY29uZHMgPT09IDApIHtcbiAgICAgICAgaWYgKHRoaXMubWludXRlcyA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuc3RvcFZhbGlkYXRpb24oKTtcblxuICAgICAgICAgIHRoaXMuc2hvd1FyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5leHBpcmVkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWludXRlcy0tO1xuICAgICAgICB0aGlzLnNlY29uZHMgPSA1OTtcblxuICAgICAgfSBlbHNlIHtcblxuICAgICAgICB0aGlzLnNlY29uZHMtLTtcbiAgICAgIH1cblxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgc3RhcnRQYXltZW50VmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25JbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcblxuICAgICAgdGhpcy5nYWxpY2lhQXBpU2VydmljZS5wYXltZW50U3RhdHVzKHRoaXMudmtVcmxBcGksIHRoaXMuYmlsbE51bWJlcilcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHYpID0+IHRoaXMucGF5bWVudFN0YXR1c1Jlc3BvbnNlSGFuZGxlcih2KSxcbiAgICAgICAgICBlcnJvcjogKHYpID0+IHRoaXMucGF5bWVudFN0YXR1c0Vycm9ySGFuZGxlcih2KVxuICAgICAgICB9KTtcbiAgICB9LCA1MDAwKTtcbiAgfVxuXG4gIHBheW1lbnRTdGF0dXNSZXNwb25zZUhhbmRsZXIocmVzcG9uc2U6IFJlc3BvbnNlQXBpKSB7XG4gICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh0aGlzLnBheW1lbnRSZXN1bHQpO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTm8gZnVlIHBvc2libGUgdmFsaWRhciBlbCBwYWdvIGNvcnJlY3RhbWVudGUuJ1xuICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UuZGF0YS5pc1BhaWQpIHtcbiAgICAgIHRoaXMuc3RvcFZhbGlkYXRpb24oKTtcblxuICAgICAgdGhpcy5zaG93UXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50Q29tcGxldGVkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5wYXltZW50SWQgPSByZXNwb25zZS5kYXRhLnBheW1lbnRJZDtcblxuICAgICAgdGhpcy5wYXltZW50UmVzdWx0ID0ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBwYXltZW50SWQ6IHRoaXMucGF5bWVudElkLFxuICAgICAgICBpbnRlZ3JhdG9yOiAnR0FMSUNJQSdcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcblxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGF5bWVudFN0YXR1c0Vycm9ySGFuZGxlcihlcnJvcjogYW55KSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnZhbGlkYXRpb25JbnRlcnZhbCk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTm8gZnVlIHBvc2libGUgdmFsaWRhciBlbCBwYWdvIGNvcnJlY3RhbWVudGUuJ1xuXG4gICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gIH1cblxuICBzaG93UXJBZ2FpbigpIHtcbiAgICB0aGlzLnNob3dRciA9IHRydWU7XG4gICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgdGhpcy5zdGFydFBheW1lbnRWYWxpZGF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BWYWxpZGF0aW9uKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy52YWxpZGF0aW9uSW50ZXJ2YWwpO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gIH1cbn0iXX0=
@@ -143,7 +143,7 @@ var GaliciaComponent = /** @class */ (function () {
143
143
  this.isLoading = false;
144
144
  this.hasError = true;
145
145
  this.statusPay.emit(this.paymentResult);
146
- this.errorMessage = response.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
146
+ this.errorMessage = response.errorsMessages[0] || 'No se pudo generar el código QR.';
147
147
  return;
148
148
  }
149
149
  /** @type {?} */
@@ -164,7 +164,7 @@ var GaliciaComponent = /** @class */ (function () {
164
164
  function (error) {
165
165
  this.isLoading = false;
166
166
  this.hasError = true;
167
- this.errorMessage = error.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
167
+ this.errorMessage = error.errorsMessages[0] || 'No se pudo generar el código QR.';
168
168
  this.paymentResult.success = false;
169
169
  this.statusPay.emit(this.paymentResult);
170
170
  };
@@ -237,6 +237,8 @@ var GaliciaComponent = /** @class */ (function () {
237
237
  if (!response.success) {
238
238
  this.isLoading = false;
239
239
  this.statusPay.emit(this.paymentResult);
240
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
241
+ this.hasError = true;
240
242
  return;
241
243
  }
242
244
  if (response.data.isPaid) {
@@ -265,6 +267,7 @@ var GaliciaComponent = /** @class */ (function () {
265
267
  */
266
268
  function (error) {
267
269
  clearInterval(this.validationInterval);
270
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
268
271
  this.hasError = true;
269
272
  };
270
273
  /**
@@ -276,6 +279,7 @@ var GaliciaComponent = /** @class */ (function () {
276
279
  function () {
277
280
  this.showQr = true;
278
281
  this.expired = false;
282
+ this.hasError = false;
279
283
  this.startTimer();
280
284
  this.startPaymentValidation();
281
285
  };
@@ -294,8 +298,8 @@ var GaliciaComponent = /** @class */ (function () {
294
298
  GaliciaComponent.decorators = [
295
299
  { type: Component, args: [{
296
300
  selector: 'lib-galicia',
297
- template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>No fue posible generar el c\u00F3digo QR</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
298
- styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.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}.summary-box .copy-amount-btn i.material-icons{font-size:16px}.summary-box .copy-amount-btn:hover{background-color:#e8f4fb}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
301
+ template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr && !hasError\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>Ocurri\u00F3 un error:</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired && !hasError\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button class=\"regen-button\" type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
302
+ styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;width:100%;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.regen-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;min-width:250px;max-width:400px;cursor:pointer}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
299
303
  }] }
300
304
  ];
301
305
  /** @nocollapse */
@@ -391,4 +395,4 @@ if (false) {
391
395
  */
392
396
  GaliciaComponent.prototype.galiciaApiService;
393
397
  }
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsaWNpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9nYWxpY2lhL2NvbXBvbmVudHMvZ2FsaWNpYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3BFO0lBNENFLDBCQUNVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBNUJyQyxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUczQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFeEQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBS1osa0JBQWEsR0FBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBSXBGLENBQUM7Ozs7SUFFTCxtQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJ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QUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLOzRCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7K0JBQ0wsS0FBSztzQ0FDTCxLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsTUFBTTs7SUEwTVQsdUJBQUM7Q0FBQSxBQTlORCxJQThOQztTQXpOWSxnQkFBZ0I7OztJQUUzQix1Q0FBOEI7O0lBQzlCLG9DQUEyQjs7SUFDM0Isb0NBQTJCOztJQUMzQixrQ0FBeUI7O0lBQ3pCLGtDQUF5Qjs7SUFDekIsbUNBQTBCOztJQUMxQixxQ0FBNEI7O0lBQzVCLHFDQUE0Qjs7SUFDNUIsc0NBQTZCOztJQUM3QixrQ0FBeUI7O0lBQ3pCLHdDQUFxQzs7SUFDckMsK0NBQXNDOztJQUN0QyxnQ0FBdUI7O0lBQ3ZCLHFDQUF3RDs7SUFFeEQsbUNBQXFCOztJQUNyQixzQ0FBd0I7O0lBQ3hCLHdDQUEwQjs7SUFDMUIsd0NBQTJCOztJQUUzQiwwQ0FBc0I7O0lBQ3RCLDRDQUF5Qjs7SUFDekIscUNBQWU7O0lBRWYsa0NBQWU7O0lBQ2YsbUNBQWdCOztJQUNoQixxQ0FBMkI7O0lBQzNCLG9DQUEwQjs7SUFFMUIsbUNBQVk7O0lBQ1osbUNBQVk7Ozs7O0lBRVosb0NBQXNCOztJQUN0Qiw4Q0FBd0I7O0lBRXhCLHlDQUF3Rjs7Ozs7SUFHdEYsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgUVJDb2RlIGZyb20gJ3FyY29kZSc7XG5pbXBvcnQgeyBHYWxpY2lhQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dhbGljaWEuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5pdFBheW1lbnQsIFBheW1lbnRSZXN1bHQsIFJlc3BvbnNlQXBpIH0gZnJvbSAnLi4vbW9kZWxzL2dhbGljaWEubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdhbGljaWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2FsaWNpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dhbGljaWEuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHYWxpY2lhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBhY2Nlc3NUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgZ2FVcmxBcGkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZrVXJsQXBpITogc3RyaW5nO1xuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvZ29HYSE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RvcmVOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBzZXNzaW9uSWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNoZWNrb3V0SWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGFtb3VudCE6IG51bWJlcjtcbiAgQElucHV0KCkgZGlzY291bnRSYXRlOiBudW1iZXIgPSAwLjEwO1xuICBASW5wdXQoKSBkaXNjb3VudEFtb3VudFZhbHVlPzogbnVtYmVyO1xuICBASW5wdXQoKSBkYXRhITogc3RyaW5nO1xuICBAT3V0cHV0KCkgc3RhdHVzUGF5ID0gbmV3IEV2ZW50RW1pdHRlcjxQYXltZW50UmVzdWx0PigpO1xuXG4gIHFySW1hZ2U6IHN0cmluZyA9ICcnO1xuICBiaWxsTnVtYmVyOiBzdHJpbmcgPSAnJztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgT2luaXRQYXltZW50ITogSW5pdFBheW1lbnQ7XG5cbiAgaXNHZW5lcmF0aW5nUXIgPSB0cnVlO1xuICBwYXltZW50Q29tcGxldGVkID0gZmFsc2U7XG4gIHBheW1lbnRJZCA9ICcnO1xuXG4gIHNob3dRciA9IGZhbHNlO1xuICBleHBpcmVkID0gZmFsc2U7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1pbnV0ZXMgPSAwO1xuICBzZWNvbmRzID0gMDtcblxuICBwcml2YXRlIGludGVydmFsOiBhbnk7XG4gIHZhbGlkYXRpb25JbnRlcnZhbDogYW55O1xuXG4gIHBheW1lbnRSZXN1bHQ6IFBheW1lbnRSZXN1bHQgPSB7IHN1Y2Nlc3M6IGZhbHNlLCBwYXltZW50SWQ6ICcnLCBpbnRlZ3JhdG9yOiAnR0FMSUNJQScgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdhbGljaWFBcGlTZXJ2aWNlOiBHYWxpY2lhQXBpU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlSW5pdFBheW1lbnQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlUXIoZGF0b3M6IHN0cmluZykge1xuICAgIGNvbnN0IGRlY29kZWQgPSBhdG9iKGRhdG9zKTtcblxuICAgIFFSQ29kZS50b0RhdGFVUkwoZGVjb2RlZCwge1xuICAgICAgd2lkdGg6IDMwMCxcbiAgICAgIG1hcmdpbjogMlxuICAgIH0pXG4gICAgICAudGhlbih1cmwgPT4ge1xuICAgICAgICB0aGlzLnFySW1hZ2UgPSB1cmw7XG5cbiAgICAgICAgdGhpcy5pc0dlbmVyYXRpbmdRciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2hvd1FyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG5cbiAgICAgICAgdGhpcy5zdGFydFBheW1lbnRWYWxpZGF0aW9uKCk7XG5cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0IHN1YnRvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuYW1vdW50ICsgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hbW91bnQgPyBNYXRoLnJvdW5kKHRoaXMuYW1vdW50IC8gKDEgLSB0aGlzLmRpc2NvdW50UmF0ZSkpIDogMDtcbiAgfVxuXG4gIGdldCBkaXNjb3VudEFtb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN1YnRvdGFsQW1vdW50IC0gKHRoaXMuYW1vdW50IHx8IDApO1xuICB9XG5cbiAgY3JlYXRlSW5pdFBheW1lbnQoKSB7XG4gICAgdGhpcy5PaW5pdFBheW1lbnQgPSB7XG4gICAgICBzZXNzaW9uSWQ6ICcnLFxuICAgICAgdXNlcklkOiB0aGlzLnVzZXJJZCxcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCxcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zdG9yZU5hbWUsXG4gICAgICBjaGVja291dElkOiB0aGlzLmNoZWNrb3V0SWRcbiAgICB9XG5cbiAgICB0aGlzLmluaXRQYXltZW50KCk7XG4gIH1cblxuICBpbml0UGF5bWVudCgpIHtcbiAgICB0aGlzLmlzR2VuZXJhdGluZ1FyID0gdHJ1ZTtcblxuICAgIHRoaXMuZ2FsaWNpYUFwaVNlcnZpY2UuaW5pdFBheW1lbnQodGhpcy52a1VybEFwaSwgdGhpcy5PaW5pdFBheW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHYpID0+IHRoaXMuaW5pdFBheW1lbnRSZXNwb25zZUhhbmRsZXIodiksXG4gICAgICAgIGVycm9yOiAodikgPT4gdGhpcy5pbml0UGF5bWVudEVycm9ySGFuZGxlcih2KVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBheW1lbnRSZXNwb25zZUhhbmRsZXIocmVzcG9uc2U6IFJlc3BvbnNlQXBpKSB7XG4gICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHRoaXMucGF5bWVudFJlc3VsdCk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzWzBdIHx8ICdPY3VycmnDsyB1biBlcnJvciBhbCBnZW5lcmFyIGVsIGPDs2RpZ28gUVIuJztcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBxckRhdGEgPSByZXNwb25zZS5kYXRhLmJpbGxzWzBdLnFyLmRhdG9zO1xuICAgIHRoaXMuYmlsbE51bWJlciA9IHJlc3BvbnNlLmRhdGEuYmlsbHNbMF0ubnJvQm9sZXRhO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVFyKHFyRGF0YSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBheW1lbnRFcnJvckhhbmRsZXIoZXJyb3I6IGFueSkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLmVycm9yc01lc3NhZ2VzWzBdIHx8ICdPY3VycmnDsyB1biBlcnJvciBhbCBnZW5lcmFyIGVsIGPDs2RpZ28gUVIuJztcblxuICAgIHRoaXMucGF5bWVudFJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XG5cbiAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHRoaXMucGF5bWVudFJlc3VsdCk7XG4gIH1cblxuICBzdGFydFRpbWVyKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG5cbiAgICB0aGlzLm1pbnV0ZXMgPSAxO1xuICAgIHRoaXMuc2Vjb25kcyA9IDA7XG5cbiAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2Vjb25kcyA9PT0gMCkge1xuICAgICAgICBpZiAodGhpcy5taW51dGVzID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5zdG9wVmFsaWRhdGlvbigpO1xuXG4gICAgICAgICAgdGhpcy5zaG93UXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmV4cGlyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5taW51dGVzLS07XG4gICAgICAgIHRoaXMuc2Vjb25kcyA9IDU5O1xuXG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIHRoaXMuc2Vjb25kcy0tO1xuICAgICAgfVxuXG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBzdGFydFBheW1lbnRWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXG4gICAgICB0aGlzLmdhbGljaWFBcGlTZXJ2aWNlLnBheW1lbnRTdGF0dXModGhpcy52a1VybEFwaSwgdGhpcy5iaWxsTnVtYmVyKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAodikgPT4gdGhpcy5wYXltZW50U3RhdHVzUmVzcG9uc2VIYW5kbGVyKHYpLFxuICAgICAgICAgIGVycm9yOiAodikgPT4gdGhpcy5wYXltZW50U3RhdHVzRXJyb3JIYW5kbGVyKHYpXG4gICAgICAgIH0pO1xuICAgIH0sIDUwMDApO1xuICB9XG5cbiAgcGF5bWVudFN0YXR1c1Jlc3BvbnNlSGFuZGxlcihyZXNwb25zZTogUmVzcG9uc2VBcGkpIHtcbiAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHRoaXMucGF5bWVudFJlc3VsdCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UuZGF0YS5pc1BhaWQpIHtcbiAgICAgIHRoaXMuc3RvcFZhbGlkYXRpb24oKTtcblxuICAgICAgdGhpcy5zaG93UXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50Q29tcGxldGVkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5wYXltZW50SWQgPSByZXNwb25zZS5kYXRhLnBheW1lbnRJZDtcblxuICAgICAgdGhpcy5wYXltZW50UmVzdWx0ID0ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBwYXltZW50SWQ6IHRoaXMucGF5bWVudElkLFxuICAgICAgICBpbnRlZ3JhdG9yOiAnR0FMSUNJQSdcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcblxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGF5bWVudFN0YXR1c0Vycm9ySGFuZGxlcihlcnJvcjogYW55KSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnZhbGlkYXRpb25JbnRlcnZhbCk7XG5cbiAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIHNob3dRckFnYWluKCkge1xuICAgIHRoaXMuc2hvd1FyID0gdHJ1ZTtcbiAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuc3RhcnRUaW1lcigpO1xuICAgIHRoaXMuc3RhcnRQYXltZW50VmFsaWRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wVmFsaWRhdGlvbigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMudmFsaWRhdGlvbkludGVydmFsKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICB9XG59Il19
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsaWNpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1wYXltZW50cy8iLCJzb3VyY2VzIjpbImxpYi9nYWxpY2lhL2NvbXBvbmVudHMvZ2FsaWNpYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3BFO0lBNENFLDBCQUNVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBNUJyQyxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUczQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFeEQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBS1osa0JBQWEsR0FBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBSXBGLENBQUM7Ozs7SUFFTCxtQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJ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LENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Z0JBak9GLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsMnJFQUF1Qzs7aUJBRXhDOzs7O2dCQVBRLGlCQUFpQjs7OzhCQVV2QixLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzs0QkFDTCxLQUFLOzRCQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLOytCQUNMLEtBQUs7c0NBQ0wsS0FBSzt1QkFDTCxLQUFLOzRCQUNMLE1BQU07O0lBOE1ULHVCQUFDO0NBQUEsQUFsT0QsSUFrT0M7U0E3TlksZ0JBQWdCOzs7SUFFM0IsdUNBQThCOztJQUM5QixvQ0FBMkI7O0lBQzNCLG9DQUEyQjs7SUFDM0Isa0NBQXlCOztJQUN6QixrQ0FBeUI7O0lBQ3pCLG1DQUEwQjs7SUFDMUIscUNBQTRCOztJQUM1QixxQ0FBNEI7O0lBQzVCLHNDQUE2Qjs7SUFDN0Isa0NBQXlCOztJQUN6Qix3Q0FBcUM7O0lBQ3JDLCtDQUFzQzs7SUFDdEMsZ0NBQXVCOztJQUN2QixxQ0FBd0Q7O0lBRXhELG1DQUFxQjs7SUFDckIsc0NBQXdCOztJQUN4Qix3Q0FBMEI7O0lBQzFCLHdDQUEyQjs7SUFFM0IsMENBQXNCOztJQUN0Qiw0Q0FBeUI7O0lBQ3pCLHFDQUFlOztJQUVmLGtDQUFlOztJQUNmLG1DQUFnQjs7SUFDaEIscUNBQTJCOztJQUMzQixvQ0FBMEI7O0lBRTFCLG1DQUFZOztJQUNaLG1DQUFZOzs7OztJQUVaLG9DQUFzQjs7SUFDdEIsOENBQXdCOztJQUV4Qix5Q0FBd0Y7Ozs7O0lBR3RGLDZDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFFSQ29kZSBmcm9tICdxcmNvZGUnO1xuaW1wb3J0IHsgR2FsaWNpYUFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9nYWxpY2lhLmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEluaXRQYXltZW50LCBQYXltZW50UmVzdWx0LCBSZXNwb25zZUFwaSB9IGZyb20gJy4uL21vZGVscy9nYWxpY2lhLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1nYWxpY2lhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGljaWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nYWxpY2lhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2FsaWNpYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYWNjZXNzVG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdhVXJsQXBpITogc3RyaW5nO1xuICBASW5wdXQoKSB2a1VybEFwaSE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xuICBASW5wdXQoKSBsb2dvR2EhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0b3JlSWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0b3JlTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2Vzc2lvbklkITogc3RyaW5nO1xuICBASW5wdXQoKSBjaGVja291dElkITogbnVtYmVyO1xuICBASW5wdXQoKSBhbW91bnQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc2NvdW50UmF0ZTogbnVtYmVyID0gMC4xMDtcbiAgQElucHV0KCkgZGlzY291bnRBbW91bnRWYWx1ZT86IG51bWJlcjtcbiAgQElucHV0KCkgZGF0YSE6IHN0cmluZztcbiAgQE91dHB1dCgpIHN0YXR1c1BheSA9IG5ldyBFdmVudEVtaXR0ZXI8UGF5bWVudFJlc3VsdD4oKTtcblxuICBxckltYWdlOiBzdHJpbmcgPSAnJztcbiAgYmlsbE51bWJlcjogc3RyaW5nID0gJyc7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIE9pbml0UGF5bWVudCE6IEluaXRQYXltZW50O1xuXG4gIGlzR2VuZXJhdGluZ1FyID0gdHJ1ZTtcbiAgcGF5bWVudENvbXBsZXRlZCA9IGZhbHNlO1xuICBwYXltZW50SWQgPSAnJztcblxuICBzaG93UXIgPSBmYWxzZTtcbiAgZXhwaXJlZCA9IGZhbHNlO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtaW51dGVzID0gMDtcbiAgc2Vjb25kcyA9IDA7XG5cbiAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xuICB2YWxpZGF0aW9uSW50ZXJ2YWw6IGFueTtcblxuICBwYXltZW50UmVzdWx0OiBQYXltZW50UmVzdWx0ID0geyBzdWNjZXNzOiBmYWxzZSwgcGF5bWVudElkOiAnJywgaW50ZWdyYXRvcjogJ0dBTElDSUEnIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBnYWxpY2lhQXBpU2VydmljZTogR2FsaWNpYUFwaVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUluaXRQYXltZW50KCk7XG4gIH1cblxuICBnZW5lcmF0ZVFyKGRhdG9zOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkZWNvZGVkID0gYXRvYihkYXRvcyk7XG5cbiAgICBRUkNvZGUudG9EYXRhVVJMKGRlY29kZWQsIHtcbiAgICAgIHdpZHRoOiAzMDAsXG4gICAgICBtYXJnaW46IDJcbiAgICB9KVxuICAgICAgLnRoZW4odXJsID0+IHtcbiAgICAgICAgdGhpcy5xckltYWdlID0gdXJsO1xuXG4gICAgICAgIHRoaXMuaXNHZW5lcmF0aW5nUXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnNob3dRciA9IHRydWU7XG4gICAgICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lcigpO1xuXG4gICAgICAgIHRoaXMuc3RhcnRQYXltZW50VmFsaWRhdGlvbigpO1xuXG4gICAgICB9KTtcbiAgfVxuXG4gIGdldCBzdWJ0b3RhbEFtb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRpc2NvdW50QW1vdW50VmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmFtb3VudCArIHRoaXMuZGlzY291bnRBbW91bnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYW1vdW50ID8gTWF0aC5yb3VuZCh0aGlzLmFtb3VudCAvICgxIC0gdGhpcy5kaXNjb3VudFJhdGUpKSA6IDA7XG4gIH1cblxuICBnZXQgZGlzY291bnRBbW91bnQoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNjb3VudEFtb3VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdWJ0b3RhbEFtb3VudCAtICh0aGlzLmFtb3VudCB8fCAwKTtcbiAgfVxuXG4gIGNyZWF0ZUluaXRQYXltZW50KCkge1xuICAgIHRoaXMuT2luaXRQYXltZW50ID0ge1xuICAgICAgc2Vzc2lvbklkOiAnJyxcbiAgICAgIHVzZXJJZDogdGhpcy51c2VySWQsXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVOYW1lLFxuICAgICAgY2hlY2tvdXRJZDogdGhpcy5jaGVja291dElkXG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGF5bWVudCgpO1xuICB9XG5cbiAgaW5pdFBheW1lbnQoKSB7XG4gICAgdGhpcy5pc0dlbmVyYXRpbmdRciA9IHRydWU7XG5cbiAgICB0aGlzLmdhbGljaWFBcGlTZXJ2aWNlLmluaXRQYXltZW50KHRoaXMudmtVcmxBcGksIHRoaXMuT2luaXRQYXltZW50KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh2KSA9PiB0aGlzLmluaXRQYXltZW50UmVzcG9uc2VIYW5kbGVyKHYpLFxuICAgICAgICBlcnJvcjogKHYpID0+IHRoaXMuaW5pdFBheW1lbnRFcnJvckhhbmRsZXIodilcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGluaXRQYXltZW50UmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlOiBSZXNwb25zZUFwaSkge1xuICAgIGlmICghcmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0dXNQYXkuZW1pdCh0aGlzLnBheW1lbnRSZXN1bHQpO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlc1swXSB8fCAnTm8gc2UgcHVkbyBnZW5lcmFyIGVsIGPDs2RpZ28gUVIuJztcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBxckRhdGEgPSByZXNwb25zZS5kYXRhLmJpbGxzWzBdLnFyLmRhdG9zO1xuICAgIHRoaXMuYmlsbE51bWJlciA9IHJlc3BvbnNlLmRhdGEuYmlsbHNbMF0ubnJvQm9sZXRhO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVFyKHFyRGF0YSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBheW1lbnRFcnJvckhhbmRsZXIoZXJyb3I6IGFueSkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLmVycm9yc01lc3NhZ2VzWzBdIHx8ICdObyBzZSBwdWRvIGdlbmVyYXIgZWwgY8OzZGlnbyBRUi4nO1xuXG4gICAgdGhpcy5wYXltZW50UmVzdWx0LnN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcbiAgfVxuXG4gIHN0YXJ0VGltZXIoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcblxuICAgIHRoaXMubWludXRlcyA9IDE7XG4gICAgdGhpcy5zZWNvbmRzID0gMDtcblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWNvbmRzID09PSAwKSB7XG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZXMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLnN0b3BWYWxpZGF0aW9uKCk7XG5cbiAgICAgICAgICB0aGlzLnNob3dRciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1pbnV0ZXMtLTtcbiAgICAgICAgdGhpcy5zZWNvbmRzID0gNTk7XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgdGhpcy5zZWNvbmRzLS07XG4gICAgICB9XG5cbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIHN0YXJ0UGF5bWVudFZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cbiAgICAgIHRoaXMuZ2FsaWNpYUFwaVNlcnZpY2UucGF5bWVudFN0YXR1cyh0aGlzLnZrVXJsQXBpLCB0aGlzLmJpbGxOdW1iZXIpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2KSA9PiB0aGlzLnBheW1lbnRTdGF0dXNSZXNwb25zZUhhbmRsZXIodiksXG4gICAgICAgICAgZXJyb3I6ICh2KSA9PiB0aGlzLnBheW1lbnRTdGF0dXNFcnJvckhhbmRsZXIodilcbiAgICAgICAgfSk7XG4gICAgfSwgNTAwMCk7XG4gIH1cblxuICBwYXltZW50U3RhdHVzUmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlOiBSZXNwb25zZUFwaSkge1xuICAgIGlmICghcmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdHVzUGF5LmVtaXQodGhpcy5wYXltZW50UmVzdWx0KTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGZ1ZSBwb3NpYmxlIHZhbGlkYXIgZWwgcGFnbyBjb3JyZWN0YW1lbnRlLidcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLmRhdGEuaXNQYWlkKSB7XG4gICAgICB0aGlzLnN0b3BWYWxpZGF0aW9uKCk7XG5cbiAgICAgIHRoaXMuc2hvd1FyID0gZmFsc2U7XG4gICAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMucGF5bWVudENvbXBsZXRlZCA9IHRydWU7XG5cbiAgICAgIHRoaXMucGF5bWVudElkID0gcmVzcG9uc2UuZGF0YS5wYXltZW50SWQ7XG5cbiAgICAgIHRoaXMucGF5bWVudFJlc3VsdCA9IHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgcGF5bWVudElkOiB0aGlzLnBheW1lbnRJZCxcbiAgICAgICAgaW50ZWdyYXRvcjogJ0dBTElDSUEnXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnN0YXR1c1BheS5lbWl0KHRoaXMucGF5bWVudFJlc3VsdCk7XG5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBheW1lbnRTdGF0dXNFcnJvckhhbmRsZXIoZXJyb3I6IGFueSkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy52YWxpZGF0aW9uSW50ZXJ2YWwpO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGZ1ZSBwb3NpYmxlIHZhbGlkYXIgZWwgcGFnbyBjb3JyZWN0YW1lbnRlLidcblxuICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgc2hvd1FyQWdhaW4oKSB7XG4gICAgdGhpcy5zaG93UXIgPSB0cnVlO1xuICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcblxuICAgIHRoaXMuc3RhcnRUaW1lcigpO1xuICAgIHRoaXMuc3RhcnRQYXltZW50VmFsaWRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wVmFsaWRhdGlvbigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMudmFsaWRhdGlvbkludGVydmFsKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICB9XG59Il19
@@ -3650,7 +3650,7 @@ class GaliciaComponent {
3650
3650
  this.isLoading = false;
3651
3651
  this.hasError = true;
3652
3652
  this.statusPay.emit(this.paymentResult);
3653
- this.errorMessage = response.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
3653
+ this.errorMessage = response.errorsMessages[0] || 'No se pudo generar el código QR.';
3654
3654
  return;
3655
3655
  }
3656
3656
  /** @type {?} */
@@ -3666,7 +3666,7 @@ class GaliciaComponent {
3666
3666
  initPaymentErrorHandler(error) {
3667
3667
  this.isLoading = false;
3668
3668
  this.hasError = true;
3669
- this.errorMessage = error.errorsMessages[0] || 'Ocurrió un error al generar el código QR.';
3669
+ this.errorMessage = error.errorsMessages[0] || 'No se pudo generar el código QR.';
3670
3670
  this.paymentResult.success = false;
3671
3671
  this.statusPay.emit(this.paymentResult);
3672
3672
  }
@@ -3727,6 +3727,8 @@ class GaliciaComponent {
3727
3727
  if (!response.success) {
3728
3728
  this.isLoading = false;
3729
3729
  this.statusPay.emit(this.paymentResult);
3730
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
3731
+ this.hasError = true;
3730
3732
  return;
3731
3733
  }
3732
3734
  if (response.data.isPaid) {
@@ -3750,6 +3752,7 @@ class GaliciaComponent {
3750
3752
  */
3751
3753
  paymentStatusErrorHandler(error) {
3752
3754
  clearInterval(this.validationInterval);
3755
+ this.errorMessage = 'No fue posible validar el pago correctamente.';
3753
3756
  this.hasError = true;
3754
3757
  }
3755
3758
  /**
@@ -3758,6 +3761,7 @@ class GaliciaComponent {
3758
3761
  showQrAgain() {
3759
3762
  this.showQr = true;
3760
3763
  this.expired = false;
3764
+ this.hasError = false;
3761
3765
  this.startTimer();
3762
3766
  this.startPaymentValidation();
3763
3767
  }
@@ -3773,8 +3777,8 @@ class GaliciaComponent {
3773
3777
  GaliciaComponent.decorators = [
3774
3778
  { type: Component, args: [{
3775
3779
  selector: 'lib-galicia',
3776
- template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>No fue posible generar el c\u00F3digo QR</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
3777
- styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.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}.summary-box .copy-amount-btn i.material-icons{font-size:16px}.summary-box .copy-amount-btn:hover{background-color:#e8f4fb}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
3780
+ template: "<div class=\"gc-payment\">\n\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 ({{ 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 abonar</span>\n <span class=\"summary-value total-value\">\n ${{ amount | number:'1.2-2' }} \n </span>\n </div>\n </div>\n\n <div class=\"formRow\">\n <p>\n Escane\u00E1 el c\u00F3digo QR con tu aplicaci\u00F3n bancaria para realizar el pago.\n </p>\n </div>\n\n <div *ngIf=\"isGeneratingQr && !hasError\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Generando c\u00F3digo QR...</p>\n </div>\n\n <div *ngIf=\"showQr && !hasError\">\n <div class=\"qr-container\">\n <img [src]=\"qrImage\" alt=\"QR Galicia\" />\n </div>\n\n <div class=\"timer\">\n Tiempo restante: {{ minutes }}:{{ seconds < 10 ? '0' + seconds : seconds }} \n </div>\n </div>\n\n <div *ngIf=\"hasError\" class=\"payment-error\">\n <div class=\"error-icon\">\n \u26A0\n </div>\n\n <div class=\"error-message\">\n <h3>Ocurri\u00F3 un error:</h3>\n\n <p>{{ errorMessage }}</p>\n </div>\n </div>\n\n <div *ngIf=\"paymentCompleted\" class=\"payment-success\">\n <div class=\"success-icon\">\n \u2713\n </div>\n\n <div class=\"success-message\">\n <h3>Pago realizado correctamente</h3>\n\n <p>\n ID de pago Galicia: <strong>{{ paymentId }}</strong>\n </p>\n </div>\n </div>\n\n <div *ngIf=\"expired && !hasError\">\n <div class=\"pay-message info\">\n El c\u00F3digo QR expir\u00F3.\n </div>\n\n <button class=\"regen-button\" type=\"button\" (click)=\"showQrAgain()\">\n Regenerar c\u00F3digo QR\n </button>\n\n </div>\n</div>",
3781
+ styles: [".gc-payment{display:flex;flex-direction:column;align-items:center;text-align:center}.formRow{width:100%;max-width:400px;margin-bottom:20px}.loading-container{text-align:center;padding:30px}.spinner{width:40px;height:40px;margin:0 auto 15px;border:4px solid #e0e0e0;border-top:4px solid #06c;border-radius:50%;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.qr-container{margin:20px 0}.qr-container img{max-width:300px;width:100%;height:auto}.timer{margin-top:10px;font-size:18px;font-weight:600}.payment-error{text-align:center;padding:30px;max-width:400px}.error-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#fc2626;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-message h3{color:#fc2626;margin-bottom:10px}.payment-success{text-align:center;padding:30px}.success-icon{width:80px;height:80px;margin:0 auto 15px;border-radius:50%;background:#28a745;color:#fff;font-size:48px;font-weight:700;display:flex;align-items:center;justify-content:center}.success-message h3{color:#28a745;margin-bottom:10px}.summary-box{margin:20px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;width:100%;min-width:250px;max-width:400px}.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}.summary-box .summary-row:last-child{border-bottom:none}.summary-box .summary-row .summary-label{display:flex;align-items:center;gap:6px;color:#555}.summary-box .summary-row .summary-label i.material-icons{font-size:14px}.summary-box .summary-row .summary-value{font-weight:600;color:#1a1a1a;display:flex;align-items:center;margin-left:45px;gap:6px}.summary-box .summary-row.discount{background-color:#f0fdf4}.summary-box .summary-row.discount .summary-label{color:#16a34a;font-weight:500}.summary-box .summary-row.discount .summary-label i.material-icons{color:#16a34a}.summary-box .summary-row.discount .discount-value{color:#16a34a;font-weight:700}.summary-box .summary-row.total{background-color:#f8f9fa;border-top:2px solid #009ee3}.summary-box .summary-row.total .summary-label{font-size:17px;font-weight:700;color:#1a1a1a}.summary-box .summary-row.total .total-value{font-size:20px;font-weight:800;color:#009ee3}.regen-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;min-width:250px;max-width:400px;cursor:pointer}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}"]
3778
3782
  }] }
3779
3783
  ];
3780
3784
  /** @nocollapse */