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
@@ -3302,11 +3302,11 @@ let CartService = class CartService {
3302
3302
  this.requestInProcess.next(false);
3303
3303
  };
3304
3304
  this.updateCartItemQuantity = (variant_id, quantity) => {
3305
- this.items.find(item => item.variant_id == variant_id).quantity = quantity;
3305
+ let newQuantity = this.items.find(item => item.variant_id == variant_id).quantity = quantity;
3306
3306
  this.cartItemsSubject.next(this.items);
3307
3307
  this.requestInProcess.next(false);
3308
3308
  this.updateLocalCart();
3309
- this.toastrService.show('product-updated');
3309
+ this.toastrService.show('product-updated', { quantity: newQuantity });
3310
3310
  };
3311
3311
  this.appendToCart = (cart) => {
3312
3312
  this.updateCartObj(cart);
@@ -4273,7 +4273,7 @@ let AbleBuyerGuardService = class AbleBuyerGuardService {
4273
4273
  this.router = router;
4274
4274
  }
4275
4275
  canActivate(routeSnapshot) {
4276
- const redirectTo = routeSnapshot.data.redirectTo || '/';
4276
+ const redirectTo = routeSnapshot.data.redirectSellerTo || '/';
4277
4277
  if (!this.auth.isAbleToBuy())
4278
4278
  this.router.navigateByUrl(redirectTo);
4279
4279
  return this.auth.isAbleToBuy();
@@ -7143,9 +7143,15 @@ let StoresEcComponent = class StoresEcComponent extends ComponentHelper {
7143
7143
  this.sanitizer = sanitizer;
7144
7144
  this.filterStores = null;
7145
7145
  this.storesAll = null;
7146
+ this.exclusiveStores = null;
7146
7147
  this.imageMap = true;
7147
7148
  this.stores = [];
7148
7149
  this.provinces = [];
7150
+ /**
7151
+ * @description Obtiene todas la provincias que figuren en el arreglo
7152
+ * @param stores Arreglo de tiendas
7153
+ * @returns {Array} Arreglo de provincias
7154
+ */
7149
7155
  this.getProvices = (stores) => {
7150
7156
  let provincesOpt = [];
7151
7157
  stores.forEach(store => {
@@ -7155,6 +7161,37 @@ let StoresEcComponent = class StoresEcComponent extends ComponentHelper {
7155
7161
  });
7156
7162
  return provincesOpt;
7157
7163
  };
7164
+ /**
7165
+ * @description Retorna un arreglo de objetos formado por las claves
7166
+ * "province"(contiene un objeto provincia) y
7167
+ * "stores" (contiene un arreglo de tiendas pertenecientes a la provincia)
7168
+ * @param stores Opcional, arreglo de tiendas a la que se le quiere aplicar la division por provincia
7169
+ * @returns {Array<{"province", "stores"}>}
7170
+ */
7171
+ this.getStoresByProvinces = (stores = this.stores) => {
7172
+ let storesByProvinces = [];
7173
+ if (stores) {
7174
+ let provinces = this.getProvices(stores);
7175
+ provinces.forEach(elem => {
7176
+ var _a;
7177
+ let aux = (_a = stores) === null || _a === void 0 ? void 0 : _a.filter(store => store.province.code == elem.code);
7178
+ storesByProvinces.push({ province: elem, stores: aux });
7179
+ });
7180
+ }
7181
+ return storesByProvinces;
7182
+ };
7183
+ /**
7184
+ * @description Retorna las tiendas con/sin retiro en el local
7185
+ * @param stores Opcional, arreglo de tiendas
7186
+ * @param cond Opcional, Si es "true" obtiene las tiendas con retiro local caso contrario "false"
7187
+ * @returns {Array<Store>} Arreglo de Store
7188
+ */
7189
+ this.getPickupStores = (stores = this.stores, cond = true) => stores && stores.filter(store => cond == store.pickupStore);
7190
+ /**
7191
+ * @description Metodo que devuelve las tiendas que NO son exclusivas.
7192
+ * @returns {Array<Store>} Arreglo de Store
7193
+ */
7194
+ this.getNonExclusiveStores = () => this.stores.filter(store => !store.exclusive);
7158
7195
  this.selectChange = (select) => {
7159
7196
  this.filterStores = select != '' && this.storesAll.filter(store => store.province.code == select) || this.storesAll;
7160
7197
  return true;
@@ -7163,6 +7200,7 @@ let StoresEcComponent = class StoresEcComponent extends ComponentHelper {
7163
7200
  this.storesService.stores.pipe(filter(store => store && store.length > 0)).subscribe(stores => {
7164
7201
  this.storesAll = stores;
7165
7202
  this.stores = stores;
7203
+ this.exclusiveStores = stores.filter(store => store.exclusive);
7166
7204
  this.selectChange('');
7167
7205
  });
7168
7206
  this.ecOnConstruct();
@@ -7286,20 +7324,35 @@ let SellerDashboardContainerEcComponent = class SellerDashboardContainerEcCompon
7286
7324
  this.fuse.setCollection(this.filteredCustomers);
7287
7325
  this.sortCustomers(this.sortValue);
7288
7326
  };
7327
+ /**
7328
+ * @description Ordena la lista de clientes
7329
+ * @param value recibe una cadena que de estar formada de la forma "tipoOrdenacion_atributoPorOrdenar"
7330
+ * Ejemplo: "asc_firstName" o "desc_id" ...
7331
+ */
7289
7332
  this.sortCustomers = value => {
7290
7333
  this.sortValue = value;
7291
- const comparator = (this.sortValue == 'asc')
7334
+ let values = value.split('_');
7335
+ let sortType = values[0];
7336
+ let attribute = values[1];
7337
+ const comparator = (sortType == 'asc')
7292
7338
  ? [-1, 1]
7293
7339
  : [1, -1];
7340
+ let typeValue;
7341
+ if (this.filteredCustomers.length > 0) {
7342
+ typeValue = typeof (this.filteredCustomers[0][attribute]);
7343
+ }
7344
+ let sortFunction = typeValue == 'number' ? this.sortNumber : this.sortText;
7294
7345
  this.filteredCustomers =
7295
7346
  this.sortValue
7296
- ? this.filteredCustomers.sort((aCustomer, otherCustomer) => {
7297
- return (aCustomer.firstName == otherCustomer.firstName)
7298
- ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]
7299
- : aCustomer.firstName.toLowerCase() < otherCustomer.firstName.toLowerCase() ? comparator[0] : comparator[1];
7300
- })
7347
+ ? this.filteredCustomers.sort((aCustomer, otherCustomer) => sortFunction(aCustomer, otherCustomer, attribute, comparator))
7301
7348
  : this.filteredCustomers;
7302
7349
  };
7350
+ this.sortNumber = (aCustomer, otherCustomer, attribute, comparator) => aCustomer[attribute] < otherCustomer[attribute] ? comparator[0] : comparator[1];
7351
+ this.sortText = (aCustomer, otherCustomer, attribute, comparator) => {
7352
+ return (aCustomer[attribute] == otherCustomer[attribute])
7353
+ ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]
7354
+ : String(aCustomer[attribute]).toLowerCase() < String(otherCustomer[attribute]).toLowerCase() ? comparator[0] : comparator[1];
7355
+ };
7303
7356
  this.changeCustomer = customer => {
7304
7357
  this.authService.setCustomer(customer);
7305
7358
  customer
@@ -7323,6 +7376,7 @@ let SellerDashboardContainerEcComponent = class SellerDashboardContainerEcCompon
7323
7376
  this.customers = user.customers;
7324
7377
  this.filteredCustomers = this.customers;
7325
7378
  this.fuse.setCollection(this.filteredCustomers);
7379
+ this.sortCustomers('desc_ordersNotApproved');
7326
7380
  });
7327
7381
  }
7328
7382
  };
