ng-easycommerce-v18 0.2.15 → 0.2.17

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 (34) hide show
  1. package/README.md +5 -0
  2. package/assets/decidirFormEc.html +7 -7
  3. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +2 -2
  4. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +2 -2
  5. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +11 -11
  6. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +2 -2
  7. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +12 -12
  8. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +2 -2
  9. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +2 -2
  10. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +2 -2
  11. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +2 -2
  12. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +2 -2
  13. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +2 -2
  14. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +2 -2
  15. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +2 -2
  16. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +2 -2
  17. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +4 -4
  18. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +4 -4
  19. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +2 -2
  20. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +3 -3
  21. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +4 -4
  22. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +2 -2
  23. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +24 -0
  24. package/esm2022/lib/ec-pipe/index.mjs +2 -1
  25. package/esm2022/lib/ec-services/cart.service.mjs +47 -18
  26. package/esm2022/lib/ec-services/checkout.service.mjs +3 -3
  27. package/esm2022/lib/ec-services/currency.service.mjs +2 -2
  28. package/esm2022/lib/ec-services/test.service.mjs +2 -2
  29. package/fesm2022/ng-easycommerce-v18.mjs +122 -72
  30. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  31. package/lib/ec-pipe/ec-safe-html.pipe.d.ts +10 -0
  32. package/lib/ec-pipe/index.d.ts +1 -0
  33. package/lib/ec-services/cart.service.d.ts +5 -4
  34. package/package.json +1 -1
@@ -17,7 +17,7 @@ import * as i1$3 from '@angular/forms';
17
17
  import { Validators, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
18
18
  import { register } from 'swiper/element/bundle';
19
19
  import { register as register$1 } from 'swiper/element';
20
- import * as i6 from '@angular/platform-browser';
20
+ import * as i1$4 from '@angular/platform-browser';
21
21
  import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
22
22
  import * as i1$2 from 'ng-recaptcha-2';
23
23
  import { RecaptchaModule } from 'ng-recaptcha-2';
@@ -2157,7 +2157,7 @@ class CurrencyService {
2157
2157
  baseCurrency = 'USD';
2158
2158
  }
2159
2159
  }
2160
- console.log("BC", baseCurrency);
2160
+ // console.log("BC", baseCurrency);
2161
2161
  if (currency.code == baseCurrency) {
2162
2162
  this.loadCurrency(currency);
2163
2163
  }
