ng-easycommerce-v18 0.0.3 → 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.
Files changed (52) hide show
  1. package/assets/ec-i18n/es.json +3 -0
  2. package/esm2022/lib/classes/filters/PriceRangeFilter.mjs +48 -0
  3. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +75 -6
  4. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
  5. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +1 -1
  6. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +4 -2
  7. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +77 -3
  8. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +111 -5
  9. package/esm2022/lib/ec-components/index.mjs +5 -1
  10. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +31 -1
  11. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +20 -3
  12. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +60 -0
  13. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  14. package/esm2022/lib/ec-components/widgets-ec/index.mjs +2 -1
  15. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
  16. package/esm2022/lib/ec-directive/index.mjs +10 -0
  17. package/esm2022/lib/ec-directive/product-off.directive.mjs +119 -0
  18. package/esm2022/lib/ec-directive/product-stock.directive.mjs +72 -0
  19. package/esm2022/lib/ec-services/auth.service.mjs +17 -6
  20. package/esm2022/lib/ec-services/cart.service.mjs +19 -2
  21. package/esm2022/lib/ec-services/filters.service.mjs +3 -2
  22. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +7 -7
  23. package/esm2022/lib/ec-services/orders.service.mjs +28 -1
  24. package/esm2022/lib/ec-services/pagination.service.mjs +8 -1
  25. package/esm2022/lib/ec-services/product-detail.service.mjs +1 -1
  26. package/esm2022/lib/ec-services/products.service.mjs +29 -1
  27. package/esm2022/lib/interfaces/filter.mjs +1 -1
  28. package/esm2022/lib/interfaces/product.mjs +1 -1
  29. package/esm2022/public-api.mjs +3 -1
  30. package/fesm2022/ng-easycommerce-v18.mjs +697 -33
  31. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  32. package/lib/classes/filters/PriceRangeFilter.d.ts +23 -0
  33. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +23 -1
  34. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +2 -0
  35. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +7 -1
  36. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +30 -1
  37. package/lib/ec-components/index.d.ts +1 -0
  38. package/lib/ec-components/product-detail-ec/product-detail-ec.component.d.ts +12 -0
  39. package/lib/ec-components/product-ec/product-ec.component.d.ts +5 -1
  40. package/lib/ec-components/sidebar-ec/sidebar-ec.component.d.ts +29 -0
  41. package/lib/ec-directive/index.d.ts +3 -0
  42. package/lib/ec-directive/product-off.directive.d.ts +28 -0
  43. package/lib/ec-directive/product-stock.directive.d.ts +18 -0
  44. package/lib/ec-services/auth.service.d.ts +3 -1
  45. package/lib/ec-services/cart.service.d.ts +10 -1
  46. package/lib/ec-services/orders.service.d.ts +6 -0
  47. package/lib/ec-services/pagination.service.d.ts +5 -0
  48. package/lib/ec-services/products.service.d.ts +14 -0
  49. package/lib/interfaces/filter.d.ts +2 -2
  50. package/lib/interfaces/product.d.ts +2 -0
  51. package/package.json +1 -1
  52. package/public-api.d.ts +1 -0
@@ -4,7 +4,10 @@ import { AnalyticsService } from '../../ec-services';
4
4
  import { Router, RouterLink } from '@angular/router';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { PriceEcComponent } from "../widgets-ec/price-ec/price-ec.component";
7
+ import { TranslateModule } from '@ngx-translate/core';
7
8
  import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@ngx-translate/core";
8
11
  /**
9
12
  * Componente que se encarga de manejar un producto.
10
13
  * @class ProductEcComponent
@@ -22,6 +25,7 @@ export class ProductEcComponent {
22
25
  * Constantes del core
23
26
  */
24
27
  loaded = new EventEmitter();
28
+ isCollection = false;
25
29
  ngOnInit() {
26
30
  this.loaded.emit(this.product.id);
27
31
  }
@@ -32,12 +36,23 @@ export class ProductEcComponent {
32
36
  * URL para las imagenes del producto.
33
37
  */
34
38
  mediaUrl = this.consts.mediaUrl();
39
+ openWhatsApp(url) {
40
+ if (url) {
41
+ window.open(url, '_blank');
42
+ }
43
+ }
44
+ get shouldShowPrice() {
45
+ return !this.product?.special_mark || this.product.special_mark.length === 0 || this.product.special_mark[0]?.showPrice;
46
+ }
47
+ get hasDiscount() {
48
+ return this.product.saleprice && this.product.saleprice !== this.product.price;
49
+ }
35
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- 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" }, outputs: { loaded: "loaded" }, ngImport: i0, template: "@if(isProductBox){\r\n <div class=\"position-relative h-100\">\r\n <div class=\"marcas position-absolute w-100\">\r\n <span>20 %OFF</span>\r\n </div>\r\n <div>\r\n @if(product.picturesdefault){\r\n <img [src]=\"mediaUrl+product.picturesdefault[0]\" class=\"img-fluid mx-auto\" />\r\n }\r\n </div>\r\n <div class=\"d-flex flex-column justify-center align-items-center\">\r\n <h6 class=\"productName text-center\">{{product.name}}aa</h6> \r\n <p class=\"productID\">{{product.id}}</p>\r\n @if(product.shortdetails){\r\n <div class=\"shortdetails\" [innerHTML]=\"product.shortdetails\"></div>\r\n }\r\n @if(product.currentOption && product.currentOption.name){\r\n <p class=\"currentOption\" >{{product.currentOption.name}}</p>\r\n }\r\n </div>\r\n <div class=\"d-flex flex-column justify-center alig-items-center\">\r\n @if(true){\r\n <!--Servicio de auth para controlar si esta logueado o no-->\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }\r\n <button class=\"btn btn-primary\" routerLink=\"{{'/product/' + product.id}}\">Ver Producto</button>\r\n </div>\r\n </div>\r\n} @else {\r\n \r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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"] }] });
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" }] });
37
52
  }
