ng-easycommerce-v18 0.3.13 → 0.3.14-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/README.md +4 -7
  2. package/esm2022/lib/classes/filters/filter.mjs +27 -2
  3. package/esm2022/lib/constants/api.constants.service.mjs +41 -44
  4. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +1 -5
  5. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +1 -5
  6. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +5 -3
  7. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +2 -6
  8. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +34 -45
  9. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +5 -95
  10. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +6 -4
  11. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -2
  12. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +4 -2
  13. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +4 -2
  14. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -2
  15. package/esm2022/lib/ec-services/options.service.mjs +27 -3
  16. package/fesm2022/ng-easycommerce-v18.mjs +165 -350
  17. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  18. package/lib/constants/api.constants.service.d.ts +13 -24
  19. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +0 -2
  20. package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +0 -2
  21. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +0 -5
  22. package/lib/ec-components/header-ec/header-ec.component.d.ts +1 -5
  23. package/lib/ec-components/product-ec/product-ec.component.d.ts +1 -10
  24. package/lib/ec-components/widgets-ec/index.d.ts +0 -1
  25. package/lib/ec-services/options.service.d.ts +4 -0
  26. package/package.json +1 -1
  27. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +0 -138
  28. package/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.d.ts +0 -26
@@ -1,48 +1,37 @@
1
1
  import * as i0 from "@angular/core";
2
2
  /**
3
- * Servicio que provee de datos que estan relacionado con las peticiones a la API
4
- * @export
5
- * @class ApiConstantsService
3
+ * Servicio que provee de datos relacionados con las peticiones a la API
6
4
  */
