ng-easycommerce-v18 0.3.23-beta.2 → 0.4.0

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 (202) hide show
  1. package/README.md +119 -111
  2. package/assets/decidirFormEc.html +514 -514
  3. package/assets/ec-i18n/ct.json +282 -282
  4. package/assets/ec-i18n/en.json +0 -0
  5. package/assets/ec-i18n/es.json +434 -434
  6. package/assets/ec-i18n/fr.json +0 -0
  7. package/assets/ec-i18n/gl.json +282 -282
  8. package/assets/ec-i18n/pr.json +282 -282
  9. package/assets/images/cards-occasional.svg +21 -21
  10. package/assets/recaptcha/recaptcha-site-keys.json +3 -3
  11. package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
  12. package/assets/recaptcha/recaptcha-sites.json +52 -52
  13. package/esm2022/lib/api/connection.service.mjs +1 -1
  14. package/esm2022/lib/classes/checkout/steps.mjs +1 -1
  15. package/esm2022/lib/classes/component-helper.mjs +1 -1
  16. package/esm2022/lib/classes/filters/attributes-filter.mjs +1 -1
  17. package/esm2022/lib/classes/filters/category-filter.mjs +1 -1
  18. package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
  19. package/esm2022/lib/classes/filters/filter-factory.mjs +1 -1
  20. package/esm2022/lib/classes/filters/filter.mjs +1 -1
  21. package/esm2022/lib/classes/filters/index.mjs +1 -1
  22. package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
  23. package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
  24. package/esm2022/lib/classes/index.mjs +1 -1
  25. package/esm2022/lib/classes/user.mjs +1 -1
  26. package/esm2022/lib/constants/api.constants.service.mjs +19 -15
  27. package/esm2022/lib/constants/core.constants.service.mjs +9 -3
  28. package/esm2022/lib/constants/index.mjs +1 -1
  29. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
  30. package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
  31. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +17 -1
  32. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
  33. package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
  34. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +3 -3
  35. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
  36. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
  37. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
  38. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
  39. package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
  40. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +28 -18
  41. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +27 -23
  42. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
  43. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
  44. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
  45. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
  46. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
  47. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
  48. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
  49. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +7 -4
  50. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
  51. package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
  52. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
  53. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +3 -3
  54. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +3 -3
  55. package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
  56. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +3 -3
  57. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +4 -11
  58. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
  59. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +3 -3
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +8 -4
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
  62. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
  63. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +55 -46
  64. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
  65. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
  66. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
  67. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +3 -3
  68. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +3 -3
  69. package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
  70. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
  71. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
  72. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +30 -7
  73. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
  74. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
  75. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +13 -7
  76. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
  77. package/esm2022/lib/ec-components/index.mjs +1 -1
  78. package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +3 -3
  79. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +12 -7
  80. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  81. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
  82. package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
  83. package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
  84. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
  85. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
  86. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
  87. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
  88. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
  89. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
  90. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
  91. package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
  92. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +3 -3
  93. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +20 -11
  94. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  95. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +14 -8
  96. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
  97. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
  98. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
  99. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
  100. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
  101. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +9 -9
  102. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
  103. package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
  104. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
  105. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +19 -9
  106. package/esm2022/lib/ec-directive/index.mjs +1 -1
  107. package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
  108. package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
  109. package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
  110. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
  111. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
  112. package/esm2022/lib/ec-pipe/index.mjs +1 -1
  113. package/esm2022/lib/ec-services/addressing.service.mjs +1 -1
  114. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
  115. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
  116. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
  117. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -4
  118. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +3 -2
  119. package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
  120. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +11 -11
  121. package/esm2022/lib/ec-services/auth.service.mjs +1 -1
  122. package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
  123. package/esm2022/lib/ec-services/base-api.service.mjs +148 -0
  124. package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
  125. package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
  126. package/esm2022/lib/ec-services/cart.service.mjs +1 -1
  127. package/esm2022/lib/ec-services/channel.service.mjs +1 -1
  128. package/esm2022/lib/ec-services/checkout.service.mjs +4 -2
  129. package/esm2022/lib/ec-services/currency.service.mjs +1 -1
  130. package/esm2022/lib/ec-services/filters.service.mjs +1 -1
  131. package/esm2022/lib/ec-services/form.service.mjs +1 -1
  132. package/esm2022/lib/ec-services/index.mjs +3 -1
  133. package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
  134. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
  135. package/esm2022/lib/ec-services/options.service.mjs +1 -1
  136. package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
  137. package/esm2022/lib/ec-services/orders.service.mjs +1 -1
  138. package/esm2022/lib/ec-services/pagination.service.mjs +1 -1
  139. package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
  140. package/esm2022/lib/ec-services/payment.service.mjs +1 -1
  141. package/esm2022/lib/ec-services/product-detail.service.mjs +1 -1
  142. package/esm2022/lib/ec-services/products.service.mjs +1 -1
  143. package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
  144. package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
  145. package/esm2022/lib/ec-services/runtime-config.service.mjs +219 -0
  146. package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
  147. package/esm2022/lib/ec-services/stores.service.mjs +1 -1
  148. package/esm2022/lib/ec-services/test.service.mjs +1 -1
  149. package/esm2022/lib/ec-services/toast.service.mjs +1 -1
  150. package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
  151. package/esm2022/lib/interceptors/index.mjs +2 -1
  152. package/esm2022/lib/interceptors/runtime-config.interceptor.mjs +41 -0
  153. package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
  154. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
  155. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
  156. package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
  157. package/esm2022/lib/interfaces/blocks.mjs +1 -1
  158. package/esm2022/lib/interfaces/checkout.mjs +1 -1
  159. package/esm2022/lib/interfaces/connection.mjs +1 -1
  160. package/esm2022/lib/interfaces/coupon.mjs +1 -1
  161. package/esm2022/lib/interfaces/currency.mjs +1 -1
  162. package/esm2022/lib/interfaces/deserializable.mjs +1 -1
  163. package/esm2022/lib/interfaces/environment.mjs +1 -1
  164. package/esm2022/lib/interfaces/faqs.mjs +1 -1
  165. package/esm2022/lib/interfaces/filter.mjs +1 -1
  166. package/esm2022/lib/interfaces/index.mjs +2 -1
  167. package/esm2022/lib/interfaces/options.mjs +1 -1
  168. package/esm2022/lib/interfaces/pagination.mjs +1 -1
  169. package/esm2022/lib/interfaces/parameter.mjs +1 -1
  170. package/esm2022/lib/interfaces/product.mjs +1 -1
  171. package/esm2022/lib/interfaces/runtime-config.mjs +2 -0
  172. package/esm2022/lib/interfaces/step.mjs +1 -1
  173. package/esm2022/lib/interfaces/storage.mjs +1 -1
  174. package/esm2022/lib/interfaces/store.mjs +1 -1
  175. package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
  176. package/esm2022/lib/providers/index.mjs +2 -1
  177. package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
  178. package/esm2022/lib/providers/provideRuntimeConfig.mjs +36 -0
  179. package/esm2022/lib/stores/currency.store.mjs +1 -1
  180. package/esm2022/public-api.mjs +1 -1
  181. package/fesm2022/ng-easycommerce-v18.mjs +851 -314
  182. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  183. package/lib/constants/api.constants.service.d.ts +1 -0
  184. package/lib/constants/core.constants.service.d.ts +5 -1
  185. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +12 -0
  186. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +2 -0
  187. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +1 -1
  188. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +1 -0
  189. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +12 -4
  190. package/lib/ec-services/base-api.service.d.ts +64 -0
  191. package/lib/ec-services/index.d.ts +2 -0
  192. package/lib/ec-services/runtime-config.service.d.ts +69 -0
  193. package/lib/interceptors/index.d.ts +1 -0
  194. package/lib/interceptors/runtime-config.interceptor.d.ts +7 -0
  195. package/lib/interfaces/environment.d.ts +1 -0
  196. package/lib/interfaces/filter.d.ts +1 -0
  197. package/lib/interfaces/index.d.ts +1 -0
  198. package/lib/interfaces/options.d.ts +2 -0
  199. package/lib/interfaces/runtime-config.d.ts +22 -0
  200. package/lib/providers/index.d.ts +1 -0
  201. package/lib/providers/provideRuntimeConfig.d.ts +13 -0
  202. package/package.json +1 -1
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
7
7
  export declare class ApiConstantsService {
8
8
  private _localStorage;
9
9
  private _translate;
10
+ private _runtimeConfig;
10
11
  /**
11
12
  * Contiene los datos provisto por el frontend en el archivo environment.ts
12
13
  */
@@ -18,7 +18,7 @@ export declare class CoreConstantsService {
18
18
  /**
19
19
  * Document token para acceso SSR-compatible al documento
20
20
  */
21
- private document;
21
+ private _document;
22
22
  /**
23
23
  * Contiene los datos provisto por el frontend en el archivo environment.ts
24
24
  */
@@ -32,6 +32,10 @@ export declare class CoreConstantsService {
32
32
  * Lo usamos para que PaginationService sepa qué filtro esperar.
33
33
  */
34
34
  currentRouteType: string | null;
35
+ /**
36
+ * Getter seguro para document que verifica la plataforma
37
+ */
38
+ private get document();
35
39
  constructor();
36
40
  /**
37
41
  * Path usado en las colecciones de productos.
@@ -75,6 +75,18 @@ 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;
78
90
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuEcComponent, never>;
79
91
  static ɵcmp: i0.ɵɵComponentDeclaration<MenuEcComponent, "lib-footer-ec", never, {}, {}, never, never, true, never>;
80
92
  }
@@ -2,10 +2,12 @@ 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;
5
6
  private _authService;
6
7
  private _formBuilder;
7
8
  private _toastService;
8
9
  private _router;
10
+ constructor(platformId: Object);
9
11
  showPassword: boolean;
10
12
  /**
11
13
  * Parametro para indicar si tras loguear
@@ -32,7 +32,7 @@ export declare class PaymentEcComponent implements OnInit {
32
32
  allData(): any;
33
33
  emitResult: () => Promise<void>;
34
34
  setLoading: (estado?: boolean) => boolean;
35
- verifyValidate: ($event: any) => void;
35
+ verifyValidate: ($event?: any) => void;
36
36
  next: () => void;
37
37
  goBack: () => void;
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<PaymentEcComponent, never>;
@@ -6,6 +6,7 @@ export declare class MpRedirectEcComponent implements OnInit, OnDestroy {
6
6
  private _toastService;
7
7
  private platformId;
8
8
  private finished;
9
+ private ngZone;
9
10
  method: null;
10
11
  total_amount: number;
11
12
  allData: any;
@@ -44,11 +44,19 @@ export declare class FiltersEcComponent {
44
44
  scrollUp: () => boolean;
45
45
  hasAppliedFilters(): boolean;
46
46
  /**
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
- */
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;
52
60
  static ɵfac: i0.ɵɵFactoryDeclaration<FiltersEcComponent, never>;
53
61
  static ɵcmp: i0.ɵɵComponentDeclaration<FiltersEcComponent, "lib-filters-ec", never, { "setSelect": { "alias": "setSelect"; "required": false; }; }, {}, never, never, true, never>;
54
62
  }
@@ -0,0 +1,64 @@
1
+ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { RuntimeConfigService } from './runtime-config.service';
4
+ import * as i0 from "@angular/core";
5
+ export interface ApiRequestOptions {
6
+ headers?: HttpHeaders | {
7
+ [header: string]: string | string[];
8
+ };
9
+ params?: HttpParams | {
10
+ [param: string]: string | string[];
11
+ };
12
+ withCredentials?: boolean;
13
+ }
14
+ /**
15
+ * Servicio base para realizar peticiones HTTP usando configuración dinámica
16
+ * Todos los servicios de la aplicación deben extender este servicio o usar sus métodos
17
+ */
18
+ export declare class BaseApiService {
19
+ protected http: HttpClient;
20
+ protected runtimeConfigService: RuntimeConfigService;
21
+ constructor(http: HttpClient, runtimeConfigService: RuntimeConfigService);
22
+ /**
23
+ * Construye una URL completa usando la API_URL del runtime
24
+ */
25
+ protected buildApiUrl(endpoint: string): string;
26
+ /**
27
+ * Obtiene headers comunes que incluyen información del runtime
28
+ */
29
+ protected getCommonHeaders(): HttpHeaders;
30
+ /**
31
+ * Método GET genérico
32
+ */
33
+ get<T>(endpoint: string, options?: ApiRequestOptions): Observable<T>;
34
+ /**
35
+ * Método POST genérico
36
+ */
37
+ post<T>(endpoint: string, data: any, options?: ApiRequestOptions): Observable<T>;
38
+ /**
39
+ * Método PUT genérico
40
+ */
41
+ put<T>(endpoint: string, data: any, options?: ApiRequestOptions): Observable<T>;
42
+ /**
43
+ * Método PATCH genérico
44
+ */
45
+ patch<T>(endpoint: string, data: any, options?: ApiRequestOptions): Observable<T>;
46
+ /**
47
+ * Método DELETE genérico
48
+ */
49
+ delete<T>(endpoint: string, options?: ApiRequestOptions): Observable<T>;
50
+ /**
51
+ * Método para peticiones que necesitan esperar a que la config esté cargada
52
+ */
53
+ getWithConfig<T>(endpoint: string, options?: ApiRequestOptions): Observable<T>;
54
+ /**
55
+ * Método para POST que necesitan esperar a que la config esté cargada
56
+ */
57
+ postWithConfig<T>(endpoint: string, data: any, options?: ApiRequestOptions): Observable<T>;
58
+ /**
59
+ * Combina headers personalizados con los headers comunes
60
+ */
61
+ private mergeHeaders;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseApiService, never>;
63
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseApiService>;
64
+ }
@@ -24,3 +24,5 @@ export * from './order-utility.service';
24
24
  export * from './payment.service';
25
25
  export * from './test.service';
26
26
  export * from './orders.service';
27
+ export * from './runtime-config.service';
28
+ export * from './base-api.service';
@@ -0,0 +1,69 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { RuntimeConfig } from '../interfaces/runtime-config';
4
+ import { Environment } from '../interfaces';
5
+ import * as i0 from "@angular/core";
6
+ export declare class RuntimeConfigService {
7
+ private platformId;
8
+ private http;
9
+ private environment;
10
+ private configSubject;
11
+ config$: Observable<RuntimeConfig | null>;
12
+ private _config;
13
+ private _loadPromise;
14
+ private _isLoaded;
15
+ constructor(platformId: Object, http: HttpClient, environment: Environment | null);
16
+ /**
17
+ * Obtiene configuración de fallback desde environment.ts
18
+ */
19
+ private getFallbackConfig;
20
+ /**
21
+ * Inicialización única - llamada por APP_INITIALIZER
22
+ * Garantiza que la configuración se carga solo una vez al inicio
23
+ */
24
+ initialize(): Promise<RuntimeConfig>;
25
+ /**
26
+ * Carga la configuración en runtime (optimizada para una sola carga)
27
+ * - En SSR: Lee desde el objeto window inyectado por el servidor
28
+ * - En Browser: Hace petición HTTP a /runtime-config.json (solo si no está en window)
29
+ */
30
+ loadConfig(): Observable<RuntimeConfig>;
31
+ /**
32
+ * Obtiene la configuración actual (síncrono)
33
+ */
34
+ getConfig(): RuntimeConfig | null;
35
+ /**
36
+ * Obtiene la API URL actual
37
+ */
38
+ getApiUrl(): string;
39
+ /**
40
+ * Obtiene la Frontend URL actual
41
+ */
42
+ getFrontendUrl(): string | undefined;
43
+ /**
44
+ * Obtiene el entorno actual
45
+ */
46
+ getAppEnv(): string;
47
+ /**
48
+ * Verifica si estamos en producción
49
+ */
50
+ isProduction(): boolean;
51
+ /**
52
+ * Obtiene el locale actual
53
+ */
54
+ getLocale(): string;
55
+ /**
56
+ * Obtiene el canal actual
57
+ */
58
+ getChannel(): string;
59
+ /**
60
+ * Método helper para construir URLs de API
61
+ */
62
+ buildApiUrl(endpoint: string): string;
63
+ /**
64
+ * Método helper para construir URLs del frontend
65
+ */
66
+ buildFrontendUrl(path: string): string;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<RuntimeConfigService, [null, null, { optional: true; }]>;
68
+ static ɵprov: i0.ɵɵInjectableDeclaration<RuntimeConfigService>;
69
+ }
@@ -1 +1,2 @@
1
1
  export * from './auth.interceptor';
2
+ export * from './runtime-config.interceptor';
@@ -0,0 +1,7 @@
1
+ import { HttpInterceptorFn } from '@angular/common/http';
2
+ /**
3
+ * Interceptor que garantiza que las peticiones HTTP no se hagan hasta que
4
+ * el runtime config esté completamente cargado
5
+ * Evita que se hagan peticiones con URLs incorrectas
6
+ */
7
+ export declare const runtimeConfigInterceptor: HttpInterceptorFn;
@@ -4,4 +4,5 @@ export interface Environment {
4
4
  frontendUrl?: string;
5
5
  locale: string;
6
6
  channel: string;
7
+ appEnv?: string;
7
8
  }
@@ -20,6 +20,7 @@ export interface FilterElement {
20
20
  title: string;
21
21
  type: ElementType;
22
22
  code: string;
23
+ isVisible?: boolean;
23
24
  multi?: boolean;
24
25
  children?: FilterElement[];
25
26
  shape?: FilterShape;
@@ -16,3 +16,4 @@ export * from './coupon';
16
16
  export * from './step';
17
17
  export * from './checkout';
18
18
  export * from './faqs';
19
+ export * from './runtime-config';
@@ -4,6 +4,7 @@ export interface Category {
4
4
  slug: string;
5
5
  position: number;
6
6
  path: string;
7
+ isVisible?: boolean;
7
8
  children?: Category[];
8
9
  images?: any[];
9
10
  }
@@ -23,4 +24,5 @@ export interface Attribute {
23
24
  slug: string;
24
25
  useToFilter: boolean;
25
26
  styles?: any[];
27
+ isVisible?: boolean;
26
28
  }
@@ -0,0 +1,22 @@
1
+ export interface RuntimeConfig {
2
+ apiUrl: string;
3
+ frontendUrl?: string;
4
+ /** Ambiente de la aplicación. Valores válidos: 'prod', 'preprod', 'test' */
5
+ appEnv: 'prod' | 'preprod' | 'test';
6
+ production: boolean;
7
+ locale: string;
8
+ channel: string;
9
+ port?: number;
10
+ host?: string;
11
+ }
12
+ export interface ServerEnvironmentVariables {
13
+ API_URL?: string;
14
+ FRONTEND_URL?: string;
15
+ /** Ambiente de la aplicación. Valores válidos: 'prod', 'preprod', 'test' */
16
+ APP_ENV?: 'prod' | 'preprod' | 'test';
17
+ PORT?: string;
18
+ HOST?: string;
19
+ NODE_ENV?: 'development' | 'production';
20
+ LOCALE?: string;
21
+ CHANNEL?: string;
22
+ }
@@ -1 +1,2 @@
1
1
  export * from './provideEnvironment';
2
+ export * from './provideRuntimeConfig';
@@ -0,0 +1,13 @@
1
+ import { EnvironmentProviders } 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 declare function initializeRuntimeConfig(runtimeConfigService: RuntimeConfigService): () => Promise<any>;
9
+ /**
10
+ * Función que configura el RuntimeConfigService y su inicialización
11
+ * Debe ser usado en app.config.ts junto con provideEnvironment
12
+ */
13
+ export declare function provideRuntimeConfig(): EnvironmentProviders;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-easycommerce-v18",
3
- "version": "0.3.23-beta.2",
3
+ "version": "0.4.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"