38
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductEcComponent, decorators: [{
39
54
  type: Component,
40
- args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink], template: "@if(isProductBox){\r\n <div class=\"position-relative h-100\">\r\n <div class=\"marcas position-absolute w-100\">\r\n <span>20 %OFF</span>\r\n </div>\r\n <div>\r\n @if(product.picturesdefault){\r\n <img [src]=\"mediaUrl+product.picturesdefault[0]\" class=\"img-fluid mx-auto\" />\r\n }\r\n </div>\r\n <div class=\"d-flex flex-column justify-center align-items-center\">\r\n <h6 class=\"productName text-center\">{{product.name}}aa</h6> \r\n <p class=\"productID\">{{product.id}}</p>\r\n @if(product.shortdetails){\r\n <div class=\"shortdetails\" [innerHTML]=\"product.shortdetails\"></div>\r\n }\r\n @if(product.currentOption && product.currentOption.name){\r\n <p class=\"currentOption\" >{{product.currentOption.name}}</p>\r\n }\r\n </div>\r\n <div class=\"d-flex flex-column justify-center alig-items-center\">\r\n @if(true){\r\n <!--Servicio de auth para controlar si esta logueado o no-->\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }\r\n <button class=\"btn btn-primary\" routerLink=\"{{'/product/' + product.id}}\">Ver Producto</button>\r\n </div>\r\n </div>\r\n} @else {\r\n \r\n}\r\n" }]
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>" }]
41
56
  }], propDecorators: { product: [{
42
57
  type: Input,
43
58
  args: [{
@@ -47,5 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
47
62
  type: Input
48
63
  }], loaded: [{
49
64
  type: Output
65
+ }], isCollection: [{
66
+ type: Input
50
67
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQUM3RTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCOztPQUVHO0lBSUgsT0FBTyxDQUFXO0lBQ2xCOztPQUVHO0lBQ00sWUFBWSxHQUFXLElBQUksQ0FBQztJQUNyQzs7T0FFRztJQUNPLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTlDLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDTyxNQUFNLEdBQXdCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzFELGdCQUFnQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3RCxNQUFNLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3RDOztPQUVHO0lBQ0ksUUFBUSxHQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7dUdBMUJuQyxrQkFBa0I7MkZBQWxCLGtCQUFrQix1S0NsQi9CLDA0Q0ErQkEseUREakJXLFlBQVksK0JBQUUsZ0JBQWdCLHlGQUFFLFVBQVU7OzJGQUl4QyxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQzs4QkFXckQsT0FBTztzQkFITixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUtRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHF1ZSBzZSBlbmNhcmdhIGRlIG1hbmVqYXIgdW4gcHJvZHVjdG8uXHJcbiAqIEBjbGFzcyBQcm9kdWN0RWNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUHJpY2VFY0NvbXBvbmVudCwgUm91dGVyTGlua10sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHQvKipcclxuXHQgKiBEYXRvcyBkZWwgcHJvZHVjdG8uXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlXHJcblx0fSlcclxuXHRwcm9kdWN0ITogUHJvZHVjdDtcclxuXHQvKipcclxuXHQgKiBTZSB1c2EgcGFyYSBzYWJlciBzaSBlbCBwcm9kdWN0byBlcyBkZSB0aXBvIEJveCBvIG5vIHkgZGVmaW5pciBsYSB2aXN0YSBhZGVjdWFkYS5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBpc1Byb2R1Y3RCb3g6Ym9vbGVhbiA9IHRydWU7XHJcblx0LyoqXHJcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZVxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoKSBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0ICB0aGlzLmxvYWRlZC5lbWl0KHRoaXMucHJvZHVjdC5pZCk7XHJcblx0fVxyXG5cdHByaXZhdGUgY29uc3RzOkNvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKVxyXG5cdHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKVxyXG5cdHByaXZhdGUgcm91dGVyOlJvdXRlciA9IGluamVjdChSb3V0ZXIpXHJcblx0LyoqXHJcblx0ICogVVJMIHBhcmEgbGFzIGltYWdlbmVzIGRlbCBwcm9kdWN0by5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFVcmw6c3RyaW5nID0gdGhpcy5jb25zdHMubWVkaWFVcmwoKVxyXG59XHJcbiIsIkBpZihpc1Byb2R1Y3RCb3gpe1xyXG4gICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmNhcyBwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj4yMCAlT0ZGPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIEBpZihwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCl7XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwibWVkaWFVcmwrcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBjbGFzcz1cImltZy1mbHVpZCBteC1hdXRvXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxoNiBjbGFzcz1cInByb2R1Y3ROYW1lIHRleHQtY2VudGVyXCI+e3twcm9kdWN0Lm5hbWV9fWFhPC9oNj4gXHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwicHJvZHVjdElEXCI+e3twcm9kdWN0LmlkfX08L3A+XHJcbiAgICAgICAgICAgIEBpZihwcm9kdWN0LnNob3J0ZGV0YWlscyl7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvcnRkZXRhaWxzXCIgW2lubmVySFRNTF09XCJwcm9kdWN0LnNob3J0ZGV0YWlsc1wiPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZihwcm9kdWN0LmN1cnJlbnRPcHRpb24gJiYgcHJvZHVjdC5jdXJyZW50T3B0aW9uLm5hbWUpe1xyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjdXJyZW50T3B0aW9uXCIgPnt7cHJvZHVjdC5jdXJyZW50T3B0aW9uLm5hbWV9fTwvcD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jZW50ZXIgYWxpZy1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgQGlmKHRydWUpe1xyXG4gICAgICAgICAgICAgICAgPCEtLVNlcnZpY2lvIGRlIGF1dGggcGFyYSBjb250cm9sYXIgc2kgZXN0YSBsb2d1ZWFkbyBvIG5vLS0+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXByaWNlLWVjIFtwcmljZV09XCJwcm9kdWN0LnByaWNlXCIgW3NhbGVwcmljZV09XCJwcm9kdWN0LnNhbGVwcmljZVwiIGNsYXNzPVwiXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgcm91dGVyTGluaz1cInt7Jy9wcm9kdWN0LycgKyBwcm9kdWN0LmlkfX1cIj5WZXIgUHJvZHVjdG88L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICAgIFxyXG59XHJcbiJdfQ==
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=
@@ -0,0 +1,60 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { AuthService, CartService, ChannelService, ToastService } from '../../ec-services';
3
+ import { CoreConstantsService } from '../../constants';
4
+ import { Router, RouterLink } from '@angular/router';
5
+ import { AsyncPipe } from '@angular/common';
6
+ import { EcCurrencySymbolPipe } from '../../ec-pipe';
7
+ import { CouponEcComponent } from '../coupon-ec/coupon-ec.component';
8
+ import { CartItemEcComponent } from '../cart-ec';
9
+ import * as i0 from "@angular/core";
10
+ export class SidebarEcComponent {
11
+ _cartService = inject(CartService);
12
+ _consts = inject(CoreConstantsService);
13
+ _authService = inject(AuthService);
14
+ _router = inject(Router);
15
+ _toastrService = inject(ToastService);
16
+ _channelService = inject(ChannelService);
17
+ user = null;
18
+ mediaUrl = this._consts.mediaUrl();
19
+ promotions = [];
20
+ variantsToShow = ['TALLE', 'COLOR'];
21
+ hideDiscounts = false;
22
+ hideTaxes = false;
23
+ cartItems$ = this._cartService.cartItems$;
24
+ subTotalAmount$ = this._cartService.getSubTotalAmount();
25
+ totalPromotionAmount$ = this._cartService.getTotalPromotionAmount();
26
+ taxesAmount$ = this._cartService.getTaxesAmount();
27
+ totalAmount$ = this._cartService.getTotalAmount();
28
+ ngOnInit() {
29
+ this._cartService.promotions$.subscribe(promotions => this.promotions = promotions);
30
+ this._authService.getUserProfile().subscribe(u => {
31
+ this.user = u;
32
+ });
33
+ this._channelService.channel$.subscribe(channel => {
34
+ this.hideDiscounts = channel?.hideDiscounts ?? false;
35
+ this.hideTaxes = channel?.hideTaxes ?? false;
36
+ });
37
+ }
38
+ actualizarCantidad(_t13, arg1, arg2, arg3, arg4) {
39
+ throw new Error('Method not implemented.');
40
+ }
41
+ getVariants(_t8) {
42
+ throw new Error('Method not implemented.');
43
+ }
44
+ getTotalAmount() {
45
+ throw new Error('Method not implemented.');
46
+ }
47
+ removeCoupon() {
48
+ throw new Error('Method not implemented.');
49
+ }
50
+ deleteCartItem(_t8, arg1) {
51
+ throw new Error('Method not implemented.');
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SidebarEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SidebarEcComponent, isStandalone: true, selector: "app-sidebar-ec", ngImport: i0, template: "<div class=\"nav my-4 mx-0 position-relative text-center shadow-sm border-bottom d-flex justify-content-center\">\r\n <h2 class=\"row text-center\">Mi carrito</h2>\r\n <div class=\" me-3 closeCart position-absolute end-0\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\">\r\n <i class=\"fa fa-times-circle fs-5\" aria-hidden=\"true\"></i>\r\n </div>\r\n</div>\r\n\r\n\r\n@if(cartItems$ | async; as items){\r\n @if(items.length > 0){\r\n <!-- PRODUCTO -->\r\n <div class=\"d-flex flex-column mb-4 items\">\r\n @for(item of items; track $index; let i = $index){\r\n <div class=\"productoCarrito mt-1 mb-2 w-100\">\r\n <app-cart-item-ec [inSidebar]=\"true\" [item]=\"item\"></app-cart-item-ec>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between border-top \">\r\n <p>Subtotal</p>\r\n <p class=\"fw-700\">{{ (subTotalAmount$ | async) | ecCurrencySymbol}}</p>\r\n </div>\r\n <div class=\"mx-4 bordeBot\">\r\n <app-coupon-ec></app-coupon-ec>\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between bordeBot2\">\r\n <p>Descuentos:</p>\r\n <p>{{ (totalPromotionAmount$ | async) |ecCurrencySymbol }}</p>\r\n </div>\r\n\r\n <div class=\"d-flex mx-4 justify-content-between bordeBot2\">\r\n <!-- @if(this._cartService.cart.source.value.couponCode){\r\n <a class=\"quitar-cupon text-dark\" role=\"button\"\r\n (click)=\"removeCoupon()\">(Quitar cup\u00F3n)</a>\r\n } -->\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between mb-3 mt-2\">\r\n <p class=\"fw-bold h5\">TOTAL</p>\r\n <p class=\"fw-bold h5\">{{(totalAmount$ | async) | ecCurrencySymbol}}</p>\r\n </div>\r\n <div class=\"d-flex flex-column mx-4 justify-content-between mb-3\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\">\r\n <a [routerLink]=\"['/cart']\" class=\"btn btn-primary btn-block w-100 btnComprar mb-2 mt-3 \">CONFIRMAR PEDIDO</a>\r\n <a [routerLink]=\"['/collection']\" class=\"btn btn-secondary btn-block w-100 btnSeguir\">SEGUIR COMPRANDO</a>\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"container-lg px-lg-0 px-md-4 my-5\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <h5 class=\"text-center mb-sm-4 text-uppercase\"> \u00B7 Su carrito se\r\n encuentra vac\u00EDo \u00B7 </h5>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n}", styles: [".items{max-height:35vh;overflow-y:scroll;overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CouponEcComponent, selector: "app-coupon-ec" }, { kind: "component", type: CartItemEcComponent, selector: "app-cart-item-ec", inputs: ["item", "inSidebar"] }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }] });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SidebarEcComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'app-sidebar-ec', standalone: true, imports: [RouterLink, AsyncPipe, CouponEcComponent, CartItemEcComponent, EcCurrencySymbolPipe], template: "<div class=\"nav my-4 mx-0 position-relative text-center shadow-sm border-bottom d-flex justify-content-center\">\r\n <h2 class=\"row text-center\">Mi carrito</h2>\r\n <div class=\" me-3 closeCart position-absolute end-0\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\">\r\n <i class=\"fa fa-times-circle fs-5\" aria-hidden=\"true\"></i>\r\n </div>\r\n</div>\r\n\r\n\r\n@if(cartItems$ | async; as items){\r\n @if(items.length > 0){\r\n <!-- PRODUCTO -->\r\n <div class=\"d-flex flex-column mb-4 items\">\r\n @for(item of items; track $index; let i = $index){\r\n <div class=\"productoCarrito mt-1 mb-2 w-100\">\r\n <app-cart-item-ec [inSidebar]=\"true\" [item]=\"item\"></app-cart-item-ec>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between border-top \">\r\n <p>Subtotal</p>\r\n <p class=\"fw-700\">{{ (subTotalAmount$ | async) | ecCurrencySymbol}}</p>\r\n </div>\r\n <div class=\"mx-4 bordeBot\">\r\n <app-coupon-ec></app-coupon-ec>\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between bordeBot2\">\r\n <p>Descuentos:</p>\r\n <p>{{ (totalPromotionAmount$ | async) |ecCurrencySymbol }}</p>\r\n </div>\r\n\r\n <div class=\"d-flex mx-4 justify-content-between bordeBot2\">\r\n <!-- @if(this._cartService.cart.source.value.couponCode){\r\n <a class=\"quitar-cupon text-dark\" role=\"button\"\r\n (click)=\"removeCoupon()\">(Quitar cup\u00F3n)</a>\r\n } -->\r\n </div>\r\n <div class=\"d-flex mx-4 justify-content-between mb-3 mt-2\">\r\n <p class=\"fw-bold h5\">TOTAL</p>\r\n <p class=\"fw-bold h5\">{{(totalAmount$ | async) | ecCurrencySymbol}}</p>\r\n </div>\r\n <div class=\"d-flex flex-column mx-4 justify-content-between mb-3\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\">\r\n <a [routerLink]=\"['/cart']\" class=\"btn btn-primary btn-block w-100 btnComprar mb-2 mt-3 \">CONFIRMAR PEDIDO</a>\r\n <a [routerLink]=\"['/collection']\" class=\"btn btn-secondary btn-block w-100 btnSeguir\">SEGUIR COMPRANDO</a>\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"container-lg px-lg-0 px-md-4 my-5\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <h5 class=\"text-center mb-sm-4 text-uppercase\"> \u00B7 Su carrito se\r\n encuentra vac\u00EDo \u00B7 </h5>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n}", styles: [".items{max-height:35vh;overflow-y:scroll;overflow-x:hidden}\n"] }]
59
+ }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9zaWRlYmFyLWVjL3NpZGViYXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvc2lkZWJhci1lYy9zaWRlYmFyLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFTakQsTUFBTSxPQUFPLGtCQUFrQjtJQUVuQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvQyxPQUFPLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzVELFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQy9DLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDaEMsY0FBYyxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDbkQsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFekQsSUFBSSxHQUFnQixJQUFJLENBQUE7SUFDeEIsUUFBUSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixjQUFjLEdBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztJQUMxQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNELHFCQUFxQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNwRSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsRCxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUV0RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksS0FBSyxDQUFDO1lBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxLQUFLLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVUsRUFBRSxJQUFVLEVBQUUsSUFBVSxFQUFFLElBQVU7UUFDeEUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUTtRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELGNBQWM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFlBQVk7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFRLEVBQUUsSUFBYTtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQzt1R0FqRFEsa0JBQWtCOzJGQUFsQixrQkFBa0IsMEVDakIvQix3L0VBd0RDLHVIRDNDYSxVQUFVLCtOQUFFLFNBQVMsOENBQUUsaUJBQWlCLDBEQUFFLG1CQUFtQix1RkFBRSxvQkFBb0I7OzJGQUlwRixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0ksZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIENhcnRTZXJ2aWNlLCBDaGFubmVsU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSAnLi4vLi4vZWMtcGlwZSc7XHJcbmltcG9ydCB7IENvdXBvbkVjQ29tcG9uZW50IH0gZnJvbSAnLi4vY291cG9uLWVjL2NvdXBvbi1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJ0SXRlbUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FydC1lYyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXNpZGViYXItZWMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtSb3V0ZXJMaW5rLCBBc3luY1BpcGUsIENvdXBvbkVjQ29tcG9uZW50LCBDYXJ0SXRlbUVjQ29tcG9uZW50LCBFY0N1cnJlbmN5U3ltYm9sUGlwZV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vc2lkZWJhci1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJFY0NvbXBvbmVudCB7XHJcblxyXG4gICAgcHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKVxyXG4gICAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcclxuICAgIHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuICAgIHByaXZhdGUgX3RvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpXHJcbiAgICBwcml2YXRlIF9jaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQ2hhbm5lbFNlcnZpY2UpXHJcblxyXG4gICAgcHVibGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbFxyXG4gICAgcHVibGljIG1lZGlhVXJsOiBzdHJpbmcgPSB0aGlzLl9jb25zdHMubWVkaWFVcmwoKTtcclxuICAgIHB1YmxpYyBwcm9tb3Rpb25zID0gW107XHJcbiAgICBwdWJsaWMgdmFyaWFudHNUb1Nob3c6IHN0cmluZ1tdID0gWydUQUxMRScsICdDT0xPUiddO1xyXG4gICAgcHVibGljIGhpZGVEaXNjb3VudHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoaWRlVGF4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgY2FydEl0ZW1zJCA9IHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnRJdGVtcyQ7XHJcbiAgICBwdWJsaWMgc3ViVG90YWxBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0U3ViVG90YWxBbW91bnQoKTtcclxuXHRwdWJsaWMgdG90YWxQcm9tb3Rpb25BbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VG90YWxQcm9tb3Rpb25BbW91bnQoKTtcclxuXHRwdWJsaWMgdGF4ZXNBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VGF4ZXNBbW91bnQoKTtcclxuXHRwdWJsaWMgdG90YWxBbW91bnQkID0gdGhpcy5fY2FydFNlcnZpY2UuZ2V0VG90YWxBbW91bnQoKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9jYXJ0U2VydmljZS5wcm9tb3Rpb25zJC5zdWJzY3JpYmUocHJvbW90aW9ucyA9PiB0aGlzLnByb21vdGlvbnMgPSBwcm9tb3Rpb25zKTtcclxuICAgICAgICB0aGlzLl9hdXRoU2VydmljZS5nZXRVc2VyUHJvZmlsZSgpLnN1YnNjcmliZSh1ID0+IHtcclxuICAgICAgICAgICAgdGhpcy51c2VyID0gdVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5fY2hhbm5lbFNlcnZpY2UuY2hhbm5lbCQuc3Vic2NyaWJlKGNoYW5uZWwgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVEaXNjb3VudHMgPSBjaGFubmVsPy5oaWRlRGlzY291bnRzID8/IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVUYXhlcyA9IGNoYW5uZWw/LmhpZGVUYXhlcyA/PyBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBhY3R1YWxpemFyQ2FudGlkYWQoX3QxMzogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZhcmlhbnRzKF90ODogYW55KTogYW55IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgICB9XHJcbiAgICBnZXRUb3RhbEFtb3VudCgpOiBpbXBvcnQoXCJyeGpzXCIpLk9ic2VydmFibGU8YW55PiB8IFByb21pc2U8YW55PiB8IGltcG9ydChcInJ4anNcIikuU3Vic2NyaWJhYmxlPGFueT4ge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuICAgIH1cclxuICAgIHJlbW92ZUNvdXBvbigpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlQ2FydEl0ZW0oX3Q4OiBhbnksIGFyZzE6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm5hdiBteS00IG14LTAgcG9zaXRpb24tcmVsYXRpdmUgdGV4dC1jZW50ZXIgc2hhZG93LXNtIGJvcmRlci1ib3R0b20gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgIDxoMiBjbGFzcz1cInJvdyB0ZXh0LWNlbnRlclwiPk1pIGNhcnJpdG88L2gyPlxyXG4gICAgPGRpdiBjbGFzcz1cIiBtZS0zIGNsb3NlQ2FydCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMFwiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXMtY2lyY2xlIGZzLTVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuQGlmKGNhcnRJdGVtcyQgfCBhc3luYzsgYXMgaXRlbXMpe1xyXG4gICAgQGlmKGl0ZW1zLmxlbmd0aCA+IDApe1xyXG4gICAgPCEtLSBQUk9EVUNUTyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbWItNCBpdGVtc1wiPlxyXG4gICAgICAgIEBmb3IoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RvQ2Fycml0byBtdC0xIG1iLTIgdy0xMDBcIj5cclxuICAgICAgICAgICAgPGFwcC1jYXJ0LWl0ZW0tZWMgW2luU2lkZWJhcl09XCJ0cnVlXCIgW2l0ZW1dPVwiaXRlbVwiPjwvYXBwLWNhcnQtaXRlbS1lYz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXgtNCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBib3JkZXItdG9wIFwiPlxyXG4gICAgICAgIDxwPlN1YnRvdGFsPC9wPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZnctNzAwXCI+e3sgKHN1YlRvdGFsQW1vdW50JCB8IGFzeW5jKSB8IGVjQ3VycmVuY3lTeW1ib2x9fTwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm14LTQgYm9yZGVCb3RcIj5cclxuICAgICAgICA8YXBwLWNvdXBvbi1lYz48L2FwcC1jb3Vwb24tZWM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXgtNCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBib3JkZUJvdDJcIj5cclxuICAgICAgICA8cD5EZXNjdWVudG9zOjwvcD5cclxuICAgICAgICA8cD57eyAodG90YWxQcm9tb3Rpb25BbW91bnQkIHwgYXN5bmMpIHxlY0N1cnJlbmN5U3ltYm9sIH19PC9wPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBteC00IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJvcmRlQm90MlwiPlxyXG4gICAgICAgIDwhLS0gIEBpZih0aGlzLl9jYXJ0U2VydmljZS5jYXJ0LnNvdXJjZS52YWx1ZS5jb3Vwb25Db2RlKXtcclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicXVpdGFyLWN1cG9uIHRleHQtZGFya1wiIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvdXBvbigpXCI+KFF1aXRhciBjdXDDs24pPC9hPlxyXG4gICAgICAgICAgICB9IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG14LTQganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMyBtdC0yXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJmdy1ib2xkIGg1XCI+VE9UQUw8L3A+XHJcbiAgICAgPHAgY2xhc3M9XCJmdy1ib2xkIGg1XCI+e3sodG90YWxBbW91bnQkIHwgYXN5bmMpIHwgZWNDdXJyZW5jeVN5bWJvbH19PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG14LTQganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItM1wiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL2NhcnQnXVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayB3LTEwMCBidG5Db21wcmFyIG1iLTIgbXQtMyBcIj5DT05GSVJNQVIgUEVESURPPC9hPlxyXG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL2NvbGxlY3Rpb24nXVwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLWJsb2NrIHctMTAwIGJ0blNlZ3VpclwiPlNFR1VJUiBDT01QUkFORE88L2E+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxnIHB4LWxnLTAgcHgtbWQtNCBteS01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtYi1zbS00IHRleHQtdXBwZXJjYXNlXCI+IMK3IFN1IGNhcnJpdG8gc2VcclxuICAgICAgICAgICAgICAgICAgICBlbmN1ZW50cmEgdmFjw61vIMK3IDwvaDU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbn0iXX0=
@@ -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==
@@ -2,4 +2,5 @@ export * from './loading';
2
2
  export * from './price-ec/price-ec.component';
3
3
  export * from './re-captcha-ec/re-captcha-ec.component';
4
4
  export * from './magnizoom-ec/magnizoom-ec.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlLWNhcHRjaGEtZWMvcmUtY2FwdGNoYS1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL21hZ25pem9vbS1lYy9tYWduaXpvb20tZWMuY29tcG9uZW50JzsiXX0=
5
+ // export * from './rating-ec/rating-ec.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZS1jYXB0Y2hhLWVjL3JlLWNhcHRjaGEtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tYWduaXpvb20tZWMvbWFnbml6b29tLWVjLmNvbXBvbmVudCc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vcmF0aW5nLWVjL3JhdGluZy1lYy5jb21wb25lbnQnOyJdfQ==
@@ -14,14 +14,14 @@ export class PriceEcComponent {
14
14
  */
15
15
  saleprice;
16
16
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PriceEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice" }, ngImport: i0, template: "@if(saleprice){\r\n <!--With saleprice-->\r\n <div class=\"\">\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price text-center p-0 mx-0 mx-md-3\">\r\n <del class=\"text-center price\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }}\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </del>\r\n </div>\r\n }@else {\r\n <!--Simple Price Del-->\r\n <div class=\" text-center delete p-0 mx-0 mx-md-3\">\r\n <del class=\" text-center delete\">\r\n {{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n }\r\n @if(saleprice && saleprice.split(' - ').length > 1){\r\n <div class=\"\">\r\n {{\r\n saleprice.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n } @else {\r\n <!--Simple saleprice-->\r\n <div class=\"text-center price p-0 mx-0 mx-md-3\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n }\r\n</div> \r\n}@else {\r\n <!--Only Price-->\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }} -\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </div> \r\n } @else {\r\n <!--Simple price-->\r\n <div class=\"text-center price p-0 mx-0 mx-md-3\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n }\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }] });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice" }, ngImport: i0, template: " <div class=\"price\">\r\n @if(saleprice){\r\n <!--With saleprice-->\r\n \r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }}\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </del>\r\n </div>\r\n }@else {\r\n <!--Simple Price Del-->\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">\r\n {{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n }\r\n @if(saleprice && saleprice.split(' - ').length > 1){\r\n <div class=\"\">\r\n {{\r\n saleprice.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n } @else {\r\n <!--Simple saleprice-->\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n }\r\n\r\n}@else {\r\n <!--Only Price-->\r\n\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price-onlyPrice\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }} -\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </div> \r\n } @else {\r\n <!--Simple price-->\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n }\r\n}\r\n</div> ", styles: [""], dependencies: [{ kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }] });
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PriceEcComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'app-price-ec', standalone: true, imports: [EcCurrencySymbolPipe], template: "@if(saleprice){\r\n <!--With saleprice-->\r\n <div class=\"\">\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price text-center p-0 mx-0 mx-md-3\">\r\n <del class=\"text-center price\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }}\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </del>\r\n </div>\r\n }@else {\r\n <!--Simple Price Del-->\r\n <div class=\" text-center delete p-0 mx-0 mx-md-3\">\r\n <del class=\" text-center delete\">\r\n {{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n }\r\n @if(saleprice && saleprice.split(' - ').length > 1){\r\n <div class=\"\">\r\n {{\r\n saleprice.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n } @else {\r\n <!--Simple saleprice-->\r\n <div class=\"text-center price p-0 mx-0 mx-md-3\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n }\r\n</div> \r\n}@else {\r\n <!--Only Price-->\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }} -\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </div> \r\n } @else {\r\n <!--Simple price-->\r\n <div class=\"text-center price p-0 mx-0 mx-md-3\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n }\r\n}" }]
21
+ args: [{ selector: 'app-price-ec', standalone: true, imports: [EcCurrencySymbolPipe], template: " <div class=\"price\">\r\n @if(saleprice){\r\n <!--With saleprice-->\r\n \r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }}\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </del>\r\n </div>\r\n }@else {\r\n <!--Simple Price Del-->\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">\r\n {{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n }\r\n @if(saleprice && saleprice.split(' - ').length > 1){\r\n <div class=\"\">\r\n {{\r\n saleprice.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n } @else {\r\n <!--Simple saleprice-->\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n }\r\n\r\n}@else {\r\n <!--Only Price-->\r\n\r\n @if(price && price.split(' - ').length > 1){\r\n <div class=\"price-onlyPrice\">\r\n {{ price.split(' - ')[0] | ecCurrencySymbol }} -\r\n {{ price.split(' - ')[1] | ecCurrencySymbol }}\r\n </div> \r\n } @else {\r\n <!--Simple price-->\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n }\r\n}\r\n</div> " }]
22
22
  }], propDecorators: { price: [{
23
23
  type: Input
24
24
  }], saleprice: [{
25
25
  type: Input
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUNoRjs7R0FFRztBQVFILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7O09BRUc7SUFDSyxLQUFLLENBQU07SUFDbkI7O09BRUc7SUFDSyxTQUFTLENBQU07dUdBUlosZ0JBQWdCOzJGQUFoQixnQkFBZ0IsNEhDWjdCLHlrREE4Q0MscUREdENXLG9CQUFvQjs7MkZBSW5CLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsb0JBQW9CLENBQUM7OEJBUXZCLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFY0N1cnJlbmN5U3ltYm9sUGlwZSB9IGZyb20gXCIuLi8uLi8uLi9lYy1waXBlL2VjLWN1cnJlbmN5LXN5bWJvbC5waXBlXCI7XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHBhcmEgbWFuZWphciBsYSB2aXN0YSBkZWwgcHJlY2lvIGRlIHVuIHByb2R1Y3RvLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJpY2UtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0VjQ3VycmVuY3lTeW1ib2xQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaWNlRWNDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIFByZWNpbyBkZSB1biBwcm9kdWN0by5cclxuICAgKi9cclxuXHRASW5wdXQoKSBwcmljZTogYW55O1xyXG4gIC8qKlxyXG4gICAqIFByZWNpbyBkZSB2ZW50YSBkZSB1biBwcm9kdWN0by5cclxuICAgKi9cclxuXHRASW5wdXQoKSBzYWxlcHJpY2U6IGFueTtcclxufVxyXG4iLCJAaWYoc2FsZXByaWNlKXtcclxuICAgIDwhLS1XaXRoIHNhbGVwcmljZS0tPlxyXG4gIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgIEBpZihwcmljZSAmJiBwcmljZS5zcGxpdCgnIC0gJykubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlIHRleHQtY2VudGVyIHAtMCBteC0wIG14LW1kLTNcIj5cclxuICAgICAgICAgICAgPGRlbCBjbGFzcz1cInRleHQtY2VudGVyICBwcmljZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgcHJpY2Uuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICAgICAge3sgcHJpY2Uuc3BsaXQoJyAtICcpWzFdIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L2RlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1AZWxzZSB7XHJcbiAgICAgICAgPCEtLVNpbXBsZSBQcmljZSBEZWwtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyIGRlbGV0ZSBwLTAgbXgtMCBteC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxkZWwgY2xhc3M9XCIgdGV4dC1jZW50ZXIgZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX08L2RlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIEBpZihzYWxlcHJpY2UgJiYgc2FsZXByaWNlLnNwbGl0KCcgLSAnKS5sZW5ndGggPiAxKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIHNhbGVwcmljZS5zcGxpdCgnIC0gJylbMF0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIHNhbGVwcmljZS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICA8IS0tU2ltcGxlIHNhbGVwcmljZS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciAgcHJpY2UgcC0wIG14LTAgbXgtbWQtM1wiPlxyXG4gICAgICAgICAgICB7eyBzYWxlcHJpY2UgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+ICBcclxufUBlbHNlIHtcclxuICAgIDwhLS1Pbmx5IFByaWNlLS0+XHJcbiAgICBAaWYocHJpY2UgJiYgcHJpY2Uuc3BsaXQoJyAtICcpLmxlbmd0aCA+IDEpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZVwiPlxyXG4gICAgICAgICAgICB7eyBwcmljZS5zcGxpdCgnIC0gJylbMF0gfCBlY0N1cnJlbmN5U3ltYm9sIH19IC1cclxuICAgICAgICAgICAge3sgcHJpY2Uuc3BsaXQoJyAtICcpWzFdIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgIDwvZGl2PiBcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDwhLS1TaW1wbGUgcHJpY2UtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHJpY2UgcC0wIG14LTAgbXgtbWQtM1wiPlxyXG4gICAgICAgICAgICB7eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxufSJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUNoRjs7R0FFRztBQVFILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7O09BRUc7SUFDSyxLQUFLLENBQU07SUFDbkI7O09BRUc7SUFDSyxTQUFTLENBQU07dUdBUlosZ0JBQWdCOzJGQUFoQixnQkFBZ0IsNEhDWjdCLDhoREFrRFEscUREMUNJLG9CQUFvQjs7MkZBSW5CLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsb0JBQW9CLENBQUM7OEJBUXZCLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFY0N1cnJlbmN5U3ltYm9sUGlwZSB9IGZyb20gXCIuLi8uLi8uLi9lYy1waXBlL2VjLWN1cnJlbmN5LXN5bWJvbC5waXBlXCI7XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHBhcmEgbWFuZWphciBsYSB2aXN0YSBkZWwgcHJlY2lvIGRlIHVuIHByb2R1Y3RvLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJpY2UtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0VjQ3VycmVuY3lTeW1ib2xQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaWNlRWNDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIFByZWNpbyBkZSB1biBwcm9kdWN0by5cclxuICAgKi9cclxuXHRASW5wdXQoKSBwcmljZTogYW55O1xyXG4gIC8qKlxyXG4gICAqIFByZWNpbyBkZSB2ZW50YSBkZSB1biBwcm9kdWN0by5cclxuICAgKi9cclxuXHRASW5wdXQoKSBzYWxlcHJpY2U6IGFueTtcclxufVxyXG4iLCIgPGRpdiBjbGFzcz1cInByaWNlXCI+XHJcbiAgICBAaWYoc2FsZXByaWNlKXtcclxuICAgIDwhLS1XaXRoIHNhbGVwcmljZS0tPlxyXG4gXHJcbiAgICBAaWYocHJpY2UgJiYgcHJpY2Uuc3BsaXQoJyAtICcpLmxlbmd0aCA+IDEpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS13aGl0aFNhbGVwcmljZVwiPlxyXG4gICAgICAgICAgICA8ZGVsIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcmljZS5zcGxpdCgnIC0gJylbMF0gfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgICAgICB7eyBwcmljZS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgIDwvZGVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfUBlbHNlIHtcclxuICAgICAgICA8IS0tU2ltcGxlIFByaWNlIERlbC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zaW1wbGVEZWxcIj5cclxuICAgICAgICAgICAgPGRlbCBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAge3sgcHJpY2UgfCBlY0N1cnJlbmN5U3ltYm9sIH19PC9kZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYoc2FsZXByaWNlICYmIHNhbGVwcmljZS5zcGxpdCgnIC0gJykubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICBzYWxlcHJpY2Uuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICBzYWxlcHJpY2Uuc3BsaXQoJyAtICcpWzFdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPCEtLVNpbXBsZSBzYWxlcHJpY2UtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utc2ltcGxlU2FsZXByaWNlXCI+XHJcbiAgICAgICAgICAgIHt7IHNhbGVwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxufUBlbHNlIHtcclxuICAgIDwhLS1Pbmx5IFByaWNlLS0+XHJcblxyXG4gICAgQGlmKHByaWNlICYmIHByaWNlLnNwbGl0KCcgLSAnKS5sZW5ndGggPiAxKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utb25seVByaWNlXCI+XHJcbiAgICAgICAgICAgIHt7IHByaWNlLnNwbGl0KCcgLSAnKVswXSB8IGVjQ3VycmVuY3lTeW1ib2wgfX0gLVxyXG4gICAgICAgICAgICB7eyBwcmljZS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgPC9kaXY+IFxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPCEtLVNpbXBsZSBwcmljZS0tPlxyXG4gICAgICAgIDxkZWw+Jm5ic3A7PC9kZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZVByaWNlXCI+XHJcbiAgICAgICAgICAgIHt7IHByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG59XHJcbjwvZGl2PiAgIl19
@@ -0,0 +1,10 @@
1
+ //Directives base
2
+ import { ProductStockDirective } from './product-stock.directive';
3
+ import { ProductOffDirective } from './product-off.directive';
4
+ export const directives = [
5
+ ProductOffDirective,
6
+ ProductStockDirective,
7
+ ];
8
+ export * from './product-stock.directive';
9
+ export * from './product-off.directive';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVU7SUFDN0IsbUJBQW1CO0lBQ25CLHFCQUFxQjtDQUN4QixDQUFDO0FBRUYsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy9EaXJlY3RpdmVzIGJhc2VcclxuXHJcbmltcG9ydCB7IFByb2R1Y3RTdG9ja0RpcmVjdGl2ZSB9IGZyb20gJy4vcHJvZHVjdC1zdG9jay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0T2ZmRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9kdWN0LW9mZi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlczogYW55W10gPSBbXHJcbiAgICBQcm9kdWN0T2ZmRGlyZWN0aXZlLFxyXG4gICAgUHJvZHVjdFN0b2NrRGlyZWN0aXZlLFxyXG5dO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXN0b2NrLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1vZmYuZGlyZWN0aXZlJztcclxuIl19
@@ -0,0 +1,119 @@
1
+ import { Directive, Input, Inject, } from "@angular/core";
2
+ import { DOCUMENT } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ export class ParamsContext {
5
+ }
6
+ export class ProductOffDirective {
7
+ document;
8
+ elementRef;
9
+ renderer;
10
+ product;
11
+ classStr = "";
12
+ customMessageStr = "{discount}% OFF";
13
+ set ecProductOff(value) {
14
+ this.product = value;
15
+ }
16
+ set classStrSpacing(value) {
17
+ this.classStr = value;
18
+ }
19
+ set customMessage(value) {
20
+ this.customMessageStr = value;
21
+ }
22
+ constructor(document, elementRef, renderer) {
23
+ this.document = document;
24
+ this.elementRef = elementRef;
25
+ this.renderer = renderer;
26
+ }
27
+ ngOnInit() { }
28
+ hasDiscount = (product) => {
29
+ if (!product.saleprice) {
30
+ return null;
31
+ }
32
+ if (typeof product.price === 'string' && product.price.includes("-") &&
33
+ typeof product.saleprice === 'string' && product.saleprice.includes("-")) {
34
+ let prices = product.price.split('-');
35
+ let saleprices = product.saleprice.split('-');
36
+ let saleBf = this.generateDiscount(prices[1]?.trim(), saleprices[1]?.trim());
37
+ let saleLt = this.generateDiscount(prices[0]?.trim(), saleprices[0]?.trim());
38
+ if (!saleBf && !saleLt) {
39
+ return null;
40
+ }
41
+ if (saleBf && saleLt && saleBf === saleLt) {
42
+ return `${saleBf}`;
43
+ }
44
+ if (saleBf && !saleLt) {
45
+ return `${saleBf}`;
46
+ }
47
+ if (!saleBf && saleLt) {
48
+ return `${saleLt}`;
49
+ }
50
+ return `${saleBf} - ${saleLt}`;
51
+ }
52
+ else {
53
+ if (parseInt(product.price) > parseInt(product.saleprice)) {
54
+ return this.generateDiscount(product.price, product.saleprice)?.toString() || null;
55
+ }
56
+ }
57
+ return null; // Ensure a return value in all code paths
58
+ };
59
+ generateDiscount = (price, saleprice) => {
60
+ if (parseFloat(price) > parseFloat(saleprice)) {
61
+ let result = ((parseFloat(price) - parseFloat(saleprice)) /
62
+ parseFloat(price)) *
63
+ 100;
64
+ if (Number.isNaN(result)) {
65
+ return null;
66
+ }
67
+ else
68
+ return Math.round(result); //Math.floor(result);
69
+ }
70
+ return null;
71
+ };
72
+ ngOnChanges(changes) {
73
+ if (this.product.price) {
74
+ let discount = this.hasDiscount(this.product);
75
+ this.elementRef.nativeElement.childNodes.forEach((node) => {
76
+ this.renderer.removeChild(this.elementRef.nativeElement, node);
77
+ });
78
+ if (discount) {
79
+ this.renderer.appendChild(this.elementRef.nativeElement, this.createImage(discount));
80
+ }
81
+ // else {
82
+ // this.renderer.removeChild(this.elementRef.nativeElement.parentElement, this.elementRef.nativeElement);
83
+ // }
84
+ }
85
+ }
86
+ createImage = (discount) => {
87
+ let popover = this.renderer.createElement("a");
88
+ this.customMessageStr = this.customMessageStr.replace('{discount}', discount);
89
+ this.renderer.setProperty(popover, "innerHTML", this.customMessageStr);
90
+ this.classStr?.split(" ").forEach((cl) => {
91
+ try {
92
+ this.renderer.addClass(popover, cl);
93
+ }
94
+ catch (error) {
95
+ console.log('add class directive -> ', error);
96
+ }
97
+ });
98
+ return popover;
99
+ };
100
+ ngOnDestroy() { }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductOffDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
102
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ProductOffDirective, selector: "[ecProductOff]", inputs: { ecProductOff: "ecProductOff", classStrSpacing: "classStrSpacing", customMessage: "customMessage" }, usesOnChanges: true, ngImport: i0 });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductOffDirective, decorators: [{
105
+ type: Directive,
106
+ args: [{
107
+ selector: "[ecProductOff]",
108
+ }]
109
+ }], ctorParameters: () => [{ type: Document, decorators: [{
110
+ type: Inject,
111
+ args: [DOCUMENT]
112
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { ecProductOff: [{
113
+ type: Input
114
+ }], classStrSpacing: [{
115
+ type: Input
116
+ }], customMessage: [{
117
+ type: Input
118
+ }] } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1vZmYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWRpcmVjdGl2ZS9wcm9kdWN0LW9mZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBR0wsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0MsTUFBTSxPQUFPLGFBQWE7Q0FFekI7QUFLRCxNQUFNLE9BQU8sbUJBQW1CO0lBb0JFO0lBQ2xCO0lBQ0E7SUFwQkosT0FBTyxDQUFNO0lBQ2IsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztJQUU3QyxJQUNJLFlBQVksQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUNJLGVBQWUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUNJLGFBQWEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzhCLFFBQWtCLEVBQ3BDLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRkQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDM0IsQ0FBQztJQUVMLFFBQVEsS0FBSyxDQUFDO0lBQ2QsV0FBVyxHQUFHLENBQUMsT0FBK0QsRUFBNkIsRUFBRTtRQUV6RyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2hFLE9BQU8sT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzRSxJQUFJLE1BQU0sR0FBYSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLFVBQVUsR0FBYSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4RCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RixJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQztZQUNELElBQUksTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxPQUFPLEdBQUcsTUFBTSxNQUFNLE1BQU0sRUFBRSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBbUIsQ0FBQyxFQUFFLENBQUM7Z0JBQzVFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN2RixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsMENBQTBDO0lBQzNELENBQUMsQ0FBQztJQUdGLGdCQUFnQixHQUFHLENBQUMsS0FBc0IsRUFBRSxTQUEwQixFQUFpQixFQUFFO1FBRXJGLElBQUksVUFBVSxDQUFDLEtBQWUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFtQixDQUFDLEVBQUUsQ0FBQztZQUNoRSxJQUFJLE1BQU0sR0FDTixDQUFDLENBQUMsVUFBVSxDQUFDLEtBQWUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFtQixDQUFDLENBQUM7Z0JBQzVELFVBQVUsQ0FBQyxLQUFlLENBQUMsQ0FBQztnQkFDaEMsR0FBRyxDQUFDO1lBQ1IsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7O2dCQUFNLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUMzRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFBO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFvQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO2dCQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRSxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7WUFDRCxTQUFTO1lBQ1QsNkdBQTZHO1lBQzdHLElBQUk7UUFDUixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsR0FBRyxDQUFDLFFBQWdCLEVBQWUsRUFBRTtRQUM1QyxJQUFJLE9BQU8sR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLFdBQVcsS0FBSyxDQUFDO3VHQXBHUixtQkFBbUIsa0JBb0JoQixRQUFROzJGQXBCWCxtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7OzBCQXFCUSxNQUFNOzJCQUFDLFFBQVE7MEZBYmhCLFlBQVk7c0JBRGYsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQUtGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxuICAgIE9uRGVzdHJveSxcclxuICAgIElucHV0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEluamVjdCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyYW1zQ29udGV4dCB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2VjUHJvZHVjdE9mZl1cIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RPZmZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwcml2YXRlIHByb2R1Y3Q6IGFueTtcclxuICAgIHByaXZhdGUgY2xhc3NTdHI6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwcml2YXRlIGN1c3RvbU1lc3NhZ2VTdHIgPSBcIntkaXNjb3VudH0lIE9GRlwiO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZWNQcm9kdWN0T2ZmKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3QgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgY2xhc3NTdHJTcGFjaW5nKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmNsYXNzU3RyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGN1c3RvbU1lc3NhZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZVN0ciA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkgeyB9XHJcbiAgICBoYXNEaXNjb3VudCA9IChwcm9kdWN0OiB7IHByaWNlOiBzdHJpbmcgfCBudW1iZXI7IHNhbGVwcmljZTogc3RyaW5nIHwgbnVtYmVyIH0pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCFwcm9kdWN0LnNhbGVwcmljZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9kdWN0LnByaWNlID09PSAnc3RyaW5nJyAmJiBwcm9kdWN0LnByaWNlLmluY2x1ZGVzKFwiLVwiKSAmJiBcclxuICAgICAgICAgICAgdHlwZW9mIHByb2R1Y3Quc2FsZXByaWNlID09PSAnc3RyaW5nJyAmJiBwcm9kdWN0LnNhbGVwcmljZS5pbmNsdWRlcyhcIi1cIikpIHtcclxuICAgICAgICAgICAgbGV0IHByaWNlczogc3RyaW5nW10gPSBwcm9kdWN0LnByaWNlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlcHJpY2VzOiBzdHJpbmdbXSA9IHByb2R1Y3Quc2FsZXByaWNlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlQmY6IG51bWJlciB8IG51bGwgPSB0aGlzLmdlbmVyYXRlRGlzY291bnQocHJpY2VzWzFdPy50cmltKCksIHNhbGVwcmljZXNbMV0/LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlTHQ6IG51bWJlciB8IG51bGwgPSB0aGlzLmdlbmVyYXRlRGlzY291bnQocHJpY2VzWzBdPy50cmltKCksIHNhbGVwcmljZXNbMF0/LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGlmICghc2FsZUJmICYmICFzYWxlTHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzYWxlQmYgJiYgc2FsZUx0ICYmIHNhbGVCZiA9PT0gc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUJmfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNhbGVCZiAmJiAhc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUJmfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFzYWxlQmYgJiYgc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUx0fWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGAke3NhbGVCZn0gLSAke3NhbGVMdH1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChwYXJzZUludChwcm9kdWN0LnByaWNlIGFzIHN0cmluZykgPiBwYXJzZUludChwcm9kdWN0LnNhbGVwcmljZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZURpc2NvdW50KHByb2R1Y3QucHJpY2UsIHByb2R1Y3Quc2FsZXByaWNlKT8udG9TdHJpbmcoKSB8fCBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsOyAvLyBFbnN1cmUgYSByZXR1cm4gdmFsdWUgaW4gYWxsIGNvZGUgcGF0aHNcclxuICAgIH07XHJcblxyXG5cclxuICAgIGdlbmVyYXRlRGlzY291bnQgPSAocHJpY2U6IHN0cmluZyB8IG51bWJlciwgc2FsZXByaWNlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgfCBudWxsID0+IHtcclxuICAgICAgICBcclxuICAgICAgICBpZiAocGFyc2VGbG9hdChwcmljZSBhcyBzdHJpbmcpID4gcGFyc2VGbG9hdChzYWxlcHJpY2UgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID1cclxuICAgICAgICAgICAgICAgICgocGFyc2VGbG9hdChwcmljZSBhcyBzdHJpbmcpIC0gcGFyc2VGbG9hdChzYWxlcHJpY2UgYXMgc3RyaW5nKSkgL1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQocHJpY2UgYXMgc3RyaW5nKSkgKlxyXG4gICAgICAgICAgICAgICAgMTAwO1xyXG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgcmV0dXJuIE1hdGgucm91bmQocmVzdWx0KTsgLy9NYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0LnByaWNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IHRoaXMuaGFzRGlzY291bnQodGhpcy5wcm9kdWN0KTtcclxuICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMgYXMgTm9kZUxpc3RPZjxDaGlsZE5vZGU+KS5mb3JFYWNoKChub2RlOiBDaGlsZE5vZGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGRpc2NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmNyZWF0ZUltYWdlKGRpc2NvdW50KSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlSW1hZ2UgPSAoZGlzY291bnQ6IHN0cmluZyk6IEhUTUxFbGVtZW50ID0+IHtcclxuICAgICAgICBsZXQgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZVN0ciA9IHRoaXMuY3VzdG9tTWVzc2FnZVN0ci5yZXBsYWNlKCd7ZGlzY291bnR9JywgZGlzY291bnQpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkocG9wb3ZlciwgXCJpbm5lckhUTUxcIiwgdGhpcy5jdXN0b21NZXNzYWdlU3RyKTtcclxuICAgICAgICB0aGlzLmNsYXNzU3RyPy5zcGxpdChcIiBcIikuZm9yRWFjaCgoY2w6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwb3BvdmVyLCBjbCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUubG9nKCdhZGQgY2xhc3MgZGlyZWN0aXZlIC0+ICcsIGVycm9yKTsgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBwb3BvdmVyO1xyXG4gICAgfTtcclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHsgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ProductStockDirective {
4
+ templateRef;
5
+ viewContainer;
6
+ productDirective = null;
7
+ ecProductStockElse;
8
+ set ecProductStock(product) {
9
+ this.productDirective = product;
10
+ this.viewContainer.clear();
11
+ if (this.validateStock()) {
12
+ if (this.ecProductStockElse) {
13
+ this.viewContainer.createEmbeddedView(this.ecProductStockElse);
14
+ }
15
+ else {
16
+ console.error('falta definir el template de agotado');
17
+ }
18
+ }
19
+ else {
20
+ this.viewContainer.createEmbeddedView(this.templateRef);
21
+ }
22
+ }
23
+ constructor(templateRef, viewContainer) {
24
+ this.templateRef = templateRef;
25
+ this.viewContainer = viewContainer;
26
+ }
27
+ ngOnInit() { }
28
+ ngOnDestroy() { }
29
+ ngOnChanges() { }
30
+ validateStock = () => {
31
+ if (!this.productDirective || this.productDirective.special_mark == undefined || this.productDirective.variants == undefined) {
32
+ setTimeout(() => {
33
+ this.validateStock();
34
+ }, 1000);
35
+ return false; // Ensure a boolean is returned
36
+ }
37
+ else {
38
+ return this.checkValuesForStock();
39
+ }
40
+ };
41
+ checkValuesForStock = () => {
42
+ let existMark = false;
43
+ // Check special_mark
44
+ if (this.productDirective?.special_mark) {
45
+ this.productDirective.special_mark.forEach(special_mark => {
46
+ if (special_mark.type === 'out_of_stock') {
47
+ existMark = true;
48
+ }
49
+ });
50
+ }
51
+ // Check variants
52
+ if (!existMark && this.productDirective) {
53
+ existMark = !!(this.productDirective.variant_id
54
+ ? this.productDirective.variants?.find(v => v.code === this.productDirective?.variant_id && v.stock > 0) === undefined
55
+ : this.productDirective.variants?.find(v => v.stock > 0) === undefined);
56
+ }
57
+ return existMark;
58
+ };
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductStockDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
60
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ProductStockDirective, selector: "[ecProductStock]", inputs: { ecProductStockElse: "ecProductStockElse", ecProductStock: "ecProductStock" }, usesOnChanges: true, ngImport: i0 });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductStockDirective, decorators: [{
63
+ type: Directive,
64
+ args: [{
65
+ selector: "[ecProductStock]"
66
+ }]
67
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { ecProductStockElse: [{
68
+ type: Input
69
+ }], ecProductStock: [{
70
+ type: Input
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zdG9jay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL3Byb2R1Y3Qtc3RvY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUF5RixNQUFNLGVBQWUsQ0FBQzs7QUFPcEosTUFBTSxPQUFPLHFCQUFxQjtJQXVCbEI7SUFDQTtJQXRCSixnQkFBZ0IsR0FBbUIsSUFBSSxDQUFDO0lBR2hELGtCQUFrQixDQUFvQjtJQUV0QyxJQUNJLGNBQWMsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFBO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQUksQ0FBQztnQkFDRixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUNZLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDM0MsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxLQUFLLENBQUM7SUFFakIsV0FBVyxLQUFLLENBQUM7SUFFakIsYUFBYSxHQUFHLEdBQVksRUFBRTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1QsT0FBTyxLQUFLLENBQUMsQ0FBQywrQkFBK0I7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxtQkFBbUIsR0FBRyxHQUFZLEVBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHFCQUFxQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO29CQUN2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUNuRSxLQUFLLFNBQVM7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQzdFLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyxDQUFBO3VHQXBFUSxxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjsrR0FNRyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBSZW5kZXJlcjIsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltlY1Byb2R1Y3RTdG9ja11cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFN0b2NrRGlyZWN0aXZlIHtcclxuXHJcbiAgICBwcml2YXRlIHByb2R1Y3REaXJlY3RpdmU6IFByb2R1Y3QgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZWNQcm9kdWN0U3RvY2tFbHNlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGVjUHJvZHVjdFN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3REaXJlY3RpdmUgPSBwcm9kdWN0XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVTdG9jaygpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVjUHJvZHVjdFN0b2NrRWxzZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVjUHJvZHVjdFN0b2NrRWxzZSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZmFsdGEgZGVmaW5pciBlbCB0ZW1wbGF0ZSBkZSBhZ290YWRvJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHsgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XHJcblxyXG4gICAgdmFsaWRhdGVTdG9jayA9ICgpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdERpcmVjdGl2ZSB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUuc3BlY2lhbF9tYXJrID09IHVuZGVmaW5lZCB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudHMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZVN0b2NrKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEVuc3VyZSBhIGJvb2xlYW4gaXMgcmV0dXJuZWRcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlc0ZvclN0b2NrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVmFsdWVzRm9yU3RvY2sgPSAoKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgICAgbGV0IGV4aXN0TWFyayA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBDaGVjayBzcGVjaWFsX21hcmtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0RGlyZWN0aXZlPy5zcGVjaWFsX21hcmspIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0RGlyZWN0aXZlLnNwZWNpYWxfbWFyay5mb3JFYWNoKHNwZWNpYWxfbWFyayA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3BlY2lhbF9tYXJrLnR5cGUgPT09ICdvdXRfb2Zfc3RvY2snKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RNYXJrID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDaGVjayB2YXJpYW50c1xyXG4gICAgICAgIGlmICghZXhpc3RNYXJrICYmIHRoaXMucHJvZHVjdERpcmVjdGl2ZSkge1xyXG4gICAgICAgICAgICBleGlzdE1hcmsgPSAhIShcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdERpcmVjdGl2ZS52YXJpYW50X2lkXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudHM/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHYgPT4gdi5jb2RlID09PSB0aGlzLnByb2R1Y3REaXJlY3RpdmU/LnZhcmlhbnRfaWQgJiYgdi5zdG9jayA+IDBcclxuICAgICAgICAgICAgICAgICAgICApID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMucHJvZHVjdERpcmVjdGl2ZS52YXJpYW50cz8uZmluZCh2ID0+IHYuc3RvY2sgPiAwKSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXhpc3RNYXJrO1xyXG4gICAgfVxyXG59Il19