ng-easycommerce-v18 0.0.4 → 0.0.5

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.
@@ -38,6 +38,7 @@
38
38
  "blog-right-sidebar": "blog",
39
39
  "branch-delivery": "Retiro en sucursal",
40
40
  "branch_delivery": "Retiro en sucursal",
41
+ "buy": "Comprar",
41
42
  "buy-now": "Comprar ahora",
42
43
  "call-us": "Llamanos",
43
44
  "cancelled": "Cancelado",
@@ -152,6 +153,7 @@
152
153
  "invalid-form": "Aún hay campos sin completar y/o datos no validos",
153
154
  "invalid-value": "El valor ingresado no es válido",
154
155
  "invited-checkout": "Comprar como invitado",
156
+ "keep-shopping": "Seguir comprando",
155
157
  "kids-fashion": "Niños/as",
156
158
  "last-name": "Apellido",
157
159
  "last-name-help1": "El apellido es requerido",
@@ -258,6 +260,7 @@
258
260
  "register": "Solicitar Registro",
259
261
  "register-ok": "Se envió un mail a su casilla de correo para verificar su nueva cuenta",
260
262
  "related-products": "Productos relacionados",
263
+ "remove-coupon": "Eliminar cupon",
261
264
  "repeat-new-password": "Repita nueva contraseña",
262
265
  "repeat-password": "Confirme la contraseña",
263
266
  "repeated-new-password": "Nueva contraseña repetida",
@@ -1,5 +1,5 @@
1
1
  import { Component, inject } from '@angular/core';
2
- import { CartService } from '../../ec-services';
2
+ import { CartService, AuthService } from '../../ec-services';
3
3
  import * as i0 from "@angular/core";
