ng-easycommerce-v18 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +9 -3
- package/fesm2022/ng-easycommerce-v18.mjs +7 -2
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@ import { EcCurrencySymbolPipe } from "../../../ec-pipe/ec-currency-symbol.pipe";
|
|
|
3
3
|
import { ChannelService } from '../../../ec-services';
|
|
4
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { AuthService } from '../../../ec-services';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common";
|
|
8
9
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -28,13 +29,18 @@ export class PriceEcComponent {
|
|
|
28
29
|
customTaxTemplate = null;
|
|
29
30
|
customOnlyTaxLabelTemplate = null;
|
|
30
31
|
_channelService = inject(ChannelService);
|
|
32
|
+
_authService = inject(AuthService);
|
|
31
33
|
showTaxLegend = false;
|
|
32
34
|
hideTaxes = false;
|
|
35
|
+
showPricesOnlyToLoggedUsers = false;
|
|
36
|
+
logged = false;
|
|
33
37
|
ngOnInit() {
|
|
34
38
|
this._channelService.channel$.subscribe(cfg => {
|
|
35
39
|
this.showTaxLegend = !!cfg.showTaxLegend;
|
|
36
40
|
this.hideTaxes = !!cfg.hideTaxes;
|
|
41
|
+
this.showPricesOnlyToLoggedUsers = !!cfg.showPricesOnlyToLoggedUsers;
|
|
37
42
|
});
|
|
43
|
+
this.logged = this._authService.isAuthenticated();
|
|
38
44
|
}
|
|
39
45
|
/** Determina si mostrar la sección de impuestos */
|
|
40
46
|
get shouldShowTaxes() {
|
|
@@ -53,11 +59,11 @@ export class PriceEcComponent {
|
|
|
53
59
|
return !!value && value.split(' - ').length === 2;
|
|
54
60
|
}
|
|
55
61
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
62
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice", basePrice: "basePrice", taxeAmount: "taxeAmount", taxes: "taxes", priceSize: "priceSize", showTaxLegendOnly: "showTaxLegendOnly", disableTaxInfo: "disableTaxInfo", customPriceTemplate: "customPriceTemplate", customSalePriceTemplate: "customSalePriceTemplate", customSimplePriceTemplate: "customSimplePriceTemplate", customSimpleSalePriceTemplate: "customSimpleSalePriceTemplate", customTaxTemplate: "customTaxTemplate", customOnlyTaxLabelTemplate: "customOnlyTaxLabelTemplate" }, ngImport: i0, template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
57
63
|
}
|
|
58
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, decorators: [{
|
|
59
65
|
type: Component,
|
|
60
|
-
args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template
|
|
66
|
+
args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"] }]
|
|
61
67
|
}], propDecorators: { price: [{
|
|
62
68
|
type: Input
|
|
63
69
|
}], saleprice: [{
|
|
@@ -87,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
87
93
|
}], customOnlyTaxLabelTemplate: [{
|
|
88
94
|
type: Input
|
|
89
95
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFDL0M7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFVBQVU7SUFDRCxLQUFLLENBQVU7SUFDZixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFVBQVUsQ0FBVTtJQUNwQixLQUFLLEdBQXlDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFbkYsV0FBVztJQUNGLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFekMsd0NBQXdDO0lBQy9CLG1CQUFtQixHQUFzQyxJQUFJLENBQUM7SUFDOUQsdUJBQXVCLEdBQWtDLElBQUksQ0FBQztJQUM5RCx5QkFBeUIsR0FBZ0MsSUFBSSxDQUFDO0lBQzlELDZCQUE2QixHQUE0QixJQUFJLENBQUM7SUFDOUQsaUJBQWlCLEdBQXdDLElBQUksQ0FBQztJQUM5RCwwQkFBMEIsR0FBK0IsSUFBSSxDQUFDO0lBRS9ELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV6QixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYztlQUNwQixJQUFJLENBQUMsYUFBYTtlQUNsQixDQUFDLElBQUksQ0FBQyxTQUFTO2VBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2VBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLFFBQVEsQ0FBQyxLQUFjO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt3R0FqRFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsMGxCQ2Y3QiwrK0lBa0hjLHNnQkR2R0YsWUFBWSxxU0FBRSxvQkFBb0Isd0RBQUUsZUFBZTs7NEZBSWxELGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsQ0FBQzs4QkFNckQsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL2VjLXBpcGUvZWMtY3VycmVuY3ktc3ltYm9sLnBpcGVcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBwYXJhIG1hbmVqYXIgbGEgdmlzdGEgZGVsIHByZWNpbyBkZSB1biBwcm9kdWN0by5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXByaWNlLWVjJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVjQ3VycmVuY3lTeW1ib2xQaXBlLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ByaWNlLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpY2VFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gUHJlY2lvc1xyXG4gIEBJbnB1dCgpIHByaWNlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNhbGVwcmljZT86IHN0cmluZztcclxuICBASW5wdXQoKSBiYXNlUHJpY2U/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGF4ZUFtb3VudD86IG51bWJlcjtcclxuICBASW5wdXQoKSB0YXhlczogeyBOYW1lOiBzdHJpbmc7IHRheGVBbW91bnQ6IG51bWJlciB9ID0geyBOYW1lOiAnJywgdGF4ZUFtb3VudDogMCB9O1xyXG5cclxuICAvLyBPcGNpb25lc1xyXG4gIEBJbnB1dCgpIHByaWNlU2l6ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dUYXhMZWdlbmRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZVRheEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gVGVtcGxhdGVzIHBlcnNvbmFsaXphZG9zIChwcm95ZWNjacOzbilcclxuICBASW5wdXQoKSBjdXN0b21QcmljZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVNhbGVQcmljZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRheFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICAgICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsICAgID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlID0gaW5qZWN0KENoYW5uZWxTZXJ2aWNlKTtcclxuICBwdWJsaWMgc2hvd1RheExlZ2VuZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlVGF4ZXMgPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jaGFubmVsU2VydmljZS5jaGFubmVsJC5zdWJzY3JpYmUoY2ZnID0+IHtcclxuICAgICAgdGhpcy5zaG93VGF4TGVnZW5kID0gISFjZmcuc2hvd1RheExlZ2VuZDtcclxuICAgICAgdGhpcy5oaWRlVGF4ZXMgICAgID0gISFjZmcuaGlkZVRheGVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogRGV0ZXJtaW5hIHNpIG1vc3RyYXIgbGEgc2VjY2nDs24gZGUgaW1wdWVzdG9zICovXHJcbiAgZ2V0IHNob3VsZFNob3dUYXhlcygpOiBib29sZWFuIHsgICAgXHJcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZVRheEluZm9cclxuICAgICAgICAmJiB0aGlzLnNob3dUYXhMZWdlbmRcclxuICAgICAgICAmJiAhdGhpcy5oaWRlVGF4ZXNcclxuICAgICAgICAmJiAhIXRoaXMuYmFzZVByaWNlXHJcbiAgICAgICAgJiYgISF0aGlzLnRheGVBbW91bnQ7XHJcbiAgfVxyXG5cclxuICAvKiogQ2xhc2UgQ1NTIGJhc2Ugc2Vnw7puIHRhbWHDsW8gKi9cclxuICBnZXQgcHJpY2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJpY2VTaXplID8gJ3ByaWNlLXNtJyA6ICdwcmljZSc7XHJcbiAgfVxyXG5cclxuICAvKiogSGVscGVyIHBhcmEgZGV0ZWN0YXIgcmFuZ29zICovXHJcbiAgaGFzUmFuZ2UodmFsdWU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXZhbHVlICYmIHZhbHVlLnNwbGl0KCcgLSAnKS5sZW5ndGggPT09IDI7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TYWxlUHJpY2VUZW1wbGF0ZSB8fCBjdXN0b21QcmljZVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRQcmljZUJsb2NrXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tU2FsZVByaWNlVGVtcGxhdGUgfHwgY3VzdG9tUHJpY2VUZW1wbGF0ZVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UHJpY2VCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmljZVwiPlxyXG4gICAgICAgIDwhLS0gQ29uIHByZWNpbyBkZSBvZmVydGEgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNhbGVwcmljZTsgZWxzZSBvbmx5UHJpY2VCbG9ja1wiIGNsYXNzPVwibGluZS1oZWlnaHQtY3VzdG9tXCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFByZWNpbyBvcmlnaW5hbCBjb21vIHJhbmdvIG8gdGFjaGFkbyBzaW1wbGUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNSYW5nZShwcmljZSk7IGVsc2Ugc2ltcGxlUHJpY2VEZWxcIiBjbGFzcz1cInByaWNlLXdoaXRoU2FsZXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGVsIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzFdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2RlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE9mZXJ0YSBjb21vIHJhbmdvIG8gc2ltcGxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2Uoc2FsZXByaWNlKTsgZWxzZSBzaW1wbGVTYWxlUHJpY2VcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHNhbGVwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBzYWxlcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFPDs2xvIHByZWNpbyBzaW4gb2ZlcnRhIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb25seVByaWNlQmxvY2s+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNSYW5nZShwcmljZSk7IGVsc2Ugc2ltcGxlUHJpY2VcIiBjbGFzcz1cInByaWNlLW9ubHlQcmljZVwiPlxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHByaWNlIS5zcGxpdCgnIC0gJylbMF0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fSAtXHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gRmFsbGJhY2sgc2ltcGxlIHByaWNlIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TaW1wbGVQcmljZVRlbXBsYXRlOyBlbHNlIGZhbGxiYWNrU2ltcGxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TaW1wbGVQcmljZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpbXBsZVByaWNlPlxyXG4gICAgICAgICAgICA8ZGVsPiZuYnNwOzwvZGVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utc2ltcGxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBwcmljZS1kZWwgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVQcmljZURlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZURlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRlbCBjbGFzcz1cIlwiPnt7IHByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fTwvZGVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBzYWxlcHJpY2UgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVTYWxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZTsgZWxzZSBmYWxsYmFja1NpbXBsZVNhbGVQcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNpbXBsZVNhbGVQcmljZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpbXBsZVNhbGVQcmljZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZVNhbGVwcmljZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgc2FsZXByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIFNlY2Npw7NuIGRlIGltcHVlc3RvcyAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZFNob3dUYXhlc1wiPlxyXG4gICAgPCEtLSBTw7NsbyBsZXllbmRhIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUYXhMZWdlbmRPbmx5OyBlbHNlIGRldGFpbGVkVGF4QmxvY2tcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGU7IGVsc2UgZGVmYXVsdE9ubHlUYXhMYWJlbFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPbmx5VGF4TGFiZWw+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGF4ZXMtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdwcmljZS13aXRob3V0LW5hdGlvbmFsLXRheGVzJyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgIHt7IGJhc2VQcmljZSEgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEZXRhbGxlIGltcHVlc3RvcyAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGV0YWlsZWRUYXhCbG9jaz5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tVGF4VGVtcGxhdGU7IGVsc2UgZGVmYXVsdFRheEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UYXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRUYXhCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YXhlcy1zZWN0aW9uXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0YXhlcy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyAncHJpY2Utd2l0aG91dC1uYXRpb25hbC10YXhlcycgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgIHt7IGJhc2VQcmljZSEgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInRheGVzLWxpc3RcIj5cclxuICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAge3sgdGF4ZXMuTmFtZSB9fToge3sgdGF4ZUFtb3VudCB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBQ25EOztHQUVHO0FBUUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixVQUFVO0lBQ0QsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixVQUFVLENBQVU7SUFDcEIsS0FBSyxHQUF5QyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRW5GLFdBQVc7SUFDRixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUNuQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRXpDLHdDQUF3QztJQUMvQixtQkFBbUIsR0FBc0MsSUFBSSxDQUFDO0lBQzlELHVCQUF1QixHQUFrQyxJQUFJLENBQUM7SUFDOUQseUJBQXlCLEdBQWdDLElBQUksQ0FBQztJQUM5RCw2QkFBNkIsR0FBNEIsSUFBSSxDQUFDO0lBQzlELGlCQUFpQixHQUF3QyxJQUFJLENBQUM7SUFDOUQsMEJBQTBCLEdBQStCLElBQUksQ0FBQztJQUUvRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFdEIsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDckMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjO2VBQ3BCLElBQUksQ0FBQyxhQUFhO2VBQ2xCLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQy9DLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsUUFBUSxDQUFDLEtBQWM7UUFDckIsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO3dHQXREVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwwbEJDaEI3QixzaUpBb0hDLHNnQkR4R1csWUFBWSxxU0FBRSxvQkFBb0Isd0RBQUUsZUFBZTs7NEZBSWxELGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsQ0FBQzs4QkFNckQsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL2VjLXBpcGUvZWMtY3VycmVuY3ktc3ltYm9sLnBpcGVcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBtYW5lamFyIGxhIHZpc3RhIGRlbCBwcmVjaW8gZGUgdW4gcHJvZHVjdG8uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcmljZS1lYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBFY0N1cnJlbmN5U3ltYm9sUGlwZSwgVHJhbnNsYXRlTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaWNlRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFByZWNpb3NcclxuICBASW5wdXQoKSBwcmljZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzYWxlcHJpY2U/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYmFzZVByaWNlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRheGVBbW91bnQ/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgdGF4ZXM6IHsgTmFtZTogc3RyaW5nOyB0YXhlQW1vdW50OiBudW1iZXIgfSA9IHsgTmFtZTogJycsIHRheGVBbW91bnQ6IDAgfTtcclxuXHJcbiAgLy8gT3BjaW9uZXNcclxuICBASW5wdXQoKSBwcmljZVNpemU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VGF4TGVnZW5kT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVUYXhJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIFRlbXBsYXRlcyBwZXJzb25hbGl6YWRvcyAocHJveWVjY2nDs24pXHJcbiAgQElucHV0KCkgY3VzdG9tUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgICAgID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21TYWxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVNpbXBsZVByaWNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tU2ltcGxlU2FsZVByaWNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21UYXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSA9IGluamVjdChDaGFubmVsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICBwdWJsaWMgc2hvd1RheExlZ2VuZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlVGF4ZXMgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gZmFsc2U7XHJcbiAgcHVibGljIGxvZ2dlZCA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX2NoYW5uZWxTZXJ2aWNlLmNoYW5uZWwkLnN1YnNjcmliZShjZmcgPT4ge1xyXG4gICAgICB0aGlzLnNob3dUYXhMZWdlbmQgPSAhIWNmZy5zaG93VGF4TGVnZW5kO1xyXG4gICAgICB0aGlzLmhpZGVUYXhlcyAgICAgPSAhIWNmZy5oaWRlVGF4ZXM7XHJcbiAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjZmcuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xyXG4gICAgfSk7XHJcbiAgIHRoaXMubG9nZ2VkPSB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBEZXRlcm1pbmEgc2kgbW9zdHJhciBsYSBzZWNjacOzbiBkZSBpbXB1ZXN0b3MgKi9cclxuICBnZXQgc2hvdWxkU2hvd1RheGVzKCk6IGJvb2xlYW4geyAgICBcclxuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlVGF4SW5mb1xyXG4gICAgICAgICYmIHRoaXMuc2hvd1RheExlZ2VuZFxyXG4gICAgICAgICYmICF0aGlzLmhpZGVUYXhlc1xyXG4gICAgICAgICYmICEhdGhpcy5iYXNlUHJpY2VcclxuICAgICAgICAmJiAhIXRoaXMudGF4ZUFtb3VudDtcclxuICB9XHJcblxyXG4gIC8qKiBDbGFzZSBDU1MgYmFzZSBzZWfDum4gdGFtYcOxbyAqL1xyXG4gIGdldCBwcmljZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmljZVNpemUgPyAncHJpY2Utc20nIDogJ3ByaWNlJztcclxuICB9XHJcblxyXG4gIC8qKiBIZWxwZXIgcGFyYSBkZXRlY3RhciByYW5nb3MgKi9cclxuICBoYXNSYW5nZSh2YWx1ZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdmFsdWUuc3BsaXQoJyAtICcpLmxlbmd0aCA9PT0gMjtcclxuICB9XHJcbn1cclxuIiwiQGlmICghc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzIHx8IGxvZ2dlZCkge1xyXG48bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2FsZVByaWNlVGVtcGxhdGUgfHwgY3VzdG9tUHJpY2VUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0UHJpY2VCbG9ja1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNhbGVQcmljZVRlbXBsYXRlIHx8IGN1c3RvbVByaWNlVGVtcGxhdGVcIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFByaWNlQmxvY2s+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpY2VcIj5cclxuICAgICAgICA8IS0tIENvbiBwcmVjaW8gZGUgb2ZlcnRhIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzYWxlcHJpY2U7IGVsc2Ugb25seVByaWNlQmxvY2tcIiBjbGFzcz1cImxpbmUtaGVpZ2h0LWN1c3RvbVwiPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQcmVjaW8gb3JpZ2luYWwgY29tbyByYW5nbyBvIHRhY2hhZG8gc2ltcGxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2UocHJpY2UpOyBlbHNlIHNpbXBsZVByaWNlRGVsXCIgY2xhc3M9XCJwcmljZS13aGl0aFNhbGVwcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRlbCBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVswXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPZmVydGEgY29tbyByYW5nbyBvIHNpbXBsZSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1JhbmdlKHNhbGVwcmljZSk7IGVsc2Ugc2ltcGxlU2FsZVByaWNlXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBzYWxlcHJpY2UhLnNwbGl0KCcgLSAnKVswXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgc2FsZXByaWNlIS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBTw7NsbyBwcmVjaW8gc2luIG9mZXJ0YSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI29ubHlQcmljZUJsb2NrPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2UocHJpY2UpOyBlbHNlIHNpbXBsZVByaWNlXCIgY2xhc3M9XCJwcmljZS1vbmx5UHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgfX0gLVxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHByaWNlIS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBwcmljZSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZVByaWNlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZTsgZWxzZSBmYWxsYmFja1NpbXBsZVByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaW1wbGVQcmljZT5cclxuICAgICAgICAgICAgPGRlbD4mbmJzcDs8L2RlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZVByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBGYWxsYmFjayBzaW1wbGUgcHJpY2UtZGVsIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlUHJpY2VEZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zaW1wbGVEZWxcIj5cclxuICAgICAgICAgICAgICAgIDxkZWwgY2xhc3M9XCJcIj57eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX08L2RlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBGYWxsYmFjayBzaW1wbGUgc2FsZXByaWNlIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlU2FsZVByaWNlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2ltcGxlU2FsZVByaWNlVGVtcGxhdGU7IGVsc2UgZmFsbGJhY2tTaW1wbGVTYWxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaW1wbGVTYWxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zaW1wbGVTYWxlcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHNhbGVwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBTZWNjacOzbiBkZSBpbXB1ZXN0b3MgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG91bGRTaG93VGF4ZXNcIj5cclxuICAgIDwhLS0gU8OzbG8gbGV5ZW5kYSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGF4TGVnZW5kT25seTsgZWxzZSBkZXRhaWxlZFRheEJsb2NrXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRPbmx5VGF4TGFiZWxcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T25seVRheExhYmVsPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInRheGVzLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAncHJpY2Utd2l0aG91dC1uYXRpb25hbC10YXhlcycgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICB7eyBiYXNlUHJpY2UhIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRGV0YWxsZSBpbXB1ZXN0b3MgLS0+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RldGFpbGVkVGF4QmxvY2s+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbVRheFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUYXhCbG9ja1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVGF4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGF4QmxvY2s+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGF4ZXMtc2VjdGlvblwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGF4ZXMtdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgJ3ByaWNlLXdpdGhvdXQtbmF0aW9uYWwtdGF4ZXMnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAgICAgICAgICB7eyBiYXNlUHJpY2UhIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8dWwgY2xhc3M9XCJ0YXhlcy1saXN0XCI+XHJcbiAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgIHt7IHRheGVzLk5hbWUgfX06IHt7IHRheGVBbW91bnQgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG59Il19
|
|
@@ -6510,13 +6510,18 @@ class PriceEcComponent {
|
|
|
6510
6510
|
customTaxTemplate = null;
|
|
6511
6511
|
customOnlyTaxLabelTemplate = null;
|
|
6512
6512
|
_channelService = inject(ChannelService);
|
|
6513
|
+
_authService = inject(AuthService);
|
|
6513
6514
|
showTaxLegend = false;
|
|
6514
6515
|
hideTaxes = false;
|
|
6516
|
+
showPricesOnlyToLoggedUsers = false;
|
|
6517
|
+
logged = false;
|
|
6515
6518
|
ngOnInit() {
|
|
6516
6519
|
this._channelService.channel$.subscribe(cfg => {
|
|
6517
6520
|
this.showTaxLegend = !!cfg.showTaxLegend;
|
|
6518
6521
|
this.hideTaxes = !!cfg.hideTaxes;
|
|
6522
|
+
this.showPricesOnlyToLoggedUsers = !!cfg.showPricesOnlyToLoggedUsers;
|
|
6519
6523
|
});
|
|
6524
|
+
this.logged = this._authService.isAuthenticated();
|
|
6520
6525
|
}
|
|
6521
6526
|
/** Determina si mostrar la sección de impuestos */
|
|
6522
6527
|
get shouldShowTaxes() {
|
|
@@ -6535,11 +6540,11 @@ class PriceEcComponent {
|
|
|
6535
6540
|
return !!value && value.split(' - ').length === 2;
|
|
6536
6541
|
}
|
|
6537
6542
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6538
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6543
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice", basePrice: "basePrice", taxeAmount: "taxeAmount", taxes: "taxes", priceSize: "priceSize", showTaxLegendOnly: "showTaxLegendOnly", disableTaxInfo: "disableTaxInfo", customPriceTemplate: "customPriceTemplate", customSalePriceTemplate: "customSalePriceTemplate", customSimplePriceTemplate: "customSimplePriceTemplate", customSimpleSalePriceTemplate: "customSimpleSalePriceTemplate", customTaxTemplate: "customTaxTemplate", customOnlyTaxLabelTemplate: "customOnlyTaxLabelTemplate" }, ngImport: i0, template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
|
|
6539
6544
|
}
|
|
6540
6545
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, decorators: [{
|
|
6541
6546
|
type: Component,
|
|
6542
|
-
args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template
|
|
6547
|
+
args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" 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 </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del> </del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"] }]
|
|
6543
6548
|
}], propDecorators: { price: [{
|
|
6544
6549
|
type: Input
|
|
6545
6550
|
}], saleprice: [{
|