@@ -7338,8 +7392,8 @@ __decorate$17([
7338
7392
  SellerDashboardContainerEcComponent = __decorate$17([
7339
7393
  Component({
7340
7394
  selector: 'app-seller-dashboard-container',
7341
- 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>",
7342
- 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}"]
7395
+ 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>",
7396
+ 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}"]
7343
7397
  }),
7344
7398
  __param$9(3, Inject('env'))
7345
7399
  ], SellerDashboardContainerEcComponent);
@@ -9050,15 +9104,17 @@ var __decorate$1p = (this && this.__decorate) || function (decorators, target, k
9050
9104
  return c > 3 && r && Object.defineProperty(target, key, r), r;
9051
9105
  };
9052
9106
  let ShareBlockEcComponent = class ShareBlockEcComponent extends ComponentHelper {
9053
- constructor(consts, renderer, meta, title) {
9107
+ constructor(consts, paramsService, renderer, meta, title) {
9054
9108
  super();
9055
9109
  this.consts = consts;
9110
+ this.paramsService = paramsService;
9056
9111
  this.renderer = renderer;
9057
9112
  this.meta = meta;
9058
9113
  this.title = title;
9059
9114
  this.url = '';
9060
9115
  this.mediaimg = '';
9061
9116
  this.description = '';
9117
+ this.params = {};
9062
9118
  this.toShareFacebook = () => {
9063
9119
  //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`
9064
9120
  return `https://www.facebook.com/share.php?u=${this.url}`;
@@ -9071,6 +9127,12 @@ let ShareBlockEcComponent = class ShareBlockEcComponent extends ComponentHelper
9071
9127
  //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`
9072
9128
  return `https://pinterest.com/pin/create/button/?url=${this.url}&media=${this.consts.mediaUrl() + this.mediaimg}&description=${this.description}`;
9073
9129
  };
9130
+ this.toShareWhatsapp = (wsp) => {
9131
+ return `https://wa.me/${wsp.value}?text=Me%20interesa%20este%20producto.%20${this.url}`;
9132
+ };
9133
+ this.toShareEmail = (mail) => {
9134
+ return `mailto:${mail.value}?subject=Consulta%20sobre%20el%20producto:%20${this.description}&body=Artículo:%20${this.url}`;
9135
+ };
9074
9136
  this.createMetadata = () => {
9075
9137
  // <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.">
9076
9138
  // <meta property="og:site_name" content="MYC HOME LINENS">
@@ -9153,11 +9215,16 @@ let ShareBlockEcComponent = class ShareBlockEcComponent extends ComponentHelper
9153
9215
  }
9154
9216
  ], true);
9155
9217
  }