4
4
  export class CartEcComponent {
5
5
  _cartService = inject(CartService);
@@ -8,6 +8,8 @@ export class CartEcComponent {
8
8
  totalPromotionAmount$ = this._cartService.getTotalPromotionAmount();
9
9
  taxesAmount$ = this._cartService.getTaxesAmount();
10
10
  totalAmount$ = this._cartService.getTotalAmount();
11
+ _authService = inject(AuthService);
12
+ isAuthenticated$ = this._authService.isAuthenticated();
11
13
  removeCoupon() {
12
14
  this._cartService.removeCoupon();
13
15
  }
@@ -18,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
18
20
  type: Component,
19
21
  args: [{ selector: 'lib-cart-ec', standalone: true, imports: [], template: "<p>cart-ec works!</p>\r\n" }]
20
22
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jYXJ0LWVjL2NhcnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2FydC1lYy9jYXJ0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7O0FBVTlELE1BQU0sT0FBTyxlQUFlO0lBQ25CLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpELFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztJQUMxQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hELHFCQUFxQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNwRSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsRCxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6RCxZQUFZO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO3VHQVZXLGVBQWU7MkZBQWYsZUFBZSx1RUNYNUIsMkJBQ0E7OzJGRFVhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItY2FydC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY2FydC1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2NhcnQtZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0RWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XHJcblxyXG5cdHB1YmxpYyBjYXJ0SXRlbXMkID0gdGhpcy5fY2FydFNlcnZpY2UuY2FydEl0ZW1zJDtcclxuXHRwdWJsaWMgc3ViVG90YWxBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0U3ViVG90YWxBbW91bnQoKTtcclxuXHRwdWJsaWMgdG90YWxQcm9tb3Rpb25BbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VG90YWxQcm9tb3Rpb25BbW91bnQoKTtcclxuXHRwdWJsaWMgdGF4ZXNBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VGF4ZXNBbW91bnQoKTtcclxuXHRwdWJsaWMgdG90YWxBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VG90YWxBbW91bnQoKTtcclxuXHRyZW1vdmVDb3Vwb24oKXtcclxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLnJlbW92ZUNvdXBvbigpXHJcblx0fVxyXG5cclxufVxyXG4iLCI8cD5jYXJ0LWVjIHdvcmtzITwvcD5cclxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jYXJ0LWVjL2NhcnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2FydC1lYy9jYXJ0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWlCLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVU1RSxNQUFNLE9BQU8sZUFBZTtJQUduQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVqRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFDMUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN4RCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDcEUsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbEQsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7SUFFakQsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFaEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUU5RCxZQUFZO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO3VHQWpCVyxlQUFlOzJGQUFmLGVBQWUsdUVDWDVCLDJCQUNBOzsyRkRVYSxlQUFlO2tCQVAzQixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgLCBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItY2FydC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY2FydC1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2NhcnQtZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0RWNDb21wb25lbnQge1xyXG5cclxuXHRcclxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xyXG5cclxuXHRwdWJsaWMgY2FydEl0ZW1zJCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnRJdGVtcyQ7XHJcblx0cHVibGljIHN1YlRvdGFsQW1vdW50JCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmdldFN1YlRvdGFsQW1vdW50KCk7XHJcblx0cHVibGljIHRvdGFsUHJvbW90aW9uQW1vdW50JCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsUHJvbW90aW9uQW1vdW50KCk7XHJcblx0cHVibGljIHRheGVzQW1vdW50JCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRheGVzQW1vdW50KCk7XHJcblx0cHVibGljIHRvdGFsQW1vdW50JCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsQW1vdW50KCk7XHJcblx0XHJcblx0cHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKVxyXG5cclxuXHRwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xyXG5cdFxyXG5cdHJlbW92ZUNvdXBvbigpe1xyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UucmVtb3ZlQ291cG9uKClcclxuXHR9XHJcblxyXG59XHJcbiIsIjxwPmNhcnQtZWMgd29ya3MhPC9wPlxyXG4iXX0=
@@ -16,6 +16,7 @@ export class CartItemEcComponent {
16
16
  mediaUrl = this._constants.mediaUrl();
17
17
  quantity = 0;
18
18
  variantsToShow = ['TALLE', 'COLOR'];
19
+ updateStock = false;
19
20
  ngOnInit() {
20
21
  this.quantity = this.item.quantity;
21
22
  console.log(this.item, this.mediaUrl);
@@ -80,6 +81,29 @@ export class CartItemEcComponent {
80
81
  return null;
81
82
  }
82
83
  }
84
+ createDiscountMessage(saleprice, price) {
85
+ if (isNaN(saleprice) || isNaN(price) || saleprice >= price || saleprice <= 0 || price <= 0) {
86
+ return '';
87
+ }
88
+ let discountPercentage = Math.round(((price - saleprice) / price) * 100);
89
+ let discountMessage = `${discountPercentage}% OFF`;
90
+ return discountMessage;
91
+ }
92
+ checkStock(product) {
93
+ for (const variant of product.product.variants) {
94
+ if (product.variant_id === variant.code) {
95
+ if (variant.stock === 0) {
96
+ this.updateStock = true;
97
+ return '0';
98
+ }
99
+ else if (product.quantity > variant.stock) {
100
+ this.updateStock = true;
101
+ return variant.stock;
102
+ }
103
+ }
104
+ }
105
+ return false; // Solo se ejecuta si no se cumple la condición
106
+ }
83
107
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CartItemEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
108
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: CartItemEcComponent, isStandalone: true, selector: "app-cart-item-ec", inputs: { item: "item", inSidebar: "inSidebar" }, ngImport: i0, template: "@if(!inSidebar){\r\n<p>cart-item-ec works!</p>\r\n}@else{\r\n\r\n<div class=\"row\">\r\n <div class=\"col-2\">\r\n @let product= item.product;\r\n @if(item.variant_id && product.variants.length>0){\r\n <img [src]=\"mediaUrl + product.variants[0].images[0]\" alt=\"\" class=\"img-fluid\">\r\n }@else{\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"\" class=\"img-fluid\">\r\n }\r\n </div>\r\n <div class=\"col-8\">\r\n <div class=\"info d-flex flex-column align-items-start\">\r\n <a class=\"title text-dark text-decoration-none m-0 p-0 h6 mb-0\"\r\n [routerLink]=\"['/product', item.variant_id]\">{{\r\n item.product.name | titlecase\r\n }}</a>\r\n <div class=\"qty1\">\r\n <span>{{ item.product.id}}</span>\r\n </div>\r\n <div class=\"price h6 fw-bold mb-0 pb-0\">{{ item.product.price | ecCurrencySymbol\r\n }}</div>\r\n @if(getVariants(item); as options){\r\n <div class=\"d-flex align-items-center p-0\">\r\n @for(option of options; track $index){\r\n <span class=\"me-1\"> {{option.name | titlecase}}:</span>\r\n @if(option.name == 'COLOR'){\r\n <div class=\"p-2 rounded\" [style.background]=\"'#' + option.value\"></div>\r\n }@else{\r\n <b>{{option.value}}</b>\r\n }\r\n }\r\n </div>\r\n }\r\n <div class=\"input-group mb-3\">\r\n <button (click)=\"less(item.product.variants[0]?.stock)\" class=\"btn btn-outline-secondary\" type=\"button\" id=\"button-addon1\">\r\n <i class=\"fa fa-minus\" aria-hidden=\"true\"></i>\r\n </button>\r\n <input type=\"text\" class=\"form-control text-center\" placeholder=\"\" aria-label=\"Example text with button addon\"\r\n aria-describedby=\"button-addon1\" [value]=\"item.quantity\" min=\"1\" step=\"1\" [(ngModel)]=\"quantity\"\r\n (change)=\"updateQuantity(item.product.variants[0]?.stock)\">\r\n <button (click)=\"plus(item.product.variants[0]?.stock)\" class=\"btn btn-outline-secondary\" type=\"button\" id=\"button-addon1\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-2\">\r\n <a (click)=\"deleteCartItem()\" class=\"btn botBorrar\"><i class=\"fa fa-trash\" aria-hidden=\"true\"></i></a>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
85
109
  }
@@ -94,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
94
118
  }], inSidebar: [{
95
119
  type: Input
96
120
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1pdGVtLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2NhcnQtZWMvY2FydC1pdGVtLWVjL2NhcnQtaXRlbS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jYXJ0LWVjL2NhcnQtaXRlbS1lYy9jYXJ0LWl0ZW0tZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLElBQUksQ0FBTTtJQUVKLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFNUIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkQsVUFBVSxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUs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LENBQUMsQ0FBQztnQkFDSCxPQUFPLFVBQVUsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sVUFBVSxDQUFDO1FBRXRCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO0lBQ1IsQ0FBQzt1R0F4RlcsbUJBQW1COzJGQUFuQixtQkFBbUIsOEhDZmhDLCt1RkEwREMscUREL0NVLGFBQWEsNkNBQUUsb0JBQW9CLHlEQUFFLFVBQVUsbU9BQUUsV0FBVzs7MkZBSTFELG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDQyxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7OEJBT3BFLElBQUk7c0JBRk4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFFUSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRWNDdXJyZW5jeVN5bWJvbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9lYy1waXBlJztcclxuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtY2FydC1pdGVtLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtUaXRsZUNhc2VQaXBlLCBFY0N1cnJlbmN5U3ltYm9sUGlwZSwgUm91dGVyTGluaywgRm9ybXNNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jYXJ0LWl0ZW0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9jYXJ0LWl0ZW0tZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0SXRlbUVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRASW5wdXQoe1xyXG5cdFx0cmVxdWlyZWQ6IHRydWVcclxuXHR9KSBpdGVtOiBhbnk7XHJcblxyXG5cdEBJbnB1dCgpIGluU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XHJcblxyXG5cdHByaXZhdGUgX2NvbnN0YW50czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdHB1YmxpYyBtZWRpYVVybCA9IHRoaXMuX2NvbnN0YW50cy5tZWRpYVVybCgpO1xyXG5cdHB1YmxpYyBxdWFudGl0eSA9IDA7XHJcblx0cHVibGljIHZhcmlhbnRzVG9TaG93OiBzdHJpbmdbXSA9IFsnVEFMTEUnLCAnQ09MT1InXTtcclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnF1YW50aXR5ID0gdGhpcy5pdGVtLnF1YW50aXR5XHJcblx0XHRjb25zb2xlLmxvZyh0aGlzLml0ZW0sIHRoaXMubWVkaWFVcmwpO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlUXVhbnRpdHkoc3RvY2s6IG51bWJlcikge1xyXG5cdFx0aWYgKHRoaXMucXVhbnRpdHkgPiAwICYmIHRoaXMucXVhbnRpdHkgPD0gc3RvY2spIHtcclxuXHRcdFx0dGhpcy5fY2FydFNlcnZpY2UudXBkYXRlSXRlbVF1YW50aXR5KHRoaXMuaXRlbSwgdGhpcy5xdWFudGl0eSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMucXVhbnRpdHkgPSB0aGlzLml0ZW0ucXVhbnRpdHlcclxuXHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bGVzcyhzdG9jazogbnVtYmVyLCB2YWx1ZTogbnVtYmVyID0gMSkge1xyXG5cdFx0bGV0IHF1YW50aXR5ID0gdGhpcy5pdGVtLnF1YW50aXR5IC0gdmFsdWU7XHJcblx0XHRxdWFudGl0eSA+IDAgJiYgcXVhbnRpdHkgPD0gc3RvY2sgPyB0aGlzLl9jYXJ0U2VydmljZS51cGRhdGVJdGVtUXVhbnRpdHkodGhpcy5pdGVtLCBxdWFudGl0eSkgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5Jyk7XHJcblxyXG5cdH1cclxuXHJcblx0cGx1cyhzdG9jazogbnVtYmVyLCB2YWx1ZTogbnVtYmVyID0gMSkge1xyXG5cdFx0bGV0IHF1YW50aXR5ID0gdGhpcy5pdGVtLnF1YW50aXR5ICsgdmFsdWU7XHJcblx0XHRxdWFudGl0eSA+IDAgJiYgcXVhbnRpdHkgPD0gc3RvY2sgPyB0aGlzLl9jYXJ0U2VydmljZS51cGRhdGVJdGVtUXVhbnRpdHkodGhpcy5pdGVtLCBxdWFudGl0eSkgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5Jyk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVDYXJ0SXRlbSgpe1xyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuZGVsZXRlQ2FydEl0ZW0odGhpcy5pdGVtKVxyXG5cdH1cclxuXHJcblx0Z2V0VmFyaWFudHMocHJvZHVjdDogYW55KTphbnkge1xyXG5cdFx0bGV0IGl0ZW0gPSBwcm9kdWN0LnByb2R1Y3RcclxuXHJcbiAgICAgICAgaWYgKGl0ZW0udmFyaWFudHMgJiYgaXRlbS52YXJpYW50cy5sZW5ndGggJiYgaXRlbS52YXJpYW50c1swXS5vcHRpb25zICYmIGl0ZW0udmFyaWFudHNbMF0ub3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSBpdGVtLnZhcmlhbnRzWzBdLm9wdGlvbnNcclxuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKChvcHRpb246YW55KSA9PiB0aGlzLnZhcmlhbnRzVG9TaG93LmZpbmQoKG5hbWU6YW55KSA9PiBvcHRpb24uaGFzT3duUHJvcGVydHkobmFtZSkpKVxyXG4gICAgICAgICAgICBsZXQgb3B0aW9uc01hcDphbnkgPSBbXVxyXG4gICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMob3B0aW9uKS5mb3JFYWNoKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25BZGRlZCA9IGZhbHNlOyAgLy8gVmFyaWFibGUgcGFyYSBldml0YXIgbcO6bHRpcGxlcyBpbnNlcmNpb25lc1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uMjphbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbjIuY29kZSA9PSAnQ09MT1InKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24yLnZhbHVlcy5mb3JFYWNoKChjb2xvcjphbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sb3IuY29kZSA9PSBvcHRpb25bZW50cnldICYmICFvcHRpb25BZGRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zTWFwLnB1c2goeyBuYW1lOiBlbnRyeSwgdmFsdWU6IG9wdGlvbltlbnRyeV0sIGltYWdlOiBjb2xvci5pbWFnZSwgbW9iaWxlSW1hZ2U6IGNvbG9yLm1vYmlsZUltYWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25BZGRlZCA9IHRydWU7IC8vIE1hcmNhciBvcGNpw7NuIGFncmVnYWRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTaSBubyBzZSBhw7FhZGnDsyBsYSBvcGNpw7NuIGRlIENPTE9SLCBtYW5lamFyIG90cmFzIG9wY2lvbmVzXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25BZGRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uMjphbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uMi5jb2RlICE9PSAnQ09MT1InKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc01hcC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZW50cnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb25bZW50cnldXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkFkZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uc01hcDtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uc01hcDtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGxcclxuICAgICAgICB9XHJcblx0fVxyXG5cclxufVxyXG4iLCJAaWYoIWluU2lkZWJhcil7XHJcbjxwPmNhcnQtaXRlbS1lYyB3b3JrcyE8L3A+XHJcbn1AZWxzZXtcclxuXHJcbjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgIEBsZXQgcHJvZHVjdD0gaXRlbS5wcm9kdWN0O1xyXG4gICAgICAgIEBpZihpdGVtLnZhcmlhbnRfaWQgJiYgcHJvZHVjdC52YXJpYW50cy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArICBwcm9kdWN0LnZhcmlhbnRzWzBdLmltYWdlc1swXVwiIGFsdD1cIlwiIGNsYXNzPVwiaW1nLWZsdWlkXCI+XHJcbiAgICAgICAgfUBlbHNle1xyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibWVkaWFVcmwgKyAgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBhbHQ9XCJcIiBjbGFzcz1cImltZy1mbHVpZFwiPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwidGl0bGUgdGV4dC1kYXJrIHRleHQtZGVjb3JhdGlvbi1ub25lIG0tMCBwLTAgaDYgbWItMFwiXHJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9kdWN0JywgaXRlbS52YXJpYW50X2lkXVwiPnt7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnByb2R1Y3QubmFtZSB8IHRpdGxlY2FzZVxyXG4gICAgICAgICAgICAgICAgfX08L2E+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdHkxXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLnByb2R1Y3QuaWR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZSBoNiBmdy1ib2xkIG1iLTAgcGItMFwiPnt7IGl0ZW0ucHJvZHVjdC5wcmljZSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19PC9kaXY+XHJcbiAgICAgICAgICAgICBAaWYoZ2V0VmFyaWFudHMoaXRlbSk7IGFzIG9wdGlvbnMpe1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvcihvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0xXCI+IHt7b3B0aW9uLm5hbWUgfCB0aXRsZWNhc2V9fTo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihvcHRpb24ubmFtZSA9PSAnQ09MT1InKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgcm91bmRlZFwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIicjJyArIG9wdGlvbi52YWx1ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57e29wdGlvbi52YWx1ZX19PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxlc3MoaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdPy5zdG9jaylcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1taW51c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdGV4dC1jZW50ZXJcIiBwbGFjZWhvbGRlcj1cIlwiIGFyaWEtbGFiZWw9XCJFeGFtcGxlIHRleHQgd2l0aCBidXR0b24gYWRkb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tYWRkb24xXCIgW3ZhbHVlXT1cIml0ZW0ucXVhbnRpdHlcIiBtaW49XCIxXCIgc3RlcD1cIjFcIiBbKG5nTW9kZWwpXT1cInF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVF1YW50aXR5KGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXT8uc3RvY2spXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbHVzKGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXT8uc3RvY2spXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0yXCI+XHJcbiAgICAgICAgPGEgKGNsaWNrKT1cImRlbGV0ZUNhcnRJdGVtKClcIiBjbGFzcz1cImJ0biBib3RCb3JyYXJcIj48aSBjbGFzcz1cImZhIGZhLXRyYXNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG59Il19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1pdGVtLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2NhcnQtZWMvY2FydC1pdGVtLWVjL2NhcnQtaXRlbS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jYXJ0LWVjL2NhcnQtaXRlbS1lYy9jYXJ0LWl0ZW0tZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLElBQUksQ0FBTTtJQUVKLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFNUIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsVUFBVSxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUVqRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUs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S0FBSyxDQUFDO2dCQUN2QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLCtDQUErQztJQUMvRCxDQUFDO3VHQW5ITSxtQkFBbUI7MkZBQW5CLG1CQUFtQiw4SENmaEMsK3VGQTBEQyxxREQvQ1UsYUFBYSw2Q0FBRSxvQkFBb0IseURBQUUsVUFBVSxtT0FBRSxXQUFXOzsyRkFJMUQsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQzs4QkFPcEUsSUFBSTtzQkFGTixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUVRLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFY0N1cnJlbmN5U3ltYm9sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2VjLXBpcGUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1jYXJ0LWl0ZW0tZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1RpdGxlQ2FzZVBpcGUsIEVjQ3VycmVuY3lTeW1ib2xQaXBlLCBSb3V0ZXJMaW5rLCBGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NhcnQtaXRlbS1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2NhcnQtaXRlbS1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcnRJdGVtRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pIGl0ZW06IGFueTtcclxuXHJcblx0QElucHV0KCkgaW5TaWRlYmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jb25zdGFudHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuXHJcblx0cHVibGljIG1lZGlhVXJsID0gdGhpcy5fY29uc3RhbnRzLm1lZGlhVXJsKCk7XHJcblx0cHVibGljIHF1YW50aXR5ID0gMDtcclxuXHRwdWJsaWMgdmFyaWFudHNUb1Nob3c6IHN0cmluZ1tdID0gWydUQUxMRScsICdDT0xPUiddO1xyXG5cdHB1YmxpYyB1cGRhdGVTdG9jazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdFxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5xdWFudGl0eSA9IHRoaXMuaXRlbS5xdWFudGl0eVxyXG5cdFx0Y29uc29sZS5sb2codGhpcy5pdGVtLCB0aGlzLm1lZGlhVXJsKTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZVF1YW50aXR5KHN0b2NrOiBudW1iZXIpIHtcclxuXHRcdGlmICh0aGlzLnF1YW50aXR5ID4gMCAmJiB0aGlzLnF1YW50aXR5IDw9IHN0b2NrKSB7XHJcblx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLnVwZGF0ZUl0ZW1RdWFudGl0eSh0aGlzLml0ZW0sIHRoaXMucXVhbnRpdHkpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnF1YW50aXR5ID0gdGhpcy5pdGVtLnF1YW50aXR5XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvdXQtb2Ytc3RvY2stYWN0dWFsbHknKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGxlc3Moc3RvY2s6IG51bWJlciwgdmFsdWU6IG51bWJlciA9IDEpIHtcclxuXHRcdGxldCBxdWFudGl0eSA9IHRoaXMuaXRlbS5xdWFudGl0eSAtIHZhbHVlO1xyXG5cdFx0cXVhbnRpdHkgPiAwICYmIHF1YW50aXR5IDw9IHN0b2NrID8gdGhpcy5fY2FydFNlcnZpY2UudXBkYXRlSXRlbVF1YW50aXR5KHRoaXMuaXRlbSwgcXVhbnRpdHkpIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xyXG5cclxuXHR9XHJcblxyXG5cdHBsdXMoc3RvY2s6IG51bWJlciwgdmFsdWU6IG51bWJlciA9IDEpIHtcclxuXHRcdGxldCBxdWFudGl0eSA9IHRoaXMuaXRlbS5xdWFudGl0eSArIHZhbHVlO1xyXG5cdFx0cXVhbnRpdHkgPiAwICYmIHF1YW50aXR5IDw9IHN0b2NrID8gdGhpcy5fY2FydFNlcnZpY2UudXBkYXRlSXRlbVF1YW50aXR5KHRoaXMuaXRlbSwgcXVhbnRpdHkpIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlQ2FydEl0ZW0oKXtcclxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmRlbGV0ZUNhcnRJdGVtKHRoaXMuaXRlbSlcclxuXHR9XHJcblxyXG5cdGdldFZhcmlhbnRzKHByb2R1Y3Q6IGFueSk6YW55IHtcclxuXHRcdGxldCBpdGVtID0gcHJvZHVjdC5wcm9kdWN0XHJcblxyXG4gICAgICAgIGlmIChpdGVtLnZhcmlhbnRzICYmIGl0ZW0udmFyaWFudHMubGVuZ3RoICYmIGl0ZW0udmFyaWFudHNbMF0ub3B0aW9ucyAmJiBpdGVtLnZhcmlhbnRzWzBdLm9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gaXRlbS52YXJpYW50c1swXS5vcHRpb25zXHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uOmFueSkgPT4gdGhpcy52YXJpYW50c1RvU2hvdy5maW5kKChuYW1lOmFueSkgPT4gb3B0aW9uLmhhc093blByb3BlcnR5KG5hbWUpKSlcclxuICAgICAgICAgICAgbGV0IG9wdGlvbnNNYXA6YW55ID0gW11cclxuICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbjphbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbikuZm9yRWFjaCgoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uQWRkZWQgPSBmYWxzZTsgIC8vIFZhcmlhYmxlIHBhcmEgZXZpdGFyIG3Dumx0aXBsZXMgaW5zZXJjaW9uZXNcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5vcHRpb25zLmZvckVhY2goKG9wdGlvbjI6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb24yLmNvZGUgPT0gJ0NPTE9SJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uMi52YWx1ZXMuZm9yRWFjaCgoY29sb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yLmNvZGUgPT0gb3B0aW9uW2VudHJ5XSAmJiAhb3B0aW9uQWRkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc01hcC5wdXNoKHsgbmFtZTogZW50cnksIHZhbHVlOiBvcHRpb25bZW50cnldLCBpbWFnZTogY29sb3IuaW1hZ2UsIG1vYmlsZUltYWdlOiBjb2xvci5tb2JpbGVJbWFnZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uQWRkZWQgPSB0cnVlOyAvLyBNYXJjYXIgb3BjacOzbiBhZ3JlZ2FkYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2kgbm8gc2UgYcOxYWRpw7MgbGEgb3BjacOzbiBkZSBDT0xPUiwgbWFuZWphciBvdHJhcyBvcGNpb25lc1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uQWRkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcHRpb25zLmZvckVhY2goKG9wdGlvbjI6YW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbjIuY29kZSAhPT0gJ0NPTE9SJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNNYXAucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGVudHJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uW2VudHJ5XVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25BZGRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnNNYXA7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnNNYXA7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgfVxyXG5cdH1cclxuXHJcblx0Y3JlYXRlRGlzY291bnRNZXNzYWdlKHNhbGVwcmljZTogbnVtYmVyLCBwcmljZTogbnVtYmVyKTogc3RyaW5nIHtcclxuXHRcdGlmIChpc05hTihzYWxlcHJpY2UpIHx8IGlzTmFOKHByaWNlKSB8fCBzYWxlcHJpY2UgPj0gcHJpY2UgfHwgc2FsZXByaWNlIDw9IDAgfHwgcHJpY2UgPD0gMCkge1xyXG5cdFx0XHQgcmV0dXJuICcnO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0bGV0IGRpc2NvdW50UGVyY2VudGFnZSA9IE1hdGgucm91bmQoKChwcmljZSAtIHNhbGVwcmljZSkgLyBwcmljZSkgKiAxMDApO1xyXG5cdFxyXG5cdFx0bGV0IGRpc2NvdW50TWVzc2FnZSA9IGAke2Rpc2NvdW50UGVyY2VudGFnZX0lIE9GRmA7XHJcblx0XHRyZXR1cm4gZGlzY291bnRNZXNzYWdlO1xyXG5cdH1cclxuXHJcblx0Y2hlY2tTdG9jayhwcm9kdWN0OmFueSk6YW55IHtcclxuICAgICAgICBmb3IgKGNvbnN0IHZhcmlhbnQgb2YgcHJvZHVjdC5wcm9kdWN0LnZhcmlhbnRzKSB7XHJcbiAgICAgICAgICBpZiAocHJvZHVjdC52YXJpYW50X2lkID09PSB2YXJpYW50LmNvZGUpIHtcclxuICAgICAgICAgICAgaWYodmFyaWFudC5zdG9jayA9PT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0b2NrPXRydWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJzAnO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZiAocHJvZHVjdC5xdWFudGl0eSA+IHZhcmlhbnQuc3RvY2spIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RvY2s9dHJ1ZTtcclxuICAgICAgICAgICAgICByZXR1cm4gdmFyaWFudC5zdG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFNvbG8gc2UgZWplY3V0YSBzaSBubyBzZSBjdW1wbGUgbGEgY29uZGljacOzblxyXG4gICAgICB9XHJcbn1cclxuIiwiQGlmKCFpblNpZGViYXIpe1xyXG48cD5jYXJ0LWl0ZW0tZWMgd29ya3MhPC9wPlxyXG59QGVsc2V7XHJcblxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuICAgICAgICBAbGV0IHByb2R1Y3Q9IGl0ZW0ucHJvZHVjdDtcclxuICAgICAgICBAaWYoaXRlbS52YXJpYW50X2lkICYmIHByb2R1Y3QudmFyaWFudHMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibWVkaWFVcmwgKyAgcHJvZHVjdC52YXJpYW50c1swXS5pbWFnZXNbMF1cIiBhbHQ9XCJcIiBjbGFzcz1cImltZy1mbHVpZFwiPlxyXG4gICAgICAgIH1AZWxzZXtcclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiXCIgY2xhc3M9XCJpbWctZmx1aWRcIj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInRpdGxlIHRleHQtZGFyayB0ZXh0LWRlY29yYXRpb24tbm9uZSBtLTAgcC0wIGg2IG1iLTBcIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvZHVjdCcsIGl0ZW0udmFyaWFudF9pZF1cIj57e1xyXG4gICAgICAgICAgICAgICAgaXRlbS5wcm9kdWN0Lm5hbWUgfCB0aXRsZWNhc2VcclxuICAgICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXR5MVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5wcm9kdWN0LmlkfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UgaDYgZnctYm9sZCBtYi0wIHBiLTBcIj57eyBpdGVtLnByb2R1Y3QucHJpY2UgfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgQGlmKGdldFZhcmlhbnRzKGl0ZW0pOyBhcyBvcHRpb25zKXtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3Iob3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMVwiPiB7e29wdGlvbi5uYW1lIHwgdGl0bGVjYXNlfX06PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYob3B0aW9uLm5hbWUgPT0gJ0NPTE9SJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIHJvdW5kZWRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCInIycgKyBvcHRpb24udmFsdWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3tvcHRpb24udmFsdWV9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsZXNzKGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXT8uc3RvY2spXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbWludXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRleHQtY2VudGVyXCIgcGxhY2Vob2xkZXI9XCJcIiBhcmlhLWxhYmVsPVwiRXhhbXBsZSB0ZXh0IHdpdGggYnV0dG9uIGFkZG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYnV0dG9uLWFkZG9uMVwiIFt2YWx1ZV09XCJpdGVtLnF1YW50aXR5XCIgbWluPVwiMVwiIHN0ZXA9XCIxXCIgWyhuZ01vZGVsKV09XCJxdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVRdWFudGl0eShpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0/LnN0b2NrKVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicGx1cyhpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0/LnN0b2NrKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgIDxhIChjbGljayk9XCJkZWxldGVDYXJ0SXRlbSgpXCIgY2xhc3M9XCJidG4gYm90Qm9ycmFyXCI+PGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG5cclxufSJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, inject, Input } from '@angular/core';
1
+ import { Component, inject, Input, ViewChild } from '@angular/core';
2
2
  import { FiltersService } from '../../ec-services';
3
3
  import { PriceRangeFilter } from '../../classes/filters/PriceRangeFilter';
4
4
  import * as i0 from "@angular/core";
@@ -7,9 +7,12 @@ export class FiltersEcComponent {
7
7
  filters = [];
8
8
  filter$ = this._filtersService.filters$;
9
9
  setSelect;
10
+ rangeMinRef;
11
+ rangeMaxRef;
12
+ priceGapPercentage = 0.1;
10
13
  constructor() {
11
14
  this.filter$.subscribe(res => {
12
- this.filters = this._filtersService.getSpecificFilters(['attributes', 'categories', 'dynamics']);
15
+ this.filters = this._filtersService.getSpecificFilters(['attributes', 'categories', 'price_range', 'dynamics']);
13
16
  });
14
17
  }
15
18
  getSpecificFilter(type) {
@@ -35,6 +38,12 @@ export class FiltersEcComponent {
35
38
  * - Mínimo: redondea hacia abajo.
36
39
  * - Máximo: redondea hacia arriba.
37
40
  */
41
+ onRangeChange(event, type, filter) {
42
+ const input = event.target;
43
+ let value = parseInt(input.value, 10);
44
+ value = this.roundToNearest(value, 5, type, filter);
45
+ this.updateFilterPrices(type, value, filter, this.priceGapPercentage);
46
+ }
38
47
  roundToNearest(value, step, type, filter) {
39
48
  let rounded = Math.round(value / step) * step;
40
49
  if (type === 'max' && rounded < filter.maxPrice) {
@@ -118,12 +127,18 @@ export class FiltersEcComponent {
118
127
  return true;
119
128
  };
120
129
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FiltersEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FiltersEcComponent, isStandalone: true, selector: "lib-filters-ec", inputs: { setSelect: "setSelect" }, ngImport: i0, template: "<p>filters-ec works!</p>\r\n", styles: [""] });
130
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FiltersEcComponent, isStandalone: true, selector: "lib-filters-ec", inputs: { setSelect: "setSelect" }, viewQueries: [{ propertyName: "rangeMinRef", first: true, predicate: ["rangeMin"], descendants: true }, { propertyName: "rangeMaxRef", first: true, predicate: ["rangeMax"], descendants: true }], ngImport: i0, template: "<p>filters-ec works!</p>\r\n", styles: [""] });
122
131
  }
123
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FiltersEcComponent, decorators: [{
124
133
  type: Component,
125
134
  args: [{ selector: 'lib-filters-ec', standalone: true, imports: [], template: "<p>filters-ec works!</p>\r\n" }]
126
135
  }], ctorParameters: () => [], propDecorators: { setSelect: [{
127
136
  type: Input
137
+ }], rangeMinRef: [{
138
+ type: ViewChild,
139
+ args: ['rangeMin']
140
+ }], rangeMaxRef: [{
141
+ type: ViewChild,
142
+ args: ['rangeMax']
128
143
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBUzFFLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDdEMsU0FBUyxDQUFNO0lBQ3hCO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBQ2pHLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWdCO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQ2xFLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQ7cUNBQ2lDO0lBQ2pDLFFBQVEsQ0FBQyxLQUFVLEVBQUUsTUFBOEI7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQjs7OztxR0FJNkY7SUFDOUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQixFQUFFLFFBQXVCO1FBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQ7Ozs7TUFJRTtJQUVGLGNBQWMsQ0FBQyxLQUFhLEVBQUUsSUFBWSxFQUFFLElBQW1CLEVBQUUsTUFBVztRQUMzRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUMsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUNELGVBQWUsQ0FBQyxNQUF3QixFQUFFLFdBQWdCO1FBQ25ELDBFQUEwRTtRQUMxRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGdCQUFnQixDQUFDLENBQUM7UUFFL0UsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDekIsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDbkMsQ0FBQztZQUNWLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBNkIsRUFBRSxFQUFFO2dCQUNwRCxJQUFJLGNBQWMsSUFBSSxXQUFXLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMzRCxjQUFjLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDcEMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUo7O0lBRUc7SUFDSCxrQkFBa0IsQ0FBQyxJQUFtQixFQUFFLEtBQWEsRUFBRSxNQUFXLEVBQUUsUUFBZ0I7UUFDbkYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUVsQyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQztRQUVyRCxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzdELElBQUksTUFBTSxHQUFHLFFBQVEsR0FBRyxVQUFVLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxlQUFlLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztnQkFDeEMsSUFBSSxlQUFlLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2xDLFVBQVUsR0FBRyxlQUFlLENBQUM7Z0JBQzlCLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxNQUFNLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztnQkFDL0IsQ0FBQztZQUNGLENBQUM7WUFDRCxNQUFNLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztZQUNoQyxNQUFNLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLE1BQU0sR0FBRyxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksZUFBZSxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ3hDLElBQUksZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNsQyxVQUFVLEdBQUcsZUFBZSxDQUFDO2dCQUM5QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsTUFBTSxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUM7Z0JBQy9CLENBQUM7WUFDRixDQUFDO1lBQ0QsTUFBTSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7WUFDaEMsTUFBTSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7UUFDckMsQ0FBQztJQUNGLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxXQUE2QjtRQUN2RSxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsdUJBQXVCLENBQUMsZUFBdUIsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQ2xGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELHdCQUF3QixDQUFDLGVBQXVCLEVBQUUsUUFBZ0IsRUFBRSxRQUFnQjtRQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsUUFBUSxHQUFHLEdBQUcsRUFBRTtRQUNULE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQyxDQUFBO3VHQTNIUSxrQkFBa0I7MkZBQWxCLGtCQUFrQiw4R0NiL0IsOEJBQ0E7OzJGRFlhLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDQyxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsRUFBRTt3REFRRixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL1ByaWNlUmFuZ2VGaWx0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItZmlsdGVycy1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2ZpbHRlcnMtZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSk7XHJcblx0cHVibGljIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcblx0cHVibGljIGZpbHRlciQgPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcclxuXHRASW5wdXQoKSBzZXRTZWxlY3Q6IGFueTtcclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuZmlsdGVyJC5zdWJzY3JpYmUocmVzID0+IHtcclxuXHRcdFx0dGhpcy5maWx0ZXJzID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2V0U3BlY2lmaWNGaWx0ZXJzKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ2R5bmFtaWNzJ10pXHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0Z2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogRmlsdGVyVHlwZSk6IEZpbHRlciB8IG51bGwge1xyXG5cdFx0Y29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT09IHR5cGUpXHJcblx0XHRyZXR1cm4gZmlsdGVyIHx8IG51bGw7XHJcblx0fVxyXG5cclxuXHQvKk9idGllbmUgZWwgZmlsdHJvIGVsZWdpZG8gZW4gZWwgc2VsZWN0LCBsbyBwYXNhIGFsIHNldFNlbGVjdFxyXG5cdHBhcmEgcXVlIHNlIG1hcnF1ZSBzZWxlY2Npb25hZG8qL1xyXG5cdG9uU2VsZWN0KGV2ZW50OiBhbnksIGZpbHRlcjogRmlsdGVyRWxlbWVudFtdIHwgbnVsbCkge1xyXG5cdFx0Y29uc29sZS5sb2coZmlsdGVyKVxyXG5cdFx0LyogIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gZmlsdGVyXHJcblx0XHRcdCAuZmxhdE1hcChjYXRlZ29yeSA9PiBjYXRlZ29yeS5jaGlsZHJlbilcclxuXHRcdFx0IC5maWx0ZXIob3B0aW9uID0+IG9wdGlvbj8uY29kZSA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlKVxyXG5cdFx0XHQgLnBvcCgpXHJcblx0XHQgc2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQodGhpcy5maWx0ZXJzWzBdLCBzZWxlY3RlZE9wdGlvbikgKi9cclxuXHR9XHJcblxyXG5cdHNldFNlbGVjdGVkKGZpbHRlcjogRmlsdGVyIHwgbnVsbCwgc2VsZWN0ZWQ6IEZpbHRlckVsZW1lbnQpIHtcclxuXHRcdGNvbnNvbGUubG9nKFwic2V0XCIsIGZpbHRlcik7XHJcblx0XHRmaWx0ZXIgJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyLCBzZWxlY3RlZClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCogUmVkb25kZWEgYWwgbcO6bHRpcGxvIGRlICdzdGVwJyByZXNwZXRhbmRvIGVsIHJlZG9uZGVvIGVudGVybzpcclxuXHQqIC0gTcOtbmltbzogcmVkb25kZWEgaGFjaWEgYWJham8uXHJcblx0KiAtIE3DoXhpbW86IHJlZG9uZGVhIGhhY2lhIGFycmliYS5cclxuXHQqL1xyXG5cclxuXHRyb3VuZFRvTmVhcmVzdCh2YWx1ZTogbnVtYmVyLCBzdGVwOiBudW1iZXIsIHR5cGU6ICdtaW4nIHwgJ21heCcsIGZpbHRlcjogYW55KTogbnVtYmVyIHtcclxuXHRcdGxldCByb3VuZGVkID0gTWF0aC5yb3VuZCh2YWx1ZSAvIHN0ZXApICogc3RlcDtcclxuXHRcdGlmICh0eXBlID09PSAnbWF4JyAmJiByb3VuZGVkIDwgZmlsdGVyLm1heFByaWNlKSB7XHJcblx0XHRcdHJvdW5kZWQgPSBNYXRoLmNlaWwodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcblx0XHR9XHJcblx0XHRpZiAodHlwZSA9PT0gJ21pbicgJiYgcm91bmRlZCA+IGZpbHRlci5taW5QcmljZSkge1xyXG5cdFx0XHRyb3VuZGVkID0gTWF0aC5mbG9vcih2YWx1ZSAvIHN0ZXApICogc3RlcDtcclxuXHRcdH1cclxuXHRcdHJldHVybiByb3VuZGVkO1xyXG5cdH1cclxuXHR1bmlxdWVTZWxlY3Rpb24oZmlsdGVyOiB7IGRhdGE6IGFueVtdOyB9LCBmaWx0ZXJDaGlsZDogYW55KSB7XHJcbiAgICAgICAgLy8gQnVzY2FyIHNpIGhheSB1biBmaWx0cm8gZGUgdGlwbyBQcmljZVJhbmdlRmlsdGVyIGVuIGxhIGxpc3RhIGRlIGZpbHRyb3NcclxuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZiA9PiBmIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcik7XHJcblxyXG4gICAgICAgIGlmIChwcmljZVJhbmdlRmlsdGVyKSB7XHJcbiAgICAgICAgICAgIHByaWNlUmFuZ2VGaWx0ZXIucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyLmRhdGEuZm9yRWFjaChmaWx0ZXJFbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cdFx0XHRmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGZpbHRlckNoaWxkcmVuOiBGaWx0ZXJFbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyQ2hpbGRyZW4gIT0gZmlsdGVyQ2hpbGQgJiYgZmlsdGVyQ2hpbGRyZW4uc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblx0LyoqXHJcbiAgICogQWN0dWFsaXphIGxvcyB2YWxvcmVzIGRlbCBmaWx0cm8gcGVybWl0aWVuZG8gcXVlIHVuIGlucHV0IGVtcHVqZSBhbCBvdHJvLlxyXG4gICovXHJcblx0dXBkYXRlRmlsdGVyUHJpY2VzKHR5cGU6ICdtaW4nIHwgJ21heCcsIHZhbHVlOiBudW1iZXIsIGZpbHRlcjogYW55LCBwcmljZUdhcDogbnVtYmVyKSB7XHJcblx0XHRjb25zdCBnbG9iYWxNaW4gPSBmaWx0ZXIubWluUHJpY2UgPz8gMDtcclxuXHRcdGNvbnN0IGdsb2JhbE1heCA9IGZpbHRlci5tYXhQcmljZTtcclxuXHJcblx0XHRsZXQgY3VycmVudE1pbiA9IGZpbHRlci5jdXJyZW50TWluUHJpY2UgPz8gZ2xvYmFsTWluO1xyXG5cdFx0bGV0IGN1cnJlbnRNYXggPSBmaWx0ZXIuY3VycmVudE1heFByaWNlID8/IGdsb2JhbE1heDtcclxuXHJcblx0XHRpZiAodHlwZSA9PT0gJ21pbicpIHtcclxuXHRcdFx0bGV0IG5ld01pbiA9IE1hdGgubWluKE1hdGgubWF4KHZhbHVlLCBnbG9iYWxNaW4pLCBnbG9iYWxNYXgpO1xyXG5cdFx0XHRpZiAobmV3TWluICsgcHJpY2VHYXAgPiBjdXJyZW50TWF4KSB7XHJcblx0XHRcdFx0bGV0IG5ld01heENhbmRpZGF0ZSA9IG5ld01pbiArIHByaWNlR2FwO1xyXG5cdFx0XHRcdGlmIChuZXdNYXhDYW5kaWRhdGUgPD0gZ2xvYmFsTWF4KSB7XHJcblx0XHRcdFx0XHRjdXJyZW50TWF4ID0gbmV3TWF4Q2FuZGlkYXRlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRuZXdNaW4gPSBnbG9iYWxNYXggLSBwcmljZUdhcDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZmlsdGVyLmN1cnJlbnRNaW5QcmljZSA9IG5ld01pbjtcclxuXHRcdFx0ZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA9IGN1cnJlbnRNYXg7XHJcblx0XHR9IGVsc2UgaWYgKHR5cGUgPT09ICdtYXgnKSB7XHJcblx0XHRcdGxldCBuZXdNYXggPSBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgZ2xvYmFsTWF4KSwgZ2xvYmFsTWluKTtcclxuXHRcdFx0aWYgKG5ld01heCAtIHByaWNlR2FwIDwgY3VycmVudE1pbikge1xyXG5cdFx0XHRcdGxldCBuZXdNaW5DYW5kaWRhdGUgPSBuZXdNYXggLSBwcmljZUdhcDtcclxuXHRcdFx0XHRpZiAobmV3TWluQ2FuZGlkYXRlID49IGdsb2JhbE1pbikge1xyXG5cdFx0XHRcdFx0Y3VycmVudE1pbiA9IG5ld01pbkNhbmRpZGF0ZTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0bmV3TWF4ID0gZ2xvYmFsTWluICsgcHJpY2VHYXA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPSBuZXdNYXg7XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWluUHJpY2UgPSBjdXJyZW50TWluO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvLyBNw6l0b2RvIHBhcmEgYWN0dWFsaXphciBsb3MgdmFsb3JlcyBkZSBwcmVjaW8gc2VsZWNjaW9uYWRvc1xyXG5cdHVwZGF0ZVByaWNlUmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyLCBwcmljZUZpbHRlcjogUHJpY2VSYW5nZUZpbHRlcikge1xyXG5cdFx0cHJpY2VGaWx0ZXIuc2V0U2VsZWN0ZWQobWluLCBtYXgpO1xyXG5cdFx0dGhpcy5zZXRTZWxlY3QocHJpY2VGaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0Ly8gTcOpdG9kb3MgcGFyYSBhY3R1YWxpemFyIGxhIGJhcnJhIGRlbCBmaWx0cm8gcG9yIHByZWNpb1xyXG5cdGNhbGN1bGF0ZUxlZnRQZXJjZW50YWdlKGN1cnJlbnRNaW5QcmljZTogbnVtYmVyLCBtaW5QcmljZTogbnVtYmVyLCBtYXhQcmljZTogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IG1pblZhbCA9IE1hdGgubWF4KG1pblByaWNlLCBNYXRoLm1pbihjdXJyZW50TWluUHJpY2UgPz8gbWluUHJpY2UsIG1heFByaWNlKSk7XHJcblx0XHRyZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4oKChtaW5WYWwgLSBtaW5QcmljZSkgLyAobWF4UHJpY2UgLSBtaW5QcmljZSkpICogMTAwLCAxMDApKTtcclxuXHR9XHJcblxyXG5cdGNhbGN1bGF0ZVJpZ2h0UGVyY2VudGFnZShjdXJyZW50TWF4UHJpY2U6IG51bWJlciwgbWluUHJpY2U6IG51bWJlciwgbWF4UHJpY2U6IG51bWJlcik6IG51bWJlciB7XHJcblx0XHRjb25zdCBtYXhWYWwgPSBNYXRoLm1heChtaW5QcmljZSwgTWF0aC5taW4oY3VycmVudE1heFByaWNlID8/IG1heFByaWNlLCBtYXhQcmljZSkpO1xyXG5cdFx0cmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCAtICgobWF4VmFsIC0gbWluUHJpY2UpIC8gKG1heFByaWNlIC0gbWluUHJpY2UpKSAqIDEwMCwgMTAwKSk7XHJcblx0fVxyXG5cclxuXHRzY3JvbGxVcCA9ICgpID0+IHtcclxuICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcblx0XHJcbn1cclxuIiwiPHA+ZmlsdGVycy1lYyB3b3JrcyE8L3A+XHJcbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3RDLFNBQVMsQ0FBTTtJQUVELFdBQVcsQ0FBYztJQUN6QixXQUFXLENBQWM7SUFFaEQsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0lBR3pCO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUNoSCxDQUFDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJ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LFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFDZixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQTtJQUNaLENBQUMsQ0FBQTt1R0F6SVcsa0JBQWtCOzJGQUFsQixrQkFBa0IsaVRDYi9CLDhCQUNBOzsyRkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLEVBQUU7d0RBUUYsU0FBUztzQkFBakIsS0FBSztnQkFFaUIsV0FBVztzQkFBakMsU0FBUzt1QkFBQyxVQUFVO2dCQUNFLFdBQVc7c0JBQWpDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgRWxlbWVudFJlZiAsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9QcmljZVJhbmdlRmlsdGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZpbHRlcnMtZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW10sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0VjQ29tcG9uZW50IHtcclxuXHRwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xyXG5cdHB1YmxpYyBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xyXG5cdHB1YmxpYyBmaWx0ZXIkID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQ7XHJcblx0QElucHV0KCkgc2V0U2VsZWN0OiBhbnk7XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ3JhbmdlTWluJykgcmFuZ2VNaW5SZWYhOiBFbGVtZW50UmVmO1xyXG5cdEBWaWV3Q2hpbGQoJ3JhbmdlTWF4JykgcmFuZ2VNYXhSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcmljZUdhcFBlcmNlbnRhZ2UgPSAwLjE7XHJcblxyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuZmlsdGVyJC5zdWJzY3JpYmUocmVzID0+IHtcclxuXHRcdFx0dGhpcy5maWx0ZXJzID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2V0U3BlY2lmaWNGaWx0ZXJzKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ3ByaWNlX3JhbmdlJywgJ2R5bmFtaWNzJ10pXHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0Z2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogRmlsdGVyVHlwZSk6IEZpbHRlciB8IG51bGwge1xyXG5cdFx0Y29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT09IHR5cGUpXHJcblx0XHRyZXR1cm4gZmlsdGVyIHx8IG51bGw7XHJcblx0fVxyXG5cclxuXHQvKk9idGllbmUgZWwgZmlsdHJvIGVsZWdpZG8gZW4gZWwgc2VsZWN0LCBsbyBwYXNhIGFsIHNldFNlbGVjdFxyXG5cdHBhcmEgcXVlIHNlIG1hcnF1ZSBzZWxlY2Npb25hZG8qL1xyXG5cdG9uU2VsZWN0KGV2ZW50OiBhbnksIGZpbHRlcjogRmlsdGVyRWxlbWVudFtdIHwgbnVsbCkge1xyXG5cdFx0Y29uc29sZS5sb2coZmlsdGVyKVxyXG5cdFx0LyogIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gZmlsdGVyXHJcblx0XHRcdCAuZmxhdE1hcChjYXRlZ29yeSA9PiBjYXRlZ29yeS5jaGlsZHJlbilcclxuXHRcdFx0IC5maWx0ZXIob3B0aW9uID0+IG9wdGlvbj8uY29kZSA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlKVxyXG5cdFx0XHQgLnBvcCgpXHJcblx0XHQgc2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQodGhpcy5maWx0ZXJzWzBdLCBzZWxlY3RlZE9wdGlvbikgKi9cclxuXHR9XHJcblxyXG5cdHNldFNlbGVjdGVkKGZpbHRlcjogRmlsdGVyIHwgbnVsbCwgc2VsZWN0ZWQ6IEZpbHRlckVsZW1lbnQpIHtcclxuXHRcdGNvbnNvbGUubG9nKFwic2V0XCIsIGZpbHRlcik7XHJcblx0XHRmaWx0ZXIgJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyLCBzZWxlY3RlZClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCogUmVkb25kZWEgYWwgbcO6bHRpcGxvIGRlICdzdGVwJyByZXNwZXRhbmRvIGVsIHJlZG9uZGVvIGVudGVybzpcclxuXHQqIC0gTcOtbmltbzogcmVkb25kZWEgaGFjaWEgYWJham8uXHJcblx0KiAtIE3DoXhpbW86IHJlZG9uZGVhIGhhY2lhIGFycmliYS5cclxuXHQqL1xyXG5cdG9uUmFuZ2VDaGFuZ2UoZXZlbnQ6IEV2ZW50LCB0eXBlOiAnbWluJyB8ICdtYXgnLCBmaWx0ZXI6IHsgbWluUHJpY2U6IG51bWJlcjsgbWF4UHJpY2U6IG51bWJlcjsgY3VycmVudE1pblByaWNlPzogbnVtYmVyOyBjdXJyZW50TWF4UHJpY2U/OiBudW1iZXIgfSkge1xyXG5cdFx0Y29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHRcdGxldCB2YWx1ZSA9IHBhcnNlSW50KGlucHV0LnZhbHVlLCAxMCk7XHJcblx0XHR2YWx1ZSA9IHRoaXMucm91bmRUb05lYXJlc3QodmFsdWUsIDUsIHR5cGUsIGZpbHRlcik7XHJcblxyXG5cdFx0dGhpcy51cGRhdGVGaWx0ZXJQcmljZXModHlwZSwgdmFsdWUsIGZpbHRlciwgdGhpcy5wcmljZUdhcFBlcmNlbnRhZ2UpO1xyXG5cdH1cclxuXHJcblx0cm91bmRUb05lYXJlc3QodmFsdWU6IG51bWJlciwgc3RlcDogbnVtYmVyLCB0eXBlOiAnbWluJyB8ICdtYXgnLCBmaWx0ZXI6IGFueSk6IG51bWJlciB7XHJcblx0XHRsZXQgcm91bmRlZCA9IE1hdGgucm91bmQodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcblx0XHRpZiAodHlwZSA9PT0gJ21heCcgJiYgcm91bmRlZCA8IGZpbHRlci5tYXhQcmljZSkge1xyXG5cdFx0XHRyb3VuZGVkID0gTWF0aC5jZWlsKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHR5cGUgPT09ICdtaW4nICYmIHJvdW5kZWQgPiBmaWx0ZXIubWluUHJpY2UpIHtcclxuXHRcdFx0cm91bmRlZCA9IE1hdGguZmxvb3IodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcm91bmRlZDtcclxuXHR9XHJcblx0dW5pcXVlU2VsZWN0aW9uKGZpbHRlcjogeyBkYXRhOiBhbnlbXTsgfSwgZmlsdGVyQ2hpbGQ6IGFueSkge1xyXG5cdFx0Ly8gQnVzY2FyIHNpIGhheSB1biBmaWx0cm8gZGUgdGlwbyBQcmljZVJhbmdlRmlsdGVyIGVuIGxhIGxpc3RhIGRlIGZpbHRyb3NcclxuXHRcdGNvbnN0IHByaWNlUmFuZ2VGaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcclxuXHJcblx0XHRpZiAocHJpY2VSYW5nZUZpbHRlcikge1xyXG5cdFx0XHRwcmljZVJhbmdlRmlsdGVyLnJlc2V0KCk7XHJcblx0XHR9XHJcblx0XHRmaWx0ZXIuZGF0YS5mb3JFYWNoKGZpbHRlckVsZW1lbnQgPT4ge1xyXG5cdFx0XHRpZiAoZmlsdGVyRWxlbWVudC5zZWxlY3RlZCkge1xyXG5cdFx0XHRcdGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGZpbHRlckNoaWxkcmVuOiBGaWx0ZXJFbGVtZW50KSA9PiB7XHJcblx0XHRcdFx0aWYgKGZpbHRlckNoaWxkcmVuICE9IGZpbHRlckNoaWxkICYmIGZpbHRlckNoaWxkcmVuLnNlbGVjdGVkKSB7XHJcblx0XHRcdFx0XHRmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG4gICAqIEFjdHVhbGl6YSBsb3MgdmFsb3JlcyBkZWwgZmlsdHJvIHBlcm1pdGllbmRvIHF1ZSB1biBpbnB1dCBlbXB1amUgYWwgb3Ryby5cclxuICAqL1xyXG5cdHVwZGF0ZUZpbHRlclByaWNlcyh0eXBlOiAnbWluJyB8ICdtYXgnLCB2YWx1ZTogbnVtYmVyLCBmaWx0ZXI6IGFueSwgcHJpY2VHYXA6IG51bWJlcikge1xyXG5cdFx0Y29uc3QgZ2xvYmFsTWluID0gZmlsdGVyLm1pblByaWNlID8/IDA7XHJcblx0XHRjb25zdCBnbG9iYWxNYXggPSBmaWx0ZXIubWF4UHJpY2U7XHJcblxyXG5cdFx0bGV0IGN1cnJlbnRNaW4gPSBmaWx0ZXIuY3VycmVudE1pblByaWNlID8/IGdsb2JhbE1pbjtcclxuXHRcdGxldCBjdXJyZW50TWF4ID0gZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA/PyBnbG9iYWxNYXg7XHJcblxyXG5cdFx0aWYgKHR5cGUgPT09ICdtaW4nKSB7XHJcblx0XHRcdGxldCBuZXdNaW4gPSBNYXRoLm1pbihNYXRoLm1heCh2YWx1ZSwgZ2xvYmFsTWluKSwgZ2xvYmFsTWF4KTtcclxuXHRcdFx0aWYgKG5ld01pbiArIHByaWNlR2FwID4gY3VycmVudE1heCkge1xyXG5cdFx0XHRcdGxldCBuZXdNYXhDYW5kaWRhdGUgPSBuZXdNaW4gKyBwcmljZUdhcDtcclxuXHRcdFx0XHRpZiAobmV3TWF4Q2FuZGlkYXRlIDw9IGdsb2JhbE1heCkge1xyXG5cdFx0XHRcdFx0Y3VycmVudE1heCA9IG5ld01heENhbmRpZGF0ZTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0bmV3TWluID0gZ2xvYmFsTWF4IC0gcHJpY2VHYXA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWluUHJpY2UgPSBuZXdNaW47XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPSBjdXJyZW50TWF4O1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSAnbWF4Jykge1xyXG5cdFx0XHRsZXQgbmV3TWF4ID0gTWF0aC5tYXgoTWF0aC5taW4odmFsdWUsIGdsb2JhbE1heCksIGdsb2JhbE1pbik7XHJcblx0XHRcdGlmIChuZXdNYXggLSBwcmljZUdhcCA8IGN1cnJlbnRNaW4pIHtcclxuXHRcdFx0XHRsZXQgbmV3TWluQ2FuZGlkYXRlID0gbmV3TWF4IC0gcHJpY2VHYXA7XHJcblx0XHRcdFx0aWYgKG5ld01pbkNhbmRpZGF0ZSA+PSBnbG9iYWxNaW4pIHtcclxuXHRcdFx0XHRcdGN1cnJlbnRNaW4gPSBuZXdNaW5DYW5kaWRhdGU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG5ld01heCA9IGdsb2JhbE1pbiArIHByaWNlR2FwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1heFByaWNlID0gbmV3TWF4O1xyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1pblByaWNlID0gY3VycmVudE1pbjtcclxuXHRcdH1cclxuXHR9XHJcblx0Ly8gTcOpdG9kbyBwYXJhIGFjdHVhbGl6YXIgbG9zIHZhbG9yZXMgZGUgcHJlY2lvIHNlbGVjY2lvbmFkb3NcclxuXHR1cGRhdGVQcmljZVJhbmdlKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgcHJpY2VGaWx0ZXI6IFByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuXHRcdHByaWNlRmlsdGVyLnNldFNlbGVjdGVkKG1pbiwgbWF4KTtcclxuXHRcdHRoaXMuc2V0U2VsZWN0KHByaWNlRmlsdGVyKTtcclxuXHR9XHJcblxyXG5cdC8vIE3DqXRvZG9zIHBhcmEgYWN0dWFsaXphciBsYSBiYXJyYSBkZWwgZmlsdHJvIHBvciBwcmVjaW9cclxuXHRjYWxjdWxhdGVMZWZ0UGVyY2VudGFnZShjdXJyZW50TWluUHJpY2U6IG51bWJlciwgbWluUHJpY2U6IG51bWJlciwgbWF4UHJpY2U6IG51bWJlcik6IG51bWJlciB7XHJcblx0XHRjb25zdCBtaW5WYWwgPSBNYXRoLm1heChtaW5QcmljZSwgTWF0aC5taW4oY3VycmVudE1pblByaWNlID8/IG1pblByaWNlLCBtYXhQcmljZSkpO1xyXG5cdFx0cmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKCgobWluVmFsIC0gbWluUHJpY2UpIC8gKG1heFByaWNlIC0gbWluUHJpY2UpKSAqIDEwMCwgMTAwKSk7XHJcblx0fVxyXG5cclxuXHRjYWxjdWxhdGVSaWdodFBlcmNlbnRhZ2UoY3VycmVudE1heFByaWNlOiBudW1iZXIsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIpOiBudW1iZXIge1xyXG5cdFx0Y29uc3QgbWF4VmFsID0gTWF0aC5tYXgobWluUHJpY2UsIE1hdGgubWluKGN1cnJlbnRNYXhQcmljZSA/PyBtYXhQcmljZSwgbWF4UHJpY2UpKTtcclxuXHRcdHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAgLSAoKG1heFZhbCAtIG1pblByaWNlKSAvIChtYXhQcmljZSAtIG1pblByaWNlKSkgKiAxMDAsIDEwMCkpO1xyXG5cdH1cclxuXHJcblx0c2Nyb2xsVXAgPSAoKSA9PiB7XHJcblx0XHR3aW5kb3cuc2Nyb2xsKDAsIDApO1xyXG5cdFx0cmV0dXJuIHRydWVcclxuXHR9XHJcblx0XHJcbn1cclxuIiwiPHA+ZmlsdGVycy1lYyB3b3JrcyE8L3A+XHJcbiJdfQ==
@@ -28,6 +28,8 @@ export class ProductDetailEcComponent {
28
28
  code = '';
29
29
  showFormContact = false;
30
30
  showReviews = false;
31
+ reset = false;
32
+ success = false;
31
33
  quantity = signal(1);
32
34
  parameters$ = this.parametersService.getParameters();
33
35
  hasParams = this.parametersService.hasParams;
@@ -100,6 +102,10 @@ export class ProductDetailEcComponent {
100
102
  }
101
103
  }, 500);
102
104
  }
105
+ resetForm = () => {
106
+ this.reset = !this.reset;
107
+ this.success = true;
108
+ };
103
109
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductDetailEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
110
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ProductDetailEcComponent, isStandalone: true, selector: "app-product-detail-ec", ngImport: i0, template: "", styles: [""] });
105
111
  }
