ng-easycommerce-v18 0.2.6 → 0.2.8

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.
@@ -18,7 +18,22 @@ export class ApiConstantsService {
18
18
  /**
19
19
  * Canal actual del frontend
20
20
  */
21
- CHANNEL;
21
+ get CHANNEL() {
22
+ // Verificar si estamos en el navegador (no en SSR)
23
+ if (typeof window !== 'undefined') {
24
+ // Primero intenta leer de window.__env (configurado por Docker)
25
+ const windowEnv = window.__env;
26
+ if (windowEnv?.channel) {
27
+ return windowEnv.channel;
28
+ }
29
+ }
30
+ // Fallback al environment
31
+ return this._channel;
32
+ }
33
+ set CHANNEL(value) {
34
+ this._channel = value;
35
+ }
36
+ _channel;
22
37
  /**
23
38
  * Locale actual del frontend
24
39
  */
@@ -32,13 +47,22 @@ export class ApiConstantsService {
32
47
  */
33
48
  CMS_URL = 'cms/';
34
49
  constructor() {
35
- this.CHANNEL = this.environment.channel;
50
+ this._channel = this.environment.channel;
36
51
  this.LOCALE = this.environment.locale;
37
52
  }
38
53
  /**
39
54
  * URL del backend para realizar las peticiones
40
55
  */
41
56
  get API_URL() {
57
+ // Verificar si estamos en el navegador (no en SSR)
58
+ if (typeof window !== 'undefined') {
59
+ // Primero intenta leer de window.__env (configurado por Docker)
60
+ const windowEnv = window.__env;
61
+ if (windowEnv?.apiUrl) {
62
+ return windowEnv.apiUrl;
63
+ }
64
+ }
65
+ // Fallback al environment (funciona tanto en servidor como navegador)
42
66
  return this.environment.apiUrl ?? '';
43
67
  }
44
68
  /**
@@ -71,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
71
95
  providedIn: 'root'
72
96
  }]
73
97
  }], ctorParameters: () => [] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd2RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixhQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDSyxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0ksT0FBTyxDQUFTO0lBQ3ZCOztPQUVHO0lBQ0ksTUFBTSxDQUFTO0lBRXRCOztPQUVHO0lBQ2EsWUFBWSxHQUFXLFdBQVcsQ0FBQztJQUNuRDs7T0FFRztJQUNhLE9BQU8sR0FBVyxNQUFNLENBQUM7SUFFekM7UUFDQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxJQUFZLElBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQSxDQUFDO0lBRXBELFNBQVMsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhO0lBQ0ksVUFBVSxHQUFVLFFBQVEsQ0FBQztJQUM3QixXQUFXLEdBQVUsU0FBUyxDQUFDO3dHQTVEcEMsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuL2NvcmUuY29uc3RhbnRzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgZGUgZGF0b3MgcXVlIGVzdGFuIHJlbGFjaW9uYWRvIGNvbiBsYXMgcGV0aWNpb25lcyBhIGxhIEFQSVxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBBcGlDb25zdGFudHNTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDb25zdGFudHNTZXJ2aWNlIHtcclxuXHRwcml2YXRlIF9sb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBsb3MgZGF0b3MgcHJvdmlzdG8gcG9yIGVsIGZyb250ZW5kIGVuIGVsIGFyY2hpdm8gZW52aXJvbm1lbnQudHNcclxuXHQgKi9cclxuXHRwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTik7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQ2FuYWwgYWN0dWFsIGRlbCBmcm9udGVuZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBDSEFOTkVMOiBzdHJpbmc7XHJcblx0LyoqXHJcblx0ICogTG9jYWxlIGFjdHVhbCBkZWwgZnJvbnRlbmRcclxuXHQgKi9cclxuXHRwdWJsaWMgTE9DQUxFOiBzdHJpbmc7XHJcblx0XHJcblx0LyoqXHJcblx0ICogVVJMIHBhcmEgbGFzIHBldGljaW9uZXMgYSBzaG9wLWFwaVxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWFkb25seSBTSE9QX0FQSV9VUkw6IHN0cmluZyA9ICdzaG9wLWFwaS8nO1xyXG5cdC8qKlxyXG5cdCAqIFVSTCBwYXJhIGxhcyBwZXRpY2lvbmVzIGEgY21zXHJcblx0ICovXHJcblx0cHVibGljIHJlYWRvbmx5IENNU19VUkw6IHN0cmluZyA9ICdjbXMvJztcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLkNIQU5ORUwgPSB0aGlzLmVudmlyb25tZW50LmNoYW5uZWw7XHJcblx0XHR0aGlzLkxPQ0FMRSA9IHRoaXMuZW52aXJvbm1lbnQubG9jYWxlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVVJMIGRlbCBiYWNrZW5kIHBhcmEgcmVhbGl6YXIgbGFzIHBldGljaW9uZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0IEFQSV9VUkwoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybCA/PyAnJztcclxuXHR9XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBsYSB1cmwgYmFzZVxyXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XHJcblx0ICovXHJcblx0cHVibGljIGdldFVybEJhc2UoKTogc3RyaW5nIHsgXHJcblx0XHRyZXR1cm4gdGhpcy5BUElfVVJMO1xyXG5cdH0gXHJcblx0LyoqXHJcblx0ICogQ2FtYmlhIGVsIGNhbmFsIGFjdHVhbFxyXG5cdCAqIEBwYXJhbSBjb2RlXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIHNldENoYW5uZWwoY29kZTogc3RyaW5nKTp2b2lkeyB0aGlzLkNIQU5ORUwgPSBjb2RlO30gXHJcblxyXG5cdHB1YmxpYyBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpOnZvaWR7XHJcblx0XHR0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMRV9LRVksIGxvY2FsZSk7XHJcblx0XHR0aGlzLl90cmFuc2xhdGUudXNlKGxvY2FsZS5zcGxpdCgnXycpWzBdKVxyXG5cdFx0dGhpcy5MT0NBTEUgPSBsb2NhbGU7XHJcblx0fVxyXG5cclxuXHQvL1N0b3JhZ2Uga2V5XHJcblx0cHJpdmF0ZSByZWFkb25seSBMT0NBTEVfS0VZOnN0cmluZyA9ICdMT0NBTEUnO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgQ0hBTk5FTF9LRVk6c3RyaW5nID0gJ0NIQU5ORUwnO1xyXG59XHJcbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd2RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixhQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDSyxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2pCLG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGdFQUFnRTtZQUNoRSxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDMUIsQ0FBQztRQUNGLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRLENBQVM7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVM7SUFFdEI7O09BRUc7SUFDYSxZQUFZLEdBQVcsV0FBVyxDQUFDO0lBQ25EOztPQUVHO0lBQ2EsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QztRQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDakIsbURBQW1EO1FBQ25ELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbkMsZ0VBQWdFO1lBQ2hFLE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6QixDQUFDO1FBQ0YsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksVUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsSUFBWSxJQUFRLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztJQUVwRCxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYTtJQUNJLFVBQVUsR0FBVSxRQUFRLENBQUM7SUFDN0IsV0FBVyxHQUFVLFNBQVMsQ0FBQzt3R0F4RnBDLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRU5WSVJPTk1FTlRfVE9LRU4gfSBmcm9tICcuLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLmNvbnN0YW50cy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNpbyBxdWUgcHJvdmVlIGRlIGRhdG9zIHF1ZSBlc3RhbiByZWxhY2lvbmFkbyBjb24gbGFzIHBldGljaW9uZXMgYSBsYSBBUElcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQXBpQ29uc3RhbnRzU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RhbnRzU2VydmljZSB7XHJcblx0cHJpdmF0ZSBfbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcblx0LyoqXHJcblx0ICogQ29udGllbmUgbG9zIGRhdG9zIHByb3Zpc3RvIHBvciBlbCBmcm9udGVuZCBlbiBlbCBhcmNoaXZvIGVudmlyb25tZW50LnRzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIENhbmFsIGFjdHVhbCBkZWwgZnJvbnRlbmRcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0IENIQU5ORUwoKTogc3RyaW5nIHtcclxuXHRcdC8vIFZlcmlmaWNhciBzaSBlc3RhbW9zIGVuIGVsIG5hdmVnYWRvciAobm8gZW4gU1NSKVxyXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdC8vIFByaW1lcm8gaW50ZW50YSBsZWVyIGRlIHdpbmRvdy5fX2VudiAoY29uZmlndXJhZG8gcG9yIERvY2tlcilcclxuXHRcdFx0Y29uc3Qgd2luZG93RW52ID0gKHdpbmRvdyBhcyBhbnkpLl9fZW52O1xyXG5cdFx0XHRpZiAod2luZG93RW52Py5jaGFubmVsKSB7XHJcblx0XHRcdFx0cmV0dXJuIHdpbmRvd0Vudi5jaGFubmVsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIEZhbGxiYWNrIGFsIGVudmlyb25tZW50XHJcblx0XHRyZXR1cm4gdGhpcy5fY2hhbm5lbDtcclxuXHR9XHJcblx0XHJcblx0cHVibGljIHNldCBDSEFOTkVMKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdHRoaXMuX2NoYW5uZWwgPSB2YWx1ZTtcclxuXHR9XHJcblx0XHJcblx0cHJpdmF0ZSBfY2hhbm5lbDogc3RyaW5nO1xyXG5cdC8qKlxyXG5cdCAqIExvY2FsZSBhY3R1YWwgZGVsIGZyb250ZW5kXHJcblx0ICovXHJcblx0cHVibGljIExPQ0FMRTogc3RyaW5nO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIFVSTCBwYXJhIGxhcyBwZXRpY2lvbmVzIGEgc2hvcC1hcGlcclxuXHQgKi9cclxuXHRwdWJsaWMgcmVhZG9ubHkgU0hPUF9BUElfVVJMOiBzdHJpbmcgPSAnc2hvcC1hcGkvJztcclxuXHQvKipcclxuXHQgKiBVUkwgcGFyYSBsYXMgcGV0aWNpb25lcyBhIGNtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWFkb25seSBDTVNfVVJMOiBzdHJpbmcgPSAnY21zLyc7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5fY2hhbm5lbCA9IHRoaXMuZW52aXJvbm1lbnQuY2hhbm5lbDtcclxuXHRcdHRoaXMuTE9DQUxFID0gdGhpcy5lbnZpcm9ubWVudC5sb2NhbGU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVUkwgZGVsIGJhY2tlbmQgcGFyYSByZWFsaXphciBsYXMgcGV0aWNpb25lc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgQVBJX1VSTCgpOiBzdHJpbmcge1xyXG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yIChubyBlbiBTU1IpXHJcblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0Ly8gUHJpbWVybyBpbnRlbnRhIGxlZXIgZGUgd2luZG93Ll9fZW52IChjb25maWd1cmFkbyBwb3IgRG9ja2VyKVxyXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XHJcblx0XHRcdGlmICh3aW5kb3dFbnY/LmFwaVVybCkge1xyXG5cdFx0XHRcdHJldHVybiB3aW5kb3dFbnYuYXBpVXJsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIEZhbGxiYWNrIGFsIGVudmlyb25tZW50IChmdW5jaW9uYSB0YW50byBlbiBzZXJ2aWRvciBjb21vIG5hdmVnYWRvcilcclxuXHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybCA/PyAnJztcclxuXHR9XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBsYSB1cmwgYmFzZVxyXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XHJcblx0ICovXHJcblx0cHVibGljIGdldFVybEJhc2UoKTogc3RyaW5nIHsgXHJcblx0XHRyZXR1cm4gdGhpcy5BUElfVVJMO1xyXG5cdH0gXHJcblx0LyoqXHJcblx0ICogQ2FtYmlhIGVsIGNhbmFsIGFjdHVhbFxyXG5cdCAqIEBwYXJhbSBjb2RlXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIHNldENoYW5uZWwoY29kZTogc3RyaW5nKTp2b2lkeyB0aGlzLkNIQU5ORUwgPSBjb2RlO30gXHJcblxyXG5cdHB1YmxpYyBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpOnZvaWR7XHJcblx0XHR0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMRV9LRVksIGxvY2FsZSk7XHJcblx0XHR0aGlzLl90cmFuc2xhdGUudXNlKGxvY2FsZS5zcGxpdCgnXycpWzBdKVxyXG5cdFx0dGhpcy5MT0NBTEUgPSBsb2NhbGU7XHJcblx0fVxyXG5cclxuXHQvL1N0b3JhZ2Uga2V5XHJcblx0cHJpdmF0ZSByZWFkb25seSBMT0NBTEVfS0VZOnN0cmluZyA9ICdMT0NBTEUnO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgQ0hBTk5FTF9LRVk6c3RyaW5nID0gJ0NIQU5ORUwnO1xyXG59XHJcbiJdfQ==
@@ -58,7 +58,22 @@ class ApiConstantsService {
58
58
  /**
59
59
  * Canal actual del frontend
60
60
  */
61
- CHANNEL;
61
+ get CHANNEL() {
62
+ // Verificar si estamos en el navegador (no en SSR)
63
+ if (typeof window !== 'undefined') {
64
+ // Primero intenta leer de window.__env (configurado por Docker)
65
+ const windowEnv = window.__env;
66
+ if (windowEnv?.channel) {
67
+ return windowEnv.channel;
68
+ }
69
+ }
70
+ // Fallback al environment
71
+ return this._channel;
72
+ }
73
+ set CHANNEL(value) {
74
+ this._channel = value;
75
+ }
76
+ _channel;
62
77
  /**
63
78
  * Locale actual del frontend
64
79
  */
@@ -72,13 +87,22 @@ class ApiConstantsService {
72
87
  */
73
88
  CMS_URL = 'cms/';
74
89
  constructor() {
75
- this.CHANNEL = this.environment.channel;
90
+ this._channel = this.environment.channel;
76
91
  this.LOCALE = this.environment.locale;
77
92
  }
78
93
  /**
79
94
  * URL del backend para realizar las peticiones
80
95
  */
81
96
  get API_URL() {
97
+ // Verificar si estamos en el navegador (no en SSR)
98
+ if (typeof window !== 'undefined') {
99
+ // Primero intenta leer de window.__env (configurado por Docker)
100
+ const windowEnv = window.__env;
101
+ if (windowEnv?.apiUrl) {
102
+ return windowEnv.apiUrl;
103
+ }
104
+ }
105
+ // Fallback al environment (funciona tanto en servidor como navegador)
82
106
  return this.environment.apiUrl ?? '';
83
107
  }
84
108
  /**