9218
+ this.paramsService.parameters.subscribe(res => {
9219
+ var _a;
9220
+ this.params = res != null ? (_a = res) === null || _a === void 0 ? void 0 : _a.filter(elem => elem.code.includes('share')) : [];
9221
+ });
9156
9222
  this.ecOnInit();
9157
9223
  }
9158
9224
  };
9159
9225
  ShareBlockEcComponent.ctorParameters = () => [
9160
9226
  { type: Constants },
9227
+ { type: ParametersService },
9161
9228
  { type: Renderer2 },
9162
9229
  { type: Meta },
9163
9230
  { type: Title }
@@ -9168,7 +9235,7 @@ __decorate$1p([
9168
9235
  ShareBlockEcComponent = __decorate$1p([
9169
9236
  Component({
9170
9237
  selector: 'app-share-block-ec',
9171
- 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>",
9238
+ 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 -->",
9172
9239
  styles: ["a{color:#000}"]
9173
9240
  })
9174
9241
  ], ShareBlockEcComponent);
@@ -10540,13 +10607,21 @@ let CaptchaService = class CaptchaService {
10540
10607
  this.http = http;
10541
10608
  this.captchaSubject = new BehaviorSubject({ siteKey: '' });
10542
10609
  this.captcha = this.captchaSubject.asObservable();
10610
+ this.testing = "easycommercetech";
10611
+ this.productionEnvironment = false;
10543
10612
  this.recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';
10544
10613
  this.recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';
10614
+ this.recaptchaSitesUrlProd = './assets/recaptcha/recaptcha-sites-prod.json';
10545
10615
  /**
10546
10616
  *
10547
10617
  * @returns {string} path que contiene la direccion del endpoint referido al captcha
10548
10618
  */
10549
10619
  this.captchaApi = () => 'shop-api/channels';
10620
+ /**
10621
+ * @description Devuelve true si la url es de produccion, false en caso contrario.
10622
+ * @returns {Boolean}
10623
+ */
10624
+ this.isProd = () => !this.urlBaseFormat.includes(this.testing);
10550
10625
  /**
10551
10626
  * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores
10552
10627
  * de los Json estaticos, para posteriormente obtener la "siteKey"(clave del captcha) en caso
@@ -10565,12 +10640,10 @@ let CaptchaService = class CaptchaService {
10565
10640
  return this.http.get(this.recaptchaSiteKeysUrl);
10566
10641
  };
10567
10642
  /**
10568
- *
10643
+ * @description Se obtiene los datos segun el entorno en que se ejecute
10569
10644
  * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios
10570
10645
  */
10571
- this.getRecaptchaSites = () => {
10572
- return this.http.get(this.recaptchaSitesUrl);
10573
- };
10646
+ this.getRecaptchaSites = () => this.productionEnvironment ? this.http.get(this.recaptchaSitesUrlProd) : this.http.get(this.recaptchaSitesUrl);
10574
10647
  /**
10575
10648
  * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,
10576
10649
  * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con
@@ -10599,6 +10672,7 @@ let CaptchaService = class CaptchaService {
10599
10672
  * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.
10600
10673
  */
10601
10674
  this.urlBaseFormat = this.formatUrl(location.href);
10675
+ this.productionEnvironment = this.isProd();
10602
10676
  this.initializer();
10603
10677
  }
10604
10678
  };