@@ -107,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
107
113
  type: Component,
108
114
  args: [{ selector: 'app-product-detail-ec', standalone: true, imports: [], template: "" }]
109
115
  }], ctorParameters: () => [] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDOztBQVd6QixNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLHFCQUFxQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FB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QUN0RyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBZTtRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNoRCxDQUFDO1FBQ0YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzt1R0F2R1csd0JBQXdCOzJGQUF4Qix3QkFBd0IsaUZDdkJyQyxFQUFBOzsyRkR1QmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkICwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSwgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7ICBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwsIFBMQVRGT1JNX0lELCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlLCBQcm9kdWN0c1NlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1kZXRhaWwtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX3Byb2R1Y3REZXRhaWxTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSA9IGluamVjdChQcm9kdWN0RGV0YWlsU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2FjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cdHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcblx0cHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKTtcclxuXHRwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHRwcml2YXRlIF9tZXRhOiBNZXRhID0gaW5qZWN0KE1ldGEpO1xyXG5cdHByaXZhdGUgX3RpdGxlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XHJcblx0cHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuXHRwdWJsaWMgcHJvZHVjdCQ6IE9ic2VydmFibGU8UHJvZHVjdCB8IG51bGw+ID0gdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UucHJvZHVjdCQ7XHJcblx0cHVibGljIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5vcHRpb25zJDtcclxuXHRwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJDtcclxuXHJcblx0cHVibGljIG1lZGlhVXJsID0gdGhpcy5fY29uc3RzLm1lZGlhVXJsKCk7XHJcblx0cHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG5cdHB1YmxpYyBzaG93Rm9ybUNvbnRhY3QgPSBmYWxzZTtcclxuXHRwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHJcblx0cHVibGljIHF1YW50aXR5OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKDEpO1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzJDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXSB8IG51bGw+ID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJzKCk7XHJcblx0cHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xyXG5cdFx0XHR0aGlzLmNvZGUgPSBxdWVyeVBhcmFtc1tcImlkXCJdO1xyXG5cdFx0XHR0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5sb2FkUHJvZHVjdCh0aGlzLmNvZGUpO1xyXG5cdFx0ICB9KTtcclxuXHRcdHRoaXMuX2FjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcclxuXHRcdFx0dGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcclxuXHRcdFx0dGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UubG9hZFByb2R1Y3QodGhpcy5jb2RlKTtcclxuXHRcdH0pXHJcblx0XHQgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcclxuICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcclxuICAgICB9KTtcclxuXHR9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0JC5zdWJzY3JpYmUocHJvZHVjdCA9PiB7XHJcbiAgICAgIGlmIChwcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZXRhVGFncyhwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNZXRhVGFncyhwcm9kdWN0OiBQcm9kdWN0KSB7XHJcblx0Y29uc3QgZGVzY3JpcGNpb25MaW1waWEgPSBoZS5kZWNvZGUocHJvZHVjdC5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZSgvPFtePl0qPi9nLCAnICcpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID10aGlzLl9jb25zdHMudXJsKCkgKyAgdGhpcy5fbG9jYXRpb24ucGF0aCh0cnVlKTsgIC8vIGB0cnVlYCBpbmNsdXllIGVsIHF1ZXJ5IHN0cmluZ1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogcHJvZHVjdC5uYW1lIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcGNpb25MaW1waWEgfHwgJycgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLl9jb25zdHMubWVkaWFVcmwoQXJyYXkuaXNBcnJheShwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCkgPyBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFswXSA6IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSB8fCAnJyB9KTtcclxuICAgIHRoaXMuX21ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiBjdXJyZW50VXJsIH0pO1xyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVkSHRtbChodG1sOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCk7XHJcbiAgfVxyXG5cclxuICBhZGRUb0NhcnQoKSB7XHJcbiAgICB0aGlzLnF1YW50aXR5KCkgPiAwICYmIHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5KCkpO1xyXG4gIH1cclxuXHJcbiAgcGx1cyhzdG9jaz86IG51bWJlciwgbXVsdGlwbGVRdWFudGl0eT86IG51bWJlcikge1xyXG4gICAgaWYgKG11bHRpcGxlUXVhbnRpdHkgJiYgbXVsdGlwbGVRdWFudGl0eSA+IDApIHtcclxuICAgICAgc3RvY2sgPyAodGhpcy5xdWFudGl0eSgpIDwgc3RvY2tcclxuICAgICAgICA/IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlICsgbXVsdGlwbGVRdWFudGl0eSlcclxuICAgICAgICA6IHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvdXQtb2Ytc3RvY2stYWN0dWFsbHknKSlcclxuICAgICAgICA6IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlICsgbXVsdGlwbGVRdWFudGl0eSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0b2NrID8gKHRoaXMucXVhbnRpdHkoKSA8IHN0b2NrXHJcbiAgICAgICAgPyB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIDEpXHJcbiAgICAgICAgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5JykpXHJcbiAgICAgICAgOiB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIDEpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXNzKG11bHRpcGxlUXVhbnRpdHk/OiBhbnkpIHtcclxuICAgIGlmIChtdWx0aXBsZVF1YW50aXR5ICYmIG11bHRpcGxlUXVhbnRpdHkgPiAwKSB7XHJcbiAgICAgIHRoaXMucXVhbnRpdHkoKSA+IG11bHRpcGxlUXVhbnRpdHkgPyB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSAtIG11bHRpcGxlUXVhbnRpdHkpIDogbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucXVhbnRpdHkoKSA+IDEgPyB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSAtIDEpIDogbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrU3RvY2soc3RvY2s6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMucXVhbnRpdHkoKSA+PSBzdG9jaylcclxuICAgICAgdGhpcy5xdWFudGl0eS5zZXQoc3RvY2spO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdvVG9TZWN0aW9uKHNlY3Rpb246IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93Rm9ybUNvbnRhY3QgPSB0cnVlO1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uKTtcclxuXHRcdFx0aWYgKGVsZW1lbnQpIHtcclxuXHRcdFx0XHRlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9LCA1MDApO1xyXG5cdH1cclxuXHJcbn1cclxuIiwiIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDOztBQVd6QixNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLHFCQUFxQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FB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ZWQgLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlLCBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgIFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCwgUExBVEZPUk1fSUQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUHJvZHVjdERldGFpbFNlcnZpY2UsIFByb2R1Y3RzU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgaGUgZnJvbSAnaGUnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWRldGFpbC1lYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfcHJvZHVjdERldGFpbFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3REZXRhaWxTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9wcm9kdWN0U2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHRwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2UgPSBpbmplY3QoUGFyYW1ldGVyc1NlcnZpY2UpO1xyXG5cdHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cdHByaXZhdGUgX21ldGE6IE1ldGEgPSBpbmplY3QoTWV0YSk7XHJcblx0cHJpdmF0ZSBfdGl0bGU6IFRpdGxlID0gaW5qZWN0KFRpdGxlKTtcclxuXHRwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xyXG5cdHB1YmxpYyBwcm9kdWN0JDogT2JzZXJ2YWJsZTxQcm9kdWN0IHwgbnVsbD4gPSB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5wcm9kdWN0JDtcclxuXHRwdWJsaWMgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLm9wdGlvbnMkO1xyXG5cdHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkO1xyXG5cclxuXHRwdWJsaWMgbWVkaWFVcmwgPSB0aGlzLl9jb25zdHMubWVkaWFVcmwoKTtcclxuXHRwdWJsaWMgY29kZTogc3RyaW5nID0gJyc7XHJcblx0cHVibGljIHNob3dGb3JtQ29udGFjdCA9IGZhbHNlO1xyXG5cdHB1YmxpYyBzaG93UmV2aWV3czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZXNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdCBwdWJsaWMgc3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRwdWJsaWMgcXVhbnRpdHk6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMSk7XHJcblx0cHVibGljIHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdIHwgbnVsbD4gPSB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKTtcclxuXHRwdWJsaWMgaGFzUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5oYXNQYXJhbXNcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLl9hY3RpdmVkUm91dGUucGFyYW1zLnN1YnNjcmliZShxdWVyeVBhcmFtcyA9PiB7XHJcblx0XHRcdHRoaXMuY29kZSA9IHF1ZXJ5UGFyYW1zW1wiaWRcIl07XHJcblx0XHRcdHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmxvYWRQcm9kdWN0KHRoaXMuY29kZSk7XHJcblx0XHQgIH0pO1xyXG5cdFx0dGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xyXG5cdFx0XHR0aGlzLmNvZGUgPSBxdWVyeVBhcmFtc1tcImlkXCJdO1xyXG5cdFx0XHR0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5sb2FkUHJvZHVjdCh0aGlzLmNvZGUpO1xyXG5cdFx0fSlcclxuXHRcdCB0aGlzLmluamVjdG9yLmdldChDaGFubmVsU2VydmljZSkuY2hhbm5lbCQuc3Vic2NyaWJlKGNoYW5uZWwgPT4ge1xyXG4gICAgICAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xyXG4gICAgIH0pO1xyXG5cdH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnByb2R1Y3QkLnN1YnNjcmliZShwcm9kdWN0ID0+IHtcclxuICAgICAgaWYgKHByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZU1ldGFUYWdzKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1ldGFUYWdzKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuXHRjb25zdCBkZXNjcmlwY2lvbkxpbXBpYSA9IGhlLmRlY29kZShwcm9kdWN0LmRlc2NyaXB0aW9uIHx8ICcnKS5yZXBsYWNlKC88W14+XSo+L2csICcgJykucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPXRoaXMuX2NvbnN0cy51cmwoKSArICB0aGlzLl9sb2NhdGlvbi5wYXRoKHRydWUpOyAgLy8gYHRydWVgIGluY2x1eWUgZWwgcXVlcnkgc3RyaW5nXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBwcm9kdWN0Lm5hbWUgfHwgJycgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwY2lvbkxpbXBpYSB8fCAnJyB9KTtcclxuICAgIHRoaXMuX21ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IHRoaXMuX2NvbnN0cy5tZWRpYVVybChBcnJheS5pc0FycmF5KHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSA/IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIDogcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQpIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IGN1cnJlbnRVcmwgfSk7XHJcbiAgfVxyXG5cclxuICBzYW5pdGl6ZWRIdG1sKGh0bWw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcclxuICB9XHJcblxyXG4gIGFkZFRvQ2FydCgpIHtcclxuICAgIHRoaXMucXVhbnRpdHkoKSA+IDAgJiYgdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMucXVhbnRpdHkoKSk7XHJcbiAgfVxyXG5cclxuICBwbHVzKHN0b2NrPzogbnVtYmVyLCBtdWx0aXBsZVF1YW50aXR5PzogbnVtYmVyKSB7XHJcbiAgICBpZiAobXVsdGlwbGVRdWFudGl0eSAmJiBtdWx0aXBsZVF1YW50aXR5ID4gMCkge1xyXG4gICAgICBzdG9jayA/ICh0aGlzLnF1YW50aXR5KCkgPCBzdG9ja1xyXG4gICAgICAgID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyBtdWx0aXBsZVF1YW50aXR5KVxyXG4gICAgICAgIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpKVxyXG4gICAgICAgIDogdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyBtdWx0aXBsZVF1YW50aXR5KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvY2sgPyAodGhpcy5xdWFudGl0eSgpIDwgc3RvY2tcclxuICAgICAgICA/IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlICsgMSlcclxuICAgICAgICA6IHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvdXQtb2Ytc3RvY2stYWN0dWFsbHknKSlcclxuICAgICAgICA6IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlICsgMSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxlc3MobXVsdGlwbGVRdWFudGl0eT86IGFueSkge1xyXG4gICAgaWYgKG11bHRpcGxlUXVhbnRpdHkgJiYgbXVsdGlwbGVRdWFudGl0eSA+IDApIHtcclxuICAgICAgdGhpcy5xdWFudGl0eSgpID4gbXVsdGlwbGVRdWFudGl0eSA/IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlIC0gbXVsdGlwbGVRdWFudGl0eSkgOiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5xdWFudGl0eSgpID4gMSA/IHRoaXMucXVhbnRpdHkudXBkYXRlKHZhbHVlID0+IHZhbHVlIC0gMSkgOiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tTdG9jayhzdG9jazogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5xdWFudGl0eSgpID49IHN0b2NrKVxyXG4gICAgICB0aGlzLnF1YW50aXR5LnNldChzdG9jayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1NlY3Rpb24oc2VjdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGb3JtQ29udGFjdCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb24pO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0gPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJlc2V0ID0gIXRoaXMucmVzZXRcclxuICAgIHRoaXMuc3VjY2VzcyA9IHRydWVcclxufVxyXG59XHJcbiIsIiJdfQ==
