ng-easycommerce-v18 0.0.9 → 0.1.1
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 +13 -1
- package/esm2022/lib/api/connection.service.mjs +6 -2
- package/esm2022/lib/constants/core.constants.service.mjs +2 -1
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +4 -1
- package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +11 -6
- package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +5 -3
- package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -2
- package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +13 -1
- package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +2 -2
- package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +35 -0
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +11 -2
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +10 -8
- package/esm2022/lib/ec-components/index.mjs +6 -4
- package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +7 -1
- package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +43 -72
- 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 +3 -3
- package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +74 -0
- package/esm2022/lib/ec-services/auth.service.mjs +3 -3
- package/esm2022/lib/ec-services/cart.service.mjs +16 -1
- package/esm2022/lib/ec-services/filters.service.mjs +28 -13
- package/esm2022/lib/ec-services/options.service.mjs +30 -5
- package/esm2022/lib/ec-services/pagination.service.mjs +12 -5
- package/esm2022/lib/ec-services/products.service.mjs +4 -10
- package/esm2022/lib/ec-services/re-captcha.service.mjs +2 -2
- package/esm2022/lib/ec-services/reviews.service.mjs +98 -0
- 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 +830 -134
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/api/connection.service.d.ts +1 -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/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.d.ts +1 -0
- 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 +3 -0
- package/lib/ec-components/header-ec/header-ec.component.d.ts +1 -1
- package/lib/ec-components/index.d.ts +5 -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 +21 -24
- 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 -1
- 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 -1
- package/lib/ec-services/reviews.service.d.ts +74 -0
- package/lib/interfaces/faqs.d.ts +12 -0
- package/lib/interfaces/filter.d.ts +1 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import { Component, Input,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class RelatedProductsEcComponent extends ComponentHelper {
|
|
11
|
-
productsService;
|
|
12
|
-
analyticsService;
|
|
13
|
-
consts;
|
|
14
|
-
router;
|
|
8
|
+
export class RelatedProductsEcComponent {
|
|
9
|
+
_productsService = inject(ProductsService);
|
|
10
|
+
_analyticsService = inject(AnalyticsService);
|
|
11
|
+
_router = inject(Router);
|
|
15
12
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
* Signal utlizado para guarda el contenedor del carrusel
|
|
14
|
+
*/
|
|
18
15
|
swiperElement = signal(null);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Input que recibe un template para el producto.
|
|
18
|
+
*/
|
|
19
|
+
appProduct;
|
|
20
|
+
productID;
|
|
22
21
|
document;
|
|
23
|
-
|
|
22
|
+
platformId = inject(PLATFORM_ID);
|
|
23
|
+
_relatedProductsSubject = new BehaviorSubject([]);
|
|
24
|
+
relatedProducts$ = this._relatedProductsSubject.asObservable();
|
|
24
25
|
keywordsToCompare = ['compare', 'comparar', 'comparacion', 'comparación', 'compared'];
|
|
25
|
-
|
|
26
|
+
swiperRelatedOptions = () => {
|
|
26
27
|
return {
|
|
27
28
|
navigation: true,
|
|
29
|
+
loop: true,
|
|
28
30
|
breakpoints: {
|
|
29
31
|
0: {
|
|
30
32
|
slidesPerView: 1
|
|
@@ -44,33 +46,30 @@ export class RelatedProductsEcComponent extends ComponentHelper {
|
|
|
44
46
|
}
|
|
45
47
|
};
|
|
46
48
|
};
|
|
47
|
-
constructor(
|
|
48
|
-
super();
|
|
49
|
-
this.productsService = productsService;
|
|
50
|
-
this.analyticsService = analyticsService;
|
|
51
|
-
this.consts = consts;
|
|
52
|
-
this.router = router;
|
|
49
|
+
constructor() {
|
|
53
50
|
if (isPlatformBrowser(this.platformId)) {
|
|
54
51
|
this.document = document;
|
|
55
52
|
}
|
|
56
53
|
afterNextRender(() => {
|
|
57
|
-
const swiperElemConstructor = this.document?.querySelector('#
|
|
54
|
+
const swiperElemConstructor = this.document?.querySelector('#relatedProductsSwiper');
|
|
55
|
+
console.log('swiperElemConstructor', swiperElemConstructor);
|
|
58
56
|
if (swiperElemConstructor) {
|
|
59
|
-
Object.assign(swiperElemConstructor, this.
|
|
57
|
+
Object.assign(swiperElemConstructor, this.swiperRelatedOptions());
|
|
60
58
|
this.swiperElement.set(swiperElemConstructor);
|
|
61
59
|
this.swiperElement()?.initialize();
|
|
62
60
|
}
|
|
63
61
|
});
|
|
64
|
-
this.ecOnConstruct();
|
|
65
62
|
}
|
|
66
63
|
ngOnInit() {
|
|
67
|
-
|
|
68
|
-
this.
|
|
64
|
+
console.log(this.productID);
|
|
65
|
+
this.load(this.productID);
|
|
69
66
|
}
|
|
70
67
|
load(product_id) {
|
|
71
|
-
this.
|
|
72
|
-
|
|
73
|
-
res.
|
|
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' }));
|
|
74
73
|
});
|
|
75
74
|
}
|
|
76
75
|
includeKeyword = (word) => {
|
|
@@ -80,46 +79,18 @@ export class RelatedProductsEcComponent extends ComponentHelper {
|
|
|
80
79
|
});
|
|
81
80
|
return result;
|
|
82
81
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
top: 0,
|
|
86
|
-
left: 0,
|
|
87
|
-
behavior: 'smooth'
|
|
88
|
-
});
|
|
89
|
-
this.load(changes['product_id'].currentValue);
|
|
90
|
-
//this.doSomething(changes.categoryId.currentValue);
|
|
91
|
-
// You can also use categoryId.previousValue and
|
|
92
|
-
// categoryId.firstChange for comparing old and new values
|
|
93
|
-
}
|
|
94
|
-
customOptions = {
|
|
95
|
-
loop: true,
|
|
96
|
-
dots: false,
|
|
97
|
-
navSpeed: 950,
|
|
98
|
-
margin: 0,
|
|
99
|
-
navText: ['', ''],
|
|
100
|
-
nav: true,
|
|
101
|
-
responsive: {
|
|
102
|
-
0: {
|
|
103
|
-
items: 1,
|
|
104
|
-
nav: true
|
|
105
|
-
},
|
|
106
|
-
600: {
|
|
107
|
-
items: 3,
|
|
108
|
-
nav: true
|
|
109
|
-
},
|
|
110
|
-
900: {
|
|
111
|
-
items: 4,
|
|
112
|
-
nav: true,
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, deps: [{ token: i1.ProductsService }, { token: i2.AnalyticsService }, { token: i3.CoreConstantsService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RelatedProductsEcComponent, isStandalone: true, selector: "app-related-products-ec", inputs: { product_id: "product_id" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " <!-- @for (products of relatedProducts; track $index) {\r\n<section class=\"destacados\" id=\"destacados\">\r\n <div class=\"container-fluid mx-auto py-5\">\r\n <div class=\"row mx-auto d-flex justify-content-start px-3 py-3\">\r\n <h3 class=\"my-auto mx-2 text-left w-fit bold text-beige1\">\r\n {{ products.title ? products.title : 'PRODUCTOS RECOMENDADOS' | uppercase}}\r\n </h3>\r\n </div>\r\n\r\n <owl-carousel-o [options]=\"customOptionsDestacados\" class=\"row mx-auto d-flex justify-content-center p-3 pb-1\">\r\n <ng-template carouselSlide *ngFor=\"let product of products.items\">\r\n <app-product-destacados [product]=\"product\" [isValorados]=\"false\"></app-product-destacados>\r\n </ng-template>\r\n </owl-carousel-o> \r\n\r\n <div class=\"row mx-auto d-flex justify-content-center pb-3 d-md-none\">\r\n <a routerLink=\"/collection\" role=\"button\"\r\n class=\"btn btn-dark bg-beige1 text-blanco bold rounded-pill px-5 py-2\">IR A LA TIENDA</a>\r\n </div>\r\n </div>\r\n</section>\r\n} -->\r\n", styles: [""] });
|
|
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 }] });
|
|
118
84
|
}
|
|
119
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, decorators: [{
|
|
120
86
|
type: Component,
|
|
121
|
-
args: [{ selector: 'app-related-products-ec', standalone: true, imports: [
|
|
122
|
-
}], ctorParameters: () => [
|
|
87
|
+
args: [{ selector: 'app-related-products-ec', standalone: true, imports: [AsyncPipe, ProductEcComponent, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "\r\n" }]
|
|
88
|
+
}], ctorParameters: () => [], propDecorators: { appProduct: [{
|
|
123
89
|
type: Input
|
|
90
|
+
}], productID: [{
|
|
91
|
+
type: Input,
|
|
92
|
+
args: [{
|
|
93
|
+
required: true
|
|
94
|
+
}]
|
|
124
95
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wcm9kdWN0cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZWxhdGVkLXByb2R1Y3RzLWVjL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmVsYXRlZC1wcm9kdWN0cy1lYy9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFpQixNQUFNLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBV3BELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBbUNyQztJQUNWO0lBQ0Q7SUFDQTtJQXJDZDs7T0FFRztJQUNILGFBQWEsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFBO0lBQzFDLGVBQWUsR0FBTyxFQUFFLENBQUM7SUFDeEIsVUFBVSxHQUFRLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNwQyxVQUFVLENBQU07SUFDakIsUUFBUSxDQUFZO0lBRXJCLElBQUksR0FBRyxJQUFJLENBQUM7SUFDWCxpQkFBaUIsR0FBWSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVuRyxh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aW5qZWN0LCBQTEFURk9STV9JRCwgYWZ0ZXJOZXh0UmVuZGVyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9hbmFseXRpY3MvYW5hbHl0aWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuaW1wb3J0IHsgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWxhdGVkLXByb2R1Y3RzLWVjJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRlZFByb2R1Y3RzRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdC8qKlxyXG5cdCAqIFNpZ25hbCB1dGxpemFkbyBwYXJhIGd1YXJkYSBlbCBjb250ZW5lZG9yIGRlbCBjYXJydXNlbFxyXG5cdCAqL1xyXG5cdHN3aXBlckVsZW1lbnQgPSBzaWduYWw8U3dpcGVyQ29udGFpbmVyIHwgbnVsbD4obnVsbClcclxuICAgIHB1YmxpYyByZWxhdGVkUHJvZHVjdHM6YW55ID0gW107XHJcbiAgICBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRClcclxuICAgIEBJbnB1dCgpIHByb2R1Y3RfaWQ6IGFueTtcclxuICAgIHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcclxuXHJcbiAgICBwdWJsaWMgbmFtZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGtleXdvcmRzVG9Db21wYXJlOnN0cmluZ1tdID0gWydjb21wYXJlJywgJ2NvbXBhcmFyJywgJ2NvbXBhcmFjaW9uJywgJ2NvbXBhcmFjacOzbicsICdjb21wYXJlZCddO1xyXG5cclxuICAgICAgICBzd2lwZXJSZWxhdGVkID0gKCk6IFN3aXBlck9wdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgMDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICA1NzY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgNzY4OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICA5OTI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIDEyMDA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNCxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuXHRcdFx0dGhpcy5kb2N1bWVudCA9IGRvY3VtZW50XHJcblx0XHR9XHJcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBzd2lwZXJFbGVtQ29uc3RydWN0b3IgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCcjcmVsYXRlZFByb2R1Y3RzJylcclxuXHRcdFx0aWYgKHN3aXBlckVsZW1Db25zdHJ1Y3Rvcikge1xyXG5cdFx0XHRcdE9iamVjdC5hc3NpZ24oc3dpcGVyRWxlbUNvbnN0cnVjdG9yISwgdGhpcy5zd2lwZXJSZWxhdGVkKCkpXHJcblx0XHRcdFx0dGhpcy5zd2lwZXJFbGVtZW50LnNldChzd2lwZXJFbGVtQ29uc3RydWN0b3IgYXMgU3dpcGVyQ29udGFpbmVyKVxyXG5cdFx0XHRcdHRoaXMuc3dpcGVyRWxlbWVudCgpPy5pbml0aWFsaXplKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxvYWQodGhpcy5wcm9kdWN0X2lkKVxyXG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWQocHJvZHVjdF9pZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0UmVsYXRlZFByb2R1Y3RzKHByb2R1Y3RfaWQudG9TdHJpbmcoKSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0ZWRQcm9kdWN0cyA9IHJlcy5maWx0ZXIoKGVsZW06IGFueSkgPT4gIXRoaXMuaW5jbHVkZUtleXdvcmQoZWxlbS50aXRsZS50b0xvd2VyQ2FzZSgpKSlcclxuICAgICAgICAgICAgICAgIHJlcy5tYXAoKHByb2R1Y3RzOiBhbnkpID0+IHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3ZpZXdfaXRlbV9saXN0JywgeyBwcm9kdWN0czogcHJvZHVjdHMuaXRlbXMsIGl0ZW1fbGlzdF9uYW1lOiBwcm9kdWN0cy50aXRsZSB8fCAnUmVsYXRlZCBQcm9kdWN0cycsIGl0ZW1fbGlzdF9pZDogcHJvZHVjdHMuaWQgfHwgJ3JlbGF0ZWQtcHJvZHVjdHMnIH0pKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvL3JlcyA9PiByZXMuaXRlbXMgPyB0aGlzLnByb2R1Y3RzID0gcmVzLml0ZW1zIDogbnVsbFxyXG4gICAgICAgICAgICAvLyBlcnIgPT4gdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ3VuYWJsZS10by1mZXRjaC1wcm9kdWN0cycpXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIGluY2x1ZGVLZXl3b3JkID0gKHdvcmQ6c3RyaW5nKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5rZXl3b3Jkc1RvQ29tcGFyZS5mb3JFYWNoKCBrZXl3b3JkID0+IHtcclxuICAgICAgICAgICAgd29yZC5pbmNsdWRlcyhrZXl3b3JkKSA/IHJlc3VsdCA9IHRydWUgOiBudWxsXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gcmVzdWx0XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgd2luZG93LnNjcm9sbCh7XHJcbiAgICAgICAgICAgIHRvcDogMCxcclxuICAgICAgICAgICAgbGVmdDogMCxcclxuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5sb2FkKGNoYW5nZXNbJ3Byb2R1Y3RfaWQnXS5jdXJyZW50VmFsdWUpXHJcbiAgICAgICAgLy90aGlzLmRvU29tZXRoaW5nKGNoYW5nZXMuY2F0ZWdvcnlJZC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIC8vIFlvdSBjYW4gYWxzbyB1c2UgY2F0ZWdvcnlJZC5wcmV2aW91c1ZhbHVlIGFuZCBcclxuICAgICAgICAvLyBjYXRlZ29yeUlkLmZpcnN0Q2hhbmdlIGZvciBjb21wYXJpbmcgb2xkIGFuZCBuZXcgdmFsdWVzXHJcblxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHVibGljIGN1c3RvbU9wdGlvbnM6IGFueSA9IHtcclxuICAgICAgICBsb29wOiB0cnVlLFxyXG4gICAgICAgIGRvdHM6IGZhbHNlLFxyXG4gICAgICAgIG5hdlNwZWVkOiA5NTAsXHJcbiAgICAgICAgbWFyZ2luOiAwLFxyXG4gICAgICAgIG5hdlRleHQ6IFsnJywgJyddLFxyXG4gICAgICAgIG5hdjogdHJ1ZSxcclxuICAgICAgICByZXNwb25zaXZlOiB7XHJcbiAgICAgICAgICAgIDA6IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiAxLFxyXG4gICAgICAgICAgICAgICAgbmF2OiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIDYwMDoge1xyXG4gICAgICAgICAgICAgICAgaXRlbXM6IDMsXHJcbiAgICAgICAgICAgICAgICBuYXY6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgOTAwOiB7XHJcbiAgICAgICAgICAgICAgICBpdGVtczogNCxcclxuICAgICAgICAgICAgICAgIG5hdjogdHJ1ZSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxufVxyXG4iLCIgIDwhLS0gQGZvciAocHJvZHVjdHMgb2YgcmVsYXRlZFByb2R1Y3RzOyB0cmFjayAkaW5kZXgpIHtcclxuPHNlY3Rpb24gY2xhc3M9XCJkZXN0YWNhZG9zXCIgaWQ9XCJkZXN0YWNhZG9zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIG14LWF1dG8gcHktNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtYXV0byBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IHB4LTMgcHktM1wiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJteS1hdXRvIG14LTIgdGV4dC1sZWZ0IHctZml0IGJvbGQgdGV4dC1iZWlnZTFcIj5cclxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3RzLnRpdGxlID8gcHJvZHVjdHMudGl0bGUgOiAnUFJPRFVDVE9TIFJFQ09NRU5EQURPUycgfCB1cHBlcmNhc2V9fVxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgIDxvd2wtY2Fyb3VzZWwtbyBbb3B0aW9uc109XCJjdXN0b21PcHRpb25zRGVzdGFjYWRvc1wiIGNsYXNzPVwicm93IG14LWF1dG8gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcC0zICBwYi0xXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjYXJvdXNlbFNsaWRlICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHByb2R1Y3RzLml0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXByb2R1Y3QtZGVzdGFjYWRvcyBbcHJvZHVjdF09XCJwcm9kdWN0XCIgW2lzVmFsb3JhZG9zXT1cImZhbHNlXCI+PC9hcHAtcHJvZHVjdC1kZXN0YWNhZG9zPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvb3dsLWNhcm91c2VsLW8+IFxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LWF1dG8gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcGItMyBkLW1kLW5vbmVcIj5cclxuICAgICAgICAgICAgPGEgcm91dGVyTGluaz1cIi9jb2xsZWN0aW9uXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGFyayBiZy1iZWlnZTEgdGV4dC1ibGFuY28gYm9sZCByb3VuZGVkLXBpbGwgcHgtNSBweS0yXCI+SVIgQSBMQSBUSUVOREE8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG59IC0tPlxyXG4iXX0=
|
|
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=
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { ComponentHelper } from '../../classes/component-helper';
|
|
4
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../ec-services/toast.service";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
import * as i3 from "../../constants/core.constants.service";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "../../ec-services/products.service";
|
|
12
|
+
import * as i6 from "../../ec-services/auth.service";
|
|
13
|
+
import * as i7 from "../../ec-services/reviews.service";
|
|
14
|
+
import * as i8 from "@ngx-translate/core";
|
|
15
|
+
export class ReviewsFormEcComponent extends ComponentHelper {
|
|
16
|
+
toastrService;
|
|
17
|
+
router;
|
|
18
|
+
consts;
|
|
19
|
+
formBuilder;
|
|
20
|
+
productService;
|
|
21
|
+
authService;
|
|
22
|
+
reviewsService;
|
|
23
|
+
/**
|
|
24
|
+
* @description producto al que se le va a agregar la reseña.
|
|
25
|
+
*/
|
|
26
|
+
product;
|
|
27
|
+
/**
|
|
28
|
+
* @description para controlar si esta logueado.
|
|
29
|
+
*/
|
|
30
|
+
withAuthenticated = true;
|
|
31
|
+
/**
|
|
32
|
+
* @description número maximo de valor de puntuación
|
|
33
|
+
*/
|
|
34
|
+
max = 5;
|
|
35
|
+
/**
|
|
36
|
+
* @description para indicar cuando se termino la operación de consulta.
|
|
37
|
+
*/
|
|
38
|
+
ready = new EventEmitter();
|
|
39
|
+
reviews_form;
|
|
40
|
+
loading = false;
|
|
41
|
+
form_data = new FormData();
|
|
42
|
+
limit = [];
|
|
43
|
+
constructor(toastrService, router, consts, formBuilder, productService, authService, reviewsService) {
|
|
44
|
+
super();
|
|
45
|
+
this.toastrService = toastrService;
|
|
46
|
+
this.router = router;
|
|
47
|
+
this.consts = consts;
|
|
48
|
+
this.formBuilder = formBuilder;
|
|
49
|
+
this.productService = productService;
|
|
50
|
+
this.authService = authService;
|
|
51
|
+
this.reviewsService = reviewsService;
|
|
52
|
+
this.reviews_form = formBuilder.group({
|
|
53
|
+
title: ['', Validators.required],
|
|
54
|
+
comment: ['', Validators.required],
|
|
55
|
+
rating: [0, Validators.required],
|
|
56
|
+
email: ['', this.withAuthenticated ? [] : [Validators.required, Validators.email]],
|
|
57
|
+
//attachment: [''],
|
|
58
|
+
});
|
|
59
|
+
this.ecOnConstruct(); // Removed as the method does not exist
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
for (let index = 0; index < this.max; index++) {
|
|
63
|
+
this.limit.push(index + 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @description guarda el valor que contiene la puntuación de la reseña.
|
|
68
|
+
* @param value
|
|
69
|
+
*/
|
|
70
|
+
setRatingValue = (value = 0) => {
|
|
71
|
+
this.reviews_form.controls['rating'].setValue(value);
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* @description procesa el formulario con los datos.
|
|
75
|
+
* @param form
|
|
76
|
+
* @param success_message mensaje para que se muestre en el caso de exito.
|
|
77
|
+
*/
|
|
78
|
+
sendForm = (form, success_message) => {
|
|
79
|
+
if (form.valid) {
|
|
80
|
+
this.withAuthenticated ? this.reviews_form.controls['email'].setValue(this.authService.getUserProfileAsUser().email) : null;
|
|
81
|
+
this.productService.saveReviews(this.product.id, form.value).toPromise().then(res => {
|
|
82
|
+
this.reviews_form.reset();
|
|
83
|
+
this.toastrService.show(success_message ? success_message : 'success-review');
|
|
84
|
+
this.loading = false;
|
|
85
|
+
this.ready.emit(true);
|
|
86
|
+
// Queda preparado por si algun dia se quiere manejar sincronismo.
|
|
87
|
+
//this.updateReviews()
|
|
88
|
+
}, err => {
|
|
89
|
+
this.toastrService.show('inquiry-error');
|
|
90
|
+
this.loading = false;
|
|
91
|
+
this.ready.emit(true);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.toastrService.show('invalid-form');
|
|
96
|
+
this.loading = false;
|
|
97
|
+
this.ready.emit(true);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* @descirption controla que el usuario este logueado para comentar. Si la variable withAuthenticated es falso entonces no realiza este control.
|
|
102
|
+
* @param e evento producido por el submit del formulario
|
|
103
|
+
*/
|
|
104
|
+
toastReviewsForm = (e, message) => {
|
|
105
|
+
this.loading = true;
|
|
106
|
+
e.preventDefault();
|
|
107
|
+
if (this.withAuthenticated) {
|
|
108
|
+
this.authService.isAuthenticated() ?
|
|
109
|
+
this.sendForm(this.reviews_form, message ? message : 'success-review') : this.toastrService.show('authenticated-for-comment');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.sendForm(this.reviews_form, message ? message : 'success-review');
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* @description actualiza las reviews
|
|
117
|
+
* @returns
|
|
118
|
+
*/
|
|
119
|
+
updateReviews = () => this.reviewsService.updateReviewsByCode(this.product.id);
|
|
120
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsFormEcComponent, deps: [{ token: i1.ToastService }, { token: i2.Router }, { token: i3.CoreConstantsService }, { token: i4.FormBuilder }, { token: i5.ProductsService }, { token: i6.AuthService }, { token: i7.ReviewsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ReviewsFormEcComponent, isStandalone: true, selector: "app-reviews-form-ec", inputs: { product: "product", withAuthenticated: "withAuthenticated", max: "max" }, outputs: { ready: "ready" }, usesInheritance: true, ngImport: i0, template: "<form class=\"formResenia\" [formGroup]=\"reviews_form\" (submit)=\"toastReviewsForm($event)\">\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label class=\"pt-2\">{{\"product\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <p class=\"mt-1 mb-3\">{{ product.name }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Calificaci\u00F3n -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label class=\"pt-2\">{{\"rating\" | translate}}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <div class=\"cont-star mt-1 mb-3\">\r\n @for(star of limit; track $index){\r\n <input type=\"radio\" class=\"d-none\" [id]=\"'star-' + (limit.length - $index)\" [value]=\"limit.length - $index\"\r\n formControlName=\"rating\">\r\n <label class=\"star-label\" [for]=\"'star-' + (limit.length - $index)\">\r\n <i class=\"bi bi-star-fill\"></i>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Resumen -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label for=\"review-summary\" class=\"pt-2\">{{\"summary\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <textarea id=\"review-summary\" class=\"w-100\" placeholder=\"\u00BFC\u00F3mo fue tu experiencia?\" formControlName=\"title\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <!-- Detalle -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label for=\"review-detail\" class=\"pt-2\">{{\"detail\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <textarea id=\"review-detail\" class=\"w-100\" placeholder=\"Contanos por qu\u00E9\" formControlName=\"comment\"></textarea>\r\n <small class=\"text-uppercase\">(*) {{\"mandatory-fields\" | translate }}</small>\r\n </div>\r\n </div>\r\n\r\n <!-- Bot\u00F3n de env\u00EDo -->\r\n <div class=\"row\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-8\">\r\n <button type=\"submit\" class=\"btn btn-dark py-2 px-4 rounded-0 mt-4\"\r\n [disabled]=\"reviews_form.invalid\">{{\"submit-review\" | translate }}</button>\r\n </div>\r\n </div> \r\n</form>", styles: [".cont-star{direction:rtl;unicode-bidi:bidi-override;display:flex;justify-content:end}.cont-star label{display:flex}.cont-star label i{color:#ccc!important;cursor:pointer;font-size:26px;line-height:30px}.cont-star label i:hover,.cont-star label:hover~label i{color:#ffc107!important}input[type=radio]:checked~label i{color:#ffc107!important}input[type=radio]:checked~label i:before,label:hover i:before{content:\"\\f586\"}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
122
|
+
}
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsFormEcComponent, decorators: [{
|
|
124
|
+
type: Component,
|
|
125
|
+
args: [{ selector: 'app-reviews-form-ec', standalone: true, imports: [TranslateModule, ReactiveFormsModule], template: "<form class=\"formResenia\" [formGroup]=\"reviews_form\" (submit)=\"toastReviewsForm($event)\">\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label class=\"pt-2\">{{\"product\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <p class=\"mt-1 mb-3\">{{ product.name }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Calificaci\u00F3n -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label class=\"pt-2\">{{\"rating\" | translate}}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <div class=\"cont-star mt-1 mb-3\">\r\n @for(star of limit; track $index){\r\n <input type=\"radio\" class=\"d-none\" [id]=\"'star-' + (limit.length - $index)\" [value]=\"limit.length - $index\"\r\n formControlName=\"rating\">\r\n <label class=\"star-label\" [for]=\"'star-' + (limit.length - $index)\">\r\n <i class=\"bi bi-star-fill\"></i>\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Resumen -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label for=\"review-summary\" class=\"pt-2\">{{\"summary\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <textarea id=\"review-summary\" class=\"w-100\" placeholder=\"\u00BFC\u00F3mo fue tu experiencia?\" formControlName=\"title\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <!-- Detalle -->\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <label for=\"review-detail\" class=\"pt-2\">{{\"detail\" | translate }}*</label>\r\n </div>\r\n <div class=\"col-8\">\r\n <textarea id=\"review-detail\" class=\"w-100\" placeholder=\"Contanos por qu\u00E9\" formControlName=\"comment\"></textarea>\r\n <small class=\"text-uppercase\">(*) {{\"mandatory-fields\" | translate }}</small>\r\n </div>\r\n </div>\r\n\r\n <!-- Bot\u00F3n de env\u00EDo -->\r\n <div class=\"row\">\r\n <div class=\"col-4\"></div>\r\n <div class=\"col-8\">\r\n <button type=\"submit\" class=\"btn btn-dark py-2 px-4 rounded-0 mt-4\"\r\n [disabled]=\"reviews_form.invalid\">{{\"submit-review\" | translate }}</button>\r\n </div>\r\n </div> \r\n</form>", styles: [".cont-star{direction:rtl;unicode-bidi:bidi-override;display:flex;justify-content:end}.cont-star label{display:flex}.cont-star label i{color:#ccc!important;cursor:pointer;font-size:26px;line-height:30px}.cont-star label i:hover,.cont-star label:hover~label i{color:#ffc107!important}input[type=radio]:checked~label i{color:#ffc107!important}input[type=radio]:checked~label i:before,label:hover i:before{content:\"\\f586\"}\n"] }]
|
|
126
|
+
}], ctorParameters: () => [{ type: i1.ToastService }, { type: i2.Router }, { type: i3.CoreConstantsService }, { type: i4.FormBuilder }, { type: i5.ProductsService }, { type: i6.AuthService }, { type: i7.ReviewsService }], propDecorators: { product: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], withAuthenticated: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], max: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], ready: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}] } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1mb3JtLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3Jldmlld3MtZm9ybS1lYy9yZXZpZXdzLWZvcm0tZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmV2aWV3cy1mb3JtLWVjL3Jldmlld3MtZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVVyRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQXlCakM7SUFBb0M7SUFBdUI7SUFDdEU7SUFBaUM7SUFBd0M7SUFBZ0M7SUF4QnBIOztPQUVHO0lBQ00sT0FBTyxDQUFLO0lBQ3JCOztPQUVHO0lBQ00saUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQzNDOztPQUVHO0lBQ00sR0FBRyxHQUFVLENBQUMsQ0FBQztJQUN4Qjs7T0FFRztJQUNPLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXZDLFlBQVksQ0FBWTtJQUV4QixPQUFPLEdBQVcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQ25DLEtBQUssR0FBVSxFQUFFLENBQUM7SUFFekIsWUFBc0IsYUFBMkIsRUFBUyxNQUFjLEVBQVMsTUFBNEIsRUFDbEcsV0FBd0IsRUFBUyxjQUErQixFQUFTLFdBQXVCLEVBQVMsY0FBNkI7UUFDN0ksS0FBSyxFQUFFLENBQUE7UUFGVyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFzQjtRQUNsRyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFFN0ksSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssRUFBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixtQkFBbUI7U0FDdEIsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsdUNBQXVDO0lBQ2pFLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEdBQUcsQ0FBQyxRQUFhLENBQUMsRUFBRSxFQUFFO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4RCxDQUFDLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxHQUFHLENBQUMsSUFBYyxFQUFFLGVBQXVCLEVBQUcsRUFBRTtRQUNwRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1lBRTNILElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxFQUFFO2dCQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3JCLGtFQUFrRTtnQkFDbEUsc0JBQXNCO1lBQzFCLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtnQkFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pCLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtZQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0wsQ0FBQyxDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFRLEVBQUUsT0FBZ0IsRUFBUSxFQUFFO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBQ2pJLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzFFLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO3dHQXRHckUsc0JBQXNCOzRGQUF0QixzQkFBc0IsdU5DcEJuQyx3ekVBeURPLGdlRDFDSSxlQUFlLDJGQUFFLG1CQUFtQjs7NEZBS2xDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNWLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDO3dQQVVuQyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlHLEdBQUc7c0JBQVgsS0FBSztnQkFJSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJldmlld3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvcmV2aWV3cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvdG9hc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZXZpZXdzLWZvcm0tZWMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXZpZXdzLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmV2aWV3cy1mb3JtLWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgIFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmV2aWV3c0Zvcm1FY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIHByb2R1Y3RvIGFsIHF1ZSBzZSBsZSB2YSBhIGFncmVnYXIgbGEgcmVzZcOxYS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHJvZHVjdDphbnk7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBwYXJhIGNvbnRyb2xhciBzaSBlc3RhIGxvZ3VlYWRvLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSB3aXRoQXV0aGVudGljYXRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBuw7ptZXJvIG1heGltbyBkZSB2YWxvciBkZSBwdW50dWFjacOzblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBtYXg6bnVtYmVyID0gNTtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIHBhcmEgaW5kaWNhciBjdWFuZG8gc2UgdGVybWlubyBsYSBvcGVyYWNpw7NuIGRlIGNvbnN1bHRhLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBcclxuICAgIHB1YmxpYyByZXZpZXdzX2Zvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBwdWJsaWMgbG9hZGluZzpib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcm90ZWN0ZWQgZm9ybV9kYXRhOiBhbnkgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIHB1YmxpYyBsaW1pdDpudW1iZXJbXT1bXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLCBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBjb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBwcm9kdWN0U2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgYXV0aFNlcnZpY2U6QXV0aFNlcnZpY2UsIHB1YmxpYyByZXZpZXdzU2VydmljZTpSZXZpZXdzU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKClcclxuICAgICAgICB0aGlzLnJldmlld3NfZm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgdGl0bGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIGNvbW1lbnQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIHJhdGluZzogWzAsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBlbWFpbDpbJycsIHRoaXMud2l0aEF1dGhlbnRpY2F0ZWQgPyBbXSA6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXHJcbiAgICAgICAgICAgIC8vYXR0YWNobWVudDogWycnXSxcclxuICAgICAgICB9KVxyXG4gICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKSAvLyBSZW1vdmVkIGFzIHRoZSBtZXRob2QgZG9lcyBub3QgZXhpc3RcclxuICAgIH1cclxuICAgICBcclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm1heDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICB0aGlzLmxpbWl0LnB1c2goaW5kZXggKyAxKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBndWFyZGEgZWwgdmFsb3IgcXVlIGNvbnRpZW5lIGxhIHB1bnR1YWNpw7NuIGRlIGxhIHJlc2XDsWEuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgXHJcbiAgICAgKi9cclxuICAgIHNldFJhdGluZ1ZhbHVlID0gKHZhbHVlOm51bWJlcj0wKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXZpZXdzX2Zvcm0uY29udHJvbHNbJ3JhdGluZyddLnNldFZhbHVlKHZhbHVlKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIHByb2Nlc2EgZWwgZm9ybXVsYXJpbyBjb24gbG9zIGRhdG9zLlxyXG4gICAgICogQHBhcmFtIGZvcm0gXHJcbiAgICAgKiBAcGFyYW0gc3VjY2Vzc19tZXNzYWdlIG1lbnNhamUgcGFyYSBxdWUgc2UgbXVlc3RyZSBlbiBlbCBjYXNvIGRlIGV4aXRvLlxyXG4gICAgICovXHJcbiAgICBzZW5kRm9ybSA9IChmb3JtOkZvcm1Hcm91cCwgc3VjY2Vzc19tZXNzYWdlPzpzdHJpbmcgKSA9PiB7XHJcbiAgICAgICAgaWYgKGZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aXRoQXV0aGVudGljYXRlZCA/IHRoaXMucmV2aWV3c19mb3JtLmNvbnRyb2xzWydlbWFpbCddLnNldFZhbHVlKHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlclByb2ZpbGVBc1VzZXIoKS5lbWFpbCkgOiBudWxsXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnNhdmVSZXZpZXdzKHRoaXMucHJvZHVjdC5pZCxmb3JtLnZhbHVlKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmlld3NfZm9ybS5yZXNldCgpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coc3VjY2Vzc19tZXNzYWdlID8gc3VjY2Vzc19tZXNzYWdlIDogJ3N1Y2Nlc3MtcmV2aWV3Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICAvLyBRdWVkYSBwcmVwYXJhZG8gcG9yIHNpIGFsZ3VuIGRpYSBzZSBxdWllcmUgbWFuZWphciBzaW5jcm9uaXNtby5cclxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMudXBkYXRlUmV2aWV3cygpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdygnaW5xdWlyeS1lcnJvcicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ2ludmFsaWQtZm9ybScpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY2lycHRpb24gY29udHJvbGEgcXVlIGVsIHVzdWFyaW8gZXN0ZSBsb2d1ZWFkbyBwYXJhIGNvbWVudGFyLiBTaSBsYSB2YXJpYWJsZSB3aXRoQXV0aGVudGljYXRlZCBlcyBmYWxzbyBlbnRvbmNlcyBubyByZWFsaXphIGVzdGUgY29udHJvbC5cclxuICAgICAqIEBwYXJhbSBlIGV2ZW50byBwcm9kdWNpZG8gcG9yIGVsIHN1Ym1pdCBkZWwgZm9ybXVsYXJpb1xyXG4gICAgICovXHJcbiAgICB0b2FzdFJldmlld3NGb3JtID0gKGU6IEV2ZW50LCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMud2l0aEF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSA/IFxyXG4gICAgICAgICAgICB0aGlzLnNlbmRGb3JtKHRoaXMucmV2aWV3c19mb3JtLCBtZXNzYWdlID8gbWVzc2FnZSA6ICdzdWNjZXNzLXJldmlldycpIDogdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ2F1dGhlbnRpY2F0ZWQtZm9yLWNvbW1lbnQnKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZEZvcm0odGhpcy5yZXZpZXdzX2Zvcm0sIG1lc3NhZ2UgPyBtZXNzYWdlIDogJ3N1Y2Nlc3MtcmV2aWV3JylcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhcyByZXZpZXdzXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgdXBkYXRlUmV2aWV3cyA9ICgpID0+IHRoaXMucmV2aWV3c1NlcnZpY2UudXBkYXRlUmV2aWV3c0J5Q29kZSh0aGlzLnByb2R1Y3QuaWQpXHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJmb3JtUmVzZW5pYVwiICBbZm9ybUdyb3VwXT1cInJldmlld3NfZm9ybVwiIChzdWJtaXQpPVwidG9hc3RSZXZpZXdzRm9ybSgkZXZlbnQpXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInB0LTJcIj57e1wicHJvZHVjdFwiIHwgdHJhbnNsYXRlIH19KjwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwibXQtMSBtYi0zXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBDYWxpZmljYWNpw7NuIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwdC0yXCI+e3tcInJhdGluZ1wiIHwgdHJhbnNsYXRlfX0qPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnQtc3RhciBtdC0xIG1iLTNcIj5cclxuICAgICAgICAgICAgICBAZm9yKHN0YXIgb2YgbGltaXQ7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImQtbm9uZVwiIFtpZF09XCInc3Rhci0nICsgKGxpbWl0Lmxlbmd0aCAtICRpbmRleClcIiBbdmFsdWVdPVwibGltaXQubGVuZ3RoIC0gJGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJhdGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzdGFyLWxhYmVsXCIgW2Zvcl09XCInc3Rhci0nICsgKGxpbWl0Lmxlbmd0aCAtICRpbmRleClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktc3Rhci1maWxsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlc3VtZW4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZXZpZXctc3VtbWFyeVwiIGNsYXNzPVwicHQtMlwiPnt7XCJzdW1tYXJ5XCIgfCB0cmFuc2xhdGUgfX0qPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgPHRleHRhcmVhIGlkPVwicmV2aWV3LXN1bW1hcnlcIiBjbGFzcz1cInctMTAwXCIgcGxhY2Vob2xkZXI9XCLCv0PDs21vIGZ1ZSB0dSBleHBlcmllbmNpYT9cIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIERldGFsbGUgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZXZpZXctZGV0YWlsXCIgY2xhc3M9XCJwdC0yXCI+e3tcImRldGFpbFwiIHwgdHJhbnNsYXRlIH19KjwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cclxuICAgICAgICAgIDx0ZXh0YXJlYSBpZD1cInJldmlldy1kZXRhaWxcIiBjbGFzcz1cInctMTAwXCIgcGxhY2Vob2xkZXI9XCJDb250YW5vcyBwb3IgcXXDqVwiIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj4oKikge3tcIm1hbmRhdG9yeS1maWVsZHNcIiB8IHRyYW5zbGF0ZSB9fTwvc21hbGw+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEJvdMOzbiBkZSBlbnbDrW8gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tZGFyayBweS0yIHB4LTQgcm91bmRlZC0wIG10LTRcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXZpZXdzX2Zvcm0uaW52YWxpZFwiPnt7XCJzdWJtaXQtcmV2aWV3XCIgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+IFxyXG48L2Zvcm0+Il19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { ToastrService } from 'ngx-toastr';
|
|
5
|
+
import { ComponentHelper } from '../../classes/component-helper';
|
|
6
|
+
import { OptionsService } from '../../ec-services';
|
|
7
|
+
import { BlocksEcComponent } from "../blocks-ec/blocks-ec.component";
|
|
8
|
+
import { LoadingFullEcComponent } from "../widgets-ec/loading/loading-full-ec/loading-full-ec.component";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class SectionContainerEcComponent extends ComponentHelper {
|
|
11
|
+
content_html = "<p>Sin información</p>";
|
|
12
|
+
loadSection = false;
|
|
13
|
+
sanitizeHtml = false;
|
|
14
|
+
name = null;
|
|
15
|
+
dataSection;
|
|
16
|
+
sections = [];
|
|
17
|
+
optionsService = inject(OptionsService);
|
|
18
|
+
activatedRoute = inject(ActivatedRoute);
|
|
19
|
+
toastrService = inject(ToastrService);
|
|
20
|
+
sanitizer = inject(DomSanitizer);
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.optionsService.getSections();
|
|
24
|
+
this.ecOnConstruct();
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
if (this.name) {
|
|
28
|
+
this.getSection(this.name);
|
|
29
|
+
this.getDataSection(this.name);
|
|
30
|
+
//console.log('con parametro')
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.activatedRoute.params.subscribe(params => {
|
|
34
|
+
this.name = params['name'];
|
|
35
|
+
this.getSection(this.name);
|
|
36
|
+
this.getDataSection(this.name);
|
|
37
|
+
//console.log('sin parametro', this.name)
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
this.ecOnInit();
|
|
41
|
+
}
|
|
42
|
+
getSection = (link) => {
|
|
43
|
+
this.loadSection = false;
|
|
44
|
+
this.optionsService.getSectionContentByLink(link).toPromise().then((html) => {
|
|
45
|
+
if (html)
|
|
46
|
+
this.content_html =
|
|
47
|
+
this.sanitizeHtml
|
|
48
|
+
? html
|
|
49
|
+
: this.sanitizer.bypassSecurityTrustHtml(html);
|
|
50
|
+
this.loadSection = true;
|
|
51
|
+
}, (error) => {
|
|
52
|
+
console.log(error);
|
|
53
|
+
this.loadSection = true;
|
|
54
|
+
this.content_html = "<p>Sin información</p>";
|
|
55
|
+
this.toastrService.show('No fue posible encontrar la sección solicitada');
|
|
56
|
+
}).catch((error) => {
|
|
57
|
+
this.content_html = "<p>Sin información</p>";
|
|
58
|
+
this.loadSection = true;
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
getDataSection = (code) => {
|
|
62
|
+
this.dataSection = this.sections.find(section => section.code == code);
|
|
63
|
+
};
|
|
64
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionContainerEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SectionContainerEcComponent, isStandalone: true, selector: "app-section-container-ec", inputs: { sanitizeHtml: "sanitizeHtml", name: "name" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"scrol-if\">\r\n @if (loadSection){\r\n <div [innerHtml]=\"content_html\"></div>\r\n } @else {\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-blocks-ec [section]=\"name\"></app-blocks-ec>", styles: [".custom-page{background-color:#fff!important;padding-top:5%!important;padding-bottom:5%!important}.scrol-if{overflow:auto}\n"], dependencies: [{ kind: "component", type: BlocksEcComponent, selector: "app-blocks-ec", inputs: ["templates", "show_loading", "section", "blockFilters"] }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionContainerEcComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'app-section-container-ec', standalone: true, imports: [BlocksEcComponent, LoadingFullEcComponent], template: "<div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"scrol-if\">\r\n @if (loadSection){\r\n <div [innerHtml]=\"content_html\"></div>\r\n } @else {\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-blocks-ec [section]=\"name\"></app-blocks-ec>", styles: [".custom-page{background-color:#fff!important;padding-top:5%!important;padding-bottom:5%!important}.scrol-if{overflow:auto}\n"] }]
|
|
70
|
+
}], ctorParameters: () => [], propDecorators: { sanitizeHtml: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], name: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1jb250YWluZXItZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvc2VjdGlvbi1jb250YWluZXItZWMvc2VjdGlvbi1jb250YWluZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvc2VjdGlvbi1jb250YWluZXItZWMvc2VjdGlvbi1jb250YWluZXItZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOztBQVN6RyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQUVyRCxZQUFZLEdBQWEsd0JBQXdCLENBQUM7SUFDbEQsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUMzQixZQUFZLEdBQVksS0FBSyxDQUFBO0lBQzdCLElBQUksR0FBRyxJQUFJLENBQUM7SUFDZCxXQUFXLENBQU07SUFDaEIsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUVyQixjQUFjLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN2RCxjQUFjLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN2RCxhQUFhLEdBQWtCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNwRCxTQUFTLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN0RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLDhCQUE4QjtRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDaEMsTUFBTSxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDOUIseUNBQXlDO1lBQzdDLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQzlELENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDYixJQUFJLElBQUk7Z0JBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQ3ZCLElBQUksQ0FBQyxZQUFZO3dCQUNiLENBQUMsQ0FBQyxJQUFJO3dCQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQzNCLENBQUMsRUFFRCxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUNKLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsQ0FBQTtZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQTtJQUVELGNBQWMsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFBO0lBQzFFLENBQUMsQ0FBQTt3R0EvRFEsMkJBQTJCOzRGQUEzQiwyQkFBMkIsbUtDaEJ4Qyw2ckJBbUJnRCxzTERQbEMsaUJBQWlCLDRIQUFFLHNCQUFzQjs7NEZBSTFDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUM7d0RBUTNDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEJsb2Nrc0VjQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jsb2Nrcy1lYy9ibG9ja3MtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tIFwiLi4vd2lkZ2V0cy1lYy9sb2FkaW5nL2xvYWRpbmctZnVsbC1lYy9sb2FkaW5nLWZ1bGwtZWMuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXNlY3Rpb24tY29udGFpbmVyLWVjJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQmxvY2tzRWNDb21wb25lbnQsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tY29udGFpbmVyLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tY29udGFpbmVyLWVjLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlY3Rpb25Db250YWluZXJFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgcHVibGljIGNvbnRlbnRfaHRtbDogU2FmZUh0bWwgPSBcIjxwPlNpbiBpbmZvcm1hY2nDs248L3A+XCI7XHJcbiAgICBwdWJsaWMgbG9hZFNlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNhbml0aXplSHRtbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgICBASW5wdXQoKSBuYW1lID0gbnVsbDtcclxuICAgIHB1YmxpYyBkYXRhU2VjdGlvbjogYW55O1xyXG4gICAgcHJpdmF0ZSBzZWN0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSlcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxyXG4gICAgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlID0gaW5qZWN0KFRvYXN0clNlcnZpY2UpXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcilcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZS5nZXRTZWN0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubmFtZSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldFNlY3Rpb24odGhpcy5uYW1lKVxyXG4gICAgICAgICAgICB0aGlzLmdldERhdGFTZWN0aW9uKHRoaXMubmFtZSlcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnY29uIHBhcmFtZXRybycpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWUgPSBwYXJhbXNbJ25hbWUnXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFNlY3Rpb24odGhpcy5uYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGF0YVNlY3Rpb24odGhpcy5uYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3NpbiBwYXJhbWV0cm8nLCB0aGlzLm5hbWUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVjT25Jbml0KClcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZWN0aW9uID0gKGxpbms6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZFNlY3Rpb24gPSBmYWxzZVxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0U2VjdGlvbkNvbnRlbnRCeUxpbmsobGluaykudG9Qcm9taXNlKCkudGhlbihcclxuICAgICAgICAgICAgKGh0bWw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwpIHRoaXMuY29udGVudF9odG1sID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplSHRtbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGh0bWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkU2VjdGlvbiA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAsXHJcbiAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTZWN0aW9uID0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50X2h0bWwgPSBcIjxwPlNpbiBpbmZvcm1hY2nDs248L3A+XCI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdygnTm8gZnVlIHBvc2libGUgZW5jb250cmFyIGxhIHNlY2Npw7NuIHNvbGljaXRhZGEnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkuY2F0Y2goKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50X2h0bWwgPSBcIjxwPlNpbiBpbmZvcm1hY2nDs248L3A+XCJcclxuICAgICAgICAgICAgdGhpcy5sb2FkU2VjdGlvbiA9IHRydWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhU2VjdGlvbiA9IChjb2RlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFTZWN0aW9uID0gdGhpcy5zZWN0aW9ucy5maW5kKHNlY3Rpb24gPT4gc2VjdGlvbi5jb2RlID09IGNvZGUpXHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2wtaWZcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAobG9hZFNlY3Rpb24pe1xyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cImNvbnRlbnRfaHRtbFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzaXRmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGFwcC1ibG9ja3MtZWMgW3NlY3Rpb25dPVwibmFtZVwiPjwvYXBwLWJsb2Nrcy1lYz4iXX0=
|