ng-easycommerce 0.0.412 → 0.0.415

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 (35) hide show
  1. package/README.md +20 -2
  2. package/assets/ec-i18n/en.json +4 -2
  3. package/assets/ec-i18n/es.json +4 -2
  4. package/assets/recaptcha/recaptcha-site-keys.json +2 -2
  5. package/assets/recaptcha/recaptcha-sites-prod.json +36 -0
  6. package/assets/recaptcha/recaptcha-sites.json +18 -18
  7. package/bundles/ng-easycommerce.umd.js +97 -17
  8. package/bundles/ng-easycommerce.umd.js.map +1 -1
  9. package/bundles/ng-easycommerce.umd.min.js +1 -1
  10. package/bundles/ng-easycommerce.umd.min.js.map +1 -1
  11. package/esm2015/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +25 -9
  12. package/esm2015/lib/ec-component/share-block-ec/share-block-ec.component.js +17 -3
  13. package/esm2015/lib/ec-component/stores-ec/stores-ec.component.js +39 -1
  14. package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
  15. package/esm2015/lib/interfaces/store.js +1 -1
  16. package/esm2015/lib/services/captcha.service.js +12 -5
  17. package/esm2015/lib/services/cart.service.js +3 -3
  18. package/esm5/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +25 -9
  19. package/esm5/lib/ec-component/share-block-ec/share-block-ec.component.js +18 -3
  20. package/esm5/lib/ec-component/stores-ec/stores-ec.component.js +44 -1
  21. package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
  22. package/esm5/lib/interfaces/store.js +1 -1
  23. package/esm5/lib/services/captcha.service.js +12 -5
  24. package/esm5/lib/services/cart.service.js +3 -3
  25. package/fesm2015/ng-easycommerce.js +91 -17
  26. package/fesm2015/ng-easycommerce.js.map +1 -1
  27. package/fesm5/ng-easycommerce.js +97 -17
  28. package/fesm5/ng-easycommerce.js.map +1 -1
  29. package/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.d.ts +7 -0
  30. package/lib/ec-component/share-block-ec/share-block-ec.component.d.ts +6 -1
  31. package/lib/ec-component/stores-ec/stores-ec.component.d.ts +26 -0
  32. package/lib/interfaces/store.d.ts +2 -0
  33. package/lib/services/captcha.service.d.ts +9 -1
  34. package/ng-easycommerce.metadata.json +1 -1
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,22 @@
1
- # Ultimas Modificaciones
1
+ # version: 0.0.415
2
+ - Actualización de share-block-ec. Se usa el servicio de parametros para poder elegir que elementos mostrar.
3
+ --El parametro debe ser cargado con la palabra "share" y tambien la red por la que se lo quiere compartir.
4
+ --Ejemplo: "share_whatsapp" o "facebook_share" ...
5
+
6
+ # version: 0.0.414
7
+ - Actualización de la interfaz de Seller Dashboard
8
+
9
+ - Actualización de metodo para ordernar tabla de clientes
10
+
11
+ # version: 0.0.413
12
+
13
+ - Actualización de la interfaz de Store y StoreEcComponent para manejar tiendas exclusivas y con retiro local.
14
+
15
+ - Actualización de la vista de Seller, se agrega la columna para pedidos nuevos y se acomodan los estilos.
16
+
17
+ - Atualización de redirección AbleBuyerGuardService.
18
+
19
+ - Actualización de los diccionarios ec-i18n.
2
20
 
3
21
  ### version: 0.0.412
4
22
 
@@ -32,7 +50,7 @@
32
50
 
33
51
  ### version: 0.0.408
34
52
 
35
- - Ajuste en componente SellerDashboardContainer (UI y backend redirect)
53
+ - Ajuste en componente SellerDashboardContainer (UI y backend redirect).
36
54
 
37
55
  ### version: 0.0.407
38
56
 
@@ -225,7 +225,7 @@
225
225
  "product-details": "Product details",
226
226
  "product-name": "Article name",
227
227
  "product-removed": "Cart product removed",
228
- "product-updated": "The product quantity was updated",
228
+ "product-updated": "The product quantity was updated to {{quantity}}",
229
229
  "products": "Products",
230
230
  "profile": "Profile",
231
231
  "purchase-code": "Your purchase code is: ",
@@ -355,5 +355,7 @@
355
355
  "exit": "Exit",
356
356
  "start-impersonating": "Operating as: {{ customer }}",
357
357
  "stop-impersonating": "You are not operating as none of your customers",
358
- "must-select-customer": "You must select a customer to perform this action."
358
+ "must-select-customer": "You must select a customer to perform this action.",
359
+ "new-orders": "New orders",
360
+ "operate-as": "Operate as"
359
361
  }
@@ -226,7 +226,7 @@
226
226
  "product-details": "Detalles del producto",
227
227
  "product-name": "Nombre de artículo",
228
228
  "product-removed": "Se eliminó el producto en tu carrito",
229
- "product-updated": "Se actualizó la cantidad del producto",
229
+ "product-updated": "Se actualizó la cantidad del producto quedando en {{quantity}}",
230
230
  "products": "Productos",
231
231
  "profile": "Perfil",
232
232
  "purchase-code": "Su código de compra es: ",
@@ -356,5 +356,7 @@
356
356
  "exit": "Salir",
357
357
  "start-impersonating": "Operando como: {{ customer }}",
358
358
  "stop-impersonating": "No se encuentra operando por ninguno de sus clientes",
359
- "must-select-customer": "Debe seleccionar un cliente para ejecutar esta acción."
359
+ "must-select-customer": "Debe seleccionar un cliente para ejecutar esta acción.",
360
+ "new-orders": "Pedidos nuevos",
361
+ "operate-as": "Operar como"
360
362
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "tanda_1": "6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3",
3
- "tanda_2": "6Lc158seAAAAAEMe3SmWstPaZ4GudBjxCc1BIgGX"
2
+ "tanda_1": "6Lc158seAAAAAEMe3SmWstPaZ4GudBjxCc1BIgGX",
3
+ "tanda_2": "6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3"
4
4
  }
