ng-easycommerce-v18 0.3.20-beta.1 → 0.3.20-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.
- package/README.md +1 -1
- package/esm2022/lib/constants/api.constants.service.mjs +15 -19
- package/esm2022/lib/constants/core.constants.service.mjs +5 -5
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +1 -17
- package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +16 -26
- package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +21 -25
- package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +16 -4
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +6 -31
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +21 -29
- package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +7 -12
- package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +9 -18
- package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +6 -12
- package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +4 -6
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -4
- package/esm2022/lib/ec-services/analytics/gtm.service.mjs +6 -10
- package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +18 -17
- package/esm2022/lib/ec-services/checkout.service.mjs +2 -4
- package/esm2022/lib/ec-services/index.mjs +1 -3
- package/esm2022/lib/interceptors/index.mjs +1 -2
- package/esm2022/lib/interfaces/environment.mjs +1 -1
- package/esm2022/lib/interfaces/filter.mjs +1 -1
- package/esm2022/lib/interfaces/index.mjs +1 -2
- package/esm2022/lib/interfaces/options.mjs +1 -1
- package/esm2022/lib/providers/index.mjs +1 -2
- package/fesm2022/ng-easycommerce-v18.mjs +208 -694
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/constants/api.constants.service.d.ts +0 -1
- package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +0 -12
- package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +0 -2
- package/lib/ec-components/filters-ec/filters-ec.component.d.ts +4 -12
- package/lib/ec-services/analytics/gtm.service.d.ts +1 -1
- package/lib/ec-services/index.d.ts +0 -2
- package/lib/interceptors/index.d.ts +0 -1
- package/lib/interfaces/environment.d.ts +0 -1
- package/lib/interfaces/filter.d.ts +0 -1
- package/lib/interfaces/index.d.ts +0 -1
- package/lib/interfaces/options.d.ts +0 -2
- package/lib/providers/index.d.ts +0 -1
- package/package.json +1 -1
- package/esm2022/lib/ec-services/base-api.service.mjs +0 -148
- package/esm2022/lib/ec-services/runtime-config.service.mjs +0 -190
- package/esm2022/lib/interceptors/runtime-config.interceptor.mjs +0 -41
- package/esm2022/lib/interfaces/runtime-config.mjs +0 -2
- package/esm2022/lib/providers/provideRuntimeConfig.mjs +0 -42
- package/lib/ec-services/base-api.service.d.ts +0 -64
- package/lib/ec-services/runtime-config.service.d.ts +0 -63
- package/lib/interceptors/runtime-config.interceptor.d.ts +0 -7
- package/lib/interfaces/runtime-config.d.ts +0 -22
- package/lib/providers/provideRuntimeConfig.d.ts +0 -13
|
@@ -75,18 +75,6 @@ export declare class MenuEcComponent {
|
|
|
75
75
|
* @returns true si la categoría es visible, false en caso contrario
|
|
76
76
|
*/
|
|
77
77
|
hasVisibleProperty(category: Category): boolean;
|
|
78
|
-
private filterVisibleTree;
|
|
79
|
-
categoriesVisible$: Observable<Category[]>;
|
|
80
|
-
sectionsVisible$: Observable<Section[]>;
|
|
81
|
-
attributesVisible$: Observable<Attribute[]>;
|
|
82
|
-
getVisibleChildren<T extends {
|
|
83
|
-
isVisible?: boolean;
|
|
84
|
-
children?: T[];
|
|
85
|
-
}>(node?: T): T[];
|
|
86
|
-
hasVisibleChildren<T extends {
|
|
87
|
-
isVisible?: boolean;
|
|
88
|
-
children?: T[];
|
|
89
|
-
}>(node?: T): boolean;
|
|
90
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuEcComponent, never>;
|
|
91
79
|
static ɵcmp: i0.ɵɵComponentDeclaration<MenuEcComponent, "lib-footer-ec", never, {}, {}, never, never, true, never>;
|
|
92
80
|
}
|
|
@@ -2,12 +2,10 @@ import { EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { UserRoleType } from '../../../interfaces';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class LoginFormEcComponent {
|
|
5
|
-
private platformId;
|
|
6
5
|
private _authService;
|
|
7
6
|
private _formBuilder;
|
|
8
7
|
private _toastService;
|
|
9
8
|
private _router;
|
|
10
|
-
constructor(platformId: Object);
|
|
11
9
|
showPassword: boolean;
|
|
12
10
|
/**
|
|
13
11
|
* Parametro para indicar si tras loguear
|
|
@@ -44,19 +44,11 @@ export declare class FiltersEcComponent {
|
|
|
44
44
|
scrollUp: () => boolean;
|
|
45
45
|
hasAppliedFilters(): boolean;
|
|
46
46
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
* Verifica si una categoría tiene la propiedad isVisible y está marcada como visible
|
|
48
|
+
* @param category - La categoría a verificar
|
|
49
|
+
* @returns true si la categoría es visible, false en caso contrario
|
|
50
|
+
*/
|
|
51
51
|
hasVisibleProperty(category: FilterElement): boolean;
|
|
52
|
-
/** Lista visible (filtra recursivo por isVisible) */
|
|
53
|
-
getVisibleData(filter: Filter | null): FilterElement[];
|
|
54
|
-
/** Children visibles de un nodo */
|
|
55
|
-
getVisibleChildren(node?: FilterElement): FilterElement[];
|
|
56
|
-
/** Tiene hijos visibles? */
|
|
57
|
-
hasVisibleChildren(node?: FilterElement): boolean;
|
|
58
|
-
/** Utilidad recursiva */
|
|
59
|
-
private filterVisibleTree;
|
|
60
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<FiltersEcComponent, never>;
|
|
61
53
|
static ɵcmp: i0.ɵɵComponentDeclaration<FiltersEcComponent, "lib-filters-ec", never, { "setSelect": { "alias": "setSelect"; "required": false; }; }, {}, never, never, true, never>;
|
|
62
54
|
}
|
|
@@ -23,7 +23,6 @@ export declare class GTMService {
|
|
|
23
23
|
private window?;
|
|
24
24
|
private rendererFactory;
|
|
25
25
|
private document;
|
|
26
|
-
private platformId;
|
|
27
26
|
/**
|
|
28
27
|
* Servicio de ruteo de angular.
|
|
29
28
|
*/
|
|
@@ -32,6 +31,7 @@ export declare class GTMService {
|
|
|
32
31
|
* Configuración de Google Tag Manager.
|
|
33
32
|
*/
|
|
34
33
|
private config;
|
|
34
|
+
private platformId;
|
|
35
35
|
constructor();
|
|
36
36
|
/**
|
|
37
37
|
* Obtiene el dataLayer del objecto window
|
|
@@ -4,7 +4,6 @@ export interface Category {
|
|
|
4
4
|
slug: string;
|
|
5
5
|
position: number;
|
|
6
6
|
path: string;
|
|
7
|
-
isVisible?: boolean;
|
|
8
7
|
children?: Category[];
|
|
9
8
|
images?: any[];
|
|
10
9
|
}
|
|
@@ -24,5 +23,4 @@ export interface Attribute {
|
|
|
24
23
|
slug: string;
|
|
25
24
|
useToFilter: boolean;
|
|
26
25
|
styles?: any[];
|
|
27
|
-
isVisible?: boolean;
|
|
28
26
|
}
|
package/lib/providers/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
-
import { switchMap } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
import * as i2 from "./runtime-config.service";
|
|
7
|
-
/**
|
|
8
|
-
* Servicio base para realizar peticiones HTTP usando configuración dinámica
|
|
9
|
-
* Todos los servicios de la aplicación deben extender este servicio o usar sus métodos
|
|
10
|
-
*/
|
|
11
|
-
export class BaseApiService {
|
|
12
|
-
http;
|
|
13
|
-
runtimeConfigService;
|
|
14
|
-
constructor(http, runtimeConfigService) {
|
|
15
|
-
this.http = http;
|
|
16
|
-
this.runtimeConfigService = runtimeConfigService;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Construye una URL completa usando la API_URL del runtime
|
|
20
|
-
*/
|
|
21
|
-
buildApiUrl(endpoint) {
|
|
22
|
-
return this.runtimeConfigService.buildApiUrl(endpoint);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Obtiene headers comunes que incluyen información del runtime
|
|
26
|
-
*/
|
|
27
|
-
getCommonHeaders() {
|
|
28
|
-
const config = this.runtimeConfigService.getConfig();
|
|
29
|
-
let headers = new HttpHeaders({
|
|
30
|
-
'Content-Type': 'application/json'
|
|
31
|
-
});
|
|
32
|
-
if (config) {
|
|
33
|
-
headers = headers
|
|
34
|
-
.set('X-Channel', config.channel)
|
|
35
|
-
.set('X-Locale', config.locale)
|
|
36
|
-
.set('X-Environment', config.appEnv);
|
|
37
|
-
}
|
|
38
|
-
return headers;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Método GET genérico
|
|
42
|
-
*/
|
|
43
|
-
get(endpoint, options = {}) {
|
|
44
|
-
const url = this.buildApiUrl(endpoint);
|
|
45
|
-
const headers = this.mergeHeaders(options.headers);
|
|
46
|
-
return this.http.get(url, {
|
|
47
|
-
...options,
|
|
48
|
-
headers
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Método POST genérico
|
|
53
|
-
*/
|
|
54
|
-
post(endpoint, data, options = {}) {
|
|
55
|
-
const url = this.buildApiUrl(endpoint);
|
|
56
|
-
const headers = this.mergeHeaders(options.headers);
|
|
57
|
-
return this.http.post(url, data, {
|
|
58
|
-
...options,
|
|
59
|
-
headers
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Método PUT genérico
|
|
64
|
-
*/
|
|
65
|
-
put(endpoint, data, options = {}) {
|
|
66
|
-
const url = this.buildApiUrl(endpoint);
|
|
67
|
-
const headers = this.mergeHeaders(options.headers);
|
|
68
|
-
return this.http.put(url, data, {
|
|
69
|
-
...options,
|
|
70
|
-
headers
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Método PATCH genérico
|
|
75
|
-
*/
|
|
76
|
-
patch(endpoint, data, options = {}) {
|
|
77
|
-
const url = this.buildApiUrl(endpoint);
|
|
78
|
-
const headers = this.mergeHeaders(options.headers);
|
|
79
|
-
return this.http.patch(url, data, {
|
|
80
|
-
...options,
|
|
81
|
-
headers
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Método DELETE genérico
|
|
86
|
-
*/
|
|
87
|
-
delete(endpoint, options = {}) {
|
|
88
|
-
const url = this.buildApiUrl(endpoint);
|
|
89
|
-
const headers = this.mergeHeaders(options.headers);
|
|
90
|
-
return this.http.delete(url, {
|
|
91
|
-
...options,
|
|
92
|
-
headers
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Método para peticiones que necesitan esperar a que la config esté cargada
|
|
97
|
-
*/
|
|
98
|
-
getWithConfig(endpoint, options = {}) {
|
|
99
|
-
return this.runtimeConfigService.config$.pipe(switchMap(config => {
|
|
100
|
-
if (!config) {
|
|
101
|
-
throw new Error('Runtime config not loaded');
|
|
102
|
-
}
|
|
103
|
-
return this.get(endpoint, options);
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Método para POST que necesitan esperar a que la config esté cargada
|
|
108
|
-
*/
|
|
109
|
-
postWithConfig(endpoint, data, options = {}) {
|
|
110
|
-
return this.runtimeConfigService.config$.pipe(switchMap(config => {
|
|
111
|
-
if (!config) {
|
|
112
|
-
throw new Error('Runtime config not loaded');
|
|
113
|
-
}
|
|
114
|
-
return this.post(endpoint, data, options);
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Combina headers personalizados con los headers comunes
|
|
119
|
-
*/
|
|
120
|
-
mergeHeaders(customHeaders) {
|
|
121
|
-
let headers = this.getCommonHeaders();
|
|
122
|
-
if (customHeaders) {
|
|
123
|
-
if (customHeaders instanceof HttpHeaders) {
|
|
124
|
-
customHeaders.keys().forEach(key => {
|
|
125
|
-
const values = customHeaders.getAll(key);
|
|
126
|
-
if (values) {
|
|
127
|
-
headers = headers.set(key, values);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
Object.keys(customHeaders).forEach(key => {
|
|
133
|
-
headers = headers.set(key, customHeaders[key]);
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return headers;
|
|
138
|
-
}
|
|
139
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, deps: [{ token: i1.HttpClient }, { token: i2.RuntimeConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
140
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, providedIn: 'root' });
|
|
141
|
-
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseApiService, decorators: [{
|
|
143
|
-
type: Injectable,
|
|
144
|
-
args: [{
|
|
145
|
-
providedIn: 'root'
|
|
146
|
-
}]
|
|
147
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.RuntimeConfigService }] });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9iYXNlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFTN0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFHYjtJQUNBO0lBRlosWUFDWSxJQUFnQixFQUNoQixvQkFBMEM7UUFEMUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ25ELENBQUM7SUFFSjs7T0FFRztJQUNPLFdBQVcsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM1QixjQUFjLEVBQUUsa0JBQWtCO1NBQ25DLENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLEdBQUcsT0FBTztpQkFDZCxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7aUJBQ2hDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDOUIsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMs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SlUsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3J1bnRpbWUtY29uZmlnLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlcXVlc3RPcHRpb25zIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwgeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU2VydmljaW8gYmFzZSBwYXJhIHJlYWxpemFyIHBldGljaW9uZXMgSFRUUCB1c2FuZG8gY29uZmlndXJhY2nDs24gZGluw6FtaWNhXG4gKiBUb2RvcyBsb3Mgc2VydmljaW9zIGRlIGxhIGFwbGljYWNpw7NuIGRlYmVuIGV4dGVuZGVyIGVzdGUgc2VydmljaW8gbyB1c2FyIHN1cyBtw6l0b2Rvc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNlQXBpU2VydmljZSB7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgcnVudGltZUNvbmZpZ1NlcnZpY2U6IFJ1bnRpbWVDb25maWdTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogQ29uc3RydXllIHVuYSBVUkwgY29tcGxldGEgdXNhbmRvIGxhIEFQSV9VUkwgZGVsIHJ1bnRpbWVcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEFwaVVybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lQ29uZmlnU2VydmljZS5idWlsZEFwaVVybChlbmRwb2ludCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBoZWFkZXJzIGNvbXVuZXMgcXVlIGluY2x1eWVuIGluZm9ybWFjacOzbiBkZWwgcnVudGltZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldENvbW1vbkhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMucnVudGltZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnNcbiAgICAgICAgLnNldCgnWC1DaGFubmVsJywgY29uZmlnLmNoYW5uZWwpXG4gICAgICAgIC5zZXQoJ1gtTG9jYWxlJywgY29uZmlnLmxvY2FsZSlcbiAgICAgICAgLnNldCgnWC1FbnZpcm9ubWVudCcsIGNvbmZpZy5hcHBFbnYpO1xuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gR0VUIGdlbsOpcmljb1xuICAgKi9cbiAgZ2V0PFQ+KGVuZHBvaW50OiBzdHJpbmcsIG9wdGlvbnM6IEFwaVJlcXVlc3RPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkQXBpVXJsKGVuZHBvaW50KTtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5tZXJnZUhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih1cmwsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBoZWFkZXJzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBQT1NUIGdlbsOpcmljb1xuICAgKi9cbiAgcG9zdDxUPihlbmRwb2ludDogc3RyaW5nLCBkYXRhOiBhbnksIG9wdGlvbnM6IEFwaVJlcXVlc3RPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkQXBpVXJsKGVuZHBvaW50KTtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5tZXJnZUhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih1cmwsIGRhdGEsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBoZWFkZXJzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBQVVQgZ2Vuw6lyaWNvXG4gICAqL1xuICBwdXQ8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogYW55LCBvcHRpb25zOiBBcGlSZXF1ZXN0T3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5idWlsZEFwaVVybChlbmRwb2ludCk7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMubWVyZ2VIZWFkZXJzKG9wdGlvbnMuaGVhZGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih1cmwsIGRhdGEsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBoZWFkZXJzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBQQVRDSCBnZW7DqXJpY29cbiAgICovXG4gIHBhdGNoPFQ+KGVuZHBvaW50OiBzdHJpbmcsIGRhdGE6IGFueSwgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRBcGlVcmwoZW5kcG9pbnQpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLm1lcmdlSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUPih1cmwsIGRhdGEsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBoZWFkZXJzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBERUxFVEUgZ2Vuw6lyaWNvXG4gICAqL1xuICBkZWxldGU8VD4oZW5kcG9pbnQ6IHN0cmluZywgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRBcGlVcmwoZW5kcG9pbnQpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLm1lcmdlSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4odXJsLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgaGVhZGVyc1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcGFyYSBwZXRpY2lvbmVzIHF1ZSBuZWNlc2l0YW4gZXNwZXJhciBhIHF1ZSBsYSBjb25maWcgZXN0w6kgY2FyZ2FkYVxuICAgKi9cbiAgZ2V0V2l0aENvbmZpZzxUPihlbmRwb2ludDogc3RyaW5nLCBvcHRpb25zOiBBcGlSZXF1ZXN0T3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZUNvbmZpZ1NlcnZpY2UuY29uZmlnJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNvbmZpZyA9PiB7XG4gICAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSdW50aW1lIGNvbmZpZyBub3QgbG9hZGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PFQ+KGVuZHBvaW50LCBvcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHBhcmEgUE9TVCBxdWUgbmVjZXNpdGFuIGVzcGVyYXIgYSBxdWUgbGEgY29uZmlnIGVzdMOpIGNhcmdhZGFcbiAgICovXG4gIHBvc3RXaXRoQ29uZmlnPFQ+KGVuZHBvaW50OiBzdHJpbmcsIGRhdGE6IGFueSwgb3B0aW9uczogQXBpUmVxdWVzdE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVDb25maWdTZXJ2aWNlLmNvbmZpZyQucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb25maWcgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUnVudGltZSBjb25maWcgbm90IGxvYWRlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3Q8VD4oZW5kcG9pbnQsIGRhdGEsIG9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbWJpbmEgaGVhZGVycyBwZXJzb25hbGl6YWRvcyBjb24gbG9zIGhlYWRlcnMgY29tdW5lc1xuICAgKi9cbiAgcHJpdmF0ZSBtZXJnZUhlYWRlcnMoY3VzdG9tSGVhZGVycz86IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9KTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gdGhpcy5nZXRDb21tb25IZWFkZXJzKCk7XG5cbiAgICBpZiAoY3VzdG9tSGVhZGVycykge1xuICAgICAgaWYgKGN1c3RvbUhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgICBjdXN0b21IZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gY3VzdG9tSGVhZGVycy5nZXRBbGwoa2V5KTtcbiAgICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3Qua2V5cyhjdXN0b21IZWFkZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgY3VzdG9tSGVhZGVyc1trZXldKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cbn0iXX0=
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
-
import { of, BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { catchError, tap, shareReplay } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common/http";
|
|
7
|
-
export class RuntimeConfigService {
|
|
8
|
-
platformId;
|
|
9
|
-
http;
|
|
10
|
-
configSubject = new BehaviorSubject(null);
|
|
11
|
-
config$ = this.configSubject.asObservable();
|
|
12
|
-
_config = null;
|
|
13
|
-
_loadPromise = null;
|
|
14
|
-
_isLoaded = false;
|
|
15
|
-
constructor(platformId, http) {
|
|
16
|
-
this.platformId = platformId;
|
|
17
|
-
this.http = http;
|
|
18
|
-
// En SSR o browser, intentar cargar inmediatamente desde window si está disponible
|
|
19
|
-
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
20
|
-
this._config = window.__RUNTIME_CONFIG__;
|
|
21
|
-
this._isLoaded = true;
|
|
22
|
-
this.configSubject.next(this._config);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Inicialización única - llamada por APP_INITIALIZER
|
|
27
|
-
* Garantiza que la configuración se carga solo una vez al inicio
|
|
28
|
-
*/
|
|
29
|
-
initialize() {
|
|
30
|
-
if (this._isLoaded && this._config) {
|
|
31
|
-
return Promise.resolve(this._config);
|
|
32
|
-
}
|
|
33
|
-
return new Promise((resolve, reject) => {
|
|
34
|
-
this.loadConfig().subscribe({
|
|
35
|
-
next: (config) => {
|
|
36
|
-
this._isLoaded = true;
|
|
37
|
-
resolve(config);
|
|
38
|
-
},
|
|
39
|
-
error: (error) => {
|
|
40
|
-
reject(error);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Carga la configuración en runtime (optimizada para una sola carga)
|
|
47
|
-
* - En SSR: Lee desde el objeto window inyectado por el servidor
|
|
48
|
-
* - En Browser: Hace petición HTTP a /runtime-config.json (solo si no está en window)
|
|
49
|
-
*/
|
|
50
|
-
loadConfig() {
|
|
51
|
-
// Si ya tenemos la config cargada, la devolvemos inmediatamente
|
|
52
|
-
if (this._isLoaded && this._config) {
|
|
53
|
-
return of(this._config);
|
|
54
|
-
}
|
|
55
|
-
// Si ya hay una carga en progreso, reutilizamos esa petición
|
|
56
|
-
if (this._loadPromise) {
|
|
57
|
-
return this._loadPromise;
|
|
58
|
-
}
|
|
59
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
60
|
-
// En el navegador, primero intentamos obtener la config desde window
|
|
61
|
-
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
62
|
-
this._config = window.__RUNTIME_CONFIG__;
|
|
63
|
-
this._isLoaded = true;
|
|
64
|
-
this.configSubject.next(this._config);
|
|
65
|
-
return of(this._config);
|
|
66
|
-
}
|
|
67
|
-
// Si no está en window, hacemos petición HTTP (solo una vez)
|
|
68
|
-
this._loadPromise = this.http.get('/runtime-config.json').pipe(tap(config => {
|
|
69
|
-
this._config = config;
|
|
70
|
-
this._isLoaded = true;
|
|
71
|
-
this.configSubject.next(config);
|
|
72
|
-
// Guardamos en window para siguientes accesos
|
|
73
|
-
if (typeof window !== 'undefined') {
|
|
74
|
-
window.__RUNTIME_CONFIG__ = config;
|
|
75
|
-
}
|
|
76
|
-
}), shareReplay(1), // Cache la respuesta para múltiples suscripciones
|
|
77
|
-
catchError(error => {
|
|
78
|
-
console.error('Error loading runtime config:', error);
|
|
79
|
-
// Fallback config si falla la carga
|
|
80
|
-
const fallbackConfig = {
|
|
81
|
-
apiUrl: 'https://elden-preprod.backend.easycommerce.com.ar/',
|
|
82
|
-
appEnv: 'preprod',
|
|
83
|
-
production: false,
|
|
84
|
-
locale: 'es_AR',
|
|
85
|
-
channel: 'minorista'
|
|
86
|
-
};
|
|
87
|
-
this._config = fallbackConfig;
|
|
88
|
-
this._isLoaded = true;
|
|
89
|
-
this.configSubject.next(fallbackConfig);
|
|
90
|
-
return of(fallbackConfig);
|
|
91
|
-
}));
|
|
92
|
-
return this._loadPromise;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// En SSR, leemos desde window que fue inyectado por el servidor
|
|
96
|
-
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
97
|
-
this._config = window.__RUNTIME_CONFIG__;
|
|
98
|
-
this._isLoaded = true;
|
|
99
|
-
this.configSubject.next(this._config);
|
|
100
|
-
return of(this._config);
|
|
101
|
-
}
|
|
102
|
-
// Fallback para SSR si no hay config inyectada
|
|
103
|
-
// En el servidor, las variables de entorno se configuran desde el server.ts
|
|
104
|
-
const fallbackConfig = {
|
|
105
|
-
apiUrl: 'https://elden-preprod.backend.easycommerce.com.ar/',
|
|
106
|
-
appEnv: 'preprod',
|
|
107
|
-
production: false,
|
|
108
|
-
locale: 'es_AR',
|
|
109
|
-
channel: 'minorista'
|
|
110
|
-
};
|
|
111
|
-
this._config = fallbackConfig;
|
|
112
|
-
this._isLoaded = true;
|
|
113
|
-
this.configSubject.next(fallbackConfig);
|
|
114
|
-
return of(fallbackConfig);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Obtiene la configuración actual (síncrono)
|
|
119
|
-
*/
|
|
120
|
-
getConfig() {
|
|
121
|
-
return this._config;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Obtiene la API URL actual
|
|
125
|
-
*/
|
|
126
|
-
getApiUrl() {
|
|
127
|
-
return this._config?.apiUrl || 'https://elden-preprod.backend.easycommerce.com.ar/';
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Obtiene la Frontend URL actual
|
|
131
|
-
*/
|
|
132
|
-
getFrontendUrl() {
|
|
133
|
-
return this._config?.frontendUrl;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Obtiene el entorno actual
|
|
137
|
-
*/
|
|
138
|
-
getAppEnv() {
|
|
139
|
-
return this._config?.appEnv || 'development';
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Verifica si estamos en producción
|
|
143
|
-
*/
|
|
144
|
-
isProduction() {
|
|
145
|
-
return this._config?.production || false;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Obtiene el locale actual
|
|
149
|
-
*/
|
|
150
|
-
getLocale() {
|
|
151
|
-
return this._config?.locale || 'es_AR';
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Obtiene el canal actual
|
|
155
|
-
*/
|
|
156
|
-
getChannel() {
|
|
157
|
-
return this._config?.channel || 'minorista';
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Método helper para construir URLs de API
|
|
161
|
-
*/
|
|
162
|
-
buildApiUrl(endpoint) {
|
|
163
|
-
const apiUrl = this.getApiUrl();
|
|
164
|
-
const cleanEndpoint = endpoint.startsWith('/') ? endpoint.slice(1) : endpoint;
|
|
165
|
-
return `${apiUrl}${cleanEndpoint}`;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Método helper para construir URLs del frontend
|
|
169
|
-
*/
|
|
170
|
-
buildFrontendUrl(path) {
|
|
171
|
-
const frontendUrl = this.getFrontendUrl();
|
|
172
|
-
if (!frontendUrl) {
|
|
173
|
-
return path;
|
|
174
|
-
}
|
|
175
|
-
const cleanPath = path.startsWith('/') ? path.slice(1) : path;
|
|
176
|
-
return `${frontendUrl}${cleanPath}`;
|
|
177
|
-
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
179
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, providedIn: 'root' });
|
|
180
|
-
}
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, decorators: [{
|
|
182
|
-
type: Injectable,
|
|
183
|
-
args: [{
|
|
184
|
-
providedIn: 'root'
|
|
185
|
-
}]
|
|
186
|
-
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
187
|
-
type: Inject,
|
|
188
|
-
args: [PLATFORM_ID]
|
|
189
|
-
}] }, { type: i1.HttpClient }] });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTlELE1BQU0sT0FBTyxvQkFBb0I7SUFTQTtJQUNyQjtJQVRGLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0MsT0FBTyxHQUF5QixJQUFJLENBQUM7SUFDckMsWUFBWSxHQUFxQyxJQUFJLENBQUM7SUFDdEQsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQixZQUMrQixVQUFrQixFQUN2QyxJQUFnQjtRQURLLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUV4QixtRkFBbUY7UUFDbkYsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUks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Q0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUQsT0FBTyxHQUFHLFdBQVcsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN0QyxDQUFDO3dHQS9MVSxvQkFBb0Isa0JBU3JCLFdBQVc7NEdBVFYsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcnVudGltZS1jb25maWcnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lQ29uZmlnU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgY29uZmlnJCA9IHRoaXMuY29uZmlnU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgXG4gIHByaXZhdGUgX2NvbmZpZzogUnVudGltZUNvbmZpZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sb2FkUHJvbWlzZTogT2JzZXJ2YWJsZTxSdW50aW1lQ29uZmlnPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc0xvYWRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICAvLyBFbiBTU1IgbyBicm93c2VyLCBpbnRlbnRhciBjYXJnYXIgaW5tZWRpYXRhbWVudGUgZGVzZGUgd2luZG93IHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyAmJiAhdGhpcy5faXNMb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XG4gICAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWFsaXphY2nDs24gw7puaWNhIC0gbGxhbWFkYSBwb3IgQVBQX0lOSVRJQUxJWkVSXG4gICAqIEdhcmFudGl6YSBxdWUgbGEgY29uZmlndXJhY2nDs24gc2UgY2FyZ2Egc29sbyB1bmEgdmV6IGFsIGluaWNpb1xuICAgKi9cbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPFJ1bnRpbWVDb25maWc+IHtcbiAgICBpZiAodGhpcy5faXNMb2FkZWQgJiYgdGhpcy5fY29uZmlnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2NvbmZpZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMubG9hZENvbmZpZygpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChjb25maWc6IFJ1bnRpbWVDb25maWcpID0+IHtcbiAgICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgcmVzb2x2ZShjb25maWcpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgbGEgY29uZmlndXJhY2nDs24gZW4gcnVudGltZSAob3B0aW1pemFkYSBwYXJhIHVuYSBzb2xhIGNhcmdhKVxuICAgKiAtIEVuIFNTUjogTGVlIGRlc2RlIGVsIG9iamV0byB3aW5kb3cgaW55ZWN0YWRvIHBvciBlbCBzZXJ2aWRvclxuICAgKiAtIEVuIEJyb3dzZXI6IEhhY2UgcGV0aWNpw7NuIEhUVFAgYSAvcnVudGltZS1jb25maWcuanNvbiAoc29sbyBzaSBubyBlc3TDoSBlbiB3aW5kb3cpXG4gICAqL1xuICBsb2FkQ29uZmlnKCk6IE9ic2VydmFibGU8UnVudGltZUNvbmZpZz4ge1xuICAgIC8vIFNpIHlhIHRlbmVtb3MgbGEgY29uZmlnIGNhcmdhZGEsIGxhIGRldm9sdmVtb3MgaW5tZWRpYXRhbWVudGVcbiAgICBpZiAodGhpcy5faXNMb2FkZWQgJiYgdGhpcy5fY29uZmlnKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xuICAgIH1cblxuICAgIC8vIFNpIHlhIGhheSB1bmEgY2FyZ2EgZW4gcHJvZ3Jlc28sIHJldXRpbGl6YW1vcyBlc2EgcGV0aWNpw7NuXG4gICAgaWYgKHRoaXMuX2xvYWRQcm9taXNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9hZFByb21pc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIC8vIEVuIGVsIG5hdmVnYWRvciwgcHJpbWVybyBpbnRlbnRhbW9zIG9idGVuZXIgbGEgY29uZmlnIGRlc2RlIHdpbmRvd1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX18gJiYgIXRoaXMuX2lzTG9hZGVkKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQodGhpcy5fY29uZmlnKTtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2NvbmZpZyBhcyBSdW50aW1lQ29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2kgbm8gZXN0w6EgZW4gd2luZG93LCBoYWNlbW9zIHBldGljacOzbiBIVFRQIChzb2xvIHVuYSB2ZXopXG4gICAgICB0aGlzLl9sb2FkUHJvbWlzZSA9IHRoaXMuaHR0cC5nZXQ8UnVudGltZUNvbmZpZz4oJy9ydW50aW1lLWNvbmZpZy5qc29uJykucGlwZShcbiAgICAgICAgdGFwKGNvbmZpZyA9PiB7XG4gICAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dChjb25maWcpO1xuICAgICAgICAgIC8vIEd1YXJkYW1vcyBlbiB3aW5kb3cgcGFyYSBzaWd1aWVudGVzIGFjY2Vzb3NcbiAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX18gPSBjb25maWc7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksIC8vIENhY2hlIGxhIHJlc3B1ZXN0YSBwYXJhIG3Dumx0aXBsZXMgc3VzY3JpcGNpb25lc1xuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHJ1bnRpbWUgY29uZmlnOicsIGVycm9yKTtcbiAgICAgICAgICAvLyBGYWxsYmFjayBjb25maWcgc2kgZmFsbGEgbGEgY2FyZ2FcbiAgICAgICAgICBjb25zdCBmYWxsYmFja0NvbmZpZzogUnVudGltZUNvbmZpZyA9IHtcbiAgICAgICAgICAgIGFwaVVybDogJ2h0dHBzOi8vZWxkZW4tcHJlcHJvZC5iYWNrZW5kLmVhc3ljb21tZXJjZS5jb20uYXIvJyxcbiAgICAgICAgICAgIGFwcEVudjogJ3ByZXByb2QnLFxuICAgICAgICAgICAgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBsb2NhbGU6ICdlc19BUicsXG4gICAgICAgICAgICBjaGFubmVsOiAnbWlub3Jpc3RhJ1xuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5fY29uZmlnID0gZmFsbGJhY2tDb25maWc7XG4gICAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KGZhbGxiYWNrQ29uZmlnKTtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsbGJhY2tDb25maWcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRQcm9taXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbiBTU1IsIGxlZW1vcyBkZXNkZSB3aW5kb3cgcXVlIGZ1ZSBpbnllY3RhZG8gcG9yIGVsIHNlcnZpZG9yXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyAmJiAhdGhpcy5faXNMb2FkZWQpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXztcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xuICAgICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xuICAgICAgfVxuXG4gICAgICAvLyBGYWxsYmFjayBwYXJhIFNTUiBzaSBubyBoYXkgY29uZmlnIGlueWVjdGFkYVxuICAgICAgLy8gRW4gZWwgc2Vydmlkb3IsIGxhcyB2YXJpYWJsZXMgZGUgZW50b3JubyBzZSBjb25maWd1cmFuIGRlc2RlIGVsIHNlcnZlci50c1xuICAgICAgY29uc3QgZmFsbGJhY2tDb25maWc6IFJ1bnRpbWVDb25maWcgPSB7XG4gICAgICAgIGFwaVVybDogJ2h0dHBzOi8vZWxkZW4tcHJlcHJvZC5iYWNrZW5kLmVhc3ljb21tZXJjZS5jb20uYXIvJyxcbiAgICAgICAgYXBwRW52OiAncHJlcHJvZCcsXG4gICAgICAgIHByb2R1Y3Rpb246IGZhbHNlLFxuICAgICAgICBsb2NhbGU6ICdlc19BUicsXG4gICAgICAgIGNoYW5uZWw6ICdtaW5vcmlzdGEnXG4gICAgICB9O1xuICAgICAgXG4gICAgICB0aGlzLl9jb25maWcgPSBmYWxsYmFja0NvbmZpZztcbiAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KGZhbGxiYWNrQ29uZmlnKTtcbiAgICAgIHJldHVybiBvZihmYWxsYmFja0NvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgY29uZmlndXJhY2nDs24gYWN0dWFsIChzw61uY3Jvbm8pXG4gICAqL1xuICBnZXRDb25maWcoKTogUnVudGltZUNvbmZpZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBBUEkgVVJMIGFjdHVhbFxuICAgKi9cbiAgZ2V0QXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uYXBpVXJsIHx8ICdodHRwczovL2VsZGVuLXByZXByb2QuYmFja2VuZC5lYXN5Y29tbWVyY2UuY29tLmFyLyc7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBGcm9udGVuZCBVUkwgYWN0dWFsXG4gICAqL1xuICBnZXRGcm9udGVuZFVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc/LmZyb250ZW5kVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgZW50b3JubyBhY3R1YWxcbiAgICovXG4gIGdldEFwcEVudigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc/LmFwcEVudiB8fCAnZGV2ZWxvcG1lbnQnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVzdGFtb3MgZW4gcHJvZHVjY2nDs25cbiAgICovXG4gIGlzUHJvZHVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5wcm9kdWN0aW9uIHx8IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgbG9jYWxlIGFjdHVhbFxuICAgKi9cbiAgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8ubG9jYWxlIHx8ICdlc19BUic7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCBjYW5hbCBhY3R1YWxcbiAgICovXG4gIGdldENoYW5uZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5jaGFubmVsIHx8ICdtaW5vcmlzdGEnO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gaGVscGVyIHBhcmEgY29uc3RydWlyIFVSTHMgZGUgQVBJXG4gICAqL1xuICBidWlsZEFwaVVybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmdldEFwaVVybCgpO1xuICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludC5zbGljZSgxKSA6IGVuZHBvaW50O1xuICAgIHJldHVybiBgJHthcGlVcmx9JHtjbGVhbkVuZHBvaW50fWA7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBoZWxwZXIgcGFyYSBjb25zdHJ1aXIgVVJMcyBkZWwgZnJvbnRlbmRcbiAgICovXG4gIGJ1aWxkRnJvbnRlbmRVcmwocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmcm9udGVuZFVybCA9IHRoaXMuZ2V0RnJvbnRlbmRVcmwoKTtcbiAgICBpZiAoIWZyb250ZW5kVXJsKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgY29uc3QgY2xlYW5QYXRoID0gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoLnNsaWNlKDEpIDogcGF0aDtcbiAgICByZXR1cm4gYCR7ZnJvbnRlbmRVcmx9JHtjbGVhblBhdGh9YDtcbiAgfVxufSJdfQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { RuntimeConfigService } from '../ec-services/runtime-config.service';
|
|
3
|
-
import { switchMap, take, filter } from 'rxjs/operators';
|
|
4
|
-
/**
|
|
5
|
-
* Interceptor que garantiza que las peticiones HTTP no se hagan hasta que
|
|
6
|
-
* el runtime config esté completamente cargado
|
|
7
|
-
* Evita que se hagan peticiones con URLs incorrectas
|
|
8
|
-
*/
|
|
9
|
-
export const runtimeConfigInterceptor = (req, next) => {
|
|
10
|
-
const runtimeConfigService = inject(RuntimeConfigService);
|
|
11
|
-
// Si la petición es para obtener el runtime config, la dejamos pasar inmediatamente
|
|
12
|
-
if (req.url.includes('/runtime-config.json')) {
|
|
13
|
-
return next(req);
|
|
14
|
-
}
|
|
15
|
-
// Si la petición es para assets estáticos, la dejamos pasar
|
|
16
|
-
if (req.url.includes('/assets/') || req.url.includes('.json') || req.url.includes('.css') || req.url.includes('.js')) {
|
|
17
|
-
return next(req);
|
|
18
|
-
}
|
|
19
|
-
// Para las demás peticiones, esperamos a que el config esté listo
|
|
20
|
-
return runtimeConfigService.config$.pipe(filter(config => config !== null), // Esperamos hasta que haya config
|
|
21
|
-
take(1), // Solo tomamos el primer valor válido
|
|
22
|
-
switchMap(config => {
|
|
23
|
-
// Si la URL ya es completa (empieza con http), la dejamos como está
|
|
24
|
-
if (req.url.startsWith('http')) {
|
|
25
|
-
return next(req);
|
|
26
|
-
}
|
|
27
|
-
// Si es una URL relativa que debería ir al API, la completamos
|
|
28
|
-
if (req.url.startsWith('/api/') || req.url.startsWith('api/')) {
|
|
29
|
-
const apiUrl = config.apiUrl;
|
|
30
|
-
const cleanUrl = req.url.startsWith('/') ? req.url.substring(1) : req.url;
|
|
31
|
-
const fullUrl = `${apiUrl}${cleanUrl}`;
|
|
32
|
-
const modifiedReq = req.clone({
|
|
33
|
-
url: fullUrl
|
|
34
|
-
});
|
|
35
|
-
return next(modifiedReq);
|
|
36
|
-
}
|
|
37
|
-
// Para otras URLs, las dejamos pasar sin modificar
|
|
38
|
-
return next(req);
|
|
39
|
-
}));
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvaW50ZXJjZXB0b3JzL3J1bnRpbWUtY29uZmlnLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFzQixDQUFDLEdBQXlCLEVBQUUsSUFBbUIsRUFBRSxFQUFFO0lBQzVHLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFMUQsb0ZBQW9GO0lBQ3BGLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JILE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEVBQUUsa0NBQWtDO0lBQ3JFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxzQ0FBc0M7SUFDL0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pCLG9FQUFvRTtRQUNwRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUVELCtEQUErRDtRQUMvRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTyxDQUFDLE1BQU0sQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDMUUsTUFBTSxPQUFPLEdBQUcsR0FBRyxNQUFNLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFFdkMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDNUIsR0FBRyxFQUFFLE9BQU87YUFDYixDQUFDLENBQUM7WUFFSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsbURBQW1EO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3JGbiwgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyRm4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ1bnRpbWVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vZWMtc2VydmljZXMvcnVudGltZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2UsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBJbnRlcmNlcHRvciBxdWUgZ2FyYW50aXphIHF1ZSBsYXMgcGV0aWNpb25lcyBIVFRQIG5vIHNlIGhhZ2FuIGhhc3RhIHF1ZSBcbiAqIGVsIHJ1bnRpbWUgY29uZmlnIGVzdMOpIGNvbXBsZXRhbWVudGUgY2FyZ2Fkb1xuICogRXZpdGEgcXVlIHNlIGhhZ2FuIHBldGljaW9uZXMgY29uIFVSTHMgaW5jb3JyZWN0YXNcbiAqL1xuZXhwb3J0IGNvbnN0IHJ1bnRpbWVDb25maWdJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXJGbikgPT4ge1xuICBjb25zdCBydW50aW1lQ29uZmlnU2VydmljZSA9IGluamVjdChSdW50aW1lQ29uZmlnU2VydmljZSk7XG4gIFxuICAvLyBTaSBsYSBwZXRpY2nDs24gZXMgcGFyYSBvYnRlbmVyIGVsIHJ1bnRpbWUgY29uZmlnLCBsYSBkZWphbW9zIHBhc2FyIGlubWVkaWF0YW1lbnRlXG4gIGlmIChyZXEudXJsLmluY2x1ZGVzKCcvcnVudGltZS1jb25maWcuanNvbicpKSB7XG4gICAgcmV0dXJuIG5leHQocmVxKTtcbiAgfVxuICBcbiAgLy8gU2kgbGEgcGV0aWNpw7NuIGVzIHBhcmEgYXNzZXRzIGVzdMOhdGljb3MsIGxhIGRlamFtb3MgcGFzYXJcbiAgaWYgKHJlcS51cmwuaW5jbHVkZXMoJy9hc3NldHMvJykgfHwgcmVxLnVybC5pbmNsdWRlcygnLmpzb24nKSB8fCByZXEudXJsLmluY2x1ZGVzKCcuY3NzJykgfHwgcmVxLnVybC5pbmNsdWRlcygnLmpzJykpIHtcbiAgICByZXR1cm4gbmV4dChyZXEpO1xuICB9XG5cbiAgLy8gUGFyYSBsYXMgZGVtw6FzIHBldGljaW9uZXMsIGVzcGVyYW1vcyBhIHF1ZSBlbCBjb25maWcgZXN0w6kgbGlzdG9cbiAgcmV0dXJuIHJ1bnRpbWVDb25maWdTZXJ2aWNlLmNvbmZpZyQucGlwZShcbiAgICBmaWx0ZXIoY29uZmlnID0+IGNvbmZpZyAhPT0gbnVsbCksIC8vIEVzcGVyYW1vcyBoYXN0YSBxdWUgaGF5YSBjb25maWdcbiAgICB0YWtlKDEpLCAvLyBTb2xvIHRvbWFtb3MgZWwgcHJpbWVyIHZhbG9yIHbDoWxpZG9cbiAgICBzd2l0Y2hNYXAoY29uZmlnID0+IHtcbiAgICAgIC8vIFNpIGxhIFVSTCB5YSBlcyBjb21wbGV0YSAoZW1waWV6YSBjb24gaHR0cCksIGxhIGRlamFtb3MgY29tbyBlc3TDoVxuICAgICAgaWYgKHJlcS51cmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KHJlcSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFNpIGVzIHVuYSBVUkwgcmVsYXRpdmEgcXVlIGRlYmVyw61hIGlyIGFsIEFQSSwgbGEgY29tcGxldGFtb3NcbiAgICAgIGlmIChyZXEudXJsLnN0YXJ0c1dpdGgoJy9hcGkvJykgfHwgcmVxLnVybC5zdGFydHNXaXRoKCdhcGkvJykpIHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gY29uZmlnIS5hcGlVcmw7XG4gICAgICAgIGNvbnN0IGNsZWFuVXJsID0gcmVxLnVybC5zdGFydHNXaXRoKCcvJykgPyByZXEudXJsLnN1YnN0cmluZygxKSA6IHJlcS51cmw7XG4gICAgICAgIGNvbnN0IGZ1bGxVcmwgPSBgJHthcGlVcmx9JHtjbGVhblVybH1gO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgbW9kaWZpZWRSZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgIHVybDogZnVsbFVybFxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBuZXh0KG1vZGlmaWVkUmVxKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUGFyYSBvdHJhcyBVUkxzLCBsYXMgZGVqYW1vcyBwYXNhciBzaW4gbW9kaWZpY2FyXG4gICAgICByZXR1cm4gbmV4dChyZXEpO1xuICAgIH0pXG4gICk7XG59OyJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvaW50ZXJmYWNlcy9ydW50aW1lLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSdW50aW1lQ29uZmlnIHtcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGZyb250ZW5kVXJsPzogc3RyaW5nO1xuICAvKiogQW1iaWVudGUgZGUgbGEgYXBsaWNhY2nDs24uIFZhbG9yZXMgdsOhbGlkb3M6ICdwcm9kJywgJ3ByZXByb2QnLCAndGVzdCcgKi9cbiAgYXBwRW52OiAncHJvZCcgfCAncHJlcHJvZCcgfCAndGVzdCc7XG4gIHByb2R1Y3Rpb246IGJvb2xlYW47XG4gIGxvY2FsZTogc3RyaW5nO1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIHBvcnQ/OiBudW1iZXI7XG4gIGhvc3Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyRW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICBBUElfVVJMPzogc3RyaW5nO1xuICBGUk9OVEVORF9VUkw/OiBzdHJpbmc7XG4gIC8qKiBBbWJpZW50ZSBkZSBsYSBhcGxpY2FjacOzbi4gVmFsb3JlcyB2w6FsaWRvczogJ3Byb2QnLCAncHJlcHJvZCcsICd0ZXN0JyAqL1xuICBBUFBfRU5WPzogJ3Byb2QnIHwgJ3ByZXByb2QnIHwgJ3Rlc3QnO1xuICBQT1JUPzogc3RyaW5nO1xuICBIT1NUPzogc3RyaW5nO1xuICBOT0RFX0VOVj86ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbic7XG4gIExPQ0FMRT86IHN0cmluZztcbiAgQ0hBTk5FTD86IHN0cmluZztcbn0iXX0=
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { RuntimeConfigService } from '../ec-services/runtime-config.service';
|
|
3
|
-
/**
|
|
4
|
-
* Factory function para APP_INITIALIZER (OPTIMIZADA)
|
|
5
|
-
* Carga la configuración runtime UNA SOLA VEZ antes de que Angular bootstrap la aplicación
|
|
6
|
-
* Evita múltiples cargas y mejora el rendimiento
|
|
7
|
-
*/
|
|
8
|
-
export function initializeRuntimeConfig(runtimeConfigService) {
|
|
9
|
-
return () => {
|
|
10
|
-
console.log('🚀 Inicializando Runtime Config...');
|
|
11
|
-
return runtimeConfigService.initialize()
|
|
12
|
-
.then((config) => {
|
|
13
|
-
console.log('✅ Runtime config inicializado correctamente:', {
|
|
14
|
-
apiUrl: config.apiUrl,
|
|
15
|
-
appEnv: config.appEnv,
|
|
16
|
-
production: config.production
|
|
17
|
-
});
|
|
18
|
-
return config;
|
|
19
|
-
})
|
|
20
|
-
.catch((error) => {
|
|
21
|
-
console.error('❌ Error al inicializar runtime config:', error);
|
|
22
|
-
// Aún en caso de error, continuamos para no bloquear la app
|
|
23
|
-
return null;
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Función que configura el RuntimeConfigService y su inicialización
|
|
29
|
-
* Debe ser usado en app.config.ts junto con provideEnvironment
|
|
30
|
-
*/
|
|
31
|
-
export function provideRuntimeConfig() {
|
|
32
|
-
return makeEnvironmentProviders([
|
|
33
|
-
RuntimeConfigService,
|
|
34
|
-
{
|
|
35
|
-
provide: APP_INITIALIZER,
|
|
36
|
-
useFactory: initializeRuntimeConfig,
|
|
37
|
-
deps: [RuntimeConfigService],
|
|
38
|
-
multi: true
|
|
39
|
-
}
|
|
40
|
-
]);
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZVJ1bnRpbWVDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvcHJvdmlkZXJzL3Byb3ZpZGVSdW50aW1lQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsb0JBQTBDO0lBQ2hGLE9BQU8sR0FBaUIsRUFBRTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUU7YUFDckMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDhDQUE4QyxFQUFFO2dCQUMxRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtnQkFDckIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2FBQzlCLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvRCw0REFBNEQ7WUFDNUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsb0JBQW9CO1FBQ3BCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QixLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9lYy1zZXJ2aWNlcy9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlJztcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHBhcmEgQVBQX0lOSVRJQUxJWkVSIChPUFRJTUlaQURBKVxuICogQ2FyZ2EgbGEgY29uZmlndXJhY2nDs24gcnVudGltZSBVTkEgU09MQSBWRVogYW50ZXMgZGUgcXVlIEFuZ3VsYXIgYm9vdHN0cmFwIGxhIGFwbGljYWNpw7NuXG4gKiBFdml0YSBtw7psdGlwbGVzIGNhcmdhcyB5IG1lam9yYSBlbCByZW5kaW1pZW50b1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZVJ1bnRpbWVDb25maWcocnVudGltZUNvbmZpZ1NlcnZpY2U6IFJ1bnRpbWVDb25maWdTZXJ2aWNlKTogKCkgPT4gUHJvbWlzZTxhbnk+IHtcbiAgcmV0dXJuICgpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgIGNvbnNvbGUubG9nKCfwn5qAIEluaWNpYWxpemFuZG8gUnVudGltZSBDb25maWcuLi4nKTtcbiAgICByZXR1cm4gcnVudGltZUNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpXG4gICAgICAudGhlbigoY29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCfinIUgUnVudGltZSBjb25maWcgaW5pY2lhbGl6YWRvIGNvcnJlY3RhbWVudGU6Jywge1xuICAgICAgICAgIGFwaVVybDogY29uZmlnLmFwaVVybCxcbiAgICAgICAgICBhcHBFbnY6IGNvbmZpZy5hcHBFbnYsXG4gICAgICAgICAgcHJvZHVjdGlvbjogY29uZmlnLnByb2R1Y3Rpb25cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgRXJyb3IgYWwgaW5pY2lhbGl6YXIgcnVudGltZSBjb25maWc6JywgZXJyb3IpO1xuICAgICAgICAvLyBBw7puIGVuIGNhc28gZGUgZXJyb3IsIGNvbnRpbnVhbW9zIHBhcmEgbm8gYmxvcXVlYXIgbGEgYXBwXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRnVuY2nDs24gcXVlIGNvbmZpZ3VyYSBlbCBSdW50aW1lQ29uZmlnU2VydmljZSB5IHN1IGluaWNpYWxpemFjacOzblxuICogRGViZSBzZXIgdXNhZG8gZW4gYXBwLmNvbmZpZy50cyBqdW50byBjb24gcHJvdmlkZUVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlUnVudGltZUNvbmZpZygpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIFJ1bnRpbWVDb25maWdTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVSdW50aW1lQ29uZmlnLFxuICAgICAgZGVwczogW1J1bnRpbWVDb25maWdTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdKTtcbn0iXX0=
|