@@ -48,11 +48,11 @@ export class ProductEcComponent {
48
48
  return this.product.saleprice && this.product.saleprice !== this.product.price;
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ProductEcComponent, isStandalone: true, selector: "app-product-ec", inputs: { product: "product", isProductBox: "isProductBox", isCollection: "isCollection" }, outputs: { loaded: "loaded" }, ngImport: i0, template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice mb-1 mt-2 pt-1\"></p>\r\n }\r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"my-0\">{{ product.name | titlecase }}</h6>\r\n\r\n <p class=\"sku mt-2\" [innerHTML]=\"product.shortdetails\"></p>\r\n\r\n <div class=\"fixBottom mt-1\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product?.special_mark || product.special_mark?.length === 0 || product.special_mark?.[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product?.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "component", type: PriceEcComponent, selector: "app-price-ec", inputs: ["price", "saleprice"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ProductEcComponent, isStandalone: true, selector: "app-product-ec", inputs: { product: "product", isProductBox: "isProductBox", isCollection: "isCollection" }, outputs: { loaded: "loaded" }, ngImport: i0, template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n \r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n \r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice\"></p>\r\n }\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }} </span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "component", type: PriceEcComponent, selector: "app-price-ec", inputs: ["price", "saleprice"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductEcComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink, TranslateModule], template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice mb-1 mt-2 pt-1\"></p>\r\n }\r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"my-0\">{{ product.name | titlecase }}</h6>\r\n\r\n <p class=\"sku mt-2\" [innerHTML]=\"product.shortdetails\"></p>\r\n\r\n <div class=\"fixBottom mt-1\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product?.special_mark || product.special_mark?.length === 0 || product.special_mark?.[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product?.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>" }]
55
+ args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink, TranslateModule], template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n \r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n \r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice\"></p>\r\n }\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }} </span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>" }]
56
56
  }], propDecorators: { product: [{
57
57
  type: Input,
58
58
  args: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
65
65
  }], isCollection: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCOztPQUVHO0lBSUgsT0FBTyxDQUFXO0lBQ2xCOztPQUVHO0lBQ00sWUFBWSxHQUFXLElBQUksQ0FBQztJQUNyQzs7T0FFRztJQUNPLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJDLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNPLE1BQU0sR0FBd0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDMUQsZ0JBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEM7O09BRUc7SUFDSSxRQUFRLEdBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMvQyxZQUFZLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDNUgsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkYsQ0FBQzt1R0F6Q1Esa0JBQWtCOzJGQUFsQixrQkFBa0IscU1DbkIvQiw2a0pBc0dJLHlERHZGTyxZQUFZLDJWQUFFLGdCQUFnQix5RkFBRSxVQUFVLG1PQUFHLGVBQWU7OzJGQUkxRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRyxlQUFlLENBQUM7OEJBV3ZFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxyXG4gKiBAY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmsgLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcHJvZHVjdC1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqXHJcblx0ICogRGF0b3MgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pXHJcblx0cHJvZHVjdCE6IFByb2R1Y3Q7XHJcblx0LyoqXHJcblx0ICogU2UgdXNhIHBhcmEgc2FiZXIgc2kgZWwgcHJvZHVjdG8gZXMgZGUgdGlwbyBCb3ggbyBubyB5IGRlZmluaXIgbGEgdmlzdGEgYWRlY3VhZGEuXHJcblx0ICovXHJcblx0QElucHV0KCkgaXNQcm9kdWN0Qm94OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuXHQgKi9cclxuXHRAT3V0cHV0KCkgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG5cdEBJbnB1dCgpIGlzQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHQgIHRoaXMubG9hZGVkLmVtaXQodGhpcy5wcm9kdWN0LmlkKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSByb3V0ZXI6Um91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuXHQvKipcclxuXHQgKiBVUkwgcGFyYSBsYXMgaW1hZ2VuZXMgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZWRpYVVybDpzdHJpbmcgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0b3BlbldoYXRzQXBwKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3VsZFNob3dQcmljZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdD8uc3BlY2lhbF9tYXJrIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnNob3dQcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdC5zYWxlcHJpY2UgJiYgdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAhPT0gdGhpcy5wcm9kdWN0LnByaWNlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2R1Y3QnLCBwcm9kdWN0LmlkXVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmVcIj5cclxuICAgIDwhLS0gTWFyY2EgZXNwZWNpYWwgeSBkZXNjdWVudG8gLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCJwcm9kdWN0LnNhbGVwcmljZSB8fCAocHJvZHVjdC5zcGVjaWFsX21hcmsgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsgIT09IG51bGwgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsgIT09IHVuZGVmaW5lZCAmJiBwcm9kdWN0LnNwZWNpYWxfbWFyay5sZW5ndGggPjApXCJcclxuICAgICAgICBjbGFzcz1cIm1hcmNhc1wiPlxyXG4gICAgICAgIDxkaXYgKmVjUHJvZHVjdFN0b2NrPVwicHJvZHVjdFwiIFtlY1Byb2R1Y3RNaW5pXT1cInByb2R1Y3Quc3BlY2lhbF9tYXJrXCI+PC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZFNob3dQcmljZVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3RcIiBbbmdDbGFzc109XCJ7J3RhZy1kc2MgZmxvYXQtcmlnaHQnOiBwcm9kdWN0LnNhbGVwcmljZX1cIlxyXG4gICAgICAgICAgICAgICAgW2VjUHJvZHVjdE9mZl09XCJwcm9kdWN0XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDwhLS0gSW1hZ2VuIGRlbCBwcm9kdWN0byAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3RvXCI+XHJcbiAgICAgICAgQGlmKHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KXtcclxuICAgICAgICBAaWYgKHByb2R1Y3QucGljdHVyZXNkZWZhdWx0ICYmIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0Lmxlbmd0aCA+IDEgKSB7XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBhbHQ9XCJJbWFnZW4gcHJpbmNpcGFsXCIgY2xhc3M9XCJ3LTEwMCBwaWMwMVwiIC8+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMV1cIiBhbHQ9XCJJbWFnZW4gc2VjdW5kYXJpYVwiIGNsYXNzPVwidy0xMDAgcGljMDJcIiAvPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiSW1hZ2VuIHByaW5jaXBhbFwiIGNsYXNzPVwidy0xMDAgcGljMDFcIiAvPlxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUHJlY2lvIC0tPlxyXG4gICAgQGlmIChzaG91bGRTaG93UHJpY2UpIHtcclxuICAgIDxhcHAtcHJpY2UtZWMgW3ByaWNlXT1cInByb2R1Y3QucHJpY2VcIiBbc2FsZXByaWNlXT1cInByb2R1Y3Quc2FsZXByaWNlXCIgY2xhc3M9XCJcIiAvPlxyXG4gICAgfUBlbHNlIHtcclxuICAgIDxwIGNsYXNzPVwibm9QcmljZSBtYi0xIG10LTIgcHQtMVwiPjwvcD5cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIE5vbWJyZSBkZWwgcHJvZHVjdG8gLS0+XHJcbiAgICA8aDYgY2xhc3M9XCJteS0wXCI+e3sgcHJvZHVjdC5uYW1lIHwgdGl0bGVjYXNlIH19PC9oNj5cclxuXHJcbiAgICA8cCBjbGFzcz1cInNrdSBtdC0yXCIgW2lubmVySFRNTF09XCJwcm9kdWN0LnNob3J0ZGV0YWlsc1wiPjwvcD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZml4Qm90dG9tIG10LTFcIj5cclxuXHJcbiAgICAgICAgPCEtLSBCb3TDs24gZGUgYWNjaW9uZXMgLS0+XHJcbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3Q7IGVsc2Ugbm9TdG9ja1wiPiAtLT5cclxuICAgICAgICA8IS0tIEN1YW5kbyBubyB0aWVuZSBtYXJjYSBlc3BlY2lhbCBvIGVzIGRlIHRpcG8gJ3N0YW5kYXJkJyAtLT5cclxuICAgICAgICBAaWYgKCFwcm9kdWN0Py5zcGVjaWFsX21hcmsgfHwgcHJvZHVjdC5zcGVjaWFsX21hcms/Lmxlbmd0aCA9PT0gMCB8fCBwcm9kdWN0LnNwZWNpYWxfbWFyaz8uWzBdPy50eXBlID09PVxyXG4gICAgICAgICdzdGFuZGFyZCcpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW25nQ2xhc3NdPVwiaXNDb2xsZWN0aW9uID8gJ3B4LTIgdy0xMDAgZC1zbS1ibG9jaycgOiAncHktMiBweC00J1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uOyBlbHNlIG5vcm1hbFRleHRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPiB7eyhcImJ1eVwiIHwgdHJhbnNsYXRlKSB8IHVwcGVyY2FzZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVGV4dD5cclxuICAgICAgICAgICAgICAgIHt7KFwiYnV5XCIgfCB0cmFuc2xhdGUpIHwgdXBwZXJjYXNlfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBDdWFuZG8gdGllbmUgbWFyY2EgZXNwZWNpYWwgeSBlbCB0aXBvIG5vIGVzICdzdGFuZGFyZCcgLS0+XHJcbiAgICAgICAgQGlmKHByb2R1Y3Q/LnNwZWNpYWxfbWFyaz8uWzBdPy50eXBlICE9PSAnc3RhbmRhcmQnKXtcclxuICAgICAgICBAZm9yIChpdGVtIG9mIHByb2R1Y3Quc3BlY2lhbF9tYXJrOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8IS0tIENhc28gMTogQWdvdGFkbyBvIERpc3BvbmlibGUgbXV5IHByb250byAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ291dF9vZl9zdG9jaycgfHwgaXRlbS50eXBlID09PSAnY29taW5nX3Nvb24nKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtuZ0NsYXNzXT1cImlzQ29sbGVjdGlvbiA/ICdweC0yIHctMTAwIGQtc20tYmxvY2snIDogJ3B5LTIgcHgtNCdcIj5cclxuICAgICAgICAgICAgQGlmKGlzQ29sbGVjdGlvbil7XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAge3sgaXRlbS5uYW1lIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj59XHJcbiAgICAgICAgPCEtLSBDYXNvIDI6IENvbnRhY3RvIHBvciBXaGF0c0FwcCAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ3doYXRzYXBwX2NvbnRhY3QnKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtuZ0NsYXNzXT1cImlzQ29sbGVjdGlvbiA/ICdweC0yIHctMTAwIGQtc20tYmxvY2snIDogJ3B5LTIgcHgtNCdcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlbldoYXRzQXBwKGl0ZW0ud2hhdHNhcHBDb250YWN0KVwiPlxyXG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcclxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5uYW1lIHwgdXBwZXJjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBDYXNvIDM6IFNvbGljaXRhciBtw6FzIGluZm9ybWFjacOzbiAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ21vcmVfaW5mbycpIHtcclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiXCIgY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XHJcblxyXG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcclxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5uYW1lIHwgdXBwZXJjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPCEtLSA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vU3RvY2s+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uOyBlbHNlIG5vcm1hbFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyhcIm91dC1vZi1zdG9jay1zaG9ydFwiIHwgdHJhbnNsYXRlKSB8IHVwcGVyY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAge3soXCJvdXQtb2Ytc3RvY2stc2hvcnRcIiB8IHRyYW5zbGF0ZSkgfCB1cHBlcmNhc2V9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiAgICA8L2Rpdj5cclxuPC9hPiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCOztPQUVHO0lBSUgsT0FBTyxDQUFXO0lBQ2xCOztPQUVHO0lBQ00sWUFBWSxHQUFXLElBQUksQ0FBQztJQUNyQzs7T0FFRztJQUNPLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJDLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNPLE1BQU0sR0FBd0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDMUQsZ0JBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEM7O09BRUc7SUFDSSxRQUFRLEdBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMvQyxZQUFZLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDNUgsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkYsQ0FBQzt1R0F6Q1Esa0JBQWtCOzJGQUFsQixrQkFBa0IscU1DbkIvQixra0pBdUdJLHlERHhGTyxZQUFZLDJWQUFFLGdCQUFnQix5RkFBRSxVQUFVLG1PQUFHLGVBQWU7OzJGQUkxRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRyxlQUFlLENBQUM7OEJBV3ZFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxyXG4gKiBAY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmsgLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcHJvZHVjdC1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqXHJcblx0ICogRGF0b3MgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pXHJcblx0cHJvZHVjdCE6IFByb2R1Y3Q7XHJcblx0LyoqXHJcblx0ICogU2UgdXNhIHBhcmEgc2FiZXIgc2kgZWwgcHJvZHVjdG8gZXMgZGUgdGlwbyBCb3ggbyBubyB5IGRlZmluaXIgbGEgdmlzdGEgYWRlY3VhZGEuXHJcblx0ICovXHJcblx0QElucHV0KCkgaXNQcm9kdWN0Qm94OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuXHQgKi9cclxuXHRAT3V0cHV0KCkgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG5cdEBJbnB1dCgpIGlzQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHQgIHRoaXMubG9hZGVkLmVtaXQodGhpcy5wcm9kdWN0LmlkKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSByb3V0ZXI6Um91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuXHQvKipcclxuXHQgKiBVUkwgcGFyYSBsYXMgaW1hZ2VuZXMgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZWRpYVVybDpzdHJpbmcgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0b3BlbldoYXRzQXBwKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3VsZFNob3dQcmljZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdD8uc3BlY2lhbF9tYXJrIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnNob3dQcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdC5zYWxlcHJpY2UgJiYgdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAhPT0gdGhpcy5wcm9kdWN0LnByaWNlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2R1Y3QnLCBwcm9kdWN0LmlkXVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmVcIj5cclxuICAgIDwhLS0gTWFyY2EgZXNwZWNpYWwgeSBkZXNjdWVudG8gLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCJwcm9kdWN0LnNhbGVwcmljZSB8fCAocHJvZHVjdC5zcGVjaWFsX21hcmsgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsgIT09IG51bGwgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsgIT09IHVuZGVmaW5lZCAmJiBwcm9kdWN0LnNwZWNpYWxfbWFyay5sZW5ndGggPjApXCJcclxuICAgICAgICBjbGFzcz1cIm1hcmNhc1wiPlxyXG4gICAgICAgIDxkaXYgKmVjUHJvZHVjdFN0b2NrPVwicHJvZHVjdFwiIFtlY1Byb2R1Y3RNaW5pXT1cInByb2R1Y3Quc3BlY2lhbF9tYXJrXCI+PC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZFNob3dQcmljZVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3RcIiBbbmdDbGFzc109XCJ7J3RhZy1kc2MgZmxvYXQtcmlnaHQnOiBwcm9kdWN0LnNhbGVwcmljZX1cIlxyXG4gICAgICAgICAgICAgICAgW2VjUHJvZHVjdE9mZl09XCJwcm9kdWN0XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDwhLS0gSW1hZ2VuIGRlbCBwcm9kdWN0byAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3RvXCI+XHJcbiAgICAgICAgQGlmKHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KXtcclxuICAgICAgICBAaWYgKHByb2R1Y3QucGljdHVyZXNkZWZhdWx0ICYmIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0Lmxlbmd0aCA+IDEgKSB7XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBhbHQ9XCJJbWFnZW4gcHJpbmNpcGFsXCIgY2xhc3M9XCJ3LTEwMCBwaWMwMVwiIC8+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMV1cIiBhbHQ9XCJJbWFnZW4gc2VjdW5kYXJpYVwiIGNsYXNzPVwidy0xMDAgcGljMDJcIiAvPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiSW1hZ2VuIHByaW5jaXBhbFwiIGNsYXNzPVwidy0xMDAgcGljMDFcIiAvPlxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUHJlY2lvIC0tPlxyXG4gICAgXHJcblxyXG4gICAgPCEtLSBOb21icmUgZGVsIHByb2R1Y3RvIC0tPlxyXG4gICAgPGg2IGNsYXNzPVwidGl0bGVcIj57eyBwcm9kdWN0Lm5hbWUgfCB0aXRsZWNhc2UgfX08L2g2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJza3VcIiBbaW5uZXJIVE1MXT1cInByb2R1Y3Quc2hvcnRkZXRhaWxzXCI+PC9kaXY+XHJcbiAgICBcclxuICAgIEBpZiAoc2hvdWxkU2hvd1ByaWNlKSB7XHJcbiAgICA8YXBwLXByaWNlLWVjIFtwcmljZV09XCJwcm9kdWN0LnByaWNlXCIgW3NhbGVwcmljZV09XCJwcm9kdWN0LnNhbGVwcmljZVwiIGNsYXNzPVwiXCIgLz5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8cCBjbGFzcz1cIm5vUHJpY2VcIj48L3A+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpeEJvdHRvbVwiPlxyXG5cclxuICAgICAgICA8IS0tIEJvdMOzbiBkZSBhY2Npb25lcyAtLT5cclxuICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3Q7IGVsc2Ugbm9TdG9ja1wiPiAtLT5cclxuICAgICAgICA8IS0tIEN1YW5kbyBubyB0aWVuZSBtYXJjYSBlc3BlY2lhbCBvIGVzIGRlIHRpcG8gJ3N0YW5kYXJkJyAtLT5cclxuICAgICAgICBAaWYgKCFwcm9kdWN0LnNwZWNpYWxfbWFyayB8fCBwcm9kdWN0LnNwZWNpYWxfbWFyay5sZW5ndGggPT09IDAgfHwgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnR5cGUgPT09XHJcbiAgICAgICAgJ3N0YW5kYXJkJykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxlY3Rpb247IGVsc2Ugbm9ybWFsVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+IHt7KFwiYnV5XCIgfCB0cmFuc2xhdGUpIHwgdXBwZXJjYXNlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxUZXh0PlxyXG4gICAgICAgICAgICAgICAge3soXCJidXlcIiB8IHRyYW5zbGF0ZSkgfCB1cHBlcmNhc2V9fVxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEN1YW5kbyB0aWVuZSBtYXJjYSBlc3BlY2lhbCB5IGVsIHRpcG8gbm8gZXMgJ3N0YW5kYXJkJyAtLT5cclxuICAgICAgICBAaWYocHJvZHVjdC5zcGVjaWFsX21hcms/LlswXT8udHlwZSAhPT0gJ3N0YW5kYXJkJyl7XHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBwcm9kdWN0LnNwZWNpYWxfbWFyazsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPCEtLSBDYXNvIDE6IEFnb3RhZG8gbyBEaXNwb25pYmxlIG11eSBwcm9udG8gLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdvdXRfb2Zfc3RvY2snIHx8IGl0ZW0udHlwZSA9PT0gJ2NvbWluZ19zb29uJykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XHJcbiAgICAgICAgICAgIEBpZihpc0NvbGxlY3Rpb24pe1xyXG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLm5hbWUgfCB1cHBlcmNhc2UgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPn1cclxuICAgICAgICA8IS0tIENhc28gMjogQ29udGFjdG8gcG9yIFdoYXRzQXBwIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnd2hhdHNhcHBfY29udGFjdCcpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW25nQ2xhc3NdPVwiaXNDb2xsZWN0aW9uID8gJ3B4LTIgdy0xMDAgZC1zbS1ibG9jaycgOiAncHktMiBweC00J1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuV2hhdHNBcHAoaXRlbS53aGF0c2FwcENvbnRhY3QpXCI+XHJcbiAgICAgICAgICAgIEBpZihpc0NvbGxlY3Rpb24pe1xyXG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLm5hbWUgfCB1cHBlcmNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIENhc28gMzogU29saWNpdGFyIG3DoXMgaW5mb3JtYWNpw7NuIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnbW9yZV9pbmZvJykge1xyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJcIiBjbGFzcz1cImJ0blwiIFtuZ0NsYXNzXT1cImlzQ29sbGVjdGlvbiA/ICdweC0yIHctMTAwIGQtc20tYmxvY2snIDogJ3B5LTIgcHgtNCdcIj5cclxuICAgICAgICAgICAgQGlmKGlzQ29sbGVjdGlvbil7XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAge3sgaXRlbS5uYW1lIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDwhLS0gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1N0b2NrPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW25nQ2xhc3NdPVwiaXNDb2xsZWN0aW9uID8gJ3B4LTIgdy0xMDAgZC1zbS1ibG9jaycgOiAncHktMiBweC00J1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29sbGVjdGlvbjsgZWxzZSBub3JtYWxUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3soXCJvdXQtb2Ytc3RvY2stc2hvcnRcIiB8IHRyYW5zbGF0ZSkgfCB1cHBlcmNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxUZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7KFwib3V0LW9mLXN0b2NrLXNob3J0XCIgfCB0cmFuc2xhdGUpIHwgdXBwZXJjYXNlfX1cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG4gICAgPC9kaXY+XHJcbjwvYT4iXX0=
@@ -9,10 +9,10 @@ export class VariantsEcComponent {
9
9
  this._productDetailsService.setOption(optionCode, optionValue);
10
10
  }
11
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: VariantsEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: VariantsEcComponent, isStandalone: true, selector: "app-variants-ec", ngImport: i0, template: "@if(options$ | async; as options){\r\n @if(options && options.length){\r\n @for(option of options; track $index){\r\n @switch (option.type) {\r\n @case ('color') {\r\n <h5>Colores disponibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"button\" [title]=\"value.description\" (click)=\"setOption(option.code, value.name)\"\r\n [class]=\"'item m-1 circle ' + (value.selected ? 'shadow' : '')\" [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\" [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n }\r\n </div>\r\n }\r\n @case ('size') {\r\n\r\n }\r\n @default {\r\n\r\n }\r\n }\r\n }\r\n } @else {\r\n <p>loading</p>\r\n }\r\n}\r\n\r\n<!-- <div *ngIf=\"(options$ | async) as options\">\r\n <div *ngIf=\"options && options.length; else loading\">\r\n <div *ngFor=\"let option of options; let i = index\">\r\n\r\n <div [ngSwitch]=\"option.type\">\r\n <div *ngSwitchCase=\"'color'\">\r\n <h5>Colores disponibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n <a *ngFor=\"let value of option.values; let x = index\" role=\"button\"\r\n (click)=\"setOption(option.code, value.name)\" [class]=\"'item m-1 ' + (value.selected ? 'shadow' : '')\"\r\n [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\"\r\n [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'size'\">\r\n <h5>Talles displonibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3\">\r\n <a *ngFor=\"let value of option.values; let x = index\" role=\"buttom\"\r\n (click)=\"setOption(option.code, value.name)\"\r\n [id]=\"x + value.name\"\r\n [class]=\"'btn item m-1 ' + (value.selected ? 'selected-size' : 'unselected-size')\">\r\n {{ value.name }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div id=\"loading\"></div>\r\n </div>\r\n</ng-template> -->", styles: [".circle{width:32px;height:32px;border-radius:50%}.shadow{border:1px solid #000}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: VariantsEcComponent, isStandalone: true, selector: "app-variants-ec", ngImport: i0, template: "@if(options$ | async; as options){\r\n@if(options && options.length){\r\n@for(option of options; track $index){\r\n@switch (option.type) {\r\n@case ('color') {\r\n<h5>Colores disponibles</h5>\r\n<div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"button\" [title]=\"value.description\" (click)=\"setOption(option.code, value.name)\"\r\n [class]=\"'item m-1 circle ' + (value.selected ? 'shadow' : '')\" [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\" [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n }\r\n</div>\r\n}\r\n@case ('size') {\r\n<h5>Talles displonibles</h5>\r\n<div class=\"row w-100 mx-auto pb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"buttom\" (click)=\"setOption(option.code, value.name)\" [id]=\"x + value.name\"\r\n [class]=\"'btn item m-1 ' + (value.selected ? 'selected-size' : 'unselected-size')\">\r\n {{ value.name }}\r\n </a>\r\n }\r\n\r\n</div>\r\n}\r\n@default {\r\n\r\n}\r\n}\r\n}\r\n}\r\n}\r\n", styles: [".circle{width:32px;height:32px;border-radius:50%}.shadow{border:1px solid #000}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] });
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: VariantsEcComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'app-variants-ec', standalone: true, imports: [AsyncPipe], template: "@if(options$ | async; as options){\r\n @if(options && options.length){\r\n @for(option of options; track $index){\r\n @switch (option.type) {\r\n @case ('color') {\r\n <h5>Colores disponibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"button\" [title]=\"value.description\" (click)=\"setOption(option.code, value.name)\"\r\n [class]=\"'item m-1 circle ' + (value.selected ? 'shadow' : '')\" [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\" [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n }\r\n </div>\r\n }\r\n @case ('size') {\r\n\r\n }\r\n @default {\r\n\r\n }\r\n }\r\n }\r\n } @else {\r\n <p>loading</p>\r\n }\r\n}\r\n\r\n<!-- <div *ngIf=\"(options$ | async) as options\">\r\n <div *ngIf=\"options && options.length; else loading\">\r\n <div *ngFor=\"let option of options; let i = index\">\r\n\r\n <div [ngSwitch]=\"option.type\">\r\n <div *ngSwitchCase=\"'color'\">\r\n <h5>Colores disponibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n <a *ngFor=\"let value of option.values; let x = index\" role=\"button\"\r\n (click)=\"setOption(option.code, value.name)\" [class]=\"'item m-1 ' + (value.selected ? 'shadow' : '')\"\r\n [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\"\r\n [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'size'\">\r\n <h5>Talles displonibles</h5>\r\n <div class=\"row w-100 mx-auto pb-3\">\r\n <a *ngFor=\"let value of option.values; let x = index\" role=\"buttom\"\r\n (click)=\"setOption(option.code, value.name)\"\r\n [id]=\"x + value.name\"\r\n [class]=\"'btn item m-1 ' + (value.selected ? 'selected-size' : 'unselected-size')\">\r\n {{ value.name }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #loading>\r\n <div class=\"loading-container\">\r\n <div id=\"loading\"></div>\r\n </div>\r\n</ng-template> -->", styles: [".circle{width:32px;height:32px;border-radius:50%}.shadow{border:1px solid #000}\n"] }]
16
+ args: [{ selector: 'app-variants-ec', standalone: true, imports: [AsyncPipe], template: "@if(options$ | async; as options){\r\n@if(options && options.length){\r\n@for(option of options; track $index){\r\n@switch (option.type) {\r\n@case ('color') {\r\n<h5>Colores disponibles</h5>\r\n<div class=\"row w-100 mx-auto pb-3 mb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"button\" [title]=\"value.description\" (click)=\"setOption(option.code, value.name)\"\r\n [class]=\"'item m-1 circle ' + (value.selected ? 'shadow' : '')\" [id]=\"x + value.name\"\r\n [style.background]=\"'#' + value.name\" [style.box-shadow]=\"(value.selected ? '0px 0px 0px 2px #000' : 'none')\">\r\n </a>\r\n }\r\n</div>\r\n}\r\n@case ('size') {\r\n<h5>Talles displonibles</h5>\r\n<div class=\"row w-100 mx-auto pb-3\">\r\n @for(value of option.values; track $index; let x = $index){\r\n <a role=\"buttom\" (click)=\"setOption(option.code, value.name)\" [id]=\"x + value.name\"\r\n [class]=\"'btn item m-1 ' + (value.selected ? 'selected-size' : 'unselected-size')\">\r\n {{ value.name }}\r\n </a>\r\n }\r\n\r\n</div>\r\n}\r\n@default {\r\n\r\n}\r\n}\r\n}\r\n}\r\n}\r\n", styles: [".circle{width:32px;height:32px;border-radius:50%}.shadow{border:1px solid #000}\n"] }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvdmFyaWFudHMtZWMvdmFyaWFudHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvdmFyaWFudHMtZWMvdmFyaWFudHMtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVM1QyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLHNCQUFzQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztJQUV2RCxTQUFTLENBQUMsVUFBYyxFQUFFLFdBQWU7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQzt1R0FOVSxtQkFBbUI7MkZBQW5CLG1CQUFtQiwyRUNYaEMsbTdGQWdFa0Isc0lEekROLFNBQVM7OzJGQUlSLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvZHVjdERldGFpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC12YXJpYW50cy1lYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQXN5bmNQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmFyaWFudHMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi92YXJpYW50cy1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhcmlhbnRzRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX3Byb2R1Y3REZXRhaWxzU2VydmljZTogUHJvZHVjdERldGFpbFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdERldGFpbFNlcnZpY2UpO1xyXG5cdHB1YmxpYyBvcHRpb25zJCA9IHRoaXMuX3Byb2R1Y3REZXRhaWxzU2VydmljZS5vcHRpb25zJDtcclxuXHRcclxuXHRzZXRPcHRpb24ob3B0aW9uQ29kZTphbnksIG9wdGlvblZhbHVlOmFueSkge1xyXG4gICAgdGhpcy5fcHJvZHVjdERldGFpbHNTZXJ2aWNlLnNldE9wdGlvbihvcHRpb25Db2RlLCBvcHRpb25WYWx1ZSk7XHJcbiAgfVxyXG5cdFxyXG59XHJcbiIsIkBpZihvcHRpb25zJCB8IGFzeW5jOyBhcyBvcHRpb25zKXtcclxuICAgIEBpZihvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKXtcclxuICAgICAgICBAZm9yKG9wdGlvbiBvZiBvcHRpb25zOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgICAgICBAc3dpdGNoIChvcHRpb24udHlwZSkge1xyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdjb2xvcicpIHtcclxuICAgICAgICAgICAgICAgIDxoNT5Db2xvcmVzIGRpc3BvbmlibGVzPC9oNT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDAgbXgtYXV0byBwYi0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yKHZhbHVlIG9mIG9wdGlvbi52YWx1ZXM7IHRyYWNrICRpbmRleDsgbGV0IHggPSAkaW5kZXgpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxhIHJvbGU9XCJidXR0b25cIiBbdGl0bGVdPVwidmFsdWUuZGVzY3JpcHRpb25cIiAoY2xpY2spPVwic2V0T3B0aW9uKG9wdGlvbi5jb2RlLCB2YWx1ZS5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInaXRlbSBtLTEgY2lyY2xlICcgKyAodmFsdWUuc2VsZWN0ZWQgPyAnc2hhZG93JyA6ICcnKVwiIFtpZF09XCJ4ICsgdmFsdWUubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIicjJyArIHZhbHVlLm5hbWVcIiBbc3R5bGUuYm94LXNoYWRvd109XCIodmFsdWUuc2VsZWN0ZWQgPyAnMHB4IDBweCAwcHggMnB4ICMwMDAnIDogJ25vbmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBjYXNlICgnc2l6ZScpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8cD5sb2FkaW5nPC9wPlxyXG4gICAgfVxyXG59XHJcblxyXG48IS0tIDxkaXYgKm5nSWY9XCIob3B0aW9ucyQgfCBhc3luYykgYXMgb3B0aW9uc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cIm9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGg7IGVsc2UgbG9hZGluZ1wiPlxyXG4gICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJvcHRpb24udHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2NvbG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDU+Q29sb3JlcyBkaXNwb25pYmxlczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDAgbXgtYXV0byBwYi0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBvcHRpb24udmFsdWVzOyBsZXQgeCA9IGluZGV4XCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE9wdGlvbihvcHRpb24uY29kZSwgdmFsdWUubmFtZSlcIiBbY2xhc3NdPVwiJ2l0ZW0gbS0xICcgKyAodmFsdWUuc2VsZWN0ZWQgPyAnc2hhZG93JyA6ICcnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cInggKyB2YWx1ZS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCInIycgKyB2YWx1ZS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYm94LXNoYWRvd109XCIodmFsdWUuc2VsZWN0ZWQgPyAnMHB4IDBweCAwcHggMnB4ICMwMDAnIDogJ25vbmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NpemUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5UYWxsZXMgZGlzcGxvbmlibGVzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBteC1hdXRvIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdGb3I9XCJsZXQgdmFsdWUgb2Ygb3B0aW9uLnZhbHVlczsgbGV0IHggPSBpbmRleFwiIHJvbGU9XCJidXR0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE9wdGlvbihvcHRpb24uY29kZSwgdmFsdWUubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cInggKyB2YWx1ZS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYnRuIGl0ZW0gbS0xICcgKyAodmFsdWUuc2VsZWN0ZWQgPyAnc2VsZWN0ZWQtc2l6ZScgOiAndW5zZWxlY3RlZC1zaXplJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgIDxkaXYgaWQ9XCJsb2FkaW5nXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+Il19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvdmFyaWFudHMtZWMvdmFyaWFudHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvdmFyaWFudHMtZWMvdmFyaWFudHMtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVM1QyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLHNCQUFzQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztJQUV2RCxTQUFTLENBQUMsVUFBYyxFQUFFLFdBQWU7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQzt1R0FOVSxtQkFBbUI7MkZBQW5CLG1CQUFtQiwyRUNYaEMsdW5DQWtDQSxzSUQzQlksU0FBUzs7MkZBSVIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXZhcmlhbnRzLWVjJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92YXJpYW50cy1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ZhcmlhbnRzLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFyaWFudHNFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfcHJvZHVjdERldGFpbHNTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSA9IGluamVjdChQcm9kdWN0RGV0YWlsU2VydmljZSk7XHJcblx0cHVibGljIG9wdGlvbnMkID0gdGhpcy5fcHJvZHVjdERldGFpbHNTZXJ2aWNlLm9wdGlvbnMkO1xyXG5cdFxyXG5cdHNldE9wdGlvbihvcHRpb25Db2RlOmFueSwgb3B0aW9uVmFsdWU6YW55KSB7XHJcbiAgICB0aGlzLl9wcm9kdWN0RGV0YWlsc1NlcnZpY2Uuc2V0T3B0aW9uKG9wdGlvbkNvZGUsIG9wdGlvblZhbHVlKTtcclxuICB9XHJcblx0XHJcbn1cclxuIiwiQGlmKG9wdGlvbnMkIHwgYXN5bmM7IGFzIG9wdGlvbnMpe1xyXG5AaWYob3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCl7XHJcbkBmb3Iob3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrICRpbmRleCl7XHJcbkBzd2l0Y2ggKG9wdGlvbi50eXBlKSB7XHJcbkBjYXNlICgnY29sb3InKSB7XHJcbjxoNT5Db2xvcmVzIGRpc3BvbmlibGVzPC9oNT5cclxuPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBteC1hdXRvIHBiLTMgbWItM1wiPlxyXG4gICAgQGZvcih2YWx1ZSBvZiBvcHRpb24udmFsdWVzOyB0cmFjayAkaW5kZXg7IGxldCB4ID0gJGluZGV4KXtcclxuICAgIDxhIHJvbGU9XCJidXR0b25cIiBbdGl0bGVdPVwidmFsdWUuZGVzY3JpcHRpb25cIiAoY2xpY2spPVwic2V0T3B0aW9uKG9wdGlvbi5jb2RlLCB2YWx1ZS5uYW1lKVwiXHJcbiAgICAgICAgW2NsYXNzXT1cIidpdGVtIG0tMSBjaXJjbGUgJyArICh2YWx1ZS5zZWxlY3RlZCA/ICdzaGFkb3cnIDogJycpXCIgW2lkXT1cInggKyB2YWx1ZS5uYW1lXCJcclxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCInIycgKyB2YWx1ZS5uYW1lXCIgW3N0eWxlLmJveC1zaGFkb3ddPVwiKHZhbHVlLnNlbGVjdGVkID8gJzBweCAwcHggMHB4IDJweCAjMDAwJyA6ICdub25lJylcIj5cclxuICAgIDwvYT5cclxuICAgIH1cclxuPC9kaXY+XHJcbn1cclxuQGNhc2UgKCdzaXplJykge1xyXG48aDU+VGFsbGVzIGRpc3Bsb25pYmxlczwvaDU+XHJcbjxkaXYgY2xhc3M9XCJyb3cgdy0xMDAgbXgtYXV0byBwYi0zXCI+XHJcbiAgICBAZm9yKHZhbHVlIG9mIG9wdGlvbi52YWx1ZXM7IHRyYWNrICRpbmRleDsgbGV0IHggPSAkaW5kZXgpe1xyXG4gICAgPGEgcm9sZT1cImJ1dHRvbVwiIChjbGljayk9XCJzZXRPcHRpb24ob3B0aW9uLmNvZGUsIHZhbHVlLm5hbWUpXCIgW2lkXT1cInggKyB2YWx1ZS5uYW1lXCJcclxuICAgICAgICBbY2xhc3NdPVwiJ2J0biBpdGVtIG0tMSAnICsgKHZhbHVlLnNlbGVjdGVkID8gJ3NlbGVjdGVkLXNpemUnIDogJ3Vuc2VsZWN0ZWQtc2l6ZScpXCI+XHJcbiAgICAgICAge3sgdmFsdWUubmFtZSB9fVxyXG4gICAgPC9hPlxyXG4gICAgfVxyXG5cclxuPC9kaXY+XHJcbn1cclxuQGRlZmF1bHQge1xyXG5cclxufVxyXG59XHJcbn1cclxufVxyXG59XHJcbiJdfQ==