ng-easycommerce-v18 0.2.7 → 0.2.9
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.
|
@@ -19,10 +19,13 @@ export class ApiConstantsService {
|
|
|
19
19
|
* Canal actual del frontend
|
|
20
20
|
*/
|
|
21
21
|
get CHANNEL() {
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
+
}
|
|
26
29
|
}
|
|
27
30
|
// Fallback al environment
|
|
28
31
|
return this._channel;
|
|
@@ -44,20 +47,32 @@ export class ApiConstantsService {
|
|
|
44
47
|
*/
|
|
45
48
|
CMS_URL = 'cms/';
|
|
46
49
|
constructor() {
|
|
50
|
+
console.log('🚀 ApiConstantsService inicializando...');
|
|
47
51
|
this._channel = this.environment.channel;
|
|
48
52
|
this.LOCALE = this.environment.locale;
|
|
53
|
+
console.log('🌍 Environment:', this.environment);
|
|
54
|
+
// Verificar si window.__env existe
|
|
55
|
+
if (typeof window !== 'undefined') {
|
|
56
|
+
console.log('🪟 window.__env:', window.__env);
|
|
57
|
+
}
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
51
60
|
* URL del backend para realizar las peticiones
|
|
52
61
|
*/
|
|
53
62
|
get API_URL() {
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
// Verificar si estamos en el navegador (no en SSR)
|
|
64
|
+
if (typeof window !== 'undefined') {
|
|
65
|
+
// Primero intenta leer de window.__env (configurado por Docker)
|
|
66
|
+
const windowEnv = window.__env;
|
|
67
|
+
if (windowEnv?.apiUrl) {
|
|
68
|
+
console.log('🐳 API_URL desde Docker:', windowEnv.apiUrl);
|
|
69
|
+
return windowEnv.apiUrl;
|
|
70
|
+
}
|
|
58
71
|
}
|
|
59
|
-
// Fallback al environment
|
|
60
|
-
|
|
72
|
+
// Fallback al environment (para SSR y como backup)
|
|
73
|
+
const apiUrl = this.environment.apiUrl ?? '';
|
|
74
|
+
console.log('📦 API_URL desde environment:', apiUrl);
|
|
75
|
+
return apiUrl;
|
|
61
76
|
}
|
|
62
77
|
/**
|
|
63
78
|
* Retorna la url base
|
|
@@ -89,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
89
104
|
providedIn: 'root'
|
|
90
105
|
}]
|
|
91
106
|
}], ctorParameters: () => [] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd2RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixhQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDSyxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2pCLG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGdFQUFnRTtZQUNoRSxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDMUIsQ0FBQztRQUNGLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRLENBQVM7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVM7SUFFdEI7O09BRUc7SUFDYSxZQUFZLEdBQVcsV0FBVyxDQUFDO0lBQ25EOztPQUVHO0lBQ2EsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QztRQUNDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakQsbUNBQW1DO1FBQ25DLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNqQixtREFBbUQ7UUFDbkQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxnRUFBZ0U7WUFDaEUsTUFBTSxTQUFTLEdBQUksTUFBYyxDQUFDLEtBQUssQ0FBQztZQUN4QyxJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6QixDQUFDO1FBQ0YsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxJQUFZLElBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQSxDQUFDO0lBRXBELFNBQVMsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhO0lBQ0ksVUFBVSxHQUFVLFFBQVEsQ0FBQztJQUM3QixXQUFXLEdBQVUsU0FBUyxDQUFDO3dHQWxHcEMsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuL2NvcmUuY29uc3RhbnRzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgZGUgZGF0b3MgcXVlIGVzdGFuIHJlbGFjaW9uYWRvIGNvbiBsYXMgcGV0aWNpb25lcyBhIGxhIEFQSVxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBBcGlDb25zdGFudHNTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDb25zdGFudHNTZXJ2aWNlIHtcclxuXHRwcml2YXRlIF9sb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBsb3MgZGF0b3MgcHJvdmlzdG8gcG9yIGVsIGZyb250ZW5kIGVuIGVsIGFyY2hpdm8gZW52aXJvbm1lbnQudHNcclxuXHQgKi9cclxuXHRwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTik7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQ2FuYWwgYWN0dWFsIGRlbCBmcm9udGVuZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgQ0hBTk5FTCgpOiBzdHJpbmcge1xyXG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yIChubyBlbiBTU1IpXHJcblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0Ly8gUHJpbWVybyBpbnRlbnRhIGxlZXIgZGUgd2luZG93Ll9fZW52IChjb25maWd1cmFkbyBwb3IgRG9ja2VyKVxyXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XHJcblx0XHRcdGlmICh3aW5kb3dFbnY/LmNoYW5uZWwpIHtcclxuXHRcdFx0XHRyZXR1cm4gd2luZG93RW52LmNoYW5uZWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gRmFsbGJhY2sgYWwgZW52aXJvbm1lbnRcclxuXHRcdHJldHVybiB0aGlzLl9jaGFubmVsO1xyXG5cdH1cclxuXHRcclxuXHRwdWJsaWMgc2V0IENIQU5ORUwodmFsdWU6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fY2hhbm5lbCA9IHZhbHVlO1xyXG5cdH1cclxuXHRcclxuXHRwcml2YXRlIF9jaGFubmVsOiBzdHJpbmc7XHJcblx0LyoqXHJcblx0ICogTG9jYWxlIGFjdHVhbCBkZWwgZnJvbnRlbmRcclxuXHQgKi9cclxuXHRwdWJsaWMgTE9DQUxFOiBzdHJpbmc7XHJcblx0XHJcblx0LyoqXHJcblx0ICogVVJMIHBhcmEgbGFzIHBldGljaW9uZXMgYSBzaG9wLWFwaVxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWFkb25seSBTSE9QX0FQSV9VUkw6IHN0cmluZyA9ICdzaG9wLWFwaS8nO1xyXG5cdC8qKlxyXG5cdCAqIFVSTCBwYXJhIGxhcyBwZXRpY2lvbmVzIGEgY21zXHJcblx0ICovXHJcblx0cHVibGljIHJlYWRvbmx5IENNU19VUkw6IHN0cmluZyA9ICdjbXMvJztcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRjb25zb2xlLmxvZygn8J+agCBBcGlDb25zdGFudHNTZXJ2aWNlIGluaWNpYWxpemFuZG8uLi4nKTtcclxuXHRcdHRoaXMuX2NoYW5uZWwgPSB0aGlzLmVudmlyb25tZW50LmNoYW5uZWw7XHJcblx0XHR0aGlzLkxPQ0FMRSA9IHRoaXMuZW52aXJvbm1lbnQubG9jYWxlO1xyXG5cdFx0Y29uc29sZS5sb2coJ/CfjI0gRW52aXJvbm1lbnQ6JywgdGhpcy5lbnZpcm9ubWVudCk7XHJcblx0XHRcclxuXHRcdC8vIFZlcmlmaWNhciBzaSB3aW5kb3cuX19lbnYgZXhpc3RlXHJcblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ/Cfqp8gd2luZG93Ll9fZW52OicsICh3aW5kb3cgYXMgYW55KS5fX2Vudik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVUkwgZGVsIGJhY2tlbmQgcGFyYSByZWFsaXphciBsYXMgcGV0aWNpb25lc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgQVBJX1VSTCgpOiBzdHJpbmcge1xyXG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yIChubyBlbiBTU1IpXHJcblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0Ly8gUHJpbWVybyBpbnRlbnRhIGxlZXIgZGUgd2luZG93Ll9fZW52IChjb25maWd1cmFkbyBwb3IgRG9ja2VyKVxyXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XHJcblx0XHRcdGlmICh3aW5kb3dFbnY/LmFwaVVybCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfwn5CzIEFQSV9VUkwgZGVzZGUgRG9ja2VyOicsIHdpbmRvd0Vudi5hcGlVcmwpO1xyXG5cdFx0XHRcdHJldHVybiB3aW5kb3dFbnYuYXBpVXJsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIEZhbGxiYWNrIGFsIGVudmlyb25tZW50IChwYXJhIFNTUiB5IGNvbW8gYmFja3VwKVxyXG5cdFx0Y29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcGlVcmwgPz8gJyc7XHJcblx0XHRjb25zb2xlLmxvZygn8J+TpiBBUElfVVJMIGRlc2RlIGVudmlyb25tZW50OicsIGFwaVVybCk7XHJcblx0XHRyZXR1cm4gYXBpVXJsO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBiYXNlXHJcblx0ICogQHJldHVybnMge3N0cmluZ31cclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0VXJsQmFzZSgpOiBzdHJpbmcgeyBcclxuXHRcdHJldHVybiB0aGlzLkFQSV9VUkw7XHJcblx0fSBcclxuXHQvKipcclxuXHQgKiBDYW1iaWEgZWwgY2FuYWwgYWN0dWFsXHJcblx0ICogQHBhcmFtIGNvZGVcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0Q2hhbm5lbChjb2RlOiBzdHJpbmcpOnZvaWR7IHRoaXMuQ0hBTk5FTCA9IGNvZGU7fSBcclxuXHJcblx0cHVibGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6dm9pZHtcclxuXHRcdHRoaXMuX2xvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTE9DQUxFX0tFWSwgbG9jYWxlKTtcclxuXHRcdHRoaXMuX3RyYW5zbGF0ZS51c2UobG9jYWxlLnNwbGl0KCdfJylbMF0pXHJcblx0XHR0aGlzLkxPQ0FMRSA9IGxvY2FsZTtcclxuXHR9XHJcblxyXG5cdC8vU3RvcmFnZSBrZXlcclxuXHRwcml2YXRlIHJlYWRvbmx5IExPQ0FMRV9LRVk6c3RyaW5nID0gJ0xPQ0FMRSc7XHJcblx0cHJpdmF0ZSByZWFkb25seSBDSEFOTkVMX0tFWTpzdHJpbmcgPSAnQ0hBTk5FTCc7XHJcbn1cclxuIl19
|
|
@@ -59,10 +59,13 @@ class ApiConstantsService {
|
|
|
59
59
|
* Canal actual del frontend
|
|
60
60
|
*/
|
|
61
61
|
get CHANNEL() {
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
+
}
|
|
66
69
|
}
|
|
67
70
|
// Fallback al environment
|
|
68
71
|
return this._channel;
|
|
@@ -84,20 +87,32 @@ class ApiConstantsService {
|
|
|
84
87
|
*/
|
|
85
88
|
CMS_URL = 'cms/';
|
|
86
89
|
constructor() {
|
|
90
|
+
console.log('🚀 ApiConstantsService inicializando...');
|
|
87
91
|
this._channel = this.environment.channel;
|
|
88
92
|
this.LOCALE = this.environment.locale;
|
|
93
|
+
console.log('🌍 Environment:', this.environment);
|
|
94
|
+
// Verificar si window.__env existe
|
|
95
|
+
if (typeof window !== 'undefined') {
|
|
96
|
+
console.log('🪟 window.__env:', window.__env);
|
|
97
|
+
}
|
|
89
98
|
}
|
|
90
99
|
/**
|
|
91
100
|
* URL del backend para realizar las peticiones
|
|
92
101
|
*/
|
|
93
102
|
get API_URL() {
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
// Verificar si estamos en el navegador (no en SSR)
|
|
104
|
+
if (typeof window !== 'undefined') {
|
|
105
|
+
// Primero intenta leer de window.__env (configurado por Docker)
|
|
106
|
+
const windowEnv = window.__env;
|
|
107
|
+
if (windowEnv?.apiUrl) {
|
|
108
|
+
console.log('🐳 API_URL desde Docker:', windowEnv.apiUrl);
|
|
109
|
+
return windowEnv.apiUrl;
|
|
110
|
+
}
|
|
98
111
|
}
|
|
99
|
-
// Fallback al environment
|
|
100
|
-
|
|
112
|
+
// Fallback al environment (para SSR y como backup)
|
|
113
|
+
const apiUrl = this.environment.apiUrl ?? '';
|
|
114
|
+
console.log('📦 API_URL desde environment:', apiUrl);
|
|
115
|
+
return apiUrl;
|
|
101
116
|
}
|
|
102
117
|
/**
|
|
103
118
|
* Retorna la url base
|