ng-easycommerce-v18 0.0.8 → 0.1.0
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/assets/ec-i18n/es.json +15 -1
- package/esm2022/lib/api/connection.service.mjs +9 -5
- package/esm2022/lib/classes/component-helper.mjs +14 -0
- package/esm2022/lib/classes/filters/filter-factory.mjs +2 -1
- package/esm2022/lib/constants/api.constants.service.mjs +4 -4
- package/esm2022/lib/constants/core.constants.service.mjs +5 -4
- package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +7 -4
- package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +5 -5
- package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +14 -9
- package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +15 -9
- package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +7 -7
- package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +5 -5
- package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +13 -12
- package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +6 -5
- package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +16 -4
- package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +5 -5
- package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +6 -5
- package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +8 -5
- package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +35 -0
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +44 -18
- package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +161 -12
- package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/index.mjs +7 -4
- package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +10 -4
- package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +96 -0
- package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +76 -0
- package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +135 -0
- package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +75 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +6 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +17 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +17 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +17 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +17 -0
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +17 -0
- package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +124 -0
- package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +5 -5
- package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +4 -4
- package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +74 -0
- package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +4 -4
- package/esm2022/lib/ec-directive/product-off.directive.mjs +4 -4
- package/esm2022/lib/ec-directive/product-stock.directive.mjs +4 -4
- package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +4 -4
- package/esm2022/lib/ec-services/addressing.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/analytics.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/doppler.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/gtm.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +4 -4
- package/esm2022/lib/ec-services/auth.service.mjs +6 -6
- package/esm2022/lib/ec-services/auth.storage.service.mjs +4 -4
- package/esm2022/lib/ec-services/blocks-repository.service.mjs +4 -4
- package/esm2022/lib/ec-services/blocks.service.mjs +4 -4
- package/esm2022/lib/ec-services/cart.service.mjs +19 -4
- package/esm2022/lib/ec-services/channel.service.mjs +4 -4
- package/esm2022/lib/ec-services/checkout.service.mjs +4 -4
- package/esm2022/lib/ec-services/currency.service.mjs +4 -4
- package/esm2022/lib/ec-services/filters.service.mjs +29 -26
- package/esm2022/lib/ec-services/form.service.mjs +4 -4
- package/esm2022/lib/ec-services/local-storage.service.mjs +4 -4
- package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +4 -4
- package/esm2022/lib/ec-services/options.service.mjs +33 -8
- package/esm2022/lib/ec-services/order-utility.service.mjs +4 -4
- package/esm2022/lib/ec-services/orders.service.mjs +4 -4
- package/esm2022/lib/ec-services/pagination.service.mjs +15 -8
- package/esm2022/lib/ec-services/parameters.service.mjs +4 -4
- package/esm2022/lib/ec-services/payment.service.mjs +4 -4
- package/esm2022/lib/ec-services/product-detail.service.mjs +4 -4
- package/esm2022/lib/ec-services/products.service.mjs +9 -17
- package/esm2022/lib/ec-services/re-captcha.service.mjs +5 -5
- package/esm2022/lib/ec-services/reviews.service.mjs +98 -0
- package/esm2022/lib/ec-services/shipment.service.mjs +4 -4
- package/esm2022/lib/ec-services/stores.service.mjs +4 -4
- package/esm2022/lib/ec-services/test.service.mjs +4 -4
- package/esm2022/lib/ec-services/toast.service.mjs +4 -4
- package/esm2022/lib/interfaces/faqs.mjs +2 -0
- package/esm2022/lib/interfaces/filter.mjs +1 -1
- package/esm2022/lib/interfaces/index.mjs +2 -1
- package/fesm2022/ng-easycommerce-v18.mjs +1339 -402
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/api/connection.service.d.ts +1 -0
- package/lib/classes/component-helper.d.ts +9 -0
- package/lib/constants/core.constants.service.d.ts +1 -0
- package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +1 -0
- package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +5 -1
- package/lib/ec-components/cart-ec/cart-ec.component.d.ts +3 -0
- package/lib/ec-components/faqs-ec/faqs-ec.component.d.ts +14 -0
- package/lib/ec-components/filters-ec/filters-ec.component.d.ts +4 -3
- package/lib/ec-components/header-ec/header-ec.component.d.ts +22 -6
- package/lib/ec-components/index.d.ts +6 -0
- package/lib/ec-components/product-detail-ec/product-detail-ec.component.d.ts +2 -0
- package/lib/ec-components/related-products-ec/related-products-ec.component.d.ts +31 -0
- package/lib/ec-components/reviews-ec/reviews-ec.component.d.ts +34 -0
- package/lib/ec-components/reviews-form-ec/reviews-form-ec.component.d.ts +64 -0
- package/lib/ec-components/section-container-ec/section-container-ec.component.d.ts +22 -0
- package/lib/ec-components/share-ec/share-buttons-ec/index.d.ts +5 -0
- package/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.d.ts +6 -0
- package/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.d.ts +6 -0
- package/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.d.ts +6 -0
- package/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.d.ts +6 -0
- package/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.d.ts +6 -0
- package/lib/ec-components/share-ec/share-ec.component.d.ts +27 -0
- package/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.d.ts +31 -0
- package/lib/ec-services/cart.service.d.ts +1 -0
- package/lib/ec-services/filters.service.d.ts +3 -19
- package/lib/ec-services/options.service.d.ts +10 -5
- package/lib/ec-services/pagination.service.d.ts +1 -0
- package/lib/ec-services/products.service.d.ts +1 -2
- package/lib/ec-services/reviews.service.d.ts +74 -0
- package/lib/interfaces/faqs.d.ts +12 -0
- package/lib/interfaces/filter.d.ts +3 -1
- package/lib/interfaces/index.d.ts +1 -0
- package/package.json +1 -1
- package/esm2022/lib/classes/filters/PriceRangeFilter.mjs +0 -48
- package/lib/classes/filters/PriceRangeFilter.d.ts +0 -23
|
@@ -8,8 +8,10 @@ import { ProductDetailService, ProductsService, ToastService } from '../../ec-se
|
|
|
8
8
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
9
9
|
import { CoreConstantsService } from '../../constants';
|
|
10
10
|
import * as he from 'he';
|
|
11
|
+
import { OptionsService } from '../../ec-services';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export class ProductDetailEcComponent {
|
|
14
|
+
_optionsService = inject(OptionsService);
|
|
13
15
|
_productDetailService = inject(ProductDetailService);
|
|
14
16
|
_productService = inject(ProductsService);
|
|
15
17
|
_activedRoute = inject(ActivatedRoute);
|
|
@@ -30,6 +32,7 @@ export class ProductDetailEcComponent {
|
|
|
30
32
|
showReviews = false;
|
|
31
33
|
reset = false;
|
|
32
34
|
success = false;
|
|
35
|
+
categories = [];
|
|
33
36
|
quantity = signal(1);
|
|
34
37
|
parameters$ = this.parametersService.getParameters();
|
|
35
38
|
hasParams = this.parametersService.hasParams;
|
|
@@ -45,6 +48,9 @@ export class ProductDetailEcComponent {
|
|
|
45
48
|
this.injector.get(ChannelService).channel$.subscribe(channel => {
|
|
46
49
|
this.showReviews = channel.showReviews;
|
|
47
50
|
});
|
|
51
|
+
this._optionsService.getCategories().subscribe(res => {
|
|
52
|
+
this.categories = res;
|
|
53
|
+
});
|
|
48
54
|
}
|
|
49
55
|
ngOnInit() {
|
|
50
56
|
this.product$.subscribe(product => {
|
|
@@ -113,11 +119,11 @@ export class ProductDetailEcComponent {
|
|
|
113
119
|
this.reset = !this.reset;
|
|
114
120
|
this.success = true;
|
|
115
121
|
};
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
117
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductDetailEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProductDetailEcComponent, isStandalone: true, selector: "app-product-detail-ec", ngImport: i0, template: "", styles: [""] });
|
|
118
124
|
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductDetailEcComponent, decorators: [{
|
|
120
126
|
type: Component,
|
|
121
127
|
args: [{ selector: 'app-product-detail-ec', standalone: true, imports: [], template: "" }]
|
|
122
128
|
}], ctorParameters: () => [] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDOztBQVd6QixNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLHFCQUFxQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FB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SCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsU0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUMsQ0FBQTt1R0FwSFksd0JBQXdCOzJGQUF4Qix3QkFBd0IsaUZDdkJyQyxFQUFBOzsyRkR1QmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkICwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSwgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7ICBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwsIFBMQVRGT1JNX0lELCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlLCBQcm9kdWN0c1NlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyICwgU2FmZUh0bWwgIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1kZXRhaWwtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX3Byb2R1Y3REZXRhaWxTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSA9IGluamVjdChQcm9kdWN0RGV0YWlsU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2FjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cdHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcblx0cHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKTtcclxuXHRwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHRwcml2YXRlIF9tZXRhOiBNZXRhID0gaW5qZWN0KE1ldGEpO1xyXG5cdHByaXZhdGUgX3RpdGxlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XHJcblx0cHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuXHRwdWJsaWMgcHJvZHVjdCQ6IE9ic2VydmFibGU8UHJvZHVjdCB8IG51bGw+ID0gdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UucHJvZHVjdCQ7XHJcblx0cHVibGljIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5vcHRpb25zJDtcclxuXHRwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJDtcclxuXHJcblx0cHVibGljIG1lZGlhVXJsID0gdGhpcy5fY29uc3RzLm1lZGlhVXJsKCk7XHJcblx0cHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG5cdHB1YmxpYyBzaG93Rm9ybUNvbnRhY3QgPSBmYWxzZTtcclxuXHRwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmVzZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQgcHVibGljIHN1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0cHVibGljIHF1YW50aXR5OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKDEpO1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzJDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXSB8IG51bGw+ID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJzKCk7XHJcblx0cHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xyXG5cdFx0XHR0aGlzLmNvZGUgPSBxdWVyeVBhcmFtc1tcImlkXCJdO1xyXG5cdFx0XHR0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5sb2FkUHJvZHVjdCh0aGlzLmNvZGUpO1xyXG5cdFx0ICB9KTtcclxuXHRcdHRoaXMuX2FjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcclxuXHRcdFx0dGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcclxuXHRcdFx0dGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UubG9hZFByb2R1Y3QodGhpcy5jb2RlKTtcclxuXHRcdH0pXHJcblx0XHQgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcclxuICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcclxuICAgICB9KTtcclxuXHR9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0JC5zdWJzY3JpYmUocHJvZHVjdCA9PiB7XHJcbiAgICAgIGlmIChwcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZXRhVGFncyhwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNZXRhVGFncyhwcm9kdWN0OiBQcm9kdWN0KSB7XHJcblx0Y29uc3QgZGVzY3JpcGNpb25MaW1waWEgPSBoZS5kZWNvZGUocHJvZHVjdC5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZSgvPFtePl0qPi9nLCAnICcpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID10aGlzLl9jb25zdHMudXJsKCkgKyAgdGhpcy5fbG9jYXRpb24ucGF0aCh0cnVlKTsgIC8vIGB0cnVlYCBpbmNsdXllIGVsIHF1ZXJ5IHN0cmluZ1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogcHJvZHVjdC5uYW1lIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcGNpb25MaW1waWEgfHwgJycgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLl9jb25zdHMubWVkaWFJbWFnZVVybChBcnJheS5pc0FycmF5KHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSA/IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIDogcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQpIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IGN1cnJlbnRVcmwgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcclxuICB9XHJcbiAgZGVjb2RlSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdHh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHR4dC5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgcmV0dXJuIHR4dC52YWx1ZTtcclxuICAgIFxyXG4gIH1cclxuICBzYW5pdGl6ZWRIdG1sKGh0bWw6IHN0cmluZyk6IFNhZmVIdG1sICB7XHJcbiAgICBjb25zdCBkZWNvZGVkSHRtbCA9IHRoaXMuZGVjb2RlSHRtbChodG1sKTtcclxuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZGVjb2RlZEh0bWwpO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9DYXJ0KCkge1xyXG4gICAgdGhpcy5xdWFudGl0eSgpID4gMCAmJiB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5hZGRUb0NhcnQodGhpcy5xdWFudGl0eSgpKTtcclxuICB9XHJcblxyXG4gIHBsdXMoc3RvY2s/OiBudW1iZXIsIG11bHRpcGxlUXVhbnRpdHk/OiBudW1iZXIpIHtcclxuICAgIGlmIChtdWx0aXBsZVF1YW50aXR5ICYmIG11bHRpcGxlUXVhbnRpdHkgPiAwKSB7XHJcbiAgICAgIHN0b2NrID8gKHRoaXMucXVhbnRpdHkoKSA8IHN0b2NrXHJcbiAgICAgICAgPyB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIG11bHRpcGxlUXVhbnRpdHkpXHJcbiAgICAgICAgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5JykpXHJcbiAgICAgICAgOiB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIG11bHRpcGxlUXVhbnRpdHkpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9jayA/ICh0aGlzLnF1YW50aXR5KCkgPCBzdG9ja1xyXG4gICAgICAgID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyAxKVxyXG4gICAgICAgIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpKVxyXG4gICAgICAgIDogdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyAxKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGVzcyhtdWx0aXBsZVF1YW50aXR5PzogYW55KSB7XHJcbiAgICBpZiAobXVsdGlwbGVRdWFudGl0eSAmJiBtdWx0aXBsZVF1YW50aXR5ID4gMCkge1xyXG4gICAgICB0aGlzLnF1YW50aXR5KCkgPiBtdWx0aXBsZVF1YW50aXR5ID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgLSBtdWx0aXBsZVF1YW50aXR5KSA6IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnF1YW50aXR5KCkgPiAxID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgLSAxKSA6IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1N0b2NrKHN0b2NrOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnF1YW50aXR5KCkgPj0gc3RvY2spXHJcbiAgICAgIHRoaXMucXVhbnRpdHkuc2V0KHN0b2NrKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvU2VjdGlvbihzZWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0Zvcm1Db250YWN0ID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbik7XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybSA9ICgpID0+IHtcclxuICAgIHRoaXMucmVzZXQgPSAhdGhpcy5yZXNldFxyXG4gICAgdGhpcy5zdWNjZXNzID0gdHJ1ZVxyXG59XHJcbn1cclxuIiwiIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFXbkQsTUFBTSxPQUFPLHdCQUF3QjtJ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V0FBVyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxTQUFTLEdBQUcsR0FBRyxFQUFFO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQyxDQUFBO3dHQTFIWSx3QkFBd0I7NEZBQXhCLHdCQUF3QixpRkN4QnJDLEVBQUE7OzRGRHdCYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQgLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlLCBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgIFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCwgUExBVEZPUk1fSUQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUHJvZHVjdERldGFpbFNlcnZpY2UsIFByb2R1Y3RzU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgLCBTYWZlSHRtbCAgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgaGUgZnJvbSAnaGUnO1xyXG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1kZXRhaWwtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQge1xyXG4gIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfcHJvZHVjdERldGFpbFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3REZXRhaWxTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9wcm9kdWN0U2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHRwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2UgPSBpbmplY3QoUGFyYW1ldGVyc1NlcnZpY2UpO1xyXG5cdHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cdHByaXZhdGUgX21ldGE6IE1ldGEgPSBpbmplY3QoTWV0YSk7XHJcblx0cHJpdmF0ZSBfdGl0bGU6IFRpdGxlID0gaW5qZWN0KFRpdGxlKTtcclxuXHRwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xyXG5cdHB1YmxpYyBwcm9kdWN0JDogT2JzZXJ2YWJsZTxQcm9kdWN0IHwgbnVsbD4gPSB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5wcm9kdWN0JDtcclxuXHRwdWJsaWMgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLm9wdGlvbnMkO1xyXG5cdHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkO1xyXG5cclxuXHRwdWJsaWMgbWVkaWFVcmwgPSB0aGlzLl9jb25zdHMubWVkaWFVcmwoKTtcclxuXHRwdWJsaWMgY29kZTogc3RyaW5nID0gJyc7XHJcblx0cHVibGljIHNob3dGb3JtQ29udGFjdCA9IGZhbHNlO1xyXG5cdHB1YmxpYyBzaG93UmV2aWV3czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZXNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdCBwdWJsaWMgc3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICBwdWJsaWMgY2F0ZWdvcmllczogYW55W10gPSBbXTtcclxuXHJcblx0cHVibGljIHF1YW50aXR5OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKDEpO1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzJDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXSB8IG51bGw+ID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJzKCk7XHJcblx0cHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xyXG5cdFx0XHR0aGlzLmNvZGUgPSBxdWVyeVBhcmFtc1tcImlkXCJdO1xyXG5cdFx0XHR0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5sb2FkUHJvZHVjdCh0aGlzLmNvZGUpO1xyXG5cdFx0ICB9KTtcclxuXHRcdHRoaXMuX2FjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcclxuXHRcdFx0dGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcclxuXHRcdFx0dGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UubG9hZFByb2R1Y3QodGhpcy5jb2RlKTtcclxuXHRcdH0pXHJcblx0XHQgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcclxuICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcclxuICAgICB9KTtcclxuICAgICB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICAgKTtcclxuXHR9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0JC5zdWJzY3JpYmUocHJvZHVjdCA9PiB7XHJcbiAgICAgIGlmIChwcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZXRhVGFncyhwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNZXRhVGFncyhwcm9kdWN0OiBQcm9kdWN0KSB7XHJcblx0Y29uc3QgZGVzY3JpcGNpb25MaW1waWEgPSBoZS5kZWNvZGUocHJvZHVjdC5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZSgvPFtePl0qPi9nLCAnICcpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID10aGlzLl9jb25zdHMudXJsKCkgKyAgdGhpcy5fbG9jYXRpb24ucGF0aCh0cnVlKTsgIC8vIGB0cnVlYCBpbmNsdXllIGVsIHF1ZXJ5IHN0cmluZ1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogcHJvZHVjdC5uYW1lIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcGNpb25MaW1waWEgfHwgJycgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLl9jb25zdHMubWVkaWFJbWFnZVVybChBcnJheS5pc0FycmF5KHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSA/IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIDogcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQpIHx8ICcnIH0pO1xyXG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IGN1cnJlbnRVcmwgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcclxuICB9XHJcbiAgZGVjb2RlSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdHh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHR4dC5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgcmV0dXJuIHR4dC52YWx1ZTtcclxuICAgIFxyXG4gIH1cclxuICBzYW5pdGl6ZWRIdG1sKGh0bWw6IHN0cmluZyk6IFNhZmVIdG1sICB7XHJcbiAgICBjb25zdCBkZWNvZGVkSHRtbCA9IHRoaXMuZGVjb2RlSHRtbChodG1sKTtcclxuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZGVjb2RlZEh0bWwpO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9DYXJ0KCkge1xyXG4gICAgdGhpcy5xdWFudGl0eSgpID4gMCAmJiB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5hZGRUb0NhcnQodGhpcy5xdWFudGl0eSgpKTtcclxuICB9XHJcblxyXG4gIHBsdXMoc3RvY2s/OiBudW1iZXIsIG11bHRpcGxlUXVhbnRpdHk/OiBudW1iZXIpIHtcclxuICAgIGlmIChtdWx0aXBsZVF1YW50aXR5ICYmIG11bHRpcGxlUXVhbnRpdHkgPiAwKSB7XHJcbiAgICAgIHN0b2NrID8gKHRoaXMucXVhbnRpdHkoKSA8IHN0b2NrXHJcbiAgICAgICAgPyB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIG11bHRpcGxlUXVhbnRpdHkpXHJcbiAgICAgICAgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5JykpXHJcbiAgICAgICAgOiB0aGlzLnF1YW50aXR5LnVwZGF0ZSh2YWx1ZSA9PiB2YWx1ZSArIG11bHRpcGxlUXVhbnRpdHkpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9jayA/ICh0aGlzLnF1YW50aXR5KCkgPCBzdG9ja1xyXG4gICAgICAgID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyAxKVxyXG4gICAgICAgIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpKVxyXG4gICAgICAgIDogdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgKyAxKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGVzcyhtdWx0aXBsZVF1YW50aXR5PzogYW55KSB7XHJcbiAgICBpZiAobXVsdGlwbGVRdWFudGl0eSAmJiBtdWx0aXBsZVF1YW50aXR5ID4gMCkge1xyXG4gICAgICB0aGlzLnF1YW50aXR5KCkgPiBtdWx0aXBsZVF1YW50aXR5ID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgLSBtdWx0aXBsZVF1YW50aXR5KSA6IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnF1YW50aXR5KCkgPiAxID8gdGhpcy5xdWFudGl0eS51cGRhdGUodmFsdWUgPT4gdmFsdWUgLSAxKSA6IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1N0b2NrKHN0b2NrOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnF1YW50aXR5KCkgPj0gc3RvY2spXHJcbiAgICAgIHRoaXMucXVhbnRpdHkuc2V0KHN0b2NrKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb1RvU2VjdGlvbihzZWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0Zvcm1Db250YWN0ID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbik7XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybSA9ICgpID0+IHtcclxuICAgIHRoaXMucmVzZXQgPSAhdGhpcy5yZXNldFxyXG4gICAgdGhpcy5zdWNjZXNzID0gdHJ1ZVxyXG59XHJcbn1cclxuIiwiIl19
|
|
@@ -47,10 +47,10 @@ export class ProductEcComponent {
|
|
|
47
47
|
get hasDiscount() {
|
|
48
48
|
return this.product.saleprice && this.product.saleprice !== this.product.price;
|
|
49
49
|
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
50
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 producto\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n \r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n \r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice\"></p>\r\n }\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }} </span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "component", type: PriceEcComponent, selector: "app-price-ec", inputs: ["price", "saleprice"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductEcComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink, TranslateModule], template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none producto\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n \r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n \r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }@else {\r\n <p class=\"noPrice\"></p>\r\n }\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }\r\n <!-- Cuando tiene marca especial y el tipo no es 'standard' -->\r\n @if(product.special_mark?.[0]?.type !== 'standard'){\r\n @for (item of product.special_mark; track $index) {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (item.type === 'out_of_stock' || item.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }} </span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (item.type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(item.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (item.type === 'more_info') {\r\n <button *ngIf=\"\" class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ item.name | uppercase }}</span>\r\n }@else {\r\n {{ item.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n\r\n }\r\n }\r\n\r\n <!-- </ng-container>\r\n <ng-template #noStock>\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span>{{(\"out-of-stock-short\" | translate) | uppercase}}</span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"out-of-stock-short\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n </ng-template> -->\r\n </div>\r\n</a>" }]
|
|
56
56
|
}], propDecorators: { product: [{
|
|
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
65
65
|
}], isCollection: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCOztPQUVHO0lBSUgsT0FBTyxDQUFXO0lBQ2xCOztPQUVHO0lBQ00sWUFBWSxHQUFXLElBQUksQ0FBQztJQUNyQzs7T0FFRztJQUNPLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJDLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNPLE1BQU0sR0FBd0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDMUQsZ0JBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEM7O09BRUc7SUFDSSxRQUFRLEdBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMvQyxZQUFZLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDNUgsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkYsQ0FBQzt1R0F6Q1Esa0JBQWtCOzJGQUFsQixrQkFBa0IscU1DbkIvQiwya0pBdUdJLHlERHhGTyxZQUFZLDJWQUFFLGdCQUFnQix5RkFBRSxVQUFVLG1PQUFHLGVBQWU7OzJGQUkxRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRyxlQUFlLENBQUM7OEJBV3ZFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxyXG4gKiBAY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmsgLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcHJvZHVjdC1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqXHJcblx0ICogRGF0b3MgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pXHJcblx0cHJvZHVjdCE6IFByb2R1Y3Q7XHJcblx0LyoqXHJcblx0ICogU2UgdXNhIHBhcmEgc2FiZXIgc2kgZWwgcHJvZHVjdG8gZXMgZGUgdGlwbyBCb3ggbyBubyB5IGRlZmluaXIgbGEgdmlzdGEgYWRlY3VhZGEuXHJcblx0ICovXHJcblx0QElucHV0KCkgaXNQcm9kdWN0Qm94OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuXHQgKi9cclxuXHRAT3V0cHV0KCkgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG5cdEBJbnB1dCgpIGlzQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHQgIHRoaXMubG9hZGVkLmVtaXQodGhpcy5wcm9kdWN0LmlkKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSByb3V0ZXI6Um91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuXHQvKipcclxuXHQgKiBVUkwgcGFyYSBsYXMgaW1hZ2VuZXMgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZWRpYVVybDpzdHJpbmcgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0b3BlbldoYXRzQXBwKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3VsZFNob3dQcmljZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdD8uc3BlY2lhbF9tYXJrIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnNob3dQcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdC5zYWxlcHJpY2UgJiYgdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAhPT0gdGhpcy5wcm9kdWN0LnByaWNlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2R1Y3QnLCBwcm9kdWN0LmlkXVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmUgcHJvZHVjdG9cIj5cclxuICAgIDwhLS0gTWFyY2EgZXNwZWNpYWwgeSBkZXNjdWVudG8gLS0+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=
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCOztPQUVHO0lBSUgsT0FBTyxDQUFXO0lBQ2xCOztPQUVHO0lBQ00sWUFBWSxHQUFXLElBQUksQ0FBQztJQUNyQzs7T0FFRztJQUNPLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJDLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNPLE1BQU0sR0FBd0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDMUQsZ0JBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEM7O09BRUc7SUFDSSxRQUFRLEdBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMvQyxZQUFZLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDNUgsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkYsQ0FBQzt3R0F6Q1Esa0JBQWtCOzRGQUFsQixrQkFBa0IscU1DbkIvQiwya0pBdUdJLHlERHhGTyxZQUFZLDJWQUFFLGdCQUFnQix5RkFBRSxVQUFVLG1PQUFHLGVBQWU7OzRGQUkxRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRyxlQUFlLENBQUM7OEJBV3ZFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxyXG4gKiBAY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmsgLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcHJvZHVjdC1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqXHJcblx0ICogRGF0b3MgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pXHJcblx0cHJvZHVjdCE6IFByb2R1Y3Q7XHJcblx0LyoqXHJcblx0ICogU2UgdXNhIHBhcmEgc2FiZXIgc2kgZWwgcHJvZHVjdG8gZXMgZGUgdGlwbyBCb3ggbyBubyB5IGRlZmluaXIgbGEgdmlzdGEgYWRlY3VhZGEuXHJcblx0ICovXHJcblx0QElucHV0KCkgaXNQcm9kdWN0Qm94OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuXHQgKi9cclxuXHRAT3V0cHV0KCkgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG5cdEBJbnB1dCgpIGlzQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHQgIHRoaXMubG9hZGVkLmVtaXQodGhpcy5wcm9kdWN0LmlkKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSByb3V0ZXI6Um91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuXHQvKipcclxuXHQgKiBVUkwgcGFyYSBsYXMgaW1hZ2VuZXMgZGVsIHByb2R1Y3RvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZWRpYVVybDpzdHJpbmcgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0b3BlbldoYXRzQXBwKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3VsZFNob3dQcmljZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdD8uc3BlY2lhbF9tYXJrIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnNob3dQcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdC5zYWxlcHJpY2UgJiYgdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAhPT0gdGhpcy5wcm9kdWN0LnByaWNlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2R1Y3QnLCBwcm9kdWN0LmlkXVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmUgcHJvZHVjdG9cIj5cclxuICAgIDwhLS0gTWFyY2EgZXNwZWNpYWwgeSBkZXNjdWVudG8gLS0+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,96 @@
|
|
|
1
|
+
import { Component, inject, Input, CUSTOM_ELEMENTS_SCHEMA, signal, PLATFORM_ID, afterNextRender } from '@angular/core';
|
|
2
|
+
import { AnalyticsService, ProductsService } from '../../ec-services';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { BehaviorSubject, take } from 'rxjs';
|
|
5
|
+
import { AsyncPipe, CommonModule, isPlatformBrowser } from '@angular/common';
|
|
6
|
+
import { ProductEcComponent } from '../product-ec/product-ec.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class RelatedProductsEcComponent {
|
|
9
|
+
_productsService = inject(ProductsService);
|
|
10
|
+
_analyticsService = inject(AnalyticsService);
|
|
11
|
+
_router = inject(Router);
|
|
12
|
+
/**
|
|
13
|
+
* Signal utlizado para guarda el contenedor del carrusel
|
|
14
|
+
*/
|
|
15
|
+
swiperElement = signal(null);
|
|
16
|
+
/**
|
|
17
|
+
* Input que recibe un template para el producto.
|
|
18
|
+
*/
|
|
19
|
+
appProduct;
|
|
20
|
+
productID;
|
|
21
|
+
document;
|
|
22
|
+
platformId = inject(PLATFORM_ID);
|
|
23
|
+
_relatedProductsSubject = new BehaviorSubject([]);
|
|
24
|
+
relatedProducts$ = this._relatedProductsSubject.asObservable();
|
|
25
|
+
keywordsToCompare = ['compare', 'comparar', 'comparacion', 'comparación', 'compared'];
|
|
26
|
+
swiperRelatedOptions = () => {
|
|
27
|
+
return {
|
|
28
|
+
navigation: true,
|
|
29
|
+
loop: true,
|
|
30
|
+
breakpoints: {
|
|
31
|
+
0: {
|
|
32
|
+
slidesPerView: 1
|
|
33
|
+
},
|
|
34
|
+
576: {
|
|
35
|
+
slidesPerView: 2
|
|
36
|
+
},
|
|
37
|
+
768: {
|
|
38
|
+
slidesPerView: 3,
|
|
39
|
+
},
|
|
40
|
+
992: {
|
|
41
|
+
slidesPerView: 4,
|
|
42
|
+
},
|
|
43
|
+
1200: {
|
|
44
|
+
slidesPerView: 4,
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
constructor() {
|
|
50
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
51
|
+
this.document = document;
|
|
52
|
+
}
|
|
53
|
+
afterNextRender(() => {
|
|
54
|
+
const swiperElemConstructor = this.document?.querySelector('#relatedProductsSwiper');
|
|
55
|
+
console.log('swiperElemConstructor', swiperElemConstructor);
|
|
56
|
+
if (swiperElemConstructor) {
|
|
57
|
+
Object.assign(swiperElemConstructor, this.swiperRelatedOptions());
|
|
58
|
+
this.swiperElement.set(swiperElemConstructor);
|
|
59
|
+
this.swiperElement()?.initialize();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() {
|
|
64
|
+
console.log(this.productID);
|
|
65
|
+
this.load(this.productID);
|
|
66
|
+
}
|
|
67
|
+
load(product_id) {
|
|
68
|
+
this._productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(res => {
|
|
69
|
+
console.log('response', res);
|
|
70
|
+
const relatedProducts = res.filter((elem) => !this.includeKeyword(elem.title.toLowerCase()));
|
|
71
|
+
this._relatedProductsSubject.next(relatedProducts);
|
|
72
|
+
res.map((products) => this._analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.id || 'related-products' }));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
includeKeyword = (word) => {
|
|
76
|
+
let result = false;
|
|
77
|
+
this.keywordsToCompare.forEach(keyword => {
|
|
78
|
+
word.includes(keyword) ? result = true : null;
|
|
79
|
+
});
|
|
80
|
+
return result;
|
|
81
|
+
};
|
|
82
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RelatedProductsEcComponent, isStandalone: true, selector: "app-related-products-ec", inputs: { appProduct: "appProduct", productID: "productID" }, ngImport: i0, template: "\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'app-related-products-ec', standalone: true, imports: [AsyncPipe, ProductEcComponent, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "\r\n" }]
|
|
88
|
+
}], ctorParameters: () => [], propDecorators: { appProduct: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], productID: [{
|
|
91
|
+
type: Input,
|
|
92
|
+
args: [{
|
|
93
|
+
required: true
|
|
94
|
+
}]
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wcm9kdWN0cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZWxhdGVkLXByb2R1Y3RzLWVjL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmVsYXRlZC1wcm9kdWN0cy1lYy9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBWXhFLE1BQU0sT0FBTywwQkFBMEI7SUFDM0IsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMzRCxpQkFBaUIsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDOUQsT0FBTyxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN2Qzs7R0FFRDtJQUNILGFBQWEsR0FBRyxN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LEtBQUssSUFBSSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0TixDQUFDLENBQ0osQ0FBQTtJQUNMLENBQUM7SUFFRCxjQUFjLEdBQUcsQ0FBQyxJQUFXLEVBQUUsRUFBRTtRQUM3QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBRSxPQUFPLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDakQsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLE1BQU0sQ0FBQTtJQUNqQixDQUFDLENBQUE7d0dBbEZRLDBCQUEwQjs0RkFBMUIsMEJBQTBCLGlKQ2xCdkMsTUFDQSx5RERZNkMsWUFBWTs7NEZBSzVDLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxXQUc3QyxDQUFDLHNCQUFzQixDQUFDO3dEQWF4QixVQUFVO3NCQUFsQixLQUFLO2dCQUdILFNBQVM7c0JBRlgsS0FBSzt1QkFBQzt3QkFDSCxRQUFRLEVBQUUsSUFBSTtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBzaWduYWwsIFBMQVRGT1JNX0lELCBhZnRlck5leHRSZW5kZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RWNDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQnO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtcmVsYXRlZC1wcm9kdWN0cy1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgUHJvZHVjdEVjQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUHJvZHVjdHNFY0NvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIF9wcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpXHJcbiAgICBwcml2YXRlIF9hbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpXHJcbiAgICBcdC8qKlxyXG5cdCAqIFNpZ25hbCB1dGxpemFkbyBwYXJhIGd1YXJkYSBlbCBjb250ZW5lZG9yIGRlbCBjYXJydXNlbFxyXG5cdCAqL1xyXG5cdHN3aXBlckVsZW1lbnQgPSBzaWduYWw8U3dpcGVyQ29udGFpbmVyIHwgbnVsbD4obnVsbClcclxuICAgIC8qKlxyXG4gICAgICogSW5wdXQgcXVlIHJlY2liZSB1biB0ZW1wbGF0ZSBwYXJhIGVsIHByb2R1Y3RvLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBhcHBQcm9kdWN0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KHtcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSkgcHJvZHVjdElEOiBhbnk7XHJcblxyXG4gICAgICAgIHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcclxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRClcclxuICAgIFxyXG4gICAgcHJpdmF0ZSBfcmVsYXRlZFByb2R1Y3RzU3ViamVjdDpCZWhhdmlvclN1YmplY3Q8UHJvZHVjdFtdPiA9ICBuZXcgQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4oW10pXHJcbiAgICBwdWJsaWMgcmVsYXRlZFByb2R1Y3RzJDpPYnNlcnZhYmxlPGFueVtdPiA9IHRoaXMuX3JlbGF0ZWRQcm9kdWN0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBwcml2YXRlIGtleXdvcmRzVG9Db21wYXJlOnN0cmluZ1tdID0gWydjb21wYXJlJywgJ2NvbXBhcmFyJywgJ2NvbXBhcmFjaW9uJywgJ2NvbXBhcmFjacOzbicsICdjb21wYXJlZCddO1xyXG4gICAgc3dpcGVyUmVsYXRlZE9wdGlvbnMgPSAoKTogU3dpcGVyT3B0aW9ucyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgbG9vcDogdHJ1ZSxcclxuICAgICAgICAgICAgYnJlYWtwb2ludHM6IHtcclxuICAgICAgICAgICAgICAgIDA6IHtcclxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgNTc2OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDc2ODoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgOTkyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAxMjAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudFxyXG4gICAgICAgIH1cclxuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzd2lwZXJFbGVtQ29uc3RydWN0b3IgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCcjcmVsYXRlZFByb2R1Y3RzU3dpcGVyJylcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3N3aXBlckVsZW1Db25zdHJ1Y3RvcicsIHN3aXBlckVsZW1Db25zdHJ1Y3RvcilcclxuICAgICAgICAgICAgaWYgKHN3aXBlckVsZW1Db25zdHJ1Y3Rvcikge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihzd2lwZXJFbGVtQ29uc3RydWN0b3IhLCB0aGlzLnN3aXBlclJlbGF0ZWRPcHRpb25zKCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQuc2V0KHN3aXBlckVsZW1Db25zdHJ1Y3RvciBhcyBTd2lwZXJDb250YWluZXIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnByb2R1Y3RJRClcclxuICAgICAgICB0aGlzLmxvYWQodGhpcy5wcm9kdWN0SUQpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkKHByb2R1Y3RfaWQ6YW55KSB7XHJcbiAgICAgICAgdGhpcy5fcHJvZHVjdHNTZXJ2aWNlLmdldFJlbGF0ZWRQcm9kdWN0cyhwcm9kdWN0X2lkKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXNwb25zZScscmVzKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRQcm9kdWN0czphbnkgPSByZXMuZmlsdGVyKChlbGVtOmFueSkgPT4gIXRoaXMuaW5jbHVkZUtleXdvcmQoZWxlbS50aXRsZS50b0xvd2VyQ2FzZSgpKSlcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbGF0ZWRQcm9kdWN0c1N1YmplY3QubmV4dChyZWxhdGVkUHJvZHVjdHMpXHJcbiAgICAgICAgICAgICAgICByZXMubWFwKChwcm9kdWN0czphbnkpID0+IHRoaXMuX2FuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW1fbGlzdCcsIHsgcHJvZHVjdHM6IHByb2R1Y3RzLml0ZW1zLCBpdGVtX2xpc3RfbmFtZTogcHJvZHVjdHMudGl0bGUgfHwgJ1JlbGF0ZWQgUHJvZHVjdHMnLCBpdGVtX2xpc3RfaWQ6IHByb2R1Y3RzLmlkIHx8ICdyZWxhdGVkLXByb2R1Y3RzJyB9KSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBpbmNsdWRlS2V5d29yZCA9ICh3b3JkOnN0cmluZykgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMua2V5d29yZHNUb0NvbXBhcmUuZm9yRWFjaCgga2V5d29yZCA9PiB7XHJcbiAgICAgICAgICAgIHdvcmQuaW5jbHVkZXMoa2V5d29yZCkgPyByZXN1bHQgPSB0cnVlIDogbnVsbFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxyXG4gICAgfVxyXG59XHJcblxyXG4iLCJcclxuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { ComponentHelper } from '../../classes/component-helper';
|
|
3
|
+
import { RatingEcComponent } from '../widgets-ec/rating-ec/rating-ec.component';
|
|
4
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../ec-services/reviews.service";
|
|
7
|
+
import * as i2 from "../../constants/core.constants.service";
|
|
8
|
+
import * as i3 from "@ngx-translate/core";
|
|
9
|
+
export class ReviewsEcComponent extends ComponentHelper {
|
|
10
|
+
reviewsService;
|
|
11
|
+
consts;
|
|
12
|
+
/**
|
|
13
|
+
* @description producto del cual se obtendran las reviews.
|
|
14
|
+
*/
|
|
15
|
+
product;
|
|
16
|
+
reviews;
|
|
17
|
+
constructor(reviewsService, consts) {
|
|
18
|
+
super();
|
|
19
|
+
this.reviewsService = reviewsService;
|
|
20
|
+
this.consts = consts;
|
|
21
|
+
this.reviewsService.reviews$.subscribe(res => this.reviews = res);
|
|
22
|
+
this.ecOnConstruct();
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.reviewsService.getReviewsByCode(this.product.id);
|
|
26
|
+
this.ecOnInit();
|
|
27
|
+
}
|
|
28
|
+
next = () => {
|
|
29
|
+
this.reviewsService.getReviews('next');
|
|
30
|
+
};
|
|
31
|
+
last = () => {
|
|
32
|
+
this.reviewsService.getReviews('last');
|
|
33
|
+
};
|
|
34
|
+
first = () => {
|
|
35
|
+
this.reviewsService.getReviews('first');
|
|
36
|
+
};
|
|
37
|
+
self = () => {
|
|
38
|
+
this.reviewsService.getReviews();
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* @description genera un arreglo con tamaño igual a la cantidad de paginas que tiene la review.
|
|
42
|
+
* @returns {number[]} un arreglo cuyo contendio es un entero que indica el numero de pagina.
|
|
43
|
+
*/
|
|
44
|
+
getPages = () => {
|
|
45
|
+
let pages = [];
|
|
46
|
+
for (let index = 0; index < this.reviews.pages; index++) {
|
|
47
|
+
pages.push(index + 1);
|
|
48
|
+
}
|
|
49
|
+
return pages;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @description actualiza las reviews con el contenido asociado a la pagina pasada por parametro
|
|
53
|
+
* @param page
|
|
54
|
+
*/
|
|
55
|
+
goPage = (page) => {
|
|
56
|
+
this.reviewsService.getReviewsByPage(this.product.id, page, this.reviews.limit);
|
|
57
|
+
};
|
|
58
|
+
getAuthorName(email) {
|
|
59
|
+
if (!email || email.indexOf('@') === -1) {
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
return email.split('@')[0];
|
|
63
|
+
}
|
|
64
|
+
getStarArray(rating) {
|
|
65
|
+
return Array(5).fill(0);
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsEcComponent, deps: [{ token: i1.ReviewsService }, { token: i2.CoreConstantsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ReviewsEcComponent, isStandalone: true, selector: "app-reviews-ec", inputs: { product: "product" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row px-3\">\r\n <div class=\"col-12 pb-2 pb-md-0\">\r\n <div class=\"row w-100\">\r\n <div class=\"col-12 col-md-6\">\r\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\r\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\r\n {{\"write-a-review\" | translate}}\r\n <i class=\"bi bi-pencil-square\"></i>\r\n </small>\r\n </div>\r\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\r\n <div class=\"puntaje d-flex\">\r\n <ng-template #number let-ratingValue=\"ratingValue\">\r\n <p class=\"puntos mb-0\">\r\n {{ratingValue}}\r\n </p>\r\n </ng-template>\r\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\r\n <div class=\"ms-2\">\r\n <div class=\"stars mb-1\">\r\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\r\n </div>\r\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"row g-5\">\r\n @for (item of reviews.items; track $index) {\r\n <div class=\"col-12 col-sm-6 col-md-4\">\r\n <div class=\"row\">\r\n <div class=\"col-9 col-sm-10\">\r\n <div class=\"ranking\">\r\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\r\n </div>\r\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"ususario\">\r\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\r\n </div>\r\n </div>\r\n <div class=\"resenia mt-2\">\r\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n @if (getPages() && getPages().length > 1) {\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination custom-pagination\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">«</span>\r\n </a>\r\n </li>\r\n @for (page of getPages(); track $index) {\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\r\n </li>\r\n }\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">»</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "component", type: RatingEcComponent, selector: "app-rating-ec", inputs: ["template", "type", "ratingValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsEcComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'app-reviews-ec', standalone: true, imports: [RatingEcComponent, TranslateModule], template: "<div class=\"row px-3\">\r\n <div class=\"col-12 pb-2 pb-md-0\">\r\n <div class=\"row w-100\">\r\n <div class=\"col-12 col-md-6\">\r\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\r\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\r\n {{\"write-a-review\" | translate}}\r\n <i class=\"bi bi-pencil-square\"></i>\r\n </small>\r\n </div>\r\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\r\n <div class=\"puntaje d-flex\">\r\n <ng-template #number let-ratingValue=\"ratingValue\">\r\n <p class=\"puntos mb-0\">\r\n {{ratingValue}}\r\n </p>\r\n </ng-template>\r\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\r\n <div class=\"ms-2\">\r\n <div class=\"stars mb-1\">\r\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\r\n </div>\r\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"row g-5\">\r\n @for (item of reviews.items; track $index) {\r\n <div class=\"col-12 col-sm-6 col-md-4\">\r\n <div class=\"row\">\r\n <div class=\"col-9 col-sm-10\">\r\n <div class=\"ranking\">\r\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\r\n </div>\r\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"ususario\">\r\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\r\n </div>\r\n </div>\r\n <div class=\"resenia mt-2\">\r\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n @if (getPages() && getPages().length > 1) {\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination custom-pagination\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">«</span>\r\n </a>\r\n </li>\r\n @for (page of getPages(); track $index) {\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\r\n </li>\r\n }\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">»</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"] }]
|
|
73
|
+
}], ctorParameters: () => [{ type: i1.ReviewsService }, { type: i2.CoreConstantsService }], propDecorators: { product: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZXZpZXdzLWVjL3Jldmlld3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmV2aWV3cy1lYy9yZXZpZXdzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVF0RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQVEvQjtJQUF1QztJQVAzRDs7T0FFRztJQUNNLE9BQU8sQ0FBSztJQUVkLE9BQU8sQ0FBSztJQUVuQixZQUFvQixjQUE4QixFQUFTLE1BQTJCO1FBQ2xGLEtBQUssRUFBRSxDQUFBO1FBRFMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFFbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBRW5CLENBQUM7SUFFRCxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRUQsSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQTtJQUVELEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUE7SUFFRCxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxRQUFRLEdBQUcsR0FBWSxFQUFFO1FBQ3JCLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQTtRQUNyQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN0RCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN2QixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQyxDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxHQUFHLENBQUMsSUFBVyxFQUFFLEVBQUU7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRixDQUFDLENBQUE7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO3dHQWpFUSxrQkFBa0I7NEZBQWxCLGtCQUFrQixpSUNiL0Isb3NIQStFTSwya0JEdEVRLGlCQUFpQixzR0FBRSxlQUFlOzs0RkFJbkMsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQztzSEFRcEMsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTmdNb2R1bGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb3JlLmNvbnN0YW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmV2aWV3c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9yZXZpZXdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYXRpbmdFY0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMtZWMvcmF0aW5nLWVjL3JhdGluZy1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZXZpZXdzLWVjJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbUmF0aW5nRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmV2aWV3cy1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZXZpZXdzLWVjLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJldmlld3NFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBwcm9kdWN0byBkZWwgY3VhbCBzZSBvYnRlbmRyYW4gbGFzIHJldmlld3MuIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwcm9kdWN0OmFueTtcclxuXHJcbiAgICBwdWJsaWMgcmV2aWV3czphbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXZpZXdzU2VydmljZTogUmV2aWV3c1NlcnZpY2UsIHB1YmxpYyBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgdGhpcy5yZXZpZXdzU2VydmljZS5yZXZpZXdzJC5zdWJzY3JpYmUocmVzID0+IHRoaXMucmV2aWV3cyA9IHJlcylcclxuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UuZ2V0UmV2aWV3c0J5Q29kZSh0aGlzLnByb2R1Y3QuaWQpXHJcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgbmV4dCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3MoJ25leHQnKTtcclxuICAgIH1cclxuXHJcbiAgICBsYXN0ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UuZ2V0UmV2aWV3cygnbGFzdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpcnN0ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UuZ2V0UmV2aWV3cygnZmlyc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxmID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UuZ2V0UmV2aWV3cygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYSB1biBhcnJlZ2xvIGNvbiB0YW1hw7FvIGlndWFsIGEgbGEgY2FudGlkYWQgZGUgcGFnaW5hcyBxdWUgdGllbmUgbGEgcmV2aWV3LlxyXG4gICAgICogQHJldHVybnMge251bWJlcltdfSB1biBhcnJlZ2xvIGN1eW8gY29udGVuZGlvIGVzIHVuIGVudGVybyBxdWUgaW5kaWNhIGVsIG51bWVybyBkZSBwYWdpbmEuIFxyXG4gICAgICovXHJcbiAgICBnZXRQYWdlcyA9ICgpOm51bWJlcltdID0+IHtcclxuICAgICAgICBsZXQgcGFnZXM6bnVtYmVyW109W11cclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5yZXZpZXdzLnBhZ2VzOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goaW5kZXgrMSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhZ2VzXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhcyByZXZpZXdzIGNvbiBlbCBjb250ZW5pZG8gYXNvY2lhZG8gYSBsYSBwYWdpbmEgcGFzYWRhIHBvciBwYXJhbWV0cm9cclxuICAgICAqIEBwYXJhbSBwYWdlIFxyXG4gICAgICovXHJcbiAgICBnb1BhZ2UgPSAocGFnZTpudW1iZXIpID0+IHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3NCeVBhZ2UodGhpcy5wcm9kdWN0LmlkLHBhZ2UsIHRoaXMucmV2aWV3cy5saW1pdClcclxuICAgIH1cclxuXHJcbiAgICBnZXRBdXRob3JOYW1lKGVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghZW1haWwgfHwgZW1haWwuaW5kZXhPZignQCcpID09PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbWFpbC5zcGxpdCgnQCcpWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0YXJBcnJheShyYXRpbmc6IG51bWJlcik6IG51bWJlcltdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkoNSkuZmlsbCgwKTtcclxuICAgIH1cclxuICAgIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgcHgtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwYi0yIHBiLW1kLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTAgcHQtMiBwYi0xXCI+e3tcInByb2R1Y3QtcmV2aWV3XCIgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJwYi0yIGVzY3JpYmlyXCIgZGF0YS1icy10b2dnbGU9XCJtb2RhbFwiIGhyZWY9XCIjbW9kYWxSZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1wid3JpdGUtYS1yZXZpZXdcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LW1kLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bnRhamUgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNudW1iZXIgbGV0LXJhdGluZ1ZhbHVlPVwicmF0aW5nVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwdW50b3MgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyYXRpbmdWYWx1ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcmF0aW5nLWVjIFtyYXRpbmdWYWx1ZV09XCJwcm9kdWN0LnJhdGluZ1wiIFt0ZW1wbGF0ZV09XCJudW1iZXJcIj48L2FwcC1yYXRpbmctZWM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJzIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtcmF0aW5nLWVjIFtyYXRpbmdWYWx1ZV09XCJwcm9kdWN0LnJhdGluZ1wiPjwvYXBwLXJhdGluZy1lYz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD48c3Ryb25nPnt7cmV2aWV3cy50b3RhbH19IHt7XCJyZXZpZXdzXCIgfCB0cmFuc2xhdGV9fTwvc3Ryb25nPjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxocj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgbXQtNFwiIGlkPVwibXlUYWJDb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTVcIj5cclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiByZXZpZXdzLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNiBjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmtpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtcmF0aW5nLWVjIFtyYXRpbmdWYWx1ZV09XCJpdGVtLnJhdGluZ1wiPjwvYXBwLXJhdGluZy1lYz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+e3tpdGVtLnRpdGxlfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXN1c2FyaW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlcnNvbi1maWxsXCI+PC9pPiB7eyBnZXRBdXRob3JOYW1lKGl0ZW0uYXV0aG9yKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzZW5pYSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj4ge3tpdGVtLmNvbW1lbnR9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoZ2V0UGFnZXMoKSAmJiBnZXRQYWdlcygpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgPG5hdiBhcmlhLWxhYmVsPVwiUGFnZSBuYXZpZ2F0aW9uIGV4YW1wbGVcIj5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb24gY3VzdG9tLXBhZ2luYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmsgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZmlyc3QoKVwiIGFyaWEtbGFiZWw9XCJQcmV2aW91c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JmxhcXVvOzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAocGFnZSBvZiBnZXRQYWdlcygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmsgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZ29QYWdlKHBhZ2UpXCI+e3sgcGFnZSB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmsgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwibmV4dCgpXCIgYXJpYS1sYWJlbD1cIk5leHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZyYXF1bzs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9uYXY+XHJcblxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|