@@ -4156,31 +4156,60 @@ class CartService {
4156
4156
  ;
4157
4157
  constructor() {
4158
4158
  this._requestInProcess.next(true);
4159
+ // ✅ Cargar carrito local y token previo
4160
+ this._items = JSON.parse(this._localStorage.getItem(this.CART_KEY) || '[]');
4159
4161
  this.cartToken = this._localStorage.getItem(this.CART_TOKEN_KEY) || null;
4160
- this.initializeDataCart();
4162
+ // 🔑 CLAVE: Suscripción a cambios de estado de login
4163
+ this._authService.loggedIn$.subscribe(isLoggedIn => {
4164
+ if (isLoggedIn) {
4165
+ this.syncCartOnLogin();
4166
+ }
4167
+ else {
4168
+ // Usuario cerró sesión, limpiar y resetear carrito
4169
+ this.clearAndResetCustomerCart();
4170
+ }
4171
+ });
4161
4172
  this._channelService.channel$.subscribe(res => this.channelConfig = res);
4173
+ // Inicializar carrito para usuarios no autenticados
4174
+ if (!this._authService.isAuthenticated()) {
4175
+ // Si hay token, intentar obtener carrito por token, sino crear nuevo
4176
+ if (this.cartToken) {
4177
+ this.getCart();
4178
+ }
4179
+ else {
4180
+ this.getCartByCustomer();
4181
+ }
4182
+ }
4162
4183
  }
4163
4184
  /**
4164
- * Inicializa el carrito con los datos del local storage en caso de que existan o no.
4185
+ * Sincroniza el carrito cuando el usuario hace login
4186
+ * Implementa la lógica de Angular 9 para preservar el carrito del invitado
4165
4187
  */
4166
- initializeDataCart() {
4167
- combineLatest([this._authService.loggedIn$, this._storage.getItem(this.CART_KEY)]).subscribe({
4168
- next: ([loggedIn, token]) => {
4169
- //console.log(loggedIn, token);
4170
- this._items = token || [];
4171
- this.getCart();
4172
- }
4173
- });
4188
+ syncCartOnLogin() {
4189
+ // ✅ Si hay carrito local Y token, enviar para sincronizar con el servidor
4190
+ const hasLocalCart = this.cartToken && this._items.length > 0;
4191
+ if (hasLocalCart) {
4192
+ // Envía el token para fusionar carritos
4193
+ this.getCart();
4194
+ }
4195
+ else {
4196
+ // Sin carrito local, obtener carrito del usuario autenticado
4197
+ this.getCartByCustomer();
4198
+ }
4174
4199
  }
4175
4200
  /**
4176
- * Obtiene el carrito desde el backend y lo inicializa.
4177
- * Si existe el cartToken y hay items en el carrito, envía el token como parámetro.
4201
+ * Obtiene el carrito desde el backend con lógica de sincronización
4202
+ * Envía el token si hay carrito local para fusionar carritos
4178
4203
  */
4179
4204
  getCart() {
4180
- //console.warn(this._items, this._items.length, this.cartToken)
4181
- firstValueFrom(this._connection.post(this.cartItemsApi(), ((this.cartToken && this._items.length >= 1) && { token: this.cartToken }))).then((res) => {
4182
- //console.log(res)
4205
+ // 🔑 LÓGICA CRUCIAL: Si existe token Y hay items locales, envía el token
4206
+ const payload = (this.cartToken && this._items.length >= 1) ? { token: this.cartToken } : undefined;
4207
+ firstValueFrom(this._connection.post(this.cartItemsApi(), payload)).then((res) => {
4208
+ //console.log('getCart response:', res);
4183
4209
  this.initializeCart(res);
4210
+ }).catch(error => {
4211
+ console.error('Error getting cart:', error);
4212
+ this._requestInProcess.next(false);
4184
4213
  });
4185
4214
  }
4186
4215
  /**
@@ -4521,7 +4550,7 @@ class CartService {
4521
4550
  }
4522
4551
  changeHaveToUpdate = (value) => this._haveToUpdate = value;
4523
4552
  clearAndResetCustomerCart() {
4524
- console.log("Clearing and reseting...");
4553
+ // console.log("Clearing and reseting...")
4525
4554
  this.resetCart(this.getCartByCustomer);
4526
4555
  }
4527
4556
  getCartByCustomer = async () => this._connection.post(this.cartItemsApi()).subscribe(res => this.initializeCart(res));
@@ -5034,7 +5063,7 @@ class CheckoutService {
5034
5063
  if (final_steps.length == 1) {
5035
5064
  this._lastStepSubject.next(true);
5036
5065
  }
5037
- console.log(final_steps);
5066
+ // console.log(final_steps);
5038
5067
  firstValueFrom(this._connection.get(this.getHasPurchaseConditions())).then(res => {
5039
5068
  this._analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total });
5040
5069
  });
@@ -5061,7 +5090,7 @@ class CheckoutService {
5061
5090
  }
5062
5091
  this._loadingStepSubject.next(false);
5063
5092
  }, err => {
5064
- console.log(err);
5093
+ // console.log(err)
5065
5094
  this._loadingStepSubject.next(false);
5066
5095
  this._toastService.show('operation-error');
5067
5096
  });
@@ -5548,7 +5577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5548
5577
 
5549
5578
  class TestService {
5550
5579
  constructor() {
5551
- console.log('hola');
5580
+ // console.log('hola');
5552
5581
  }
5553
5582
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5554
5583
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestService, providedIn: 'root' });
@@ -5884,10 +5913,10 @@ class HeaderEcComponent extends MenuEcComponent {
5884
5913
  constructor() {
5885
5914
  super();
5886
5915
  this._channelService.channel$.subscribe(cfg => {
5887
- console.log('Channel configuration:', cfg);
5916
+ // console.log('Channel configuration:', cfg);
5888
5917
  this.showPricesOnlyToLoggedUsers = !!cfg.showPricesOnlyToLoggedUsers;
5889
5918
  this.hidePrices = !!cfg.hidePrices;
5890
- console.log('hidePrices:', this.hidePrices);
5919
+ // console.log('hidePrices:', this.hidePrices);
5891
5920
  });
5892
5921
  }
5893
5922
  coreConstantsService = inject(CoreConstantsService);
@@ -5969,7 +5998,7 @@ class HeaderEcComponent extends MenuEcComponent {
5969
5998
  this.getCollectionSearch();
5970
5999
  }
5971
6000
  setupMobileMenu() {
5972
- console.log('setupMobileMenu called');
6001
+ // console.log('setupMobileMenu called');
5973
6002
  const menuMobile = document.querySelector('.menuMobile');
5974
6003
  if (!(menuMobile instanceof HTMLElement))
5975
6004
  return;
@@ -6151,19 +6180,19 @@ class BlockBannerFullEcComponent extends BlockEcComponent {
6151
6180
  const nextButton = this.document?.getElementById(`${this.meta?.code}-next`);
6152
6181
  const swiperElement = this.document?.getElementById(this.meta?.code);
6153
6182
  if (prevButton && nextButton && swiperElement) {
6154
- console.log('Configurando navegación personalizada para banners:', this.meta?.code);
6183
+ // console.log('Configurando navegación personalizada para banners:', this.meta?.code);
6155
6184
  // Actualizar configuración del Swiper existente
6156
6185
  this.updateSwiperForBanners(swiperElement);
6157
6186
  // Configurar los event listeners para los botones
6158
6187
  this.setupBannerNavigationEventListeners(prevButton, nextButton, swiperElement);
6159
- console.log('Event listeners configurados para navegación de banners');
6188
+ // console.log('Event listeners configurados para navegación de banners');
6160
6189
  }
6161
6190
  else {
6162
- console.log('No se pudieron encontrar los elementos de navegación para banners:', {
6163
- prevButton: !!prevButton,
6164
- nextButton: !!nextButton,
6165
- swiperElement: !!swiperElement
6166
- });
6191
+ // console.log('No se pudieron encontrar los elementos de navegación para banners:', {
6192
+ // prevButton: !!prevButton,
6193
+ // nextButton: !!nextButton,
6194
+ // swiperElement: !!swiperElement
6195
+ // });
6167
6196
  }
6168
6197
  }
6169
6198
  /**
@@ -6171,7 +6200,7 @@ class BlockBannerFullEcComponent extends BlockEcComponent {
6171
6200
  */
6172
6201
  updateSwiperForBanners(swiperElement) {
6173
6202
  if (swiperElement.swiper) {
6174
- console.log('Actualizando configuración de Swiper para banners');
6203
+ // console.log('Actualizando configuración de Swiper para banners');
6175
6204
  // Configuración específica para banners
6176
6205
  swiperElement.swiper.params.slidesPerGroup = 1;
6177
6206
  swiperElement.swiper.allowSlideNext = true;
@@ -6198,7 +6227,7 @@ class BlockBannerFullEcComponent extends BlockEcComponent {
6198
6227
  prevClone.addEventListener('click', (e) => {
6199
6228
  e.preventDefault();
6200
6229
  e.stopPropagation();
6201
- console.log('Click en botón anterior (banners)');
6230
+ // console.log('Click en botón anterior (banners)');
6202
6231
  if (swiperElement.swiper) {
6203
6232
  swiperElement.swiper.slidePrev();
6204
6233
  }
@@ -6206,7 +6235,7 @@ class BlockBannerFullEcComponent extends BlockEcComponent {
6206
6235
  nextClone.addEventListener('click', (e) => {
6207
6236
  e.preventDefault();
6208
6237
  e.stopPropagation();
6209
- console.log('Click en botón siguiente (banners)');
6238
+ // console.log('Click en botón siguiente (banners)');
6210
6239
  if (swiperElement.swiper) {
6211
6240
  swiperElement.swiper.slideNext();
6212
6241
  }
@@ -6751,7 +6780,7 @@ class BlockProductsEcComponent extends BlockEcComponent {
6751
6780
  const nextButton = document.getElementById(`${this.meta?.code}-next`);
6752
6781
  const swiperElement = document.getElementById(this.meta?.code);
6753
6782
  if (prevButton && nextButton && swiperElement) {
6754
- console.log('Configurando navegación personalizada para:', this.meta?.code);
6783
+ // console.log('Configurando navegación personalizada para:', this.meta?.code);
6755
6784
  const swiperConfig = this.getSwiperConfiguration();
6756
6785
  // Verificar si el Swiper ya está inicializado
6757
6786
  if (!swiperElement.swiper) {
@@ -6762,14 +6791,14 @@ class BlockProductsEcComponent extends BlockEcComponent {
6762
6791
  }
6763
6792
  // Configurar los event listeners para los botones
6764
6793
  this.setupNavigationEventListeners(prevButton, nextButton, swiperElement);
6765
- console.log('Event listeners configurados para los botones de navegación');
6794
+ // console.log('Event listeners configurados para los botones de navegación');
6766
6795
  }
6767
6796
  else {
6768
- console.log('No se pudieron encontrar los elementos:', {
6769
- prevButton: !!prevButton,
6770
- nextButton: !!nextButton,
6771
- swiperElement: !!swiperElement
6772
- });
6797
+ // console.log('No se pudieron encontrar los elementos:', {
6798
+ // prevButton: !!prevButton,
6799
+ // nextButton: !!nextButton,
6800
+ // swiperElement: !!swiperElement
6801
+ // });
6773
6802
  }
6774
6803
  }
6775
6804
  /**
@@ -6818,13 +6847,13 @@ class BlockProductsEcComponent extends BlockEcComponent {
6818
6847
  Object.assign(swiperElement, config);
6819
6848
  // Inicializar el Swiper
6820
6849
  swiperElement.initialize();
6821
- console.log('Swiper inicializado con configuración personalizada');
6850
+ // console.log('Swiper inicializado con configuración personalizada');
6822
6851
  }
6823
6852
  /**
6824
6853
  * Actualiza un Swiper existente para asegurar la configuración correcta.
6825
6854
  */
6826
6855
  updateExistingSwiper(swiperElement) {
6827
- console.log('Actualizando configuración de Swiper existente');
6856
+ // console.log('Actualizando configuración de Swiper existente');
6828
6857
  // Forzar slidesPerGroup a 1
6829
6858
  swiperElement.swiper.params.slidesPerGroup = 1;
6830
6859
  swiperElement.swiper.allowSlideNext = true;
@@ -6844,7 +6873,7 @@ class BlockProductsEcComponent extends BlockEcComponent {
6844
6873
  prevButton.addEventListener('click', (e) => {
6845
6874
  e.preventDefault();
6846
6875
  e.stopPropagation();
6847
- console.log('Click en botón anterior');
6876
+ // console.log('Click en botón anterior');
6848
6877
  if (swiperElement.swiper) {
6849
6878
  swiperElement.swiper.slidePrev();
6850
6879
  }
@@ -6852,7 +6881,7 @@ class BlockProductsEcComponent extends BlockEcComponent {
6852
6881
  nextButton.addEventListener('click', (e) => {
6853
6882
  e.preventDefault();
6854
6883
  e.stopPropagation();
6855
- console.log('Click en botón siguiente');
6884
+ // console.log('Click en botón siguiente');
6856
6885
  if (swiperElement.swiper) {
6857
6886
  swiperElement.swiper.slideNext();
6858
6887
  }
@@ -6914,7 +6943,7 @@ class BlockNewsletterEcComponent {
6914
6943
  this.sendForm(this.newsletter_form, 'inquiry-sent');
6915
6944
  }
6916
6945
  sendForm(form, success_message) {
6917
- console.log('form', this.newsletter_form);
6946
+ // console.log('form', this.newsletter_form);
6918
6947
  if (form.valid && (form.value.email.includes('@'))) {
6919
6948
  const formData = new FormData();
6920
6949
  // formData.append('mailText', form.value.body)
@@ -7013,7 +7042,7 @@ class ReCaptchaEcComponent {
7013
7042
  onTouched;
7014
7043
  ngOnInit() {
7015
7044
  this._recaptchaService.recaptcha$.subscribe(res => {
7016
- console.log('recaptcha', res);
7045
+ // console.log('recaptcha', res);
7017
7046
  this.captcha = res;
7018
7047
  this.updateSiteKey();
7019
7048
  });
@@ -7734,7 +7763,7 @@ class RegisterFormEcComponent {
7734
7763
  register(event) {
7735
7764
  event.preventDefault();
7736
7765
  this.loading = true;
7737
- console.log('registerForm', this.registerForm);
7766
+ // console.log('registerForm', this.registerForm);
7738
7767
  if (!this.registerForm.valid) {
7739
7768
  this._toastService.show('fields-incomplete');
7740
7769
  this.loading = false;
@@ -8063,7 +8092,7 @@ class FiltersEcComponent {
8063
8092
  /*Obtiene el filtro elegido en el select, lo pasa al setSelect
8064
8093
  para que se marque seleccionado*/
8065
8094
  onSelect(event, filter) {
8066
- console.log(filter);
8095
+ // console.log(filter)
8067
8096
  /* const selectedOption = filter
8068
8097
  .flatMap(category => category.children)
8069
8098
  .filter(option => option?.code === event.target.value)
@@ -8367,7 +8396,7 @@ class CartEcComponent {
8367
8396
  });
8368
8397
  }
8369
8398
  removeCoupon() {
8370
- console.log(this.couponCode$);
8399
+ // console.log(this.couponCode$)
8371
8400
  this._cartService.removeCoupon();
8372
8401
  }
8373
8402
  redirectCheckout() {
@@ -8409,6 +8438,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8409
8438
  args: [{ selector: 'lib-cart-ec', standalone: true, imports: [], template: "<p>cart-ec works!</p>\r\n" }]
8410
8439
  }], ctorParameters: () => [] });
8411
8440
 
8441
+ class EcSafeHtmlPipe {
8442
+ sanitizer;
8443
+ constructor(sanitizer) {
8444
+ this.sanitizer = sanitizer;
8445
+ }
8446
+ transform(value) {
8447
+ if (!value)
8448
+ return '';
8449
+ return this.sanitizer.bypassSecurityTrustHtml(value);
8450
+ }
8451
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcSafeHtmlPipe, deps: [{ token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
8452
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EcSafeHtmlPipe, isStandalone: true, name: "ecSafeHtml" });
8453
+ }
8454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcSafeHtmlPipe, decorators: [{
8455
+ type: Pipe,
8456
+ args: [{
8457
+ name: 'ecSafeHtml',
8458
+ standalone: true
8459
+ }]
8460
+ }], ctorParameters: () => [{ type: i1$4.DomSanitizer }] });
8461
+
8412
8462
  class CartItemEcComponent {
8413
8463
  item;
8414
8464
  inSidebar = false;
@@ -8422,7 +8472,7 @@ class CartItemEcComponent {
8422
8472
  isQuantityUpdating = false;
8423
8473
  ngOnInit() {
8424
8474
  this.quantity = this.item.quantity;
8425
- console.log(this.item, this.mediaUrl);
8475
+ // console.log(this.item, this.mediaUrl);
8426
8476
  }
8427
8477
  updateQuantity(stock) {
8428
8478
  if (this.quantity > 0 && this.quantity <= stock) {
@@ -8664,7 +8714,7 @@ class DataformEcComponent {
8664
8714
  const form = isBilling ? this.checkoutFormFacturacion : this.checkoutForm;
8665
8715
  const currentCountry = form.get('countryCode')?.value;
8666
8716
  if (!currentCountry) {
8667
- console.log('Setting default country:', country.name);
8717
+ // console.log('Setting default country:', country.name);
8668
8718
  form.patchValue({
8669
8719
  countryCode: country.code
8670
8720
  });
@@ -8936,7 +8986,7 @@ class ShipmentEcComponent {
8936
8986
  costs.find((cost) => cost.name == contract).contracts.find((contra) => contra.name == data.name).selected = true;
8937
8987
  }
8938
8988
  catch (error) {
8939
- console.log("error al buscar contrato", error);
8989
+ // console.log("error al buscar contrato", error);
8940
8990
  }
8941
8991
  this.emitResult(contract, data);
8942
8992
  }
@@ -9026,7 +9076,7 @@ class MpRedirectEcComponent {
9026
9076
  };
9027
9077
  processError = (err) => {
9028
9078
  this._toastService.show(err != '' ? err : 'payment-error');
9029
- console.log("ERROR ENVIO BACK ", err);
9079
+ // console.log("ERROR ENVIO BACK ", err);
9030
9080
  };
9031
9081
  clearStorageState = () => {
9032
9082
  sessionStorage.removeItem('state');
@@ -9243,7 +9293,7 @@ class DecidirEcComponent extends ComponentHelper {
9243
9293
  };
9244
9294
  processError = (err) => {
9245
9295
  this.toastrService.show(err != '' ? err : 'payment-error');
9246
- console.log("ERROR ENVIO BACK ", err);
9296
+ // console.log("ERROR ENVIO BACK ", err);
9247
9297
  };
9248
9298
  getCheckoutDecidir = () => {
9249
9299
  this.loading = true;
@@ -9259,7 +9309,7 @@ class DecidirEcComponent extends ComponentHelper {
9259
9309
  return;
9260
9310
  }
9261
9311
  if (event.data && event.data.type === 'DECIDIR_PAYMENT') {
9262
- console.log('DecidirComponent - Procesando pago con payload:', event.data.payload);
9312
+ // console.log('DecidirComponent - Procesando pago con payload:', event.data.payload);
9263
9313
  this.processPayment(event.data.payload);
9264
9314
  }
9265
9315
  };
@@ -9269,7 +9319,7 @@ class DecidirEcComponent extends ComponentHelper {
9269
9319
  .subscribe({
9270
9320
  next: (response) => {
9271
9321
  this.loading = false;
9272
- console.log('Respuesta del backend:', response);
9322
+ // console.log('Respuesta del backend:', response);
9273
9323
  if (response.status === 'approved' || response.status === 'partially_authorized') {
9274
9324
  localStorage.setItem('state', response.status === 'approved' ? 'success' : 'partially_authorized');
9275
9325
  if (response.message)
@@ -9300,13 +9350,13 @@ class DecidirEcComponent extends ComponentHelper {
9300
9350
  obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
9301
9351
  obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';
9302
9352
  };
9303
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecidirEcComponent, deps: [{ token: i0.Renderer2 }, { token: ConnectionService }, { token: ToastService }, { token: CoreConstantsService }, { token: ApiConstantsService }, { token: CartService }, { token: i2.ActivatedRoute }, { token: i6.DomSanitizer }, { token: ParametersService }], target: i0.ɵɵFactoryTarget.Component });
9353
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecidirEcComponent, deps: [{ token: i0.Renderer2 }, { token: ConnectionService }, { token: ToastService }, { token: CoreConstantsService }, { token: ApiConstantsService }, { token: CartService }, { token: i2.ActivatedRoute }, { token: i1$4.DomSanitizer }, { token: ParametersService }], target: i0.ɵɵFactoryTarget.Component });
9304
9354
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DecidirEcComponent, isStandalone: true, selector: "app-decidir-ec", inputs: { paymentServiceInst: "paymentServiceInst", method: "method", total_amount: "total_amount", allData: "allData", user_data: "user_data" }, outputs: { ready: "ready" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"text-center\">\r\n <h3>Continuar con el pago en Decidir</h3>\r\n @if (method) {\r\n <p class=\"px-5\">{{ method.description }}</p>\r\n <p class=\"px-5\">{{ method.instructions }}</p>\r\n }\r\n @if (!loading) {\r\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal()\">Pagar</button>\r\n } @else {\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n }\r\n </div>\r\n\r\n@if (showModal) {\r\n<div class=\"modal-backdrop\" (click)=\"clickClose()\">\r\n <div class=\"modal-dialog modal-lg\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"modal-content\">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"payment-container\">\r\n \r\n <!-- Iframe del formulario de decidir -->\r\n <div class=\"iframe-container\">\r\n <iframe [src]=\"url\" frameborder=\"0\" class=\"payment-iframe\"></iframe>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [".modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1050;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{max-width:90%;max-height:90%;width:800px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:modalFadeIn .3s ease-out}.modal-dialog.modal-lg{max-width:900px;width:90%}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content{display:flex;flex-direction:column;height:100%;border:none;border-radius:16px;background:#fff}.modal-header{padding:1.5rem 2rem;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;justify-content:space-between;align-items:center;position:relative}.modal-header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,#dee2e6 50%,transparent 100%)}.modal-header .modal-title{margin:0;font-size:1.5rem;font-weight:700;color:#2c3e50;text-shadow:0 1px 2px rgba(0,0,0,.1)}.modal-header .btn-close{background:none;border:none;font-size:1.8rem;color:#6c757d;cursor:pointer;padding:0;width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease;position:relative}.modal-header .btn-close:hover{background-color:#dc3545;color:#fff;transform:rotate(90deg);box-shadow:0 4px 12px #dc35454d}.modal-header .btn-close:active{transform:rotate(90deg) scale(.95)}.modal-body{padding:0;flex:1;overflow:hidden;background:#fff}.payment-container{height:100%;display:flex;flex-direction:column;background:#fff}.cards-accepted{padding:1.5rem 2rem;text-align:center;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#fff,#f8f9fa);position:relative}.cards-accepted:after{content:\"\";position:absolute;bottom:0;left:5%;right:5%;height:1px;background:linear-gradient(90deg,transparent 0%,#dee2e6 50%,transparent 100%)}.cards-accepted .cards-img{height:45px;max-width:100%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:transform .2s ease}.cards-accepted .cards-img:hover{transform:scale(1.05)}.iframe-container{flex:1;padding:1.5rem;background:#fff;position:relative}.iframe-container:before{content:\"\";position:absolute;top:0;left:1.5rem;right:1.5rem;height:1px;background:linear-gradient(90deg,transparent 0%,#e9ecef 50%,transparent 100%)}.payment-iframe{width:100%;height:620px;border:none;border-radius:12px;background:#fff;box-shadow:inset 0 2px 8px #0000000d}.half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:520px;width:100%}@media only screen and (max-width: 1024px){.modal-dialog,.modal-dialog.modal-lg{max-width:95%;width:95%}.payment-iframe{height:650px}.modal-header{padding:1rem 1.5rem}.modal-header .modal-title{font-size:1.125rem}.cards-accepted{padding:.75rem 1.5rem}}@media only screen and (max-width: 680px){.modal-dialog{max-width:98%;width:98%;margin:1rem;max-height:calc(100vh - 2rem)}.modal-dialog.modal-lg{max-width:98%;width:98%}.payment-iframe{height:550px}.modal-header{padding:1rem}.modal-header .modal-title{font-size:1rem}.modal-header .btn-close{width:28px;height:28px;font-size:1.25rem}.cards-accepted{padding:.5rem 1rem}.cards-accepted .cards-img{height:35px}.iframe-container{padding:.5rem}}@media only screen and (max-width: 480px){.modal-dialog{margin:.5rem;max-height:calc(100vh - 1rem);border-radius:8px}.modal-content{border-radius:8px}.payment-iframe{height:500px}.cards-accepted .cards-img{height:30px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
9305
9355
  }
9306
9356
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecidirEcComponent, decorators: [{
9307
9357
  type: Component,
9308
9358
  args: [{ selector: 'app-decidir-ec', standalone: true, imports: [CommonModule, FormsModule, LoadingFullEcComponent], template: "<div class=\"text-center\">\r\n <h3>Continuar con el pago en Decidir</h3>\r\n @if (method) {\r\n <p class=\"px-5\">{{ method.description }}</p>\r\n <p class=\"px-5\">{{ method.instructions }}</p>\r\n }\r\n @if (!loading) {\r\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal()\">Pagar</button>\r\n } @else {\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n }\r\n </div>\r\n\r\n@if (showModal) {\r\n<div class=\"modal-backdrop\" (click)=\"clickClose()\">\r\n <div class=\"modal-dialog modal-lg\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"modal-content\">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"payment-container\">\r\n \r\n <!-- Iframe del formulario de decidir -->\r\n <div class=\"iframe-container\">\r\n <iframe [src]=\"url\" frameborder=\"0\" class=\"payment-iframe\"></iframe>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [".modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1050;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{max-width:90%;max-height:90%;width:800px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:modalFadeIn .3s ease-out}.modal-dialog.modal-lg{max-width:900px;width:90%}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content{display:flex;flex-direction:column;height:100%;border:none;border-radius:16px;background:#fff}.modal-header{padding:1.5rem 2rem;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;justify-content:space-between;align-items:center;position:relative}.modal-header:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,#dee2e6 50%,transparent 100%)}.modal-header .modal-title{margin:0;font-size:1.5rem;font-weight:700;color:#2c3e50;text-shadow:0 1px 2px rgba(0,0,0,.1)}.modal-header .btn-close{background:none;border:none;font-size:1.8rem;color:#6c757d;cursor:pointer;padding:0;width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease;position:relative}.modal-header .btn-close:hover{background-color:#dc3545;color:#fff;transform:rotate(90deg);box-shadow:0 4px 12px #dc35454d}.modal-header .btn-close:active{transform:rotate(90deg) scale(.95)}.modal-body{padding:0;flex:1;overflow:hidden;background:#fff}.payment-container{height:100%;display:flex;flex-direction:column;background:#fff}.cards-accepted{padding:1.5rem 2rem;text-align:center;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#fff,#f8f9fa);position:relative}.cards-accepted:after{content:\"\";position:absolute;bottom:0;left:5%;right:5%;height:1px;background:linear-gradient(90deg,transparent 0%,#dee2e6 50%,transparent 100%)}.cards-accepted .cards-img{height:45px;max-width:100%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:transform .2s ease}.cards-accepted .cards-img:hover{transform:scale(1.05)}.iframe-container{flex:1;padding:1.5rem;background:#fff;position:relative}.iframe-container:before{content:\"\";position:absolute;top:0;left:1.5rem;right:1.5rem;height:1px;background:linear-gradient(90deg,transparent 0%,#e9ecef 50%,transparent 100%)}.payment-iframe{width:100%;height:620px;border:none;border-radius:12px;background:#fff;box-shadow:inset 0 2px 8px #0000000d}.half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:520px;width:100%}@media only screen and (max-width: 1024px){.modal-dialog,.modal-dialog.modal-lg{max-width:95%;width:95%}.payment-iframe{height:650px}.modal-header{padding:1rem 1.5rem}.modal-header .modal-title{font-size:1.125rem}.cards-accepted{padding:.75rem 1.5rem}}@media only screen and (max-width: 680px){.modal-dialog{max-width:98%;width:98%;margin:1rem;max-height:calc(100vh - 2rem)}.modal-dialog.modal-lg{max-width:98%;width:98%}.payment-iframe{height:550px}.modal-header{padding:1rem}.modal-header .modal-title{font-size:1rem}.modal-header .btn-close{width:28px;height:28px;font-size:1.25rem}.cards-accepted{padding:.5rem 1rem}.cards-accepted .cards-img{height:35px}.iframe-container{padding:.5rem}}@media only screen and (max-width: 480px){.modal-dialog{margin:.5rem;max-height:calc(100vh - 1rem);border-radius:8px}.modal-content{border-radius:8px}.payment-iframe{height:500px}.cards-accepted .cards-img{height:30px}}\n"] }]
9309
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: ConnectionService }, { type: ToastService }, { type: CoreConstantsService }, { type: ApiConstantsService }, { type: CartService }, { type: i2.ActivatedRoute }, { type: i6.DomSanitizer }, { type: ParametersService }], propDecorators: { paymentServiceInst: [{
9359
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: ConnectionService }, { type: ToastService }, { type: CoreConstantsService }, { type: ApiConstantsService }, { type: CartService }, { type: i2.ActivatedRoute }, { type: i1$4.DomSanitizer }, { type: ParametersService }], propDecorators: { paymentServiceInst: [{
9310
9360
  type: Input
9311
9361
  }], method: [{
9312
9362
  type: Input
@@ -9337,7 +9387,7 @@ class PaymentEcComponent {
9337
9387
  const totalItem = data.find(item => item.type == 'total');
9338
9388
  this.total_amount = totalItem?.amount ?? 0;
9339
9389
  });
9340
- console.log('PaymentEcComponent initialized with total_amount:', this.total_amount);
9390
+ // console.log('PaymentEcComponent initialized with total_amount:', this.total_amount);
9341
9391
  }
9342
9392
  setActive($event) {
9343
9393
  const parent = $event.target.parentElement.children;
@@ -9418,7 +9468,7 @@ class StepContainerEcComponent {
9418
9468
  _checkoutService = inject(CheckoutService);
9419
9469
  steps;
9420
9470
  constructor() {
9421
- console.log('step-container-ec');
9471
+ // console.log('step-container-ec');
9422
9472
  }
9423
9473
  next() {
9424
9474
  this._checkoutService.next();
@@ -9756,7 +9806,7 @@ class OrderEcComponent {
9756
9806
  const number = this._activedRoute.snapshot.params["number"];
9757
9807
  this._ordersService.getOrderByNumber(number);
9758
9808
  }
9759
- console.log('inside');
9809
+ // console.log('inside');
9760
9810
  });
9761
9811
  this._channelConfigService.channel$.subscribe((config) => {
9762
9812
  if (config && config.allowRepeatOrders !== undefined) {
@@ -9908,12 +9958,12 @@ class RelatedProductsEcComponent extends BlockEcComponent {
9908
9958
  // Swiper initialization moved to initSwiper() method called after data loads
9909
9959
  }
9910
9960
  ngOnInit() {
9911
- console.log(this.productID);
9961
+ // console.log(this.productID)
9912
9962
  this.load(this.productID);
9913
9963
  }
9914
9964
  load(product_id) {
9915
9965
  this._productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(res => {
9916
- console.log('response', res);
9966
+ // console.log('response',res);
9917
9967
  const relatedProducts = res.filter((elem) => !this.includeKeyword(elem.title.toLowerCase()));
9918
9968
  this._relatedProductsSubject.next(relatedProducts);
9919
9969
  res.map((products) => this._analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.id || 'related-products' }));
@@ -9926,7 +9976,7 @@ class RelatedProductsEcComponent extends BlockEcComponent {
9926
9976
  initSwiper() {
9927
9977
  if (isPlatformBrowser(this.platformId)) {
9928
9978
  const swiperElemConstructor = this.document?.querySelector('#relatedProductsSwiper');
9929
- console.log('swiperElemConstructor', swiperElemConstructor);
9979
+ // console.log('swiperElemConstructor', swiperElemConstructor)
9930
9980
  if (swiperElemConstructor) {
9931
9981
  Object.assign(swiperElemConstructor, this.swiperOptions());
9932
9982
  this.swiperElement.set(swiperElemConstructor);
@@ -9971,7 +10021,7 @@ class FaqsEcComponent {
9971
10021
  this.empty_faqs = true;
9972
10022
  }
9973
10023
  }, error => {
9974
- console.log(error);
10024
+ (error);
9975
10025
  this._toastService.show('No fue posible encontrar la sección solicitada');
9976
10026
  }).catch(err => this._toastService.show('empty-faqs'));
9977
10027
  }
@@ -10570,7 +10620,7 @@ class SectionContainerEcComponent extends ComponentHelper {
10570
10620
  : this.sanitizer.bypassSecurityTrustHtml(html);
10571
10621
  this.loadSection = true;
10572
10622
  }, (error) => {
10573
- console.log(error);
10623
+ // console.log(error);
10574
10624
  this.loadSection = true;
10575
10625
  this.content_html = "<p>Sin información</p>";
10576
10626
  this.toastrService.show('No fue posible encontrar la sección solicitada');
@@ -10625,7 +10675,7 @@ class StoresEcComponent extends ComponentHelper {
10625
10675
  }
10626
10676
  this.exclusiveStores = stores ? stores.filter(store => store.exclusive) : null;
10627
10677
  // this.selectChange('');
10628
- console.log('Stores:', stores);
10678
+ // console.log('Stores:', stores);
10629
10679
  });
10630
10680
  this.ecOnConstruct();
10631
10681
  }
@@ -10698,7 +10748,7 @@ class StoresEcComponent extends ComponentHelper {
10698
10748
  title: store.name + ' - ' + store.address,
10699
10749
  description: store.phone,
10700
10750
  };
10701
- console.log(datos);
10751
+ // console.log(datos)
10702
10752
  this.locations.push(datos);
10703
10753
  });
10704
10754
  const bounds = new google.maps.LatLngBounds();
@@ -10773,13 +10823,13 @@ class StoresEcComponent extends ComponentHelper {
10773
10823
  marker.setAnimation(null);
10774
10824
  });
10775
10825
  }
10776
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoresEcComponent, deps: [{ token: StoresService }, { token: CoreConstantsService }, { token: i6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
10826
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoresEcComponent, deps: [{ token: StoresService }, { token: CoreConstantsService }, { token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
10777
10827
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StoresEcComponent, isStandalone: true, selector: "app-store-ec", usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"row w-100 mx-auto my-4 px-3 bb-s bt-md-s py-1\">\r\n <strong>{{ 'stores' | translate }}</strong>\r\n</div>\r\n@if(stores){\r\n<div class=\"row\">\r\n <div class=\"col-12 col-md-3 order-1 order-md-1\">\r\n <div class=\"row\">\r\n <div class=\"form-group w-100\">\r\n <select (change)=\"selectChange($event.target.value)\" class=\"rounded-0 form-control form-control-sm\"\r\n id=\"exampleFormControlSelect1\">\r\n <option selected [value]=\"''\">Seleccione provincia</option>\r\n <option [value]=\"item.code\" *ngFor=\"let item of getProvices(stores)\"> {{item.name}}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-3 order-3 order-md-2\">\r\n <div class=\"container-fluid scrolleable\" *ngIf=\"filterStores && filterStores.length\">\r\n <div class=\"row mb-1\" *ngFor=\"let store of filterStores; let i = index\">\r\n <div class=\"col-12\">\r\n <h6 class=\"\"><strong>{{ store.name }}</strong></h6>\r\n <label>{{ store.address }}</label>\r\n <label>{{ store.phone }}</label>\r\n <div [innerHtml]=\"store.note\"></div>\r\n <div class=\"text-right\">\r\n\r\n <a *ngIf=\"store.urlMap\" (click)=\"updateMap (store.urlMap)\" class=\"custom-a\">Ver mapa</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-6 order-2 order-md-3 my-4 mt-md-0\">\r\n\r\n <iframe id=\"map-iframe\" [src]=\"urlmap\" frameborder=\"0\"></iframe>\r\n </div>\r\n</div>\r\n}@else {\r\n<div class=\"d-flex flex-row justify-content-center my-5 align-items-center alto-total\">\r\n <h5 class=\"text-center\">{{ 'no-stores' | translate }}</h5>\r\n</div>\r\n}\r\n\r\n\r\n\r\n<ng-template #loading>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: [".scrolleable{height:70vh;overflow:auto}@media screen and (max-width: 768px){.scrolleable{height:auto}}.background-white{background-color:#fff}.alto-total{height:60vh}.custom-a{color:#000}#map-iframe{width:100%;border:0;height:100%}@media screen and (max-width: 425px){#map-iframe{height:400px}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }] });
10778
10828
  }
10779
10829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoresEcComponent, decorators: [{
10780
10830
  type: Component,
10781
10831
  args: [{ selector: 'app-store-ec', standalone: true, imports: [TranslateModule], template: "<!-- <div class=\"row w-100 mx-auto my-4 px-3 bb-s bt-md-s py-1\">\r\n <strong>{{ 'stores' | translate }}</strong>\r\n</div>\r\n@if(stores){\r\n<div class=\"row\">\r\n <div class=\"col-12 col-md-3 order-1 order-md-1\">\r\n <div class=\"row\">\r\n <div class=\"form-group w-100\">\r\n <select (change)=\"selectChange($event.target.value)\" class=\"rounded-0 form-control form-control-sm\"\r\n id=\"exampleFormControlSelect1\">\r\n <option selected [value]=\"''\">Seleccione provincia</option>\r\n <option [value]=\"item.code\" *ngFor=\"let item of getProvices(stores)\"> {{item.name}}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-3 order-3 order-md-2\">\r\n <div class=\"container-fluid scrolleable\" *ngIf=\"filterStores && filterStores.length\">\r\n <div class=\"row mb-1\" *ngFor=\"let store of filterStores; let i = index\">\r\n <div class=\"col-12\">\r\n <h6 class=\"\"><strong>{{ store.name }}</strong></h6>\r\n <label>{{ store.address }}</label>\r\n <label>{{ store.phone }}</label>\r\n <div [innerHtml]=\"store.note\"></div>\r\n <div class=\"text-right\">\r\n\r\n <a *ngIf=\"store.urlMap\" (click)=\"updateMap (store.urlMap)\" class=\"custom-a\">Ver mapa</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-md-6 order-2 order-md-3 my-4 mt-md-0\">\r\n\r\n <iframe id=\"map-iframe\" [src]=\"urlmap\" frameborder=\"0\"></iframe>\r\n </div>\r\n</div>\r\n}@else {\r\n<div class=\"d-flex flex-row justify-content-center my-5 align-items-center alto-total\">\r\n <h5 class=\"text-center\">{{ 'no-stores' | translate }}</h5>\r\n</div>\r\n}\r\n\r\n\r\n\r\n<ng-template #loading>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: [".scrolleable{height:70vh;overflow:auto}@media screen and (max-width: 768px){.scrolleable{height:auto}}.background-white{background-color:#fff}.alto-total{height:60vh}.custom-a{color:#000}#map-iframe{width:100%;border:0;height:100%}@media screen and (max-width: 425px){#map-iframe{height:400px}}\n"] }]
10782
- }], ctorParameters: () => [{ type: StoresService }, { type: CoreConstantsService }, { type: i6.DomSanitizer }] });
10832
+ }], ctorParameters: () => [{ type: StoresService }, { type: CoreConstantsService }, { type: i1$4.DomSanitizer }] });
10783
10833
 
10784
10834
  class PriceRangeFilterComponent {
10785
10835
  _filtersService = inject(FiltersService);
@@ -11166,5 +11216,5 @@ const directives = [
11166
11216
  * Generated bundle index. Do not edit.
11167
11217
  */
11168
11218
 
11169
- export { AccountEcComponent, AddressingService, AnalyticsService, AuthEcComponent, AuthService, AuthStorageService, BlockBannerBoxEcComponent, BlockBannerFullEcComponent, BlockFormContactEcComponent, BlockHtmlEcComponent, BlockNewsletterEcComponent, BlockProductsEcComponent, BlocksEcComponent, BlocksRepositoryService, BlocksService, BreadcrumbEcComponent, CartEcComponent, CartItemEcComponent, CartService, ChannelService, CheckoutEcComponent, CheckoutService, CollectionEcComponent, ConfirmAccountEcComponent, ContactEcComponent, CoreConstantsService, CouponEcComponent, CurrencyService, DopplerService, ENVIRONMENT_TOKEN, EcCurrencySymbolPipe, FacebookPixelService, FaqsEcComponent, FiltersEcComponent, FiltersService, FiltersSortEcComponent, FooterEcComponent, ForgotPasswordEcComponent, FormService, GTMService, GoogleAnalyticsService, HeaderEcComponent, HomeEcComponent, LoadingFullEcComponent, LoadingInlineEcComponent, LoadingSectionEcComponent, LocalStorageService, LoginFormEcComponent, MagnizoomEcComponent, MetricoolPixelService, NgxLocalStorageService, OptionsService, OrderEcComponent, OrderUtilityService, OrdersListEcComponent, OrdersService, PaginationService, ParametersService, ParamsContext, PasswordResetEcComponent, PaymentService, PriceEcComponent, PriceRangeFilterComponent, ProductDetailEcComponent, ProductDetailService, ProductEcComponent, ProductOffDirective, ProductStockDirective, ProductsService, ReCaptchaEcComponent, ReCaptchaService, RegisterFormEcComponent, RegisterWholesalerFormEcComponent, RelatedProductsEcComponent, ReviewsEcComponent, ReviewsFormEcComponent, SectionContainerEcComponent, ShareEcComponent, ShipmentService, SidebarEcComponent, StoresEcComponent, SuccessEcComponent, TestService, ToastService, VariantsEcComponent, authGuard, authInterceptor, directives, provideEnvironment };
11219
+ export { AccountEcComponent, AddressingService, AnalyticsService, AuthEcComponent, AuthService, AuthStorageService, BlockBannerBoxEcComponent, BlockBannerFullEcComponent, BlockFormContactEcComponent, BlockHtmlEcComponent, BlockNewsletterEcComponent, BlockProductsEcComponent, BlocksEcComponent, BlocksRepositoryService, BlocksService, BreadcrumbEcComponent, CartEcComponent, CartItemEcComponent, CartService, ChannelService, CheckoutEcComponent, CheckoutService, CollectionEcComponent, ConfirmAccountEcComponent, ContactEcComponent, CoreConstantsService, CouponEcComponent, CurrencyService, DopplerService, ENVIRONMENT_TOKEN, EcCurrencySymbolPipe, EcSafeHtmlPipe, FacebookPixelService, FaqsEcComponent, FiltersEcComponent, FiltersService, FiltersSortEcComponent, FooterEcComponent, ForgotPasswordEcComponent, FormService, GTMService, GoogleAnalyticsService, HeaderEcComponent, HomeEcComponent, LoadingFullEcComponent, LoadingInlineEcComponent, LoadingSectionEcComponent, LocalStorageService, LoginFormEcComponent, MagnizoomEcComponent, MetricoolPixelService, NgxLocalStorageService, OptionsService, OrderEcComponent, OrderUtilityService, OrdersListEcComponent, OrdersService, PaginationService, ParametersService, ParamsContext, PasswordResetEcComponent, PaymentService, PriceEcComponent, PriceRangeFilterComponent, ProductDetailEcComponent, ProductDetailService, ProductEcComponent, ProductOffDirective, ProductStockDirective, ProductsService, ReCaptchaEcComponent, ReCaptchaService, RegisterFormEcComponent, RegisterWholesalerFormEcComponent, RelatedProductsEcComponent, ReviewsEcComponent, ReviewsFormEcComponent, SectionContainerEcComponent, ShareEcComponent, ShipmentService, SidebarEcComponent, StoresEcComponent, SuccessEcComponent, TestService, ToastService, VariantsEcComponent, authGuard, authInterceptor, directives, provideEnvironment };
11170
11220
  //# sourceMappingURL=ng-easycommerce-v18.mjs.map