7
5
  export declare class ApiConstantsService {
6
+ private ssrApiUrl;
8
7
  private _localStorage;
9
8
  private _translate;
10
- /**
11
- * Contiene los datos provisto por el frontend en el archivo environment.ts
12
- */
13
9
  private environment;
14
- /**
15
- * Canal actual del frontend
16
- */
17
- get CHANNEL(): string;
18
- set CHANNEL(value: string);
10
+ private platformId;
19
11
  private _channel;
20
- /**
21
- * Locale actual del frontend
22
- */
23
12
  LOCALE: string;
24
- /**
25
- * URL para las peticiones a shop-api
26
- */
27
13
  readonly SHOP_API_URL: string;
14
+ readonly CMS_URL: string;
15
+ constructor(ssrApiUrl: string);
28
16
  /**
29
- * URL para las peticiones a cms
17
+ * Canal actual del frontend
30
18
  */
31
- readonly CMS_URL: string;
32
- constructor();
19
+ get CHANNEL(): string;
20
+ set CHANNEL(value: string);
33
21
  /**
34
22
  * URL del backend para realizar las peticiones
35
23
  */
36
24
  get API_URL(): string;
37
25
  /**
38
- * Retorna la url base
39
- * @returns {string}
26
+ * URL base completa para shop-api con channel y locale
27
+ */
28
+ getShopApiBase(): string;
29
+ /**
30
+ * Retorna la url base general (sin shop-api)
40
31
  */
41
32
  getUrlBase(): string;
42
33
  /**
43
34
  * Cambia el canal actual
44
- * @param code
45
- * @returns
46
35
  */
47
36
  setChannel(code: string): void;
48
37
  setLocale(locale: string): void;
@@ -6,7 +6,6 @@ export declare class LoginFormEcComponent {
6
6
  private _formBuilder;
7
7
  private _toastService;
8
8
  private _router;
9
- showPassword: boolean;
10
9
  /**
11
10
  * Parametro para indicar si tras loguear
12
11
  * debe redireccionar o no.
@@ -39,7 +38,6 @@ export declare class LoginFormEcComponent {
39
38
  * De lo contrario redirige al contenido de la variable `redirectTo`.
40
39
  */
41
40
  redirectHome(): void;
42
- togglePassword(): void;
43
41
  static ɵfac: i0.ɵɵFactoryDeclaration<LoginFormEcComponent, never>;
44
42
  static ɵcmp: i0.ɵɵComponentDeclaration<LoginFormEcComponent, "app-login-form-ec", never, { "redirect": { "alias": "redirect"; "required": false; }; "redirectTo": { "alias": "redirectTo"; "required": false; }; "inCart": { "alias": "inCart"; "required": false; }; }, { "ready": "ready"; }, never, never, true, never>;
45
43
  }
@@ -8,7 +8,6 @@ export declare class RegisterFormEcComponent {
8
8
  private _analyticsService;
9
9
  private _formBuilder;
10
10
  private channelConfigService;
11
- showPassword: boolean;
12
11
  /**
13
12
  * Indica si debe redireccionar o se queda en la misma pantalla
14
13
  */
@@ -42,7 +41,6 @@ export declare class RegisterFormEcComponent {
42
41
  * @returns
43
42
  */
44
43
  register(event: Event): void;
45
- togglePassword(): void;
46
44
  static ɵfac: i0.ɵɵFactoryDeclaration<RegisterFormEcComponent, never>;
47
45
  static ɵcmp: i0.ɵɵComponentDeclaration<RegisterFormEcComponent, "app-register-form-ec", never, { "redirect": { "alias": "redirect"; "required": false; }; }, { "ready": "ready"; }, never, never, true, never>;
48
46
  }
@@ -1,6 +1,4 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { Parameter } from '../../../interfaces';
4
2
  import * as i0 from "@angular/core";
5
3
  export declare class CartItemEcComponent implements OnInit {
6
4
  item: any;
@@ -8,7 +6,6 @@ export declare class CartItemEcComponent implements OnInit {
8
6
  private _cartService;
9
7
  private _toastService;
10
8
  private _constants;
11
- private parametersService;
12
9
  mediaUrl: string;
13
10
  quantity: number;
14
11
  variantsToShow: string[];
@@ -22,8 +19,6 @@ export declare class CartItemEcComponent implements OnInit {
22
19
  getVariants(product: any): any;
23
20
  createDiscountMessage(saleprice: number, price: number): string;
24
21
  checkStock(product: any): any;
25
- parameters$: Observable<Parameter[] | null>;
26
- hasParams: (params: any, code: string) => any;
27
22
  static ɵfac: i0.ɵɵFactoryDeclaration<CartItemEcComponent, never>;
28
23
  static ɵcmp: i0.ɵɵComponentDeclaration<CartItemEcComponent, "app-cart-item-ec", never, { "item": { "alias": "item"; "required": true; }; "inSidebar": { "alias": "inSidebar"; "required": false; }; }, {}, never, never, true, never>;
29
24
  }
@@ -1,5 +1,4 @@
1
1
  import { MenuEcComponent } from '../abstractions-components';
2
- import { Observable } from 'rxjs';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
5
4
  * Componente que se encarga de manejar la funcionalidad del Header.
@@ -14,15 +13,12 @@ export declare class HeaderEcComponent extends MenuEcComponent {
14
13
  hidePrices: boolean;
15
14
  private __authService;
16
15
  private _channelService;
17
- private changeDetector;
18
- private appRouter;
19
- private platformId;
20
- logged$: Observable<boolean>;
21
16
  isAuthenticated$: boolean;
22
17
  constructor();
23
18
  private coreConstantsService;
24
19
  private router;
25
20
  private cdr;
21
+ protected platformId: Object;
26
22
  ngOnInit(): void;
27
23
  ngAfterViewInit(): void;
28
24
  /**
@@ -1,4 +1,4 @@
1
- import { EventEmitter, OnInit, Injector, WritableSignal } from '@angular/core';
1
+ import { EventEmitter, OnInit, Injector } from '@angular/core';
2
2
  import { Product } from '../../interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
@@ -8,10 +8,6 @@ import * as i0 from "@angular/core";
8
8
  export declare class ProductEcComponent implements OnInit {
9
9
  injector: Injector;
10
10
  private routerService;
11
- private _cartService;
12
- private _toastService;
13
- isAddingToCart: WritableSignal<boolean>;
14
- quantity: WritableSignal<number>;
15
11
  /**
16
12
  * Navega al detalle del producto y sube al inicio de la página
17
13
  * @param productId ID del producto
@@ -47,11 +43,6 @@ export declare class ProductEcComponent implements OnInit {
47
43
  get shouldShowPrice(): boolean;
48
44
  get hasDiscount(): boolean;
49
45
  get discountPercentage(): number | null;
50
- plus(stock?: number, multipleQuantity?: number): void;
51
- less(multipleQuantity?: number): void;
52
- addToCart(): void;
53
- checkStock(stock: number): void;
54
- onQuantityChange(event: Event): void;
55
46
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductEcComponent, never>;
56
47
  static ɵcmp: i0.ɵɵComponentDeclaration<ProductEcComponent, "app-product-ec", never, { "product": { "alias": "product"; "required": true; }; "isProductBox": { "alias": "isProductBox"; "required": false; }; "isCollection": { "alias": "isCollection"; "required": false; }; }, { "loaded": "loaded"; }, never, never, true, never>;
57
48
  }
@@ -2,4 +2,3 @@ export * from './loading';
2
2
  export * from './price-ec/price-ec.component';
3
3
  export * from './re-captcha-ec/re-captcha-ec.component';
4
4
  export * from './magnizoom-ec/magnizoom-ec.component';
5
- export * from './redsys-catch-ec/redsys-catch-ec.component';
@@ -11,6 +11,10 @@ export declare class OptionsService {
11
11
  * Maneja las peticiones a la API
12
12
  */
13
13
  private connection;
14
+ /**
15
+ * Platform ID para verificar si estamos en el navegador
16
+ */
17
+ private platformId;
14
18
  /**
15
19
  * Constantes del core
16
20
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-easycommerce-v18",
3
- "version": "0.3.13",
3
+ "version": "0.3.14-beta.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"
@@ -1,138 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { combineLatest } from 'rxjs';
3
- import { ComponentHelper } from '../../../classes/component-helper';
4
- import { CommonModule } from '@angular/common';
5
- import { DOCUMENT } from '@angular/common';
6
- import { LoadingFullEcComponent } from '../loading/loading-full-ec/loading-full-ec.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/router";
9
- import * as i2 from "../../../ec-services";
10
- import * as i3 from "@angular/common";
11
- export class RedsysCatchEcComponent extends ComponentHelper {
12
- activedRoute;
13
- router;
14
- checkoutService;
15
- renderer;
16
- elementRef;
17
- document;
18
- message = '';
19
- subscription = null;
20
- constructor(activedRoute, router, checkoutService, renderer, elementRef, document) {
21
- super();
22
- this.activedRoute = activedRoute;
23
- this.router = router;
24
- this.checkoutService = checkoutService;
25
- this.renderer = renderer;
26
- this.elementRef = elementRef;
27
- this.document = document;
28
- this.hideHeaderFooter();
29
- this.ecOnConstruct();
30
- }
31
- ngOnInit() {
32
- this.subscription = combineLatest([
33
- this.activedRoute.params,
34
- this.activedRoute.queryParams
35
- ]).subscribe(([queryRouter, queryParams]) => {
36
- let state;
37
- state = queryRouter['state'];
38
- if (state && state === 'statuspayment') {
39
- state = queryParams['status'];
40
- }
41
- console.log('PARAMETROS STATE -> ', state);
42
- this.handlePaymentState(state, queryParams);
43
- });
44
- this.ecOnInit();
45
- }
46
- ngOnDestroy() {
47
- if (this.subscription) {
48
- this.subscription.unsubscribe();
49
- }
50
- this.showHeaderFooter();
51
- // this.ecOnDestroy(); // Removido si no existe en ComponentHelper
52
- }
53
- hideHeaderFooter() {
54
- // Usar Renderer2 en lugar de jQuery para manipular el DOM
55
- const header = this.document.querySelector('header');
56
- const footer = this.document.querySelector('footer');
57
- if (header) {
58
- this.renderer.setStyle(header, 'display', 'none');
59
- }
60
- if (footer) {
61
- this.renderer.setStyle(footer, 'display', 'none');
62
- }
63
- }
64
- showHeaderFooter() {
65
- // Restaurar la visibilidad al destruir el componente
66
- const header = this.document.querySelector('header');
67
- const footer = this.document.querySelector('footer');
68
- if (header) {
69
- this.renderer.removeStyle(header, 'display');
70
- }
71
- if (footer) {
72
- this.renderer.removeStyle(footer, 'display');
73
- }
74
- }
75
- handlePaymentState(state, queryParams) {
76
- switch (state) {
77
- case '200':
78
- this.setStateInLocal('Su pago fue procesado con éxito.', 'success');
79
- this.storeTotalAmount(queryParams);
80
- break;
81
- case 'success':
82
- this.setStateInLocal('Su pago fue procesado con éxito.', state);
83
- this.storeTotalAmount(queryParams);
84
- break;
85
- case 'pending':
86
- this.setStateInLocal('Su pago fue procesado con éxito.', state);
87
- break;
88
- case 'failure':
89
- this.setStateInLocal('Se ha cancelado el proceso de pago.', state);
90
- this.storeTotalAmount(queryParams);
91
- break;
92
- case 'cancel':
93
- this.setStateInLocal('Se ha cancelado el proceso de pago.', state);
94
- break;
95
- case 'ok':
96
- this.setStateInSesion('Su pago fue procesado con éxito.', state);
97
- break;
98
- case 'challenge':
99
- this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state);
100
- break;
101
- case 'error':
102
- this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state);
103
- break;
104
- case '0':
105
- this.setStateInLocal('Se ha cancelado el proceso de pago.', 'failure');
106
- break;
107
- default:
108
- break;
109
- }
110
- }
111
- storeTotalAmount(queryParams) {
112
- const totalAmount = queryParams['total_amount'];
113
- if (totalAmount) {
114
- localStorage.setItem('total_amount', totalAmount);
115
- }
116
- }
117
- setStateInLocal = (mensaje, state) => {
118
- this.message = mensaje;
119
- localStorage.setItem('state', state);
120
- sessionStorage.setItem('modalnews', 'false');
121
- };
122
- setStateInSesion = (mensaje, state) => {
123
- this.message = mensaje;
124
- sessionStorage.setItem('state', state);
125
- localStorage.setItem('state', state);
126
- sessionStorage.setItem('modalnews', 'false');
127
- };
128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedsysCatchEcComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.CheckoutService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedsysCatchEcComponent, isStandalone: true, selector: "app-redsys-catch-ec", usesInheritance: true, ngImport: i0, template: "<div id=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\r\n <br>\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
130
- }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedsysCatchEcComponent, decorators: [{
132
- type: Component,
133
- args: [{ selector: 'app-redsys-catch-ec', standalone: true, imports: [CommonModule, LoadingFullEcComponent], template: "<div id=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\r\n <br>\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"] }]
134
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.CheckoutService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
135
- type: Inject,
136
- args: [DOCUMENT]
137
- }] }] });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7OztBQVM5RixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQU01QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBVHZCLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDWixZQUFZLEdBQXdCLElBQUksQ0FBQztJQUVqRCxZQUNXLFlBQTRCLEVBQzVCLE1BQWMsRUFDZCxlQUFnQyxFQUMvQixRQUFtQixFQUNuQixVQUFzQixFQUNKLFFBQWtCO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBUEQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7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QUFlLEdBQUcsQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFRLEVBQUU7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRU8sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFRLEVBQUU7UUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFBO3dHQTVIUSxzQkFBc0Isd0pBV25CLFFBQVE7NEZBWFgsc0JBQXNCLHNHQ2pCbkMseXBCQWVNLG1aREZRLFlBQVksNEZBQUUsc0JBQXNCOzs0RkFJckMsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7OzBCQWUxQyxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy1mdWxsLWVjL2xvYWRpbmctZnVsbC1lYy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWRzeXMtY2F0Y2gtZWMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkc3lzQ2F0Y2hFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwdWJsaWMgbWVzc2FnZSA9ICcnO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmhpZGVIZWFkZXJGb290ZXIoKTtcclxuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZWRSb3V0ZS5wYXJhbXMsXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlZFJvdXRlLnF1ZXJ5UGFyYW1zXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbcXVlcnlSb3V0ZXIsIHF1ZXJ5UGFyYW1zXSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgc3RhdGUgPSBxdWVyeVJvdXRlclsnc3RhdGUnXTtcclxuICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlID09PSAnc3RhdHVzcGF5bWVudCcpIHtcclxuICAgICAgICAgICAgICAgIHN0YXRlID0gcXVlcnlQYXJhbXNbJ3N0YXR1cyddO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQQVJBTUVUUk9TIFNUQVRFICAtPiAnLCBzdGF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUGF5bWVudFN0YXRlKHN0YXRlLCBxdWVyeVBhcmFtcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNob3dIZWFkZXJGb290ZXIoKTtcclxuICAgICAgICAvLyB0aGlzLmVjT25EZXN0cm95KCk7IC8vIFJlbW92aWRvIHNpIG5vIGV4aXN0ZSBlbiBDb21wb25lbnRIZWxwZXJcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhpZGVIZWFkZXJGb290ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVXNhciBSZW5kZXJlcjIgZW4gbHVnYXIgZGUgalF1ZXJ5IHBhcmEgbWFuaXB1bGFyIGVsIERPTVxyXG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XHJcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcclxuXHJcbiAgICAgICAgaWYgKGhlYWRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGhlYWRlciwgJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9vdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2hvd0hlYWRlckZvb3RlcigpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXN0YXVyYXIgbGEgdmlzaWJpbGlkYWQgYWwgZGVzdHJ1aXIgZWwgY29tcG9uZW50ZVxyXG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XHJcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcclxuXHJcbiAgICAgICAgaWYgKGhlYWRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhlYWRlciwgJ2Rpc3BsYXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZvb3Rlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGZvb3RlciwgJ2Rpc3BsYXknKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVQYXltZW50U3RhdGUoc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgcXVlcnlQYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnMjAwJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCAnc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZVRvdGFsQW1vdW50KHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCBzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlVG90YWxBbW91bnQocXVlcnlQYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3BlbmRpbmcnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZUluTG9jYWwoJ1N1IHBhZ28gZnVlIHByb2Nlc2FkbyBjb24gw6l4aXRvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdmYWlsdXJlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTZSBoYSBjYW5jZWxhZG8gZWwgcHJvY2VzbyBkZSBwYWdvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVUb3RhbEFtb3VudChxdWVyeVBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnY2FuY2VsJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTZSBoYSBjYW5jZWxhZG8gZWwgcHJvY2VzbyBkZSBwYWdvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdvayc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5TZXNpb24oJ1N1IHBhZ28gZnVlIHByb2Nlc2FkbyBjb24gw6l4aXRvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjaGFsbGVuZ2UnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZUluU2VzaW9uKCdSZWRpcmlnaWVuZG8gYSBhdXRlbnRpY2FjacOzbiBkZWwgYmFuY28gZW1pc29yLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5TZXNpb24oJ0FsZ28gbm8gc2FsaW8gYmllbiBlbiBsYSB2YWxpZGFjacOzbiBkZSBzdXMgZGF0b3MuJywgc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJzAnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZUluTG9jYWwoJ1NlIGhhIGNhbmNlbGFkbyBlbCBwcm9jZXNvIGRlIHBhZ28uJywgJ2ZhaWx1cmUnKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmVUb3RhbEFtb3VudChxdWVyeVBhcmFtczogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSBxdWVyeVBhcmFtc1sndG90YWxfYW1vdW50J107XHJcbiAgICAgICAgaWYgKHRvdGFsQW1vdW50KSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b3RhbF9hbW91bnQnLCB0b3RhbEFtb3VudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXRlSW5Mb2NhbCA9IChtZW5zYWplOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdtb2RhbG5ld3MnLCAnZmFsc2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXRlSW5TZXNpb24gPSAobWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVuc2FqZTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGg1IGNsYXNzPVwiY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBteS0zXCI+UmVkaXJpZ2llbmRvIGVuIHNlZ3VuZG9zLi4uPC9oNT5cclxuICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -1,26 +0,0 @@
1
- import { OnInit, OnDestroy, Renderer2, ElementRef } from '@angular/core';
2
- import { ActivatedRoute, Router } from '@angular/router';
3
- import { ComponentHelper } from '../../../classes/component-helper';
4
- import { CheckoutService } from '../../../ec-services';
5
- import * as i0 from "@angular/core";
6
- export declare class RedsysCatchEcComponent extends ComponentHelper implements OnInit, OnDestroy {
7
- activedRoute: ActivatedRoute;
8
- router: Router;
9
- checkoutService: CheckoutService;
10
- private renderer;
11
- private elementRef;
12
- private document;
13
- message: string;
14
- private subscription;
15
- constructor(activedRoute: ActivatedRoute, router: Router, checkoutService: CheckoutService, renderer: Renderer2, elementRef: ElementRef, document: Document);
16
- ngOnInit(): void;
17
- ngOnDestroy(): void;
18
- private hideHeaderFooter;
19
- private showHeaderFooter;
20
- private handlePaymentState;
21
- private storeTotalAmount;
22
- private setStateInLocal;
23
- private setStateInSesion;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<RedsysCatchEcComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<RedsysCatchEcComponent, "app-redsys-catch-ec", never, {}, {}, never, never, true, never>;
26
- }