@@ -0,0 +1,36 @@
1
+ {
2
+ "elden.com": "tanda_2",
3
+ "smeg.com.ar": "tanda_2",
4
+ "d2dcor.com": "tanda_2",
5
+ "promesse.com.ar": "tanda_2",
6
+ "almacendelmolino.com.ar": "tanda_2",
7
+ "womanbypromesse.com.ar": "tanda_2",
8
+ "promessemayorista.com.ar": "tanda_2",
9
+ "outmall.com.ar": "tanda_2",
10
+ "profesionales.myc-homelinens.com": "tanda_2",
11
+ "opositoresinvencibles.com": "tanda_2",
12
+ "myc-homelinens.com": "tanda_2",
13
+ "vinals.es": "tanda_2",
14
+ "guolis.com.ar": "tanda_2",
15
+ "b2b.vidal-vidal.com": "tanda_2",
16
+ "lapequeteria.com": "tanda_2",
17
+ "backend.almacendelmolino.com.ar": "tanda_2",
18
+ "bonjourlulu.com.ar": "tanda_2",
19
+ "shop.bonjourlulu.com.ar": "tanda_2",
20
+ "chispa.com.py": "tanda_2",
21
+ "backend.tienda.dos-hermanos.com": "tanda_2",
22
+ "www.elden.com": "tanda_2",
23
+ "www.elden.com.ar": "tanda_2",
24
+ "www.subzero.com.ar": "tanda_2",
25
+ "www.subzero-wolf.com.ar": "tanda_2",
26
+ "www.solac.com.ar": "tanda_2",
27
+ "www.smeg.com.ar": "tanda_2",
28
+ "www.guolis.com.ar": "tanda_2",
29
+ "ibashop.com.ar": "tanda_2",
30
+ "b2b.idargentina.com": "tanda_2",
31
+ "backend.lapequeteria.com": "tanda_2",
32
+ "maxifarma.com.py": "tanda_2",
33
+ "andresgourmetseleccion.es": "tanda_2",
34
+ "www.estacioncentral.com.ar": "tanda_2",
35
+ "thecouples.com.ar": "tanda_2"
36
+ }
@@ -7,45 +7,45 @@
7
7
  "adctecnologia.easycommercetech.com": "tanda_1",
8
8
  "pbg.easycommercetech.com": "tanda_1",
9
9
  "elden.easycommercetech.com": "tanda_1",
10
- "elden.com": "tanda_1",
11
10
  "ags.easycommercetech.tienda": "tanda_1",
12
11
  "smeg.easycommercetech.com": "tanda_1",
13
- "smeg.com.ar": "tanda_1",
14
12
  "promesse.easycommercetech.com": "tanda_1",
15
- "andresgourmetseleccion.es": "tanda_1",
16
13
  "d2dcor.easycommercetech.tienda": "tanda_1",
17
14
  "vinals.easycommercetech.tienda": "tanda_1",
18
- "d2dcor.com": "tanda_1",
19
- "promesse.com.ar": "tanda_1",
20
15
  "scorpiostore.easycommercetech.com": "tanda_1",
21
16
  "almacendelmolino.easycommercetech.com": "tanda_1",
22
17
  "maxifarma.easycommercetech.com": "tanda_1",
23
18
  "guolis.easycommercetech.com": "tanda_1",
24
19
  "lapequeteria.easycommercetech.com": "tanda_1",
25
20
  "farmasun.easycommercetech.com": "tanda_1",
26
- "almacendelmolino.com.ar": "tanda_1",
27
- "womanbypromesse.com.ar": "tanda_1",
28
21
  "womanbypromesse.easycommercetech.com": "tanda_1",
29
- "promessemayorista.com.ar": "tanda_1",
30
22
  "promessemayorista.easycommercetech.com": "tanda_1",
31
23
  "outmall.easycommercetech.com": "tanda_1",
32
24
  "opositoresinvencibles.easycommercetech.tienda": "tanda_1",
33
- "outmall.com.ar": "tanda_1",
34
- "profesionales.myc-homelinens.com": "tanda_1",
35
- "opositoresinvencibles.com": "tanda_1",
36
25
  "seler.easycommercetech.tienda": "tanda_1",
37
- "myc-homelinens.com": "tanda_1",
38
26
  "converse.easycommercetech.com": "tanda_1",
39
- "vinals.es": "tanda_1",
40
27
  "id.easycommercetech.com": "tanda_1",
41
- "guolis.com.ar": "tanda_1",
42
- "b2b.vidal-vidal.com": "tanda_1",
43
28
  "lasoreiro.easycommercetech.com": "tanda_1",
44
- "lapequeteria.com": "tanda_1",
45
29
  "eldenv2.easycommercetech.com": "tanda_1",
46
30
  "vidalvidal.easycommercetech.tienda": "tanda_1",
47
31
  "estacioncentral.easycommercetech.com": "tanda_1",
48
- "www.estacioncentral.com.ar": "tanda_1",
49
32
  "cuidex.easycommercetech.com": "tanda_1",
50
- "sherman.easycommercetech.com": "tanda_1"
33
+ "sherman.easycommercetech.com": "tanda_1",
34
+ "bonjourlulu.easycommercetech.com": "tanda_1",
35
+ "deporcenter.easycommercetech.com": "tanda_1",
36
+ "easycommercetech.com": "tanda_1",
37
+ "test.easycommercetech.com": "tanda_1",
38
+ "subzero.easycommercetech.com": "tanda_1",
39
+ "smegv2.easycommercetech.com": "tanda_1",
40
+ "equipajes.easycommercetech.com": "tanda_1",
41
+ "delseychile.easycommercetech.com": "tanda_1",
42
+ "delseyargentina.easycommercetech.com": "tanda_1",
43
+ "equipajeurbano.easycommercetech.com": "tanda_1",
44
+ "gezatek.easycommercetech.com": "tanda_1",
45
+ "iba.easycommercetech.com": "tanda_1",
46
+ "rheem.easycommercetech.com": "tanda_1",
47
+ "saiar.easycommercetech.com": "tanda_1",
48
+ "servicompras.easycommercetech.com": "tanda_1",
49
+ "thecouples.easycommercetech.com": "tanda_1",
50
+ "iberspa.easycommercetech.tienda": "tanda_1"
51
51
  }
@@ -3961,11 +3961,11 @@
3961
3961
  _this.requestInProcess.next(false);
3962
3962
  };
3963
3963
  this.updateCartItemQuantity = function (variant_id, quantity) {
3964
- _this.items.find(function (item) { return item.variant_id == variant_id; }).quantity = quantity;
3964
+ var newQuantity = _this.items.find(function (item) { return item.variant_id == variant_id; }).quantity = quantity;
3965
3965
  _this.cartItemsSubject.next(_this.items);
3966
3966
  _this.requestInProcess.next(false);
3967
3967
  _this.updateLocalCart();
3968
- _this.toastrService.show('product-updated');
3968
+ _this.toastrService.show('product-updated', { quantity: newQuantity });
3969
3969
  };
3970
3970
  this.appendToCart = function (cart) {
3971
3971
  _this.updateCartObj(cart);
@@ -5140,7 +5140,7 @@
5140
5140
  this.router = router;
5141
5141
  }
5142
5142
  AbleBuyerGuardService$1.prototype.canActivate = function (routeSnapshot) {
5143
- var redirectTo = routeSnapshot.data.redirectTo || '/';
5143
+ var redirectTo = routeSnapshot.data.redirectSellerTo || '/';
5144
5144
  if (!this.auth.isAbleToBuy())
5145
5145
  this.router.navigateByUrl(redirectTo);
5146
5146
  return this.auth.isAbleToBuy();
@@ -8900,9 +8900,15 @@
8900
8900
  _this.sanitizer = sanitizer;
8901
8901
  _this.filterStores = null;
8902
8902
  _this.storesAll = null;
8903
+ _this.exclusiveStores = null;
8903
8904
  _this.imageMap = true;
8904
8905
  _this.stores = [];
8905
8906
  _this.provinces = [];
8907
+ /**
8908
+ * @description Obtiene todas la provincias que figuren en el arreglo
8909
+ * @param stores Arreglo de tiendas
8910
+ * @returns {Array} Arreglo de provincias
8911
+ */
8906
8912
  _this.getProvices = function (stores) {
8907
8913
  var provincesOpt = [];
8908
8914
  stores.forEach(function (store) {
@@ -8912,6 +8918,42 @@
8912
8918
  });
8913
8919
  return provincesOpt;
8914
8920
  };
8921
+ /**
8922
+ * @description Retorna un arreglo de objetos formado por las claves
8923
+ * "province"(contiene un objeto provincia) y
8924
+ * "stores" (contiene un arreglo de tiendas pertenecientes a la provincia)
8925
+ * @param stores Opcional, arreglo de tiendas a la que se le quiere aplicar la division por provincia
8926
+ * @returns {Array<{"province", "stores"}>}
8927
+ */
8928
+ _this.getStoresByProvinces = function (stores) {
8929
+ if (stores === void 0) { stores = _this.stores; }
8930
+ var storesByProvinces = [];
8931
+ if (stores) {
8932
+ var provinces = _this.getProvices(stores);
8933
+ provinces.forEach(function (elem) {
8934
+ var _a;
8935
+ var aux = (_a = stores) === null || _a === void 0 ? void 0 : _a.filter(function (store) { return store.province.code == elem.code; });
8936
+ storesByProvinces.push({ province: elem, stores: aux });
8937
+ });
8938
+ }
8939
+ return storesByProvinces;
8940
+ };
8941
+ /**
8942
+ * @description Retorna las tiendas con/sin retiro en el local
8943
+ * @param stores Opcional, arreglo de tiendas
8944
+ * @param cond Opcional, Si es "true" obtiene las tiendas con retiro local caso contrario "false"
8945
+ * @returns {Array<Store>} Arreglo de Store
8946
+ */
8947
+ _this.getPickupStores = function (stores, cond) {
8948
+ if (stores === void 0) { stores = _this.stores; }
8949
+ if (cond === void 0) { cond = true; }
8950
+ return stores && stores.filter(function (store) { return cond == store.pickupStore; });
8951
+ };
8952
+ /**
8953
+ * @description Metodo que devuelve las tiendas que NO son exclusivas.
8954
+ * @returns {Array<Store>} Arreglo de Store
8955
+ */
8956
+ _this.getNonExclusiveStores = function () { return _this.stores.filter(function (store) { return !store.exclusive; }); };
8915
8957
  _this.selectChange = function (select) {
8916
8958
  _this.filterStores = select != '' && _this.storesAll.filter(function (store) { return store.province.code == select; }) || _this.storesAll;
8917
8959
  return true;
@@ -8920,6 +8962,7 @@
8920
8962
  _this.storesService.stores.pipe(operators.filter(function (store) { return store && store.length > 0; })).subscribe(function (stores) {
8921
8963
  _this.storesAll = stores;
8922
8964
  _this.stores = stores;
8965
+ _this.exclusiveStores = stores.filter(function (store) { return store.exclusive; });
8923
8966
  _this.selectChange('');
8924
8967
  });
8925
8968
  _this.ecOnConstruct();
@@ -9075,20 +9118,35 @@
9075
9118
  _this.fuse.setCollection(_this.filteredCustomers);
9076
9119
  _this.sortCustomers(_this.sortValue);
9077
9120
  };
9121
+ /**
9122
+ * @description Ordena la lista de clientes
9123
+ * @param value recibe una cadena que de estar formada de la forma "tipoOrdenacion_atributoPorOrdenar"
9124
+ * Ejemplo: "asc_firstName" o "desc_id" ...
9125
+ */
9078
9126
  _this.sortCustomers = function (value) {
9079
9127
  _this.sortValue = value;
9080
- var comparator = (_this.sortValue == 'asc')
9128
+ var values = value.split('_');
9129
+ var sortType = values[0];
9130
+ var attribute = values[1];
9131
+ var comparator = (sortType == 'asc')
9081
9132
  ? [-1, 1]
9082
9133
  : [1, -1];
9134
+ var typeValue;
9135
+ if (_this.filteredCustomers.length > 0) {
9136
+ typeValue = typeof (_this.filteredCustomers[0][attribute]);
9137
+ }
9138
+ var sortFunction = typeValue == 'number' ? _this.sortNumber : _this.sortText;
9083
9139
  _this.filteredCustomers =
9084
9140
  _this.sortValue
9085
- ? _this.filteredCustomers.sort(function (aCustomer, otherCustomer) {
9086
- return (aCustomer.firstName == otherCustomer.firstName)
9087
- ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]
9088
- : aCustomer.firstName.toLowerCase() < otherCustomer.firstName.toLowerCase() ? comparator[0] : comparator[1];
9089
- })
9141
+ ? _this.filteredCustomers.sort(function (aCustomer, otherCustomer) { return sortFunction(aCustomer, otherCustomer, attribute, comparator); })
9090
9142
  : _this.filteredCustomers;
9091
9143
  };
9144
+ _this.sortNumber = function (aCustomer, otherCustomer, attribute, comparator) { return aCustomer[attribute] < otherCustomer[attribute] ? comparator[0] : comparator[1]; };
9145
+ _this.sortText = function (aCustomer, otherCustomer, attribute, comparator) {
9146
+ return (aCustomer[attribute] == otherCustomer[attribute])
9147
+ ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]
9148
+ : String(aCustomer[attribute]).toLowerCase() < String(otherCustomer[attribute]).toLowerCase() ? comparator[0] : comparator[1];
9149
+ };
9092
9150
  _this.changeCustomer = function (customer) {
9093
9151
  _this.authService.setCustomer(customer);
9094
9152
  customer
@@ -9116,6 +9174,7 @@
9116
9174
  _this.customers = user.customers;
9117
9175
  _this.filteredCustomers = _this.customers;
9118
9176
  _this.fuse.setCollection(_this.filteredCustomers);
9177
+ _this.sortCustomers('desc_ordersNotApproved');
9119
9178
  });
9120
9179
  };
9121
9180
  SellerDashboardContainerEcComponent.ctorParameters = function () { return [
@@ -9130,8 +9189,8 @@
9130
9189
  SellerDashboardContainerEcComponent = __decorate$17([
9131
9190
  core.Component({
9132
9191
  selector: 'app-seller-dashboard-container',
9133
- template: "<section *ngIf=\"user\" id=\"seller-dashboard\">\n <div class=\"section-content mt-5 mb-2 tablaVendedores\">\n <div class=\"container-xl\">\n <div class=\"row\">\n <main class=\"col-md-12\">\n\n <ul *ngIf=\"hasHeader()\" class=\"nav nav-tabs\">\n <li class=\"nav-item col-12 col-lg-2\">\n <a *ngIf=\"hasUIComponent('HEADER_TAB')\" class=\"nav-link active cursor-pointer px-4\" aria-current=\"page\">\n {{ 'my-clients' | translate }}\n </a>\n </li>\n <div\n class=\"d-flex justify-content-end justify-content-lg-start justify-content-xl-end col-12 col-md-12 col-lg-6\">\n <a *ngIf=\"hasUIComponent('GENERATE_BUDGET_BTN')\" [routerLink]=\"'/collection'\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center\"><i\n class=\"bi bi-file-earmark me-2 mr-2\"></i>{{ 'generate-budget' | translate }}</a>\n <a *ngIf=\"hasUIComponent('MANAGE_ORDERS_BTN')\" (click)=\"navigateExternal(constants.getUrlBase())\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center me- me-lg-4 mr- mr-lg-4\"><i\n class=\"bi bi-archive-fill me-2 mr-2\"></i>{{ 'manage-orders' | translate }}</a>\n </div>\n <div class=\"d-flex ms-auto camposVendedores col-12 col-md-12 col-lg-4 justify-content-end\">\n <select *ngIf=\"hasUIComponent('SORT_SELECT')\" id=\"customerSort\" name=\"customerSort\"\n (change)=\"sortCustomers($event.target.value)\" class=\"mb-1 ordenarVendedores\">\n <option selected hidden disabled>{{ 'order-by' | translate }}</option>\n <option value='asc'>{{ 'client' | translate }} (A-Z)</option>\n <option value='desc'>{{ 'client' | translate }} (Z-A)</option>\n </select>\n <form *ngIf=\"hasUIComponent('SEARCH_FORM')\" class=\"col-lg-auto mb-lg-0 d-flex ms-3 ml-3 d-flex buscadorVendedores\">\n <input type=\"text\" name=\"searchInput\" class=\"form-control\"\n placeholder=\"{{ 'search' | translate }}\" [(ngModel)]=\"searchInput\"\n (keyup.enter)=\"updateCustomers()\">\n <button class=\"btn btn-primary ms-1 ml-1 bg-white border-dark btnSearch\"><i\n class=\"bi bi-search text-dark\" (click)=\"updateCustomers()\"></i></button>\n </form>\n </div>\n </ul>\n\n <ng-container *ngIf=\"user.customers?.length; else noCustomers\">\n\n <article class=\"card card-body mb-1 carritoProductoHeader m-0 py-0 mt-4\">\n <div class=\"row align-items-center font-bold border-bottom\">\n <div class=\"col-7 col-md-3 mb-md-0\">\n <small>{{ 'client' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <small>{{ 'user' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-3 col-md-2 text-left\">\n <small>{{ 'code' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-2 col-md-4 text-left\">\n <small></small>\n </div>\n\n </div>\n </article>\n\n <article *ngFor=\"let customer of filteredCustomers\" class=\"card card-body mb-3 cadaVendedor\">\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-7 col-md-3 text-left\">\n <div class=\"price h6 fw-normal ps-2 pl-2 pb-0 mb-0\">\n {{ customer.firstName }} {{ customer.lastName }}\n <p class=\"d-block d-md-none fs-6 mt-1 mb-0 p-0 userMobile\">\n {{ customer.email }}\n </p>\n </div>\n </div>\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <div class=\"price h6 fw-normal pb-0 mb-0 ps-2 pl-2\">\n {{ customer.email }}\n </div>\n </div>\n <div class=\"col-2 col-md-2 text-left ps-2 pl-2\">\n <div class=\"price h6 pb-0 mb-0 ps-1 pl-1\">{{ customer.id }}</div>\n </div>\n <div class=\"col-3 col-md-4 btnIngresar\">\n\n <ng-container\n *ngIf=\"authService.getCustomer()?.id == customer.id; else noActiveCustomer\">\n <a (click)=\"changeCustomer(null)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-in-right me-2 mr-2\"></i>\n <small class=\"me-2 mr-2 d-none d-md-block\">\n {{ 'exit' | translate | uppercase }}\n </small>\n <div *ngIf=\"hasUIComponent('ORDER_COUNTER')\" class=\"contNumero\">\n {{ customer.ordersNotApproved }}\n </div>\n </a>\n </ng-container>\n <ng-template #noActiveCustomer>\n <a (click)=\"changeCustomer(customer)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-in-right me-2 mr-2\"></i>\n <small class=\"me-2 mr-2 d-none d-md-block\">\n {{ 'access' | translate | uppercase }}\n </small>\n <div *ngIf=\"hasUIComponent('ORDER_COUNTER')\" class=\"contNumero\">\n {{ customer.ordersNotApproved }}\n </div>\n </a>\n </ng-template>\n\n </div>\n </div>\n </article>\n\n </ng-container>\n\n </main>\n </div>\n </div>\n </div>\n</section>\n\n<ng-template #noCustomers>\n <h4 class=\"text-center p-5\">{{ 'no-customers' | translate }}</h4>\n</ng-template>",
9134
- styles: ["#seller-dashboard{--seller-dashboard-primary-color:0,0,0}.btn-seller-primary{color:#fff!important;background-color:rgba(var(--seller-dashboard-primary-color),1)!important;border-color:rgba(var(--seller-dashboard-primary-color),1)!important}.btn-seller-primary:hover{background-color:rgba(var(--seller-dashboard-primary-color),.9)!important}.btn-seller-primary:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)!important}.btnGestionar{padding:6px 12px!important;height:36px;display:flex;align-items:center;justify-content:center;margin-left:10px}.ordenarVendedores{width:150px!important;color:#8b8b8b!important;background-color:#fff;border:1px solid #b6b6b6!important;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.buscadorVendedores{margin-bottom:4px!important}.buscadorVendedores input{border:1px solid #b6b6b6!important;width:200px}.buscadorVendedores .btnSearch{border:1px solid #b6b6b6!important;padding:.375rem .75rem;font-size:1rem}.buscadorVendedores .btnSearch:focus{background-color:#fff!important}.carritoProductoHeader{border:none!important}.carritoProductoHeader small{font-size:13px}.cadaVendedor{padding:5px 0;margin-bottom:0!important;border:none!important;border-bottom:1px solid #ccc!important;border-radius:0!important;-webkit-border-radius:0}.cadaVendedor .btnIngresar a{padding:10px!important;border-width:1px!important;border-style:solid!important;display:flex;align-items:center;width:152px!important;margin-left:auto;color:#fff}.cadaVendedor .btnIngresar .contNumero{background-color:#eee;width:20px;height:20px;color:#000;font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:600;border-radius:20px;-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;-o-border-radius:20px}.userMobile{font-size:14px!important;font-style:italic!important}.cadaVendedor .btnIngresar a:hover{background-color:rgba(var(--seller-dashboard-primary-color),.85)}.cadaVendedor .btnIngresar a:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.border-bottom{border-bottom:1px solid #000!important}@media screen and (max-width:1200px){.btnGestionar{font-size:12px}}@media screen and (max-width:992px){.camposVendedores{justify-content:flex-end;margin-top:8px;margin-bottom:4px}}@media all and (max-width:768px){.ordenarVendedores{width:140px!important}.buscadorVendedores input{width:140px}.cadaVendedor .btnIngresar a{width:70px!important}}@media all and (max-width:576px){.tablaVendedores .nav-tabs .nav-link{font-size:13px;padding:6px!important}.btnGestionar{padding:6px 8px!important;font-size:13px;height:36px;display:flex;align-items:center;justify-content:center;margin-top:3px;margin-left:10px}.buscadorVendedores input,.ordenarVendedores{font-size:13px}}.fs-6{font-size:1rem!important}"]
9192
+ template: "<section *ngIf=\"user\" id=\"seller-dashboard\">\n <div class=\"section-content mt-5 mb-2 tablaVendedores\">\n <div class=\"container-xl\">\n <div class=\"row\">\n <main class=\"col-md-12\">\n\n <ul *ngIf=\"hasHeader()\" class=\"nav nav-tabs\">\n <li class=\"nav-item col-12 col-lg-2\">\n <a *ngIf=\"hasUIComponent('HEADER_TAB')\" class=\"nav-link active cursor-pointer px-4\"\n aria-current=\"page\">\n {{ 'my-clients' | translate }}\n </a>\n </li>\n <div\n class=\"d-flex justify-content-end justify-content-lg-start justify-content-xl-end col-12 col-md-12 col-lg-6\">\n <a *ngIf=\"hasUIComponent('GENERATE_BUDGET_BTN') && authService.getCustomer()?.id; else withoutCustomer\"\n [routerLink]=\"'/collection'\" class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center\"><i\n class=\"bi bi-file-earmark me-2 mr-2\"></i>{{ 'generate-budget' | translate }}</a>\n <ng-template #withoutCustomer>\n <a class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center\" (click)=\"toastrService.show('must-select-customer')\">\n <i class=\"bi bi-file-earmark me-2 mr-2\"></i>{{ 'generate-budget' | translate }}</a>\n </ng-template>\n <a *ngIf=\"hasUIComponent('MANAGE_ORDERS_BTN')\"\n (click)=\"navigateExternal(constants.getUrlBase())\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center me- me-lg-4 mr- mr-lg-4\"><i\n class=\"bi bi-archive-fill me-2 mr-2\"></i>{{ 'manage-orders' | translate }}</a>\n </div>\n <div class=\"d-flex ms-auto camposVendedores col-12 col-md-12 col-lg-4 justify-content-end\">\n <select *ngIf=\"hasUIComponent('SORT_SELECT')\" id=\"customerSort\" name=\"customerSort\"\n (change)=\"sortCustomers($event.target.value)\" class=\"mb-1 ordenarVendedores\">\n <option selected hidden disabled>{{ 'order-by' | translate }}</option>\n <option value='asc_firstName'>{{ 'client' | translate }} (A-Z)</option>\n <option value='desc_firstName'>{{ 'client' | translate }} (Z-A)</option>\n <option value='asc_id'>Menor a Mayor c\u00F3digo</option>\n <option value='desc_id'>Mayor a Menor c\u00F3digo</option>\n </select>\n <form *ngIf=\"hasUIComponent('SEARCH_FORM')\"\n class=\"col-lg-auto mb-lg-0 d-flex ms-3 ml-3 d-flex buscadorVendedores\">\n <input type=\"text\" name=\"searchInput\" class=\"form-control\"\n placeholder=\"{{ 'search' | translate }}\" [(ngModel)]=\"searchInput\"\n (keyup.enter)=\"updateCustomers()\">\n <button class=\"btn btn-primary ms-1 ml-1 bg-white border-dark btnSearch\"><i\n class=\"bi bi-search text-dark\" (click)=\"updateCustomers()\"></i></button>\n </form>\n </div>\n </ul>\n\n <ng-container *ngIf=\"user.customers?.length; else noCustomers\">\n\n <article class=\"card card-body mb-1 carritoProductoHeader m-0 py-0 mt-4\">\n <div class=\"row align-items-center font-bold border-bottom\">\n <div class=\"col-3 col-md-2 text-left\">\n <small>{{ 'code' | translate | uppercase }}</small>\n </div>\n <div class=\"col-5 col-md-3 mb-md-0\">\n <small>{{ 'client' | translate | uppercase }}</small>\n </div>\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <small>{{ 'user' | translate | uppercase }}</small>\n </div>\n <div class=\"col-4 col-md-2 text-left\">\n <small>{{ 'new-orders' | translate | uppercase }}</small>\n </div>\n <div class=\"col-2 col-md-2 text-left d-none d-md-block\">\n <small></small>\n </div>\n\n </div>\n </article>\n\n <article *ngFor=\"let customer of filteredCustomers\" class=\"card card-body mb-3 cadaVendedor\">\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-3 col-md-2 text-left ps-2 pl-2\">\n <div class=\"price h6 pb-0 mb-0 ps-3 pl-1\">{{ customer.id }}</div>\n </div>\n <div class=\"col-5 col-md-3 text-left\">\n <div class=\"price h6 fw-normal ps-2 pl-2 pb-0 mb-0\">\n {{ customer.firstName }} {{ customer.lastName }}\n <p class=\"d-block d-md-none fs-6 mt-1 mb-0 p-0 userMobile\">\n {{ customer.email }}\n </p>\n </div>\n </div>\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <div class=\"price h6 fw-normal pb-0 mb-0 ps-2 pl-2\">\n {{ customer.email }}\n </div>\n </div>\n <div class=\"col-4 col-md-2 text-left ps-2 pl-2\">\n <div *ngIf=\"true\" class=\"contNumero\">\n {{ customer.ordersNotApproved }}\n </div>\n </div>\n <div class=\"col-12 col-md-2 btnIngresar\">\n\n <ng-container\n *ngIf=\"authService.getCustomer()?.id == customer.id; else noActiveCustomer\">\n <a (click)=\"changeCustomer(null)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-left me-2 mr-2\"></i>\n <small class=\"me-2 mr-2 d-none d-md-block\">\n {{ 'exit' | translate | uppercase }}\n </small>\n </a>\n </ng-container>\n <ng-template #noActiveCustomer>\n <a (click)=\"changeCustomer(customer)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-in-right me-2 mr-2\"></i>\n <small class=\"me-2 mr-2 d-none d-md-block\">\n {{ 'operate-as' | translate | uppercase }}\n </small>\n </a>\n </ng-template>\n\n </div>\n </div>\n </article>\n\n </ng-container>\n\n </main>\n </div>\n </div>\n </div>\n</section>\n\n<ng-template #noCustomers>\n <h4 class=\"text-center p-5\">{{ 'no-customers' | translate }}</h4>\n</ng-template>",
9193
+ styles: ["#seller-dashboard{--seller-dashboard-primary-color:0,0,0}.btn-seller-primary{color:#fff!important;background-color:rgba(var(--seller-dashboard-primary-color),1)!important;border-color:rgba(var(--seller-dashboard-primary-color),1)!important}.btn-seller-primary:hover{background-color:rgba(var(--seller-dashboard-primary-color),.9)!important}.btn-seller-primary:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)!important}.btnGestionar{padding:6px 12px!important;height:36px;display:flex;align-items:center;justify-content:center;margin-left:10px}.ordenarVendedores{width:150px!important;color:#8b8b8b!important;background-color:#fff;border:1px solid #b6b6b6!important;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.buscadorVendedores{margin-bottom:4px!important}.buscadorVendedores input{border:1px solid #b6b6b6!important;width:200px}.buscadorVendedores .btnSearch{border:1px solid #b6b6b6!important;padding:.375rem .75rem;font-size:1rem}.buscadorVendedores .btnSearch:focus{background-color:#fff!important}.carritoProductoHeader{border:none!important}.carritoProductoHeader small{font-size:13px}.cadaVendedor{padding:5px 0;margin-bottom:0!important;border:none!important;border-bottom:1px solid #ccc!important;border-radius:0!important;-webkit-border-radius:0}.cadaVendedor .btnIngresar a{padding:10px!important;border-width:1px!important;border-style:solid!important;display:flex;align-items:center;width:100%!important;margin-left:auto;color:#fff}.cadaVendedor .btnIngresar .contNumero{background-color:#eee;width:20px;height:20px;color:#000;font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:600;border-radius:20px;-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;-o-border-radius:20px}.userMobile{font-size:14px!important;font-style:italic!important}.cadaVendedor .btnIngresar a:hover{background-color:rgba(var(--seller-dashboard-primary-color),.85)}.cadaVendedor .btnIngresar a:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.border-bottom{border-bottom:1px solid #000!important}@media screen and (max-width:1200px){.btnGestionar{font-size:12px}}@media screen and (max-width:992px){.camposVendedores{justify-content:flex-end;margin-top:8px;margin-bottom:4px}}@media all and (max-width:768px){.ordenarVendedores{width:140px!important}.buscadorVendedores input{width:140px}.cadaVendedor .btnIngresar a{width:70px!important}}@media all and (max-width:576px){.tablaVendedores .nav-tabs .nav-link{font-size:13px;padding:6px!important}.btnGestionar{padding:6px 8px!important;font-size:13px;height:36px;display:flex;align-items:center;justify-content:center;margin-top:3px;margin-left:10px}.buscadorVendedores input,.ordenarVendedores{font-size:13px}}.fs-6{font-size:1rem!important}"]
9135
9194
  }),
9136
9195
  __param$9(3, core.Inject('env'))
9137
9196
  ], SellerDashboardContainerEcComponent);
@@ -11202,15 +11261,17 @@
11202
11261
  };
11203
11262
  var ShareBlockEcComponent = /** @class */ (function (_super) {
11204
11263
  __extends$T(ShareBlockEcComponent, _super);
11205
- function ShareBlockEcComponent(consts, renderer, meta, title) {
11264
+ function ShareBlockEcComponent(consts, paramsService, renderer, meta, title) {
11206
11265
  var _this = _super.call(this) || this;
11207
11266
  _this.consts = consts;
11267
+ _this.paramsService = paramsService;
11208
11268
  _this.renderer = renderer;
11209
11269
  _this.meta = meta;
11210
11270
  _this.title = title;
11211
11271
  _this.url = '';
11212
11272
  _this.mediaimg = '';
11213
11273
  _this.description = '';
11274
+ _this.params = {};
11214
11275
  _this.toShareFacebook = function () {
11215
11276
  //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`
11216
11277
  return "https://www.facebook.com/share.php?u=" + _this.url;
@@ -11223,6 +11284,12 @@
11223
11284
  //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`
11224
11285
  return "https://pinterest.com/pin/create/button/?url=" + _this.url + "&media=" + (_this.consts.mediaUrl() + _this.mediaimg) + "&description=" + _this.description;
11225
11286
  };
11287
+ _this.toShareWhatsapp = function (wsp) {
11288
+ return "https://wa.me/" + wsp.value + "?text=Me%20interesa%20este%20producto.%20" + _this.url;
11289
+ };
11290
+ _this.toShareEmail = function (mail) {
11291
+ return "mailto:" + mail.value + "?subject=Consulta%20sobre%20el%20producto:%20" + _this.description + "&body=Art\u00EDculo:%20" + _this.url;
11292
+ };
11226
11293
  _this.createMetadata = function () {
11227
11294
  // <meta name="description" content="Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.">
11228
11295
  // <meta property="og:site_name" content="MYC HOME LINENS">
@@ -11247,6 +11314,7 @@
11247
11314
  return _this;
11248
11315
  }
11249
11316
  ShareBlockEcComponent.prototype.ngOnInit = function () {
11317
+ var _this = this;
11250
11318
  this.url = window.location.href;
11251
11319
  this.mediaimg = this.product.picturesdefault && this.product.picturesdefault[0];
11252
11320
  this.description = this.product.name;
@@ -11306,10 +11374,15 @@
11306
11374
  }
11307
11375
  ], true);
11308
11376
  }
11377
+ this.paramsService.parameters.subscribe(function (res) {
11378
+ var _a;
11379
+ _this.params = res != null ? (_a = res) === null || _a === void 0 ? void 0 : _a.filter(function (elem) { return elem.code.includes('share'); }) : [];
11380
+ });
11309
11381
  this.ecOnInit();
11310
11382
  };
11311
11383
  ShareBlockEcComponent.ctorParameters = function () { return [
11312
11384
  { type: Constants },
11385
+ { type: ParametersService },
11313
11386
  { type: core.Renderer2 },
11314
11387
  { type: platformBrowser.Meta },
11315
11388
  { type: platformBrowser.Title }
@@ -11320,7 +11393,7 @@
11320
11393
  ShareBlockEcComponent = __decorate$1p([
11321
11394
  core.Component({
11322
11395
  selector: 'app-share-block-ec',
11323
- template: "<div class=\"w-100 d-flex justify-content-around\">\n <a target=\"_blank\" [href]=\"toShareFacebook()\"\n class=\"social-sharing__link\" title=\"Compartir en Facebook\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-facebook\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M18.56 31.36V17.28h4.48l.64-5.12h-5.12v-3.2c0-1.28.64-2.56 2.56-2.56h2.56V1.28H19.2c-3.84 0-7.04 2.56-7.04 7.04v3.84H7.68v5.12h4.48v14.08h6.4z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Compartir</span>\n </a>\n <a target=\"_blank\"\n [href]=\"toShareTwitter()\"\n class=\"social-sharing__link\" title=\"Tuitear en Twitter\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-twitter\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M31.281 6.733q-1.304 1.924-3.13 3.26 0 .13.033.408t.033.408q0 2.543-.75 5.086t-2.282 4.858-3.635 4.108-5.053 2.869-6.341 1.076q-5.282 0-9.65-2.836.913.065 1.5.065 4.401 0 7.857-2.673-2.054-.033-3.668-1.255t-2.266-3.146q.554.13 1.206.13.88 0 1.663-.261-2.184-.456-3.619-2.184t-1.435-3.977v-.065q1.239.652 2.836.717-1.271-.848-2.021-2.233t-.75-2.983q0-1.63.815-3.195 2.38 2.967 5.754 4.678t7.319 1.907q-.228-.815-.228-1.434 0-2.608 1.858-4.45t4.532-1.842q1.304 0 2.51.522t2.054 1.467q2.152-.424 4.01-1.532-.685 2.217-2.771 3.488 1.989-.261 3.619-.978z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Tuitear</span>\n </a>\n <a target=\"_blank\"\n [href]=\"toSharePinterest()\"\n class=\"social-sharing__link\" title=\"Pinear en Pinterest\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-pinterest\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M27.52 9.6c-.64-5.76-6.4-8.32-12.8-7.68-4.48.64-9.6 4.48-9.6 10.24 0 3.2.64 5.76 3.84 6.4 1.28-2.56-.64-3.2-.64-4.48-1.28-7.04 8.32-12.16 13.44-7.04 3.2 3.84 1.28 14.08-4.48 13.44-5.12-1.28 2.56-9.6-1.92-11.52-3.2-1.28-5.12 4.48-3.84 7.04-1.28 4.48-3.2 8.96-1.92 15.36 2.56-1.92 3.84-5.76 4.48-9.6 1.28.64 1.92 1.92 3.84 1.92 6.4-.64 10.24-7.68 9.6-14.08z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Hacer pin</span>\n </a>\n</div>",
11396
+ template: "<div class=\"w-100 d-flex justify-content-around\">\n <ng-container *ngIf=\"params && params.length > 0; else default\">\n <a *ngIf=\"hasParams(params, 'facebook')\" target=\"_blank\" [href]=\"toShareFacebook()\"\n class=\"social-sharing__link\" title=\"Compartir en Facebook\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-facebook\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M18.56 31.36V17.28h4.48l.64-5.12h-5.12v-3.2c0-1.28.64-2.56 2.56-2.56h2.56V1.28H19.2c-3.84 0-7.04 2.56-7.04 7.04v3.84H7.68v5.12h4.48v14.08h6.4z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Compartir</span>\n </a>\n <a *ngIf=\"hasParams(params, 'twitter')\" target=\"_blank\" \n [href]=\"toShareTwitter()\"\n class=\"social-sharing__link\" title=\"Tuitear en Twitter\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-twitter\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M31.281 6.733q-1.304 1.924-3.13 3.26 0 .13.033.408t.033.408q0 2.543-.75 5.086t-2.282 4.858-3.635 4.108-5.053 2.869-6.341 1.076q-5.282 0-9.65-2.836.913.065 1.5.065 4.401 0 7.857-2.673-2.054-.033-3.668-1.255t-2.266-3.146q.554.13 1.206.13.88 0 1.663-.261-2.184-.456-3.619-2.184t-1.435-3.977v-.065q1.239.652 2.836.717-1.271-.848-2.021-2.233t-.75-2.983q0-1.63.815-3.195 2.38 2.967 5.754 4.678t7.319 1.907q-.228-.815-.228-1.434 0-2.608 1.858-4.45t4.532-1.842q1.304 0 2.51.522t2.054 1.467q2.152-.424 4.01-1.532-.685 2.217-2.771 3.488 1.989-.261 3.619-.978z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Tuitear</span>\n </a>\n <a *ngIf=\"hasParams(params, 'pinterest')\" target=\"_blank\"\n [href]=\"toSharePinterest()\"\n class=\"social-sharing__link\" title=\"Pinear en Pinterest\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-pinterest\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M27.52 9.6c-.64-5.76-6.4-8.32-12.8-7.68-4.48.64-9.6 4.48-9.6 10.24 0 3.2.64 5.76 3.84 6.4 1.28-2.56-.64-3.2-.64-4.48-1.28-7.04 8.32-12.16 13.44-7.04 3.2 3.84 1.28 14.08-4.48 13.44-5.12-1.28 2.56-9.6-1.92-11.52-3.2-1.28-5.12 4.48-3.84 7.04-1.28 4.48-3.2 8.96-1.92 15.36 2.56-1.92 3.84-5.76 4.48-9.6 1.28.64 1.92 1.92 3.84 1.92 6.4-.64 10.24-7.68 9.6-14.08z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Hacer pin</span>\n </a>\n <a *ngIf=\"hasParams(params, 'whatsapp') as wsp\" target=\"_blank\" [href]=\"toShareWhatsapp(wsp)\" class=\"social-sharing__link\" title=\"Whatsapp\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" fill=\"currentColor\" class=\"bi bi-whatsapp\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M13.601 2.326A7.854 7.854 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.933 7.933 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.898 7.898 0 0 0 13.6 2.326zM7.994 14.521a6.573 6.573 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.557 6.557 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592zm3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.729.729 0 0 0-.529.247c-.182.198-.691.677-.691 1.654 0 .977.71 1.916.81 2.049.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232z\" />\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Whatsapp</span>\n </a>\n <a *ngIf=\"hasParams(params, 'email') as email\" target=\"_blank\" [href]=\"toShareEmail(email)\" class=\"social-sharing__link\"\n title=\"Email\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" fill=\"currentColor\" class=\"bi bi-envelope-fill\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414.05 3.555ZM0 4.697v7.104l5.803-3.558L0 4.697ZM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586l-1.239-.757Zm3.436-.586L16 11.801V4.697l-5.803 3.546Z\" />\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Email</span>\n </a>\n </ng-container>\n</div>\n\n<!-- VISTA DEFAULT CON LINKS QUE NO REQUIEREN PARAMETROS-->\n<ng-template #default>\n <a target=\"_blank\" [href]=\"toShareFacebook()\" class=\"social-sharing__link\" title=\"Compartir en Facebook\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-facebook\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M18.56 31.36V17.28h4.48l.64-5.12h-5.12v-3.2c0-1.28.64-2.56 2.56-2.56h2.56V1.28H19.2c-3.84 0-7.04 2.56-7.04 7.04v3.84H7.68v5.12h4.48v14.08h6.4z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Compartir</span>\n </a>\n <a target=\"_blank\" [href]=\"toShareTwitter()\" class=\"social-sharing__link\" title=\"Tuitear en Twitter\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-twitter\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M31.281 6.733q-1.304 1.924-3.13 3.26 0 .13.033.408t.033.408q0 2.543-.75 5.086t-2.282 4.858-3.635 4.108-5.053 2.869-6.341 1.076q-5.282 0-9.65-2.836.913.065 1.5.065 4.401 0 7.857-2.673-2.054-.033-3.668-1.255t-2.266-3.146q.554.13 1.206.13.88 0 1.663-.261-2.184-.456-3.619-2.184t-1.435-3.977v-.065q1.239.652 2.836.717-1.271-.848-2.021-2.233t-.75-2.983q0-1.63.815-3.195 2.38 2.967 5.754 4.678t7.319 1.907q-.228-.815-.228-1.434 0-2.608 1.858-4.45t4.532-1.842q1.304 0 2.51.522t2.054 1.467q2.152-.424 4.01-1.532-.685 2.217-2.771 3.488 1.989-.261 3.619-.978z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Tuitear</span>\n </a>\n <a target=\"_blank\" [href]=\"toSharePinterest()\" class=\"social-sharing__link\" title=\"Pinear en Pinterest\">\n <svg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" class=\"icon icon-pinterest\" viewBox=\"0 0 32 32\">\n <path fill=\"#444\"\n d=\"M27.52 9.6c-.64-5.76-6.4-8.32-12.8-7.68-4.48.64-9.6 4.48-9.6 10.24 0 3.2.64 5.76 3.84 6.4 1.28-2.56-.64-3.2-.64-4.48-1.28-7.04 8.32-12.16 13.44-7.04 3.2 3.84 1.28 14.08-4.48 13.44-5.12-1.28 2.56-9.6-1.92-11.52-3.2-1.28-5.12 4.48-3.84 7.04-1.28 4.48-3.2 8.96-1.92 15.36 2.56-1.92 3.84-5.76 4.48-9.6 1.28.64 1.92 1.92 3.84 1.92 6.4-.64 10.24-7.68 9.6-14.08z\">\n </path>\n </svg>\n <span class=\"social-sharing__title\" aria-hidden=\"true\">Hacer pin</span>\n </a>\n</ng-template>\n<!-- FIN -->",
11324
11397
  styles: ["a{color:#000}"]
11325
11398
  })
11326
11399
  ], ShareBlockEcComponent);
@@ -12957,13 +13030,21 @@
12957
13030
  this.http = http;
12958
13031
  this.captchaSubject = new rxjs.BehaviorSubject({ siteKey: '' });
12959
13032
  this.captcha = this.captchaSubject.asObservable();
13033
+ this.testing = "easycommercetech";
13034
+ this.productionEnvironment = false;
12960
13035
  this.recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';
12961
13036
  this.recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';
13037
+ this.recaptchaSitesUrlProd = './assets/recaptcha/recaptcha-sites-prod.json';
12962
13038
  /**
12963
13039
  *
12964
13040
  * @returns {string} path que contiene la direccion del endpoint referido al captcha
12965
13041
  */
12966
13042
  this.captchaApi = function () { return 'shop-api/channels'; };
13043
+ /**
13044
+ * @description Devuelve true si la url es de produccion, false en caso contrario.
13045
+ * @returns {Boolean}
13046
+ */
13047
+ this.isProd = function () { return !_this.urlBaseFormat.includes(_this.testing); };
12967
13048
  /**
12968
13049
  * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores
12969
13050
  * de los Json estaticos, para posteriormente obtener la "siteKey"(clave del captcha) en caso
@@ -12982,12 +13063,10 @@
12982
13063
  return _this.http.get(_this.recaptchaSiteKeysUrl);
12983
13064
  };
12984
13065
  /**
12985
- *
13066
+ * @description Se obtiene los datos segun el entorno en que se ejecute
12986
13067
  * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios
12987
13068
  */
12988
- this.getRecaptchaSites = function () {
12989
- return _this.http.get(_this.recaptchaSitesUrl);
12990
- };
13069
+ this.getRecaptchaSites = function () { return _this.productionEnvironment ? _this.http.get(_this.recaptchaSitesUrlProd) : _this.http.get(_this.recaptchaSitesUrl); };
12991
13070
  /**
12992
13071
  * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,
12993
13072
  * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con
@@ -13016,6 +13095,7 @@
13016
13095
  * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.
13017
13096
  */
13018
13097
  this.urlBaseFormat = this.formatUrl(location.href);
13098
+ this.productionEnvironment = this.isProd();
13019
13099
  this.initializer();
13020
13100
  }
13021
13101
  CaptchaService$1.ctorParameters = function () { return [