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
@@ -1 +1 @@
1
- {"version":3,"file":"ng-easycommerce.js","sources":["ng://ng-easycommerce/lib/pipes/order-by.pipe.ts","ng://ng-easycommerce/lib/services/windows.service.ts","ng://ng-easycommerce/lib/core.consts.ts","ng://ng-easycommerce/lib/api/connection.service.ts","ng://ng-easycommerce/lib/services/pagination.service.ts","ng://ng-easycommerce/lib/classes/filters/Filter.ts","ng://ng-easycommerce/lib/classes/filters/CategoryFilter.ts","ng://ng-easycommerce/lib/services/options.service.ts","ng://ng-easycommerce/lib/classes/filters/AttributesFilter.ts","ng://ng-easycommerce/lib/classes/filters/DinamycsFilter.ts","ng://ng-easycommerce/lib/classes/filters/SortFilter.ts","ng://ng-easycommerce/lib/services/products/products.service.ts","ng://ng-easycommerce/lib/services/banner.service.ts","ng://ng-easycommerce/lib/classes/user.ts","ng://ng-easycommerce/lib/classes/checkout/step.ts","ng://ng-easycommerce/lib/utils/order-util.service.ts","ng://ng-easycommerce/lib/utils/analytics/doppler.service.ts","ng://ng-easycommerce/lib/utils/analytics/facebook-pixel.service.ts","ng://ng-easycommerce/lib/utils/analytics/google-analytics.service.ts","ng://ng-easycommerce/lib/utils/analytics/gtm.service.ts","ng://ng-easycommerce/lib/utils/analytics/metricool-pixel.service.ts","ng://ng-easycommerce/lib/services/analytics.service.ts","ng://ng-easycommerce/lib/services/checkout/error-handler.service.ts","ng://ng-easycommerce/lib/utils/toast.service.ts","ng://ng-easycommerce/lib/services/checkout/checkout.service.ts","ng://ng-easycommerce/lib/classes/checkout/step-service.ts","ng://ng-easycommerce/lib/services/checkout/addressing.service.ts","ng://ng-easycommerce/lib/services/channel-config.service.ts","ng://ng-easycommerce/lib/services/auth.service.ts","ng://ng-easycommerce/lib/services/cart.service.ts","ng://ng-easycommerce/lib/services/account/orders.service.ts","ng://ng-easycommerce/lib/utils/shipment-transformer.service.ts","ng://ng-easycommerce/lib/services/stores.service.ts","ng://ng-easycommerce/lib/services/checkout/shipment.service.ts","ng://ng-easycommerce/lib/interfaces/choose-options/filter-option.ts","ng://ng-easycommerce/lib/utils/options-of-product-list-data.service.ts","ng://ng-easycommerce/lib/services/dataform.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks-repository.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks.service.ts","ng://ng-easycommerce/lib/utils/utils.service.ts","ng://ng-easycommerce/lib/utils/payment-utils.service.ts","ng://ng-easycommerce/lib/guards/auth-guard.service.ts","ng://ng-easycommerce/lib/guards/able-buyer-guard.service.ts","ng://ng-easycommerce/lib/guards/user-role-guard.service.ts","ng://ng-easycommerce/lib/guards/loggedin-guard.service.ts","ng://ng-easycommerce/lib/guards/checkout-ready.service.ts","ng://ng-easycommerce/lib/interceptors/auth.interceptor.ts","ng://ng-easycommerce/lib/interceptors/customer.interceptor.ts","ng://ng-easycommerce/lib/classes/component-helper.ts","ng://ng-easycommerce/lib/services/parameters.service.ts","ng://ng-easycommerce/lib/ec-component/account-ec/account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/blocks-ec.component.ts","ng://ng-easycommerce/lib/ec-component/cart-ec/cart-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/checkout-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.ts","ng://ng-easycommerce/lib/services/checkout/payment.service.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/success-ec/success-ec.component.ts","ng://ng-easycommerce/lib/ec-component/collection-ec/collection-ec.component.ts","ng://ng-easycommerce/lib/ec-component/coupon-ec/coupon-ec.component.ts","ng://ng-easycommerce/lib/ec-component/faqs-content-ec/faqs-content-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-ec/filters-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-top-ec/filters-top-ec.component.ts","ng://ng-easycommerce/lib/ec-component/footer-ec/footer-ec.component.ts","ng://ng-easycommerce/lib/ec-component/header-ec/header-ec.component.ts","ng://ng-easycommerce/lib/ec-component/home-ec/home-ec.component.ts","ng://ng-easycommerce/lib/ec-component/login-ec/login-ec.component.ts","ng://ng-easycommerce/lib/services/products/product-detail.service.ts","ng://ng-easycommerce/lib/ec-component/product-detail-ec/product-detail-ec.component.ts","ng://ng-easycommerce/lib/ec-component/product-ec/product-ec.component.ts","ng://ng-easycommerce/lib/ec-component/related-products-ec/related-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/section-container-ec/section-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/stores-ec/stores-ec.component.ts","ng://ng-easycommerce/lib/ec-component/variants-ec/variants-ec.component.ts","ng://ng-easycommerce/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/price-ec/price-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/order-ec/order-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/auth-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-form-ec/register-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/password-reset-ec/password-reset-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/share-block-ec/share-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-error-ec/checkout-error-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/zoom-ec/magnizoom.component.ts","ng://ng-easycommerce/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.ts","ng://ng-easycommerce/lib/services/captcha.service.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.ts","ng://ng-easycommerce/lib/ec-component/index.ts","ng://ng-easycommerce/lib/ec-directive/add-action-redirect.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-stock.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-off.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-mini-standard.directive.ts","ng://ng-easycommerce/lib/ec-directive/auth-wholesaler.directive.ts","ng://ng-easycommerce/lib/ec-directive/index.ts","ng://ng-easycommerce/lib/ec-pipe/ec-currency-symbol.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-html.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-url.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/index.ts","ng://ng-easycommerce/lib/ng-easycommerce.module.ts","ng://ng-easycommerce/lib/services/gift-card.service.ts","ng://ng-easycommerce/lib/services/wishlist.service.ts","ng://ng-easycommerce/lib/strategies/standard.strategy.ts","ng://ng-easycommerce/public-api.ts","ng://ng-easycommerce/ng-easycommerce.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'orderBy'\n})\nexport class OrderByPipe implements PipeTransform {\n\n transform(array, val = 'desc'){\n \n if (!val || val.trim() == \"\"){\n return array;\n } \n\n //ascending\n if (val == 'asc'){\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item1['id'], item2['id']);\n });\n } else if(val == 'desc'){ // desc\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item2['id'], item1['id']);\n });\n } else if(val == 'a-z') { // a-z\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] < b['name'] ){\n return -1;\n } else if ( a['name'] > b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'z-a') { // z-a\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] > b['name'] ){\n return -1;\n } else if ( a['name'] < b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'low') { // low to high\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] < b['price'] ){\n return -1;\n } else if ( a['price'] > b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'high') { // high to low\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] > b['price'] ){\n return -1;\n } else if ( a['price'] < b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n }\n\n }\n\n orderByComparator(a:any, b:any):number{\n\n if((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))){\n //Isn't a number so lowercase the string to properly compare\n if(a.toLowerCase() < b.toLowerCase()) return -1;\n if(a.toLowerCase() > b.toLowerCase()) return 1;\n }\n else{\n //Parse strings as numbers to compare properly\n if(parseFloat(a) < parseFloat(b)) return -1;\n if(parseFloat(a) > parseFloat(b)) return 1;\n }\n\n return 0; //equal each other\n }\n\n}\n","import { isPlatformBrowser } from \"@angular/common\";\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/* Create a new injection token for injecting the window into a component. */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/* Define abstract class for obtaining reference to the global window object. */\r\nexport abstract class WindowRef {\r\n\r\n get nativeWindow(): Window | Object {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n}\r\n\r\n/* Define class that implements the abstract class and returns the native window object. */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get nativeWindow(): Window | Object {\r\n return window;\r\n }\r\n\r\n}\r\n\r\n/* Create an factory function that returns the native window object. */\r\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n return new Object();\r\n}\r\n\r\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\r\nexport const browserWindowProvider: ClassProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n\r\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\r\nexport const windowProvider: FactoryProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [ WindowRef, PLATFORM_ID ]\r\n};\r\n\r\n/* Create an array of providers. */\r\nexport const WINDOW_PROVIDERS = [\r\n browserWindowProvider,\r\n windowProvider\r\n];","\nimport { Injectable, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from './api/connection.service';\nimport { CurrencyConfig } from './interfaces/currencyConfig';\ntype currencyType = 'EUR' | 'ARG' | 'USD' | 'PYG' | 'PEN' | 'CUSTOM';\ntype positionType = 'L' | 'R';\ntype channelTypes = 'b2b' | 'b2b2c' | 'b2c';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Constants {\n\n constructor(public translate: TranslateService, private router: Router, @Inject('env') private env) { }\n\n private readonly LOCALE = 'LOCALE';\n private readonly CHANNEL = 'CHANNEL';\n\n private channelConfigSubject = new ReplaySubject<any>();\n public channelConfig$ = this.channelConfigSubject.asObservable();\n\n private channelConfigAPI = (channel) => '/shop-api/' + channel + 'channel';\n\n private browserWindow: object = window || {};\n private browserWindowEnv: object = this.browserWindow['__env'] || {};\n\n // private urlBase: string = 'http://testing.backend.easycommercetech.com/';\n private urlBase: string = this.browserWindowEnv['apiUrl'] ? this.browserWindowEnv['apiUrl'] : (this.env.apiUrl || 'http://backend.easycommerce.devp/');\n private urlAssets: string = this.browserWindowEnv['urlAssets'] ? this.browserWindowEnv['urlAssets'] : (this.env.urlAssets || this.urlBase);\n private urlFrontend: string = this.browserWindowEnv['urlFrontend'] ? this.browserWindowEnv['urlFrontend'] : (this.env.urlFrontend || 'https://elden.easycommercetech.com/');\n private locale: string = localStorage.getItem(this.LOCALE) ? localStorage.getItem(this.LOCALE) : this.browserWindowEnv['locale'] ? this.browserWindowEnv['locale'] : (this.env.locale || 'es_AR');\n private channel: string = localStorage.getItem(this.CHANNEL) ? localStorage.getItem(this.CHANNEL) : this.browserWindowEnv['channel'] ? this.browserWindowEnv['channel'] : (this.env.channel || 'minorista')\n private blocksCacheTime: string = this.browserWindowEnv['blocksCacheTime'] ? this.browserWindowEnv['blocksCacheTime'] : (this.env.blocksCacheTime || null);\n\n private modalConfig = { title: 'Example', class: 'modal-xl modal-dialog-centered', keyboard: false };\n setModalConfig = (config: any) => this.modalConfig = config;\n getModalConfig = () => this.modalConfig;\n\n private version: string = 'v1';\n\n private routes = [/^home$/g, /^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g, /^contact$/g];\n\n /* Get rid of this ASAP! */\n private masterChannel = null\n\n public getMasterChannel = () => {\n if (!this.masterChannel) this.masterChannel = localStorage.getItem('MASTER_CHANNEL')\n return this.masterChannel\n }\n\n public setMasterChannel = channel => {\n this.masterChannel = channel\n localStorage.setItem('MASTER_CHANNEL', channel)\n }\n\n private isProduction = () => this.browserWindowEnv['production'] ? this.browserWindowEnv['production'] : (this.env.production || false);\n\n setUrlBase = (url) => this.urlBase = url;\n setUrlAssets = (url) => this.urlAssets = url;\n\n /**\n * @param next Function to execute\n * @param params That function needs\n *\n * Execute the function passed as params, if the frontend is in production mode\n */\n onlyIfProduction = (next, params) => this.isProduction() && next(params);\n\n mediaUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"image/\";\n mediaBannerUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"banner-image/\";\n mediaStoreUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"store-image/\";\n\n getProductsListRoute = () => 'collection/';\n\n getSectionsRoute = () => 'section/';\n\n getUrlBase = () => this.urlBase;\n getUrlFrontend = () => this.urlFrontend;\n\n getBlocksCacheTime = (): number => this.blocksCacheTime && parseInt(this.blocksCacheTime);\n\n // getLocale = () => this.locale;\n // setLocale = (locale) => this.locale = locale;\n\n getLocale = () => {\n if (localStorage.getItem(this.LOCALE)) {\n this.locale = localStorage.getItem(this.LOCALE)\n }\n return this.locale\n }\n\n getLocaleTranslate = () => {\n return this.getLocale().split('_')[0]\n }\n\n public setLocale = locale => {\n localStorage.setItem(this.LOCALE, locale)\n this.translate.use(locale.split('_')[0])\n this.locale = locale\n }\n\n getChannel = () => {\n if (localStorage.getItem(this.CHANNEL)) {\n this.channel = localStorage.getItem(this.CHANNEL)\n }\n return this.channel\n }\n\n public setChannel = channel => {\n localStorage.setItem(this.CHANNEL, channel)\n this.channel = channel\n }\n\n getVersion = () => this.version;\n\n loginExtraData = () => {\n return {\n client_id: 'demo_client',\n client_secret: 'secret_demo_client',\n grant_type: 'password'\n }\n }\n\n isCollection = (path) => (/^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g).test(path);\n\n /**\n * Utilities\n */\n\n mobile = () => window.innerWidth < 750;\n\n strictTypeChannel = () => this.env.strictTypeChannel || 'b2b2c';\n\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total;\n\n /**\n * Elementos para manejo de lista de rutas reutilizables\n */\n\n addRouteToReuse = (route: RegExp) => route && this.routes.push(route);\n\n removeRouteToReuse = (route: RegExp) => {\n const index = this.routes.indexOf(route);\n if (index > -1) {\n this.routes.splice(index, 1);\n }\n }\n\n getRoutesToReuse = (): RegExp[] => this.routes;\n\n\n\n /**\n * @public ejemplo de uso <img *ngFor=\"let item of consts.getRatingStar(product.rating,'assets/images/star.png','assets/images/notStar.png')\" [src]=\"item\">\n * @description funcion que dado un valor entre 1 .. 5, y star: notStar: \n * (deben ser el path del archivo local a la implementacion).\n * retorna un arreglo con con la valoracion correspondiente. \n */\n getRatingStar = (rating: any, star: String, notStar: String) => {\n try {\n let urlStar = [];\n let cantStar = Number(rating) || 0;\n for (let index = 0; index < 5; index++) {\n urlStar.push(\n cantStar > 0\n ? star\n : notStar\n );\n cantStar--;\n }\n return urlStar;\n } catch (error) {\n console.error(\"getRatingStar produjo un error -> \", error);\n }\n\n };\n\n /**\n * @public ejemplo de uso (keypress)=\"inputValidationByExpressions($event,'[0-9]{1,9}')\" en el DOM.\n * @description funcion que dado un manejandor de evento, y una expresion regular esta es \n * evaluada sobre los valores que el manejador de eventos nos envia. \n * En el caso en el que se envie el parametro 'condition' este puede ser para \n * anular el evento como condicion adicional a la evaluacion de la entrada.\n */\n inputValidationByExpressions = (e, patron, condition = null ) => {\n try {\n let tecla = (document) ? e.keyCode : e.which;\n if (tecla == 8) return true;\n let patronReg = new RegExp(patron)\n let tecla_final = String.fromCharCode(tecla);\n if (condition != null) {\n return patronReg.test(tecla_final) && condition;\n }\n return patronReg.test(tecla_final)\n } catch (error) {\n console.error(\"inputValidationByExpressions produjo un error -> \", error);\n }\n }\n\n\n /**\n * \n * @param needles (agujas) object con claves valor a filtrar\n * @param haystack (pajar) objecto en el que buscar\n * \n * @description funcion que busca en el haystack (pajar) todos los objetos que contentan \n * todas las claves de los needles(agujas) que contengan el mismo valor\n */\n containsAll(needles: object, haystack: object): boolean {\n let result: boolean = true;\n\n if (!!needles && !!haystack) {\n Object.entries(needles).forEach(value => {\n if (!(haystack.hasOwnProperty(value[0]) && haystack[value[0]] == value[1])) result = false\n })\n }\n return result;\n }\n\n /**\n * Propiedad que se utiliza para tomar como configuración para el tipo de moneda que se utiliza en el sitio. \n * Estos valores son utilizados para el pipe currencyPrice\n */\n public currency: CurrencyConfig = {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n }\n\n /**\n * \n * @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar. \n * Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.\n * @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,\n * todas las key son opcionales y por defecto se toman los valores del ejemplo. \n * @returns se retorna la configuración que se seteo a la propiedad currency del servicio.\n */\n public setCurrency = (currencyTypeFind: currencyType, customType?: CurrencyConfig) => {\n let currencyTypeCofig: CurrencyConfig[] = [\n {\n code: 'EUR',\n symbol: '€',\n position: 'R',\n withoutDecimals: false\n\n },\n {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'USD',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PYG',\n symbol: 'Gs.',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PEN',\n symbol: 'S/',\n position: 'L',\n withoutDecimals: false\n }\n ]\n this.currency = currencyTypeCofig.find(ct => ct.code == currencyTypeFind.toUpperCase()) || this.currency\n customType && (this.currency = { ...this.currency, ...customType })\n return this.currency;\n };\n\n\n /**\n * devuelve true si existe el elemento \"search\" en el array de parametros \"params\"\n * \n * @param params Array de parametros entre los que buscar\n * @param searched Elemento que buscar\n * @param prefix prefijo del string a buscar (ejemplo: \"link_\")\n * @param suffix sufijo del string a buscar (ejemplo: \"link_\")\n * @param casesensitive determina si se evalua con sensibilidad entre mayuscula y minuscula\n * @returns retorna true o false si se encontro o no el parametro en el array\n */\n public hasParams(\n params,\n searched,\n prefix = '',\n suffix = '',\n casesensitive = false): boolean {\n\n\n return casesensitive ? params.find(param => (param.code).toLowerCase() == (prefix + searched + suffix).toLowerCase() || (param.code).toLowerCase() == (searched).toLowerCase())\n : params.find(param => param.code == (prefix + searched + suffix) || param.code == searched)\n\n };\n modifyChannelConfig = (channelConfig) => {\n console.log(\"Channel config: \", channelConfig)\n if (channelConfig.channel || channelConfig.code)\n this.setChannel(channelConfig.channel || channelConfig.code)\n\n if (channelConfig.locale || channelConfig.locales.code)\n this.setLocale(channelConfig.locale || channelConfig.locales.code)\n\n return channelConfig;\n }\n}\n\n","import { Injectable, OnInit } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilterOption, FilterOptionTypes, FilterOptionValue } from '../interfaces/choose-options/filter-option';\nimport { take } from 'rxjs/operators';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class ConnectionService {\n\n private url;\n\n constructor(private http: HttpClient, private translate: TranslateService,\n private consts: Constants) {\n this.url = this.consts.getUrlBase();\n }\n\n /** POST */\n post(api: string, data?): Observable<any> {\n return this.http.post<any>(this.url + api, data || {}).pipe(take(1));\n }\n\n postOutsider(api: string, data): Observable<any> {\n return this.http.post<any>(api, data).pipe(take(1));\n }\n\n /** GET */\n get(api: string, data?): Observable<any> {\n return this.http.get<any>(this.formUrl(api), { params: { ...data } }).catch(err => of(null)).pipe(take(1));\n }\n\n getOutsider(api: string): Observable<any> {\n return this.http.get<any>(api).pipe(take(1));\n }\n\n getErrorNotHandler(api: string): Observable<any> {\n return this.http.get<any>(this.url + api).pipe(take(1));\n }\n\n getOutsiderWithParams(api: string, data: any): Observable<any> {\n return this.http.get<any>(api, { params: { ...data }});\n }\n\n getHTML(api: string): Observable<any> {\n let httpHeaders = new HttpHeaders({ Accept: 'text/plain, text/html' });\n return this.http.get(this.url + api, { responseType: 'text', headers: httpHeaders }).pipe(take(1));\n }\n\n getWithLimit(api: string, limit: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n getPaginated(api: string, limit: string, page: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n params = params.append('page', page);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n /** PUT */\n put(api: string, data): Observable<any> {\n return this.http.put<any>(this.url + api, data).pipe(take(1));\n }\n\n /** DELETE */\n delete(api: string): Observable<any> {\n return this.http.delete<any>(this.url + api).pipe(take(1));\n }\n\n formUrl = (api) => {\n return window.location.protocol == 'https:' && !this.url.includes('https') ? (this.url.replace('http', 'https')) + api : this.url + api;\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { Product } from '../interfaces/product';\n\n@Injectable()\nexport class PaginationService {\n\n private api: string;\n private limit;\n private params;\n private nextSubject : BehaviorSubject<Product[]> = new BehaviorSubject([]);\n private finishedSubject : BehaviorSubject<boolean> = new BehaviorSubject(false);\n private finished;\n public total= 0;\n \n public waiting = false;\n \n public next = this.nextSubject.asObservable();\n public finished$ = this.finishedSubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) { }\n\n initialize(api, limit?, initialValues?) {\n this.api = api;\n this.limit = limit || this.limit || 10;\n this.finished = false;\n this.nextSubject.next([]);\n }\n\n getNext(next?) : boolean{\n this.waiting = true;\n this.api = this.api.replace('%20', ' '); //-\n let nextProducts = !this.api.includes('page=') \n ? this.connection.get(this.api, { limit: this.limit, page: 1 }) \n : this.connection.get(this.api);\n !this.finished && nextProducts.subscribe(\n response => {\n response.links ? this.updatePageData(response) : this.finalize(response)\n next && next(response);\n }\n )\n return true;\n }\n\n private updatePageData = (response) => {\n this.api = this.cleanRoute(response.links.next);\n this.finished = response.page == response.pages;\n this.total = response.total;\n this.finishedSubject.next((response.page == response.pages))\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n private finalize = (response) => {\n this.finished = true;\n this.finishedSubject.next(true);\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n cleanRoute = (route: string) => route.slice(1);\n\n getPage(totalItems: number, currentPage: number = 1, pageSize: number = 8) { }\n\n isFinished = () => this.finished;\n}\n","import { IFilter, FilterElement, FilterType } from \"../../interfaces/filter\";\n\nexport class Filter implements IFilter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = false;\n type = (): FilterType => null;\n getContent = (): FilterElement[] => null;\n toUrlParams = (): string => null;\n setContent = (options): void => null;\n\n setSelected = (element, value?) => {\n !this.multi && this.cleanFilter(this.data, element);\n this.setSelectedValue(element, value);\n }\n\n cleanFilter = (data, element_to_change) => {\n element_to_change && data.forEach(element => {\n element_to_change != element ? element.selected = false : null;\n (element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);\n })\n }\n\n reset = (children?) => {\n let data = children || this.data;\n data.forEach(element => {\n element.selected = false;\n (element.children && element.children.length > 0) && this.reset(element.children);\n })\n }\n\n setSelectedValue = (element, value?, sublist?, multi?) => {\n let elements = sublist || this.data;\n let index = elements.findIndex(subelement => {\n return (element.code || element) == subelement.code;\n });\n if (index >= 0) {\n elements[index].selected = elements[index].selected ? false : true;\n !multi && elements.forEach((child, i) => {\n if (i != index) child.selected = false;\n });\n return {\n elements,\n founded: true\n };\n } else {\n elements.some(elem => elem.type == 'sub') && elements.some(\n filter => {\n let founded = false;\n if (filter.type == 'sub') {\n const result = this.setSelectedValue(element, value, filter.children, filter.multi);\n if (result && result.founded) {\n filter.children = result.elements;\n founded = true;\n }\n }\n return founded;\n }\n )\n }\n };\n\n getSelectedList = (): any => this.findSelected(this.data, []);\n\n findSelected = (elements: any[], result) => {\n let element = elements.find(elem => elem.selected);\n if (element) {\n result.push(element.code);\n return result;\n }\n elements.forEach(elem => {\n if (elem.children && elem.children.length) {\n let new_result = this.findSelected(elem.children, result);\n if (new_result) result = new_result;\n }\n })\n return result;\n }\n}\n\n","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class CategoryFilter extends Filter {\n\n data: FilterElement[] = [];\n private raw_data;\n multi = false;\n\n constructor(private categories$: Observable<any>, formatter, initial_value?) {\n super();\n this.categories$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n type = (): FilterType => 'category';\n\n setContent = (categories, original?, initial_value?) => {\n categories.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = categories;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '', sublist?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub' && !element.selected) {\n const result = this.toUrlParams('', element.children);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if (element.selected) {\n if (actual_url == '') actual_url = '&category=' + element.value;\n else actual_url = element.value;\n }\n })\n return actual_url;\n };\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { BehaviorSubject, of, Observable } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { AuthService } from './auth.service';\nimport { take, map, catchError } from 'rxjs/operators';\nimport { FAQ } from '../interfaces/faqs';\nimport { Filter } from '../classes/filters/Filter';\n\n@Injectable()\nexport class OptionsService {\n\n private categoriesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private attributesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private sectionsSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private readySubject: BehaviorSubject<any> = new BehaviorSubject({ options: { categories: false, attributes: false, sections: false }, readyAll: false });\n private data = [];\n\n\n public categories = this.categoriesSubject.asObservable();\n public attributes = this.attributesSubject.asObservable();\n public sections = this.sectionsSubject.asObservable();\n public ready = this.readySubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) {\n this.getAllData();\n // this.authService.loggedIn.subscribe(res => res && this.getAllData());\n }\n\n private getAllData = () => {\n this.getCategories();\n this.getAttributes();\n this.getSections();\n }\n\n private async getCategories() {\n await this.connection.get(this.taxonsApi()).pipe(take(1),\n map(response => this.appendPaths(true, response)))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.categoriesSubject.next(response)\n }\n ).catch(() => this.categoriesSubject.next([]))\n this.optionLoaded('categories');\n }\n\n private async getAttributes() {\n await this.connection.get(this.attributesApi()).pipe(\n map(response => this.appendPaths(false, (response.items || response))))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.attributesSubject.next(this.addAttributesSlug(response));\n }\n ).catch(() => this.attributesSubject.next([]))\n this.optionLoaded('attributes');\n }\n\n private appendPaths(isCategory, response) {\n let result = response.map(subelement => {\n if (!subelement.children || subelement.children.length == 0) {\n subelement.children = [];\n subelement.path = isCategory ? this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name))\n : this.constants.getProductsListRoute() + 'attributes/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name));\n } else if (subelement.children) {\n subelement.slug = subelement.slug || this.slugify(subelement.name);\n subelement.children = this.appendPaths(isCategory, subelement.children);\n }\n isCategory ? subelement.path = this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name)) : null;\n return subelement;\n });\n return result;\n }\n\n private async getSections() {\n await this.connection.get(this.sectionsApi()).toPromise().then(\n response => {\n let sections = response.filter(item => item.code != 'home');\n sections = sections.map(section => this.appendSection(section));\n this.sectionsSubject.next(sections);\n }\n ).catch(() => this.categoriesSubject.next([]));\n this.optionLoaded('sections');\n }\n\n private appendSection(section) {\n let data: any = {};\n if (section.pages?.length) {\n data.type = 'sub';\n data.children = section.pages.map(page => {\n return {\n code: page.code,\n name: page.name,\n type: 'link',\n path: this.constants.getSectionsRoute() + page.code,\n // path: this.constants.getSectionsRoute() + page.slug,\n }\n });\n data.title = section.name;\n data.name = section.name;\n data.path = this.constants.getSectionsRoute() + section.code;\n data.code = section.code;\n } else {\n data.code = section.code;\n data.title = section.name;\n data.type = 'link';\n data.children = [];\n data.path = this.constants.getSectionsRoute() + section.code;\n }\n return data;\n }\n\n public getSectionContentByLink = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n catchError(e => of(false))\n );\n\n public getSectionContentByLinkAsPromise = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n ).toPromise().catch(e => null);\n\n public getFAQ = () => {\n return this.connection.get(this.faqsApi()).pipe(map(response => {\n let result: FAQ[] = [];\n response.forEach(response_faq => {\n let faqs: FAQ = {\n code: response_faq.code,\n position: response_faq.position,\n title: response_faq.translations[this.constants.getLocale()].topic,\n questions: response_faq.frequentlyAskedQuestions.map(asked_question => ({\n code: asked_question.code,\n position: asked_question.position,\n question: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].question : '',\n answer: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].answer : '',\n }))\n };\n result.push(faqs);\n })\n return result;\n }));\n }\n\n private optionLoaded(key) {\n const allReady = (options) => Object.keys(options).every(option_key => state.options[option_key]);\n let state = this.readySubject.value;\n state.options[key] = true;\n this.readySubject.next({ options: state.options, readyAll: allReady(state.options) })\n }\n\n private isSubElement = (array, code) => {\n let element = array.find(element => element.code == code);\n return (element && element.code) || (array.children && this.isSubElement(array.chidren, code));\n }\n\n private findCode = (slug, elements) => {\n let element = elements.find(elem => elem.slug == slug);\n if (element) return element.code;\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n element = this.findCode(slug, elem.children);\n }\n return element || false;\n });\n return element;\n }\n\n getCodeBySlug = (slug) => {\n let code = this.findCode(slug, this.generateMenu(this.categoriesSubject.value));\n if (!code) code = this.findCode(slug, this.generateMenu(this.attributesSubject.value));\n return code || slug;\n }\n\n getHigher = (code) => {\n let higher_code;\n higher_code = this.data.find(element => !(element.code == code) && !this.isSubElement(element.children, code)).code;\n return higher_code || 'default';\n }\n\n /**\n * @private\n * APIS\n */\n\n private cmsBase = () => 'cms/' + this.constants.getLocale();\n private cmsChannel = () => 'cms/' + this.constants.getChannel();\n private shopApi = () => 'shop-api/' + this.constants.getChannel();\n\n private faqsApi = () => 'cms/' + this.constants.getChannel() + '/faq';\n // private sectionsApi = () => this.cmsBase() + '/sections/';\n private sectionsApi = () => this.cmsChannel() + '/sections/' + '?locale=' + this.constants.getLocale();\n private sectionByCodeApi = (code) => this.cmsBase() + '/pages/' + code;\n // private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private taxonsApi = () => this.shopApi() + '/taxons/' + '?locale=' + this.constants.getLocale();\n private attributesApi = () => this.shopApi() + '/attributes-list' + '?locale=' + this.constants.getLocale();\n\n /**\n * @public\n * UTILS\n */\n\n addAttributesSlug = (attributes) => attributes.map(\n attribute => { return { ...attribute, children: attribute.children.map(child => { return { ...child, slug: this.slugify(child.name) } }) } }\n );\n\n slugify = (text: string) => this.removeAccents(text.toLowerCase().replace(/ & /g, ' ').replace(/ /g, '-').replace(/\\//g, '-').replace(/ñ/g, 'n'));\n\n generateMenu = (elements) => {\n return elements.map(subelement => {\n let result;\n (subelement.children && subelement.children.length == 0) ? result = {\n ...subelement,\n title: subelement.name,\n path: subelement.path,\n type: 'link',\n }\n : result = {\n ...subelement,\n title: subelement.name,\n type: 'sub',\n path: subelement.path,\n children: (subelement.children ? this.generateMenu(subelement.children) : [])\n };\n return result;\n });\n }\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n\n getBreadcrumb = (code) => {\n if (!code) return null;\n let breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.categoriesSubject.value), []);\n if (!breadcrumb || !breadcrumb.length) breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.attributesSubject.value), []);\n return (breadcrumb && breadcrumb.length) && breadcrumb.reverse();\n }\n\n getBreadcrumbByFilters = (filters: Filter[]) => {\n let final_result = [];\n filters.forEach(filter => {\n let result = filter.getSelectedList();\n if (!result || !result.length) return;\n\n if (filter.type() == 'category') final_result.unshift(...this.generateBreadcrumb(result[0], filter.data, []).reverse());\n else result.forEach(\n code => {\n let breadcrumb = this.generateBreadcrumb(code, filter.data, [])\n breadcrumb.length && final_result.push(breadcrumb[0]);\n }\n );\n });\n\n return final_result;\n }\n\n private generateBreadcrumb = (code, elements, result) => {\n let element = elements.find(elem => elem.code == code);\n if (element) {\n result.push(element);\n }\n else {\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n const length = result.length;\n let new_result = this.generateBreadcrumb(code, elem.children, result);\n if (new_result.length > length) {\n result = new_result;\n result.push(elem);\n return true;\n }\n }\n return false;\n })\n }\n return result;\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { OptionsService } from \"../../services/options.service\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class AttributesFilter extends Filter {\n\n data: FilterElement[] = [];\n raw_data;\n multi = false;\n\n constructor(private attributes$: Observable<any>, formatter, initial_value?) {\n super();\n this.attributes$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n setContent = (attributes, original?, initial_value?) => {\n attributes.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = attributes;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n type = (): FilterType => 'attributes';\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&attributeCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&attributeCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&attributeCodes=', '');\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class DynamicsFilter extends Filter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = true;\n\n type = (): FilterType => 'dynamics';\n\n setContent = (options) => {\n options = options.map(option => option = this.createElement(option));\n this.data = options;\n }\n\n createElement = (option) => {\n option = {\n title: option.label, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map(value => {\n return {\n title: value.code,\n description: value.name,\n code: (option.code + ' ' + value.name),\n type: 'child',\n value: value.code,\n selected: false\n }\n })\n }\n return option;\n }\n\n holi = () => {\n\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&optionCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&optionCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&optionCodes=', '');\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class SortFilter extends Filter {\n\n data : FilterElement[] = [];\n multi = true;\n\n constructor() {\n super();\n this.setContent();\n }\n\n type = () : FilterType => 'sort';\n\n setContent = () => {\n this.data = [\n {\n title: 'price', type: 'sub', multi: false, code: 'price' ,shape: 'text', children: [\n { title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false },\n { title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false }\n ]\n },\n {\n title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [\n { title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false },\n { title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false }\n ]\n }\n ]\n }\n\n getContent = () : FilterElement[] => this.data;\n \n toUrlParams = (actual_url = '', sublist?, father?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub') {\n const result = this.toUrlParams(actual_url, element.children, element.title);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if(element.selected) {\n actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);\n }\n })\n return actual_url;\n };\n\n // UTILS\n\n translate = (value) => {\n switch(value) {\n case 'price': return 'price';\n case 'created-date': return 'createdAt';\n case 'alphabetical-order': return 'name';\n }\n }\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscriber } from 'rxjs';\r\nimport 'rxjs/add/operator/map';\r\nimport { ConnectionService } from '../../api/connection.service';\r\nimport { Constants } from '../../core.consts';\r\nimport { Product } from '../../interfaces/product';\r\nimport { FilterOptionValue, FilterOption } from '../../interfaces/choose-options/filter-option';\r\nimport { FilterType, FilterElement, DefaultFilter } from '../../interfaces/filter';\r\nimport { PaginationService } from '../pagination.service';\r\nimport { CategoryFilter } from '../../classes/filters/CategoryFilter';\r\nimport { OptionsService } from '../options.service';\r\nimport { AttributesFilter } from '../../classes/filters/AttributesFilter';\r\nimport { DynamicsFilter } from '../../classes/filters/DinamycsFilter';\r\nimport { SortFilter } from '../../classes/filters/SortFilter';\r\nimport { Filter } from '../../classes/filters/Filter';\r\nimport 'rxjs/add/operator/catch';\r\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\r\n\r\n\r\n// Get product from Localstorage\r\nlet products : any = {};\r\ntype order_type = 'asc' | 'desc';\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n\r\n /** ATTRIBUTES */\r\n private subscription;\r\n private productsSubject: BehaviorSubject<Product[]> = new BehaviorSubject([]);\r\n private filtersSubject: BehaviorSubject<Filter[]> = new BehaviorSubject([]);\r\n\r\n public currency = 'USD';\r\n public catalogMode: boolean = false;\r\n public products$ = this.productsSubject.asObservable();\r\n public filters$ = this.filtersSubject.asObservable();\r\n\r\n\r\n private search_value :String;\r\n\r\n /** APIS */\r\n\r\n latestProductsByCategoryApi = (category) => 'shop-api/' + this.constants.getChannel() + '/taxon-products/by-code/' + category;\r\n latestProductsApi = () => 'shop-api/' + this.constants.getChannel() + '/product-latest/';\r\n specificProductApi = (code, variant) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/' + (variant ? 'variant/' : '') + code + '?locale=' + this.constants.getLocale();\r\n productsBySpecialMarkApi = (specialmark) => 'shop-api/' + this.constants.getVersion() + '/' + this.constants.getChannel() + '/special-marks/' + specialmark + '/products/';\r\n relatedProductsApi = (key) => 'shop-api/' + this.constants.getChannel() + '/products/related/by-code/' + key + '?locale=' + this.constants.getLocale();\r\n productVariantApi = (code) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/variant/' + code;\r\n latestProductsByAttributeApi = (attribute) => 'shop-api/' + this.constants.getChannel() + '/products/by-attribute/' + attribute;\r\n productSearchApi = () => 'shop-api/' + this.constants.getChannel() + '/product-search/';\r\n cmsRelatedProductsApi = (page) => 'cms/' + this.constants.getLocale() + '/' + this.constants.getChannel() + '/page/' + page + '/product-related';\r\n productsFilterApi = (filters = '') => 'shop-api/' + this.constants.getChannel() + '/product-search/' + '?locale=' + this.constants.getLocale() + filters;\r\n\r\n constructor(private connection: ConnectionService, private constants: Constants, private pagination: PaginationService, private options: OptionsService) { }\r\n\r\n /** FUNCTIONS */\r\n\r\n getLatestProducts = (limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsApi()) :\r\n this.connection.getWithLimit(this.latestProductsApi(), limit);\r\n\r\n getLatestProductsByCategory = (category: string, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsByCategoryApi(category)) :\r\n this.connection.getWithLimit(this.latestProductsByCategoryApi(category), limit);\r\n\r\n getPaginated = (limit: string, page: string): Observable<any> =>\r\n this.connection.getPaginated(this.latestProductsApi(), limit, page);\r\n\r\n getSpecificProduct = (code: string, variant: boolean): Observable<any> =>\r\n this.connection.get(this.specificProductApi(code, variant));\r\n\r\n getProductsBySpecialMark = (specialmark, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.productsBySpecialMarkApi(specialmark)) :\r\n this.connection.getWithLimit(this.productsBySpecialMarkApi(specialmark), limit);\r\n\r\n getRelatedProducts = (key: string): Observable<any> =>\r\n this.connection.get(this.relatedProductsApi(key));\r\n\r\n getProductVariant = (code: string) =>\r\n this.connection.get(this.productVariantApi(code));\r\n\r\n getlatestProductsByAttribute = (attribute) =>\r\n this.connection.get(this.latestProductsByAttributeApi(attribute));\r\n\r\n getSearchedProducts = (content) => {\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.generateFinalApi(content), products?.limit || 8);\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n }\r\n\r\n getCMSRelatedProducts = (page) =>\r\n this.connection.get(this.cmsRelatedProductsApi(page)).catch((err) => of(null));\r\n\r\n getProductsSearched = (search_value, filters?: FilterType[]) => {\r\n this.getProductsForFilter(null, filters, search_value);\r\n }\r\n\r\n /**\r\n * @param products \r\n * @param filters \r\n * @param search_value \r\n * @param defaultFilters \r\n */\r\n getProductsForFilter = (products?: { type?: string, value?: string, limit?: number, latest?: boolean }, filters?: FilterType[], search_value?, defaultFilters?: DefaultFilter[]) => {\r\n this.productsSubject.next([]);\r\n search_value ? this.search_value = search_value : this.search_value = ''; \r\n filters && this.setFilters(products, filters, defaultFilters);\r\n this.pagination.initialize(this.generateFinalApi(search_value), products?.limit || 8);\r\n this.subscription && this.subscription.unsubscribe();\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n this.filtersSubject.value.some(filter => filter.type() == 'dynamics')\r\n ? this.pagination.getNext(this.updateDynamicFilters)\r\n : this.pagination.getNext();\r\n }\r\n\r\n setFilters = (products, filters: FilterType[], defaultFilters?: DefaultFilter[]) => {\r\n let final_filters: Filter[] = [];\r\n if (filters?.includes('all')) filters = ['attributes', 'category', 'dynamics', 'sort'];\r\n filters?.forEach(filter => final_filters.push(this.getFilterInstance(filter, products)));\r\n defaultFilters?.forEach(filterDefault => {\r\n let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);\r\n filter && filterDefault.codes.forEach(value => filter.setSelected(value));\r\n })\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getFilterInstance = (filter: string, products): Filter => {\r\n let instance: Filter;\r\n switch (filter) {\r\n case 'category': instance = new CategoryFilter(this.options.categories, this.options.generateMenu, (products.type == 'categories' && products.value)); break;\r\n case 'attributes': instance = new AttributesFilter(this.options.attributes, this.options.generateMenu, (products.type == 'attributes' && products.value)); break;\r\n case 'sort': instance = new SortFilter(); break;\r\n case 'dynamics': instance = new DynamicsFilter(); break;\r\n }\r\n return instance;\r\n }\r\n\r\n updateDynamicFilters = (request) => {\r\n if (!request.options) return;\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == 'dynamics');\r\n index && final_filters[index].setContent(request.options);\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getNext = (): boolean => !this.pagination.isFinished() && this.pagination.getNext();\r\n\r\n setFilterSelected = (filterObj: Filter, filterElem: FilterElement) => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == filterObj.type());\r\n final_filters[index].setSelected(filterElem, filterElem.value);\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n updateProductsForFilter = () => {\r\n this.pagination.waiting = true;\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.search_value ? this.generateFinalApi(this.search_value) : this.generateFinalApi() );\r\n this.pagination.getNext();\r\n // SI SE ACTUALIZARAN LOS FILTROS DINAMICOS EN EL FUTURO\r\n // let filtersObj = this.filtersSubject.value;\r\n // filtersObj.some(filter => filter.type() == 'dynamics') \r\n // ? this.pagination.getNext(this.updateDynamicFilters) \r\n // : this.pagination.getNext();\r\n }\r\n\r\n /**\r\n * \r\n * @param products Array. Lista de productos.\r\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\r\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\r\n * @returns arreglo con los productos desdoblados por la opción solicitada. \r\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \r\n * \r\n * @description Recibe una lista de productos y retorna los mismos productos tantas veces como variantes tenga. \r\n * cada producto retornado tendrá una única variante.\r\n */\r\n getProductsWithUniqueVariant = (products, withOption: ParamsProductsWithUniqueVariant = { type: 'color' , code: 'color' , defaultFirstOption:false , checkIfStock:true }) => {\r\n\r\n !withOption['code'] && withOption['type'] && (withOption['code'] = withOption['type']) || !withOption['code'] && (withOption['code'] = 'color')\r\n !withOption['type'] && withOption['code'] && (withOption['type'] = withOption['code']) || !withOption['type'] && (withOption['type'] = 'color')\r\n !withOption.hasOwnProperty('defaultFirstOption') && (withOption['defaultFirstOption'] = false)\r\n !withOption.hasOwnProperty('checkIfStock') && (withOption['checkIfStock'] = true)\r\n\r\n let productsUniqueVariant = [];\r\n products.forEach(product => {\r\n let variants = [...product?.variants];\r\n let option = product.options.find(opt => opt.type.toLowerCase() === withOption.type.toLowerCase());\r\n \r\n if (option) {\r\n option.values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type.toLowerCase() == withOption.type.toLowerCase()).values = [{ code: optionValue.code, name: optionValue.name}];\r\n //busco una variante con ese code para asignarle la lista de imagenes\r\n let variantAux = variants.find(\r\n variant => ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(withOption.code.toLowerCase()) || op.hasOwnProperty(withOption.code.toUpperCase())) \r\n && (op[withOption.code.toLowerCase()] || op[withOption.code.toUpperCase()]) === optionValue.code)\r\n \r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n if (withOption.defaultFirstOption && product.options?.length) {\r\n let firstOptions = product.options[0]\r\n product.options[0].values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type == firstOptions.type).values = [{ code: firstOptions.code, name: firstOptions.name }];\r\n let variantAux = variants.find(\r\n variant => {\r\n return ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(firstOptions.code.toLowerCase()) || op.hasOwnProperty(firstOptions.code.toUpperCase())) \r\n && (op[firstOptions.code.toLowerCase()] || op[firstOptions.code.toUpperCase()]) === optionValue.code)\r\n }\r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n productsUniqueVariant.push(product)\r\n }\r\n\r\n }\r\n })\r\n return productsUniqueVariant.length > 0 ? productsUniqueVariant : products;\r\n }\r\n\r\n productWithVariantValues = (product, variant, optionValue) => {\r\n product.picturesdefault = variant.images\r\n product.variant_id = variant.code; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.stock = variant.stock || 0; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.currentOption = {\r\n ...optionValue,\r\n productCode: product.id,\r\n variantCode: variant.code,\r\n stock: variant.stock || 0,\r\n finalPrice: variant.saleprice || variant.price || 0,\r\n }\r\n return product\r\n }\r\n\r\n\r\n cleanAllFilters = () => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n final_filters.forEach(filter => filter.reset());\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n /** UTILS AND FILTERING */\r\n\r\n isWaiting = () => this.pagination.waiting;\r\n isFinished = () => this.pagination.isFinished();\r\n\r\n generateFinalApi = (search_value?) => {\r\n let extra_params = '';\r\n this.filtersSubject.value.forEach(filter => {\r\n const extra = filter.toUrlParams();\r\n extra.split('=')[1] != '' ? extra_params += extra : null;\r\n })\r\n if (search_value) extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);\r\n return this.productsFilterApi(extra_params);\r\n }\r\n\r\n finished = (): Observable<boolean> => this.pagination.finished$;\r\n\r\n getTotal = () => this.pagination.total;\r\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { OptionsService } from './options.service';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class BannerService {\n\n private bannerSubject = new BehaviorSubject<any>({ banners: [], button_route: '' });\n private type;\n private code;\n\n public banner = this.bannerSubject.asObservable();\n\n bannersByTaxonApi = (taxon) => 'api/' + this.constants.getVersion() + '/banners/by-taxon/' + taxon;\n bannersByAttributeApi = (attribute) => 'api/' + this.constants.getVersion() + '/banners/by-attribute/' + attribute;\n\n constructor(private connection: ConnectionService, private constants: Constants, private optionsService: OptionsService) {\n // Get available methods of instance, and update this.methods\n }\n\n getBanner = (type, code) => {\n this.type = type;\n this.code = code;\n if (type && code) {\n if (type == 'taxon' || type == 'categories') {\n this.loadBannersByTaxon(code);\n } else {\n this.loadBannersByAtrribute(code);\n }\n }\n }\n\n getBannersByTaxon(taxon: string): Observable<any> {\n return this.connection.get(this.bannersByTaxonApi(taxon)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(taxon)))\n ));\n }\n\n getBannersByAttribute(attribute): Observable<any> {\n return this.connection.get(this.bannersByAttributeApi(attribute)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(attribute)))\n ));\n }\n\n loadBannersByTaxon(taxon) {\n this.getBannersByTaxon(taxon).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n loadBannersByAtrribute(attribute) {\n this.getBannersByAttribute(attribute).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n private procesateBanners(banners) {\n let final_banners = [];\n banners.forEach(banner => final_banners.push(banner.translations.filter(res => res['locale'] == this.constants.getLocale())[0]));\n let button_route = '/collection/' + (this.type == 'taxon' ? 'categories' : 'attributes') + '/' + this.code;\n this.bannerSubject.next({ banners: final_banners, button_route });\n }\n\n getImage = (banner) => (this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getImageFull = (banner) =>\n this.constants.getUrlBase() + ((this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName);\n\n mobile = () => window.innerWidth < 750;\n\n\n}\n","import { Deserializable } from '../interfaces/deserializable';\n\nexport class User implements Deserializable {\n\n private readonly USER = 'USER';\n public type = 'loguedin';\n public config = {};\n public client_id = 'demo_client';\n public client_secret = 'secret_demo_client';\n public grant_type = 'password';\n public email = '';\n public username = '';\n public password = '';\n public first_name = '';\n public last_name = '';\n public address = { country: '', city: '', state: '', address: '', postcode: '' };\n public birthday = '';\n public gender = '';\n public phone_number = '';\n public suscribed_to_newsletter: boolean = true;\n public document_type? = '';\n public preferred_card? = '';\n public document_number? = '';\n public channels = []\n public customers = []\n public token = '';\n public typeUser? = null;\n\n initilized = res => {\n this.token = res.token\n this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'\n this.username = res.username\n this.email = res.username\n this.channels = res.channels || []\n this.customers = res.customers || []\n }\n\n isWholesaler = () => this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false\n\n isSeller = () => this.typeUser && this.typeUser == 'seller' || false\n\n isRetailCustomer = () => this.typeUser && this.typeUser == 'retail_customer' || false\n\n deserialize(input: any): this {\n return Object.assign(this, input);\n }\n\n jsonify() {\n return {\n client_id: this.client_id,\n client_secret: this.client_secret,\n grant_type: this.grant_type,\n username: this.username,\n email: this.email,\n password: this.password,\n token: this.token,\n typeUser: this.typeUser,\n channels: this.channels,\n customers: this.customers\n }\n }\n\n removePassword() {\n this.password = '';\n }\n\n needsAuth() {\n return this.type == 'loguedin';\n }\n\n toForm = () => {\n return {\n firstName: this.first_name,\n lastName: this.last_name,\n phoneNumber: this.phone_number,\n email: this.email,\n documentType: this.document_type,\n documentNumer: this.document_number,\n street: this.address.address,\n countryCode: this.address.country,\n city: this.address.city,\n provinceName: this.address.state,\n postcode: this.address.postcode\n }\n }\n\n persistInStorage = (key = this.USER) => {\n try {\n const json = this.jsonify()\n const str = JSON.stringify(json)\n localStorage.setItem(key, JSON.stringify(this.jsonify()))\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n loadFromStorage = (key = this.USER) => {\n if (localStorage.getItem(key)) {\n this.deserialize(JSON.parse(localStorage.getItem(key)));\n return true\n }\n return false\n }\n\n removeFromStorage = (key = this.USER) => {\n try {\n localStorage.removeItem(key);\n console.log('usuario removido');\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n public setChannels = (...channels) => this.channels = channels\n\n}","import { StepI, StepState, StepTypeI } from \"../../interfaces/step\";\n\nexport class Step implements StepI {\n\n public name;\n public priority;\n public type: StepTypeI;\n public data;\n public state: StepState = 'pending';\n\n constructor(name, priority) {\n this.name = name;\n this.priority = priority;\n }\n\n doing = () => {\n this.data = null;\n this.state = 'doing';\n };\n\n restart = () => {\n this.data = null;\n this.state = 'pending';\n }\n\n ready = (data) => {\n this.data = data;\n this.state = 'ready';\n }\n\n isPending = () => this.state == 'pending' || this.state == 'doing';\n\n isReady = () => this.state == 'ready' && this.data;\n}","import { Injectable } from '@angular/core';\nimport { CheckoutData, CheckoutDataType } from '../interfaces/checkout-data';\n\n@Injectable()\nexport class OrderUtilityService {\n\n constructor() { }\n\n /**\n * @param cart Objeto carrito o orden, indistintamente, ya que poseen el mismo formato\n * @param forCart Si la solicitud de promociones proviene del carrito, suprime el subtotal y el total\n * @description Devuelve un listado con todas las promociones que posee el carro/orden\n */\n getPromotions = (cart: any, forCart: boolean = false): CheckoutData[] => {\n if (cart.checkoutState && cart.checkoutState == \"completed\") return;\n let new_state: CheckoutData[] = [];\n let subtotal: CheckoutData = { type: 'subtotal', name: 'subtotal', amount: cart.totals.items };\n let total: CheckoutData = { type: 'total', name: 'total', amount: cart.totals.total };\n !forCart && new_state.push(subtotal);\n cart.cartDiscounts.forEach(cartDiscount => {\n cartDiscount.type = this.formatType(cartDiscount.type);\n new_state.push({\n type: cartDiscount.type,\n name: (cartDiscount.type != 'coupon') ? cartDiscount.name : 'coupon',\n amount: this.getAmount(cartDiscount, cart)\n });\n });\n !forCart && new_state.push(total);\n return new_state;\n }\n\n getAmount = (discount, cart): number => {\n if (discount.type != 'shipment') return discount.amount;\n return cart.totals.shipping;\n }\n\n formatType = (type: string): CheckoutDataType => {\n let result;\n switch (type) {\n case 'order_promotion': result = 'discount'; break;\n case 'order_shipping_promotion': result = 'shipment'; break;\n case 'order_coupon_promotion': result = 'coupon'; break;\n case 'order_unit_promotion': result = 'discount'; break;\n }\n !result && (result = type.includes('promotion') || type.includes('discount') ? 'discount' : type )\n return result || type;\n }\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class DopplerService {\n\n private isLoaded = false;\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixelSrc) => {\n this.isLoaded = true\n let scriptInsert = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptInsert, 'type', 'text/javascript');\n this.renderer.setAttribute(scriptInsert, 'async', 'async');\n this.renderer.setAttribute(scriptInsert, 'src', pixelSrc);\n this.renderer.appendChild(this.document.body, scriptInsert);\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { FacebookPixelData } from '../../interfaces/analytics/facebook-pixel/facebook-pixel-model';\n\ndeclare let fbq: Function;\n\n@Injectable()\nexport class FacebookPixelService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_id) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `!function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', ${pixel_id});`;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n this.enabled = true;\n setTimeout(() => this.callEvent('initialize'), 1000);\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && fbq('track', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'initialize': return 'PageView';\n case 'view_item': return 'ViewContent';\n case 'checkout_init': return 'InitiateCheckout';\n case 'payment_info': return 'AddPaymentInfo';\n case 'purchase': return 'Purchase';\n case 'add_to_cart': return 'AddToCart';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'initialize': return data;\n case 'view_item': return this.toViewContent(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n default: return data;\n }\n }\n \n callCustomEvent = (event_name, data: FacebookPixelData = {}) => {\n if (!this.enabled) return;\n fbq('trackCustom', event_name, data);\n }\n \n disable = () => this.enabled = false;\n\n private toViewContent = (data) => {\n let lastProduct = data?.name || 'not-product'\n return {\n content_type: 'product',\n content_name: lastProduct,\n content_ids: [data.variants[0]?.code],\n currency: data.currency || \"USD\",\n value: data.variants[0]?.saleprice || data.variants[0]?.price,\n //product_catalog_id: 'TEST'\n }\n }\n \n private toPurchase = (data) => {\n return { \n currency: data.currency || \"USD\",\n value: data.totals?.total || 0 ,\n content_type: 'product_group',\n contents: this.getContents(data),\n //product_catalog_id: 'TEST'\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n num_items: data.items?.length || 0,\n value: data.totals?.total || 0 ,\n }\n }\n\n private toPaymentInfo = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n }\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]?.product?.name || 'not-product'\n return {\n content_name: lastProduct,\n content_type: 'product',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n //product_catalog_id: 'TEST'\n\n }\n }\n\n private getContents = (data) => {\n return data.items.map(\n item => {\n return {\n id: item.product.variants[0]?.code,\n quantity: item.quantity\n }\n }\n )\n }\n\n private getContentIds = (data) => {\n return data.items.map(\n item => item.product.variants[0]?.code\n )\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { ProductsService } from '../../services/products/products.service';\n\ndeclare var gtag: Function;\ndeclare var dataLayer: any[];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleAnalyticsService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any,\n private router: Router, private productsService: ProductsService) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize(gtm_id: string) {\n const declaration = this.renderer.createElement('script');\n declaration.async = true;\n declaration.src = `https://www.googletagmanager.com/gtag/js?id=${gtm_id}`;\n const initialization = this.renderer.createElement('script');\n initialization.text = `window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '${gtm_id}')`;\n this.renderer.appendChild(this.document.head, initialization);\n this.renderer.appendChild(this.document.head, declaration);\n this.enabled = true;\n setTimeout(() => this.startListeningPageViews(gtm_id), 1000);\n }\n\n private startListeningPageViews = (gtm_id) => {\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n gtag('config', gtm_id, {\n 'page_path': event.urlAfterRedirects\n })\n })\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && gtag('event', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item';\n case 'view_item_list': return 'view_item_list';\n case 'checkout_init': return 'begin_checkout'; \n case 'shipping_info': return 'add_shipping_info';\n case 'add_payment_info': return 'add_payment_info';\n case 'purchase': return 'purchase';\n case 'add_to_cart': return 'add_to_cart';\n case 'remove_from_cart': return 'remove_from_cart';\n case 'sign_up': return 'sign_up';\n default: return null;\n //default: return event_name;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item': return this.toViewItem(data);\n case 'view_item_list': return this.toViewItemList(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'shipping_info': return this.toShippingInfo(data);\n case 'add_payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n case 'remove_from_cart': return this.toRemoveToCart(data);\n case 'sign_up': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n // console.log('toPurchese', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency,\n // shipping: data.totals.shipping,\n // tax: data.totals.taxes,\n // value: data.totals.total,\n // transaction_id: data.number,\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // }))\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n // console.log('toInitcheckout', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency || \"USD\",\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // })),\n // value: data.totals?.total || 0,\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity:lastProduct.quantity,...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n // console.log('addtocart', {\n // data,\n // currency: data.currency || \"USD\",\n // items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n // value: lastProduct.total || 0,\n // });\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n // console.log('view ', {\n // currency: product.currency,\n // items: [this.toItem(product)],\n // value: product.variants[0]?.saleprice || product.variants[0]?.price,\n // });\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n // console.log('toViewItemList ', {\n // items: data.products.map(product => this.toItem(product)),\n // item_list_name: data.item_list_name || 'Collection',\n // item_list_id: data.item_list_id || 'collection'\n // });\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n // console.log('remove_from_cart ', {\n // currency: product.currency || \"USD\",\n // items: [this.toItem({ quantity: product.quantity, ...productParam })],\n // value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n // });\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}","import {Inject, Injectable, Optional} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport {GoogleTagManagerConfig} from '../../interfaces/analytics/gtm-config';\n\n@Injectable({providedIn: 'root'})\nexport class GTMService {\n private isLoaded = false;\n private enabled = false;\n\n\n private config : GoogleTagManagerConfig = { id: null };\n\n private browserGlobals = {\n windowRef(): any {\n return window;\n },\n documentRef(): any {\n return document;\n }\n };\n\n constructor(private router: Router) {}\n\n public getDataLayer(): any[]{\n const window = this.browserGlobals.windowRef();\n window.dataLayer = window.dataLayer || [];\n return window.dataLayer;\n }\n\n private pushOnDataLayer(obj : object): void {\n const dataLayer = this.getDataLayer();\n dataLayer.push(obj);\n }\n\n public addGtmToDom(): Promise < boolean > {\n return new Promise(\n (resolve, reject) => {\n if (this.isLoaded) {\n return resolve(this.isLoaded);\n }\n const doc = this.browserGlobals.documentRef();\n this.pushOnDataLayer({'gtm.start': new Date().getTime(), event: 'gtm.js'});\n\n const gtmScript = doc.createElement('script');\n gtmScript.id = 'GTMscript';\n gtmScript.async = true;\n gtmScript.src = this.applyGtmQueryParams(this.config.gtm_resource_path ? this.config.gtm_resource_path : 'https://www.googletagmanager.com/gtm.js');\n gtmScript.addEventListener('load', () => {\n return resolve(this.isLoaded = true);\n });\n gtmScript.addEventListener('error', () => {\n return reject(false);\n });\n doc.head.insertBefore(gtmScript, doc.head.firstChild);\n }\n );\n }\n\n public initialize = (config : GoogleTagManagerConfig) => {\n this.config = config || this.config;\n this.addGtmToDom().then(() => {\n this.router.events.forEach(item => {\n if (item instanceof NavigationEnd) {\n const gtmTag = {\n event: 'page',\n pageName: item.url\n };\n this.pushTag(gtmTag);\n }\n });\n })\n }\n\n public pushTag(item : object): Promise < void > {\n return new Promise<void>((resolve, reject) => {\n if (!this.isLoaded) {\n this.addGtmToDom().then(() => {\n this.pushOnDataLayer(item);\n return resolve();\n }).catch(() => reject());\n } else {\n this.pushOnDataLayer(item);\n return resolve();\n }\n });\n }\n\n private applyGtmQueryParams(url : string): string {\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n return(url + Object.keys(this.config).filter((k) => this.config[k]).map((k) => `${k}=${\n this.config[k]\n }`).join('&'));\n }\n\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.isLoaded) return;\n let event = this.translateEventName(event_name);\n event && this.pushTag({ 'event': this.translateEventName(event_name), data: this.evalEvent(event_name, data) })\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item_gtm';\n case 'view_item_list': return 'view_item_list_gtm';\n case 'checkout_init': return 'begin_checkout_gtm';\n case 'shipping_info': return 'add_shipping_info_gtm';\n case 'add_payment_info': return 'add_payment_info_gtm';\n case 'purchase': return 'purchase_gtm';\n case 'add_to_cart': return 'add_to_cart_gtm';\n case 'remove_from_cart': return 'remove_from_cart_gtm';\n case 'sign_up': return 'sign_up_gtm';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item_gtm': return this.toViewItem(data);\n case 'view_item_list_gtm': return this.toViewItemList(data);\n case 'checkout_init_gtm': return this.toCheckoutInit(data);\n case 'shipping_info_gtm': return this.toShippingInfo(data);\n case 'add_payment_info_gtm': return this.toPaymentInfo(data);\n case 'purchase_gtm': return this.toPurchase(data);\n case 'add_to_cart_gtm': return this.toAddToCart(data);\n case 'remove_from_cart_gtm': return this.toRemoveToCart(data);\n case 'sign_up_gtm': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n countItems: data.items?.length || 0,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MetricoolPixel } from \"../../interfaces/analytics/metricool-pixel\";\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class MetricoolPixelService {\n private isLoaded = false;\n\n\n\n private renderer: Renderer2;\n\n \n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_hash) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `\n function loadScript(a) {\n var b = document.getElementsByTagName(\"head\")[0], c = document.createElement(\"script\");\n c.type = \"text/javascript\",\n c.src = \"https://tracker.metricool.com/resources/be.js\",\n c.onreadystatechange = a,\n c.onload = a, b.appendChild(c)\n } loadScript(function () {\n beTracker.t({ hash: \"${pixel_hash}\" })\n });\n `;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { DopplerService } from '../utils/analytics/doppler.service';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { GTMService } from '../utils/analytics/gtm.service';\nimport { MetricoolPixelService } from '../utils/analytics/metricool-pixel.service';\n\n@Injectable()\nexport class AnalyticsService {\n\n private services: any[] = [];\n\n constructor(\n private facebookAnalitycs: FacebookPixelService,\n private googleAnalytics: GoogleAnalyticsService,\n private gtmAnalytics: GTMService,\n private metricoolAnalytics:MetricoolPixelService,\n private dopplerAnalytics:DopplerService) {\n this.services.push(this.facebookAnalitycs);\n this.services.push(this.googleAnalytics);\n this.services.push(this.gtmAnalytics);\n }\n\n initializeFacebook = (value) => {\n this.facebookAnalitycs.initialize(value);\n }\n\n initializeGoogle = (value) => {\n this.googleAnalytics.initialize(value);\n }\n\n initializeGTM = (value) => {\n this.gtmAnalytics.initialize({ id: value });\n }\n\n initializeMetricool = (value) => {\n this.metricoolAnalytics.initialize(value);\n }\n\n initializeDoppler = (value) => {\n this.dopplerAnalytics.initialize(value);\n }\n\n callEvent = (event_name: AnalyticEventKey, data: any = {}) => {\n this.services.forEach(service => {\n service.callEvent(event_name, data)\n });\n }\n}","import { Injectable, Injector } from '@angular/core';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AuthService } from '../auth.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandlerService {\n\n private errorSubject = new BehaviorSubject<BodyError>(null);\n public error$ = this.errorSubject.asObservable();\n\n constructor(private cartService: CartService,\n private toastrService: ToastrService,\n private injector: Injector,\n private consts: Constants) { }\n\n outOfStock = (error: BodyError) => {\n this.cartService.updateItemsOnError(error.content, error.code)\n this.otherErrors(error)\n }\n\n channeAccessPermissionDenied = (error: BodyError) => {\n this.injector.get(AuthService).logout()\n this.otherErrors(error)\n }\n\n otherErrors = (error: BodyError) => {\n error && error.message && this.errorSubject.next(error)\n this.toastrService.show(error.message,'', {closeButton:true,timeOut:6000})\n this.clearError()\n }\n\n clearError = () => {\n setTimeout(() => {\n this.errorSubject.next(null)\n }, 3000);\n }\n\n handlerErrorResponse = (error: BodyError) => {\n switch (error.code) {\n case 'out_of_stock': this.outOfStock(error); break;\n case 'items_with_product_or_product_variant_not_enabled': this.outOfStock(error); break;\n case 'channel_access_permission_denied': this.channeAccessPermissionDenied(error); break;\n default: this.otherErrors(error); break;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class ToastService {\n\n constructor(private translation: TranslateService, private toastrService: ToastrService) {}\n\n show = (message, interpolateParams: any = {}, title = '', configToastr: Partial<IndividualConfig> = { }) => {\n this.translation.get(message, interpolateParams).pipe(take(1)).subscribe(\n res => this.toastrService.show((res ? res : message), title, configToastr)\n );\n }\n}","import { Injectable, OnInit } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\nimport { StepI, StepTypeI } from '../../interfaces/step';\nimport { Step } from '../../classes/checkout/step';\nimport { CheckoutData, CheckoutDataType } from '../../interfaces/checkout-data';\nimport { OrderUtilityService } from '../../utils/order-util.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { AuthService } from '../auth.service';\nimport { User } from '../../classes/user';\nimport { ErrorHandlerService } from './error-handler.service';\nimport { filter, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ToastService } from '../../utils/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CheckoutService implements OnInit {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n putAddressApi = () => this.baseApi() + '/address';\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n completeApi = () => this.baseApi() + '/complete';\n persistShipmentApi = () => '';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getHasPurchaseConditions = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/has_purchase_conditions';\n\n private canCheckoutSubject = new ReplaySubject<boolean>();\n private onReadySubject = new BehaviorSubject<boolean>(false);\n\n private stateSubject = new BehaviorSubject<Step[]>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private orderSubject = new BehaviorSubject<any>(null);\n private asociatedDataSubject = new BehaviorSubject<CheckoutData[]>(null);\n private order: any;\n private checkout_data: any = {};\n public total;\n private cartLocal;\n private user: User;\n\n public order$ = this.orderSubject.asObservable();\n public state$ = this.stateSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public canCheckout$ = this.canCheckoutSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n public onReady$ = this.onReadySubject.asObservable();\n\n constructor(private connection: ConnectionService,\n private cartService: CartService,\n private consts: Constants,\n private toastrService: ToastService,\n private orderUtils: OrderUtilityService,\n private analyticsService: AnalyticsService,\n public authService: AuthService,\n private router: Router,\n private checkoutError: ErrorHandlerService) {\n\n combineLatest([this.cartService.cartItems, this.cartService.loading]).subscribe(([items, loading]) => {\n if (!loading && items.length > 0) {\n this.canCheckoutSubject.next(true)\n this.cartService.getTotalAmount().subscribe(res => {\n this.total = res;\n });\n }\n\n })\n this.cartService.cart.subscribe(cart => cart && (this.cartLocal = cart) && this.updateAsociatedData(cart));\n this.order$.subscribe(order => order && this.updateAsociatedData(order))\n this.authService.getUserProfile().subscribe(user => this.user = user)\n this.checkoutError.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.toastrService.show('redirect-cart')\n setTimeout(() => {\n this.router.navigateByUrl('/cart')\n }, 3000);\n }\n )\n }\n\n ngOnInit() {\n }\n\n updateOrder = (order) => order && this.orderSubject.next(order);\n\n getStepData = (step_name: StepTypeI) => {\n let step_result = this.stateSubject.getValue().find(step => step.name == step_name);\n return (step_result && step_result.data);\n }\n\n setSteps = (steps: StepI[], autohandle = true) => {\n let final_steps = [];\n steps.forEach((step, i) => final_steps.push(new Step(step.name, step.priority || (i + 1))));\n this.stateSubject.next(final_steps);\n this.connection.getErrorNotHandler(this.getHasPurchaseConditions()).toPromise().then(\n res => {\n this.analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total })\n }\n )\n }\n\n setStepReady = async (step_number, data, order?) => {\n await this.restartAllStepsFrom(step_number);\n setTimeout(() => {\n let steps = this.stateSubject.getValue();\n steps.find(step => step.priority == step_number).ready(data);\n this.stateSubject.next(steps);\n\n if (order) {\n this.orderSubject.next(order);\n this.total = order.totals.total;\n }\n\n this.isCheckoutReady() &&\n setTimeout(() => {\n this.onReadySubject.next(true);\n }, 500);\n }, 150);\n return true;\n }\n\n setStepDoing = async (step_number) => {\n let steps = this.stateSubject.getValue();\n steps = await this.restartAllStepsFrom(step_number, false, false);\n steps.find(step => step.priority == step_number).doing();\n this.stateSubject.next(steps);\n return true;\n }\n\n restartAllStepsFrom = (step_number, included = true, update = true) => {\n let steps = this.stateSubject.getValue();\n steps = steps.map((step) => {\n included\n ? (step.priority >= step_number) && step.restart()\n : (step.priority > step_number) && step.restart()\n return step;\n })\n update && this.stateSubject.next(steps);\n return steps;\n }\n\n isCheckoutReady = () => {\n let steps = this.stateSubject.value;\n const step_missing = steps.find(step => step.isPending());\n return !step_missing;\n }\n\n isStepReady = (step_name) => {\n return this.stateSubject.getValue().find(step => step.name == step_name).isReady()\n };\n\n setOrder = (order) => { this.order = order, this.orderSubject.next(order) };\n getOrder = () => this.order || this.orderSubject.value;\n\n private completeOrder = () => this.connection.put(this.completeApi(), { email: this.checkout_data.email, notes: this.checkout_data.notes || '' }).toPromise();\n\n complete = async () => {\n this.loadingSubject.next(true);\n let result = await this.completeOrder();\n if (result && result.error) {\n this.cartService.changeHaveToUpdate(false);\n this.loadingSubject.next(false);\n return ({ ok: false, require_login: true, message: 'not-completed' });\n }\n this.setOrder(result);\n this.analyticsService.callEvent('purchase', { ...result, currency: result.currency, value: result.total });\n this.cartService.clearAndResetCart();\n this.canCheckoutSubject.next(false);\n this.onReadySubject.next(false);\n this.loadingSubject.next(false);\n return ({ ok: true, require_login: false, message: '' });\n }\n\n updateAsociatedData = (cart: any) => {\n let result = this.orderUtils.getPromotions(cart);\n if (this.authService.getUserProfileAsUser()?.isWholesaler() && cart.totals.taxes != 0) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'taxes',\n name: 'taxes',\n amount: cart.totals.taxes\n }\n result.push(total);\n }\n let shipment = result?.find(promotion => promotion.type == \"shipment\");\n if (!shipment && cart.totals.shipping != 0) {\n\n if (result?.length && !result.find(item => item.type === \"shipment\")) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'shipment',\n name: 'shipment',\n amount: cart.totals.shipping\n }\n result.push(total);\n }\n }\n this.asociatedDataSubject.next(result);\n }\n\n restartCheckout = () => { }\n\n}","import { BodyError } from \"../../interfaces/checkout/checkout-error\";\nimport { CheckoutService } from \"../../services/checkout/checkout.service\";\n\nexport class StepService {\n\n public step_id;\n\n constructor(private checkout: CheckoutService) { }\n\n /** Persistir el id del paso para luego indicarle al CheckoutService quien le habla */\n initialize = (step_id) => {\n this.step_id = step_id;\n }\n\n /** Reinicia información en CheckoutService del paso */\n restartStep = () => this.checkout.setStepDoing(this.step_id);\n\n /**\n * Obtener información obtenida en el paso de datos asociados al usuario y a la facturación\n */\n getUserData = () => this.checkout.getStepData('address');\n\n /**\n * Obtener información obtenida en el paso de envío\n */\n getShipmentData = () => this.checkout.getStepData('shipment');\n\n /**\n * Obtener información obtenida en el paso de pago\n */\n getPaymentData = () => this.checkout.getStepData('payment');\n\n /**\n * \n * @param step_data Información obtenida en el paso\n * @param order Información de la orden que devolvió el backend al terminar el paso\n */\n setStepReady = async (step_data, order) => (await this.restartStep()) && this.checkout.setStepReady(this.step_id, step_data, order);\n\n /**\n * \n */\n //setError = (error: BodyError) => error && this.checkout.handleError(error);\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { Validators } from '@angular/forms';\n\ntype typeForms = 'EUR' | 'ARG';\ntype typeSelectAddres = 'ONLY_LOAD_ADDRESS' | 'ONLY_ADDRESS_SELECTION' | 'LOAD_ADDRESS_AND_SELECTION';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AddressingService extends StepService {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n countriesApi = () => 'shop-api/' + this.consts.getChannel() + '/countries';\n zonesApi = () => 'shop-api/' + this.consts.getChannel() + '/zones';\n provincesApi = () => 'shop-api/' + this.consts.getChannel() + '/provinces';\n putAddressApi = () => this.baseApi() + '/address';\n addressBookApi = () => 'shop-api/' + this.consts.getChannel() + '/address-book';\n headquarterApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() +'/headquarter';\n\n public typeForms: typeForms = 'ARG';\n public modeSelectAddress: typeSelectAddres = 'ONLY_LOAD_ADDRESS';\n public countriesList = [];\n public documentTypes = [];\n public provinceList = [];\n\n constructor(private connection: ConnectionService, private consts: Constants, private cartService: CartService, private checkoutService: CheckoutService,\n private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getAddressingData().then(res => {\n if (res) {\n this.documentTypes = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.documentTypes || []\n this.provinceList = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.provinces || []\n this.countriesList = res\n }\n })\n }\n\n ngOnInit() {\n\n }\n\n getAddressingData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res?._embedded?.items)).toPromise();\n\n getAddressBook = async () =>\n this.connection.get(this.addressBookApi()).pipe(map(res => res?.length && res.map(addres => { return addres && { ...addres, selected: addres.default } }) || null )).toPromise();\n \n setHeadquarter = (sede: any) => {\n return this.connection.put(this.headquarterApi(), sede.selected)\n .pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(sede, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n \n setAddress = (user_data: any) => {\n user_data.locale = this.consts.getLocale();\n return this.connection.put(this.putAddressApi(), user_data).pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(user_data, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n putAddressAndHandle = (user_data, next?, onError?) => {\n user_data.locale = this.consts.getLocale();\n let data = { shippingAddress: { ...user_data.data } };\n this.connection.put(this.putAddressApi(), data).toPromise().then(\n res => {\n this.setStepReady(user_data, res);\n this.analyticsService.callEvent('payment_info', res);\n next && next();\n },\n err => onError && onError(err)\n )\n }\n\n getTypeForm = () => {\n let formsTypeCofig = [\n {\n code: 'EUR',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n terms: [null, Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: false, values: this.documentTypes },\n documentNumber: { enabled: true, required: false, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: true, required: true, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n },\n {\n code: 'ARG',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: true, values: this.documentTypes},\n documentNumber: { enabled: true, required: true, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: false, required: false, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n }\n ]\n return formsTypeCofig.find(ct => ct.code == this.typeForms);\n }\n\n setTypeSelectAddres = (type: typeSelectAddres) => {\n console.log(\"Setting type: \", type)\n this.modeSelectAddress = type && type || 'ONLY_LOAD_ADDRESS'\n\n }\n\n setTypeForms = (type: typeForms) => {\n this.typeForms = type && type || 'ARG' \n }\n}","\nimport { Injectable, Inject, Injector } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from '../api/connection.service';\nimport { AddressingService } from './checkout/addressing.service';\nimport { Constants } from '../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChannelConfigService {\n\n constructor(private consts: Constants, @Inject('env') private env, private connection: ConnectionService, private injector: Injector) {\n this.getChannelConfig()\n this.getChannels()\n this.getLocales()\n }\n\n private channelConfigApi = () => 'shop-api/' + this.consts.getChannel() + '/channel'\n private localesApi = () => 'shop-api/' + this.consts.getChannel() + '/locales'\n private channelsApi = () => 'shop-api/channels'\n\n private channelConfigSubject = new ReplaySubject<any>()\n public channelConfig$ = this.channelConfigSubject.asObservable()\n\n private channelsSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public channels = this.channelsSubject.asObservable()\n\n private localesSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public locales = this.localesSubject.asObservable()\n\n public getChannelConfig = () => {\n this.connection.get(this.channelConfigApi()).toPromise().then(\n res => { this.channelConfigSubject.next(res), res && this.consts.setChannel(res.code) },\n err => this.channelConfigSubject.next({})\n ).catch(err => this.channelConfigSubject.next(null))\n }\n\n public getChannels = () => {\n this.connection.get(this.channelsApi()).toPromise()\n .then(res => this.channelsSubject.next(res))\n .catch(err => this.channelsSubject.next([]))\n }\n\n public getLocales = () => {\n this.connection.get(this.localesApi()).toPromise()\n .then(res => this.localesSubject.next(res.items))\n .catch(err => this.localesSubject.next([]))\n }\n\n public changeChannel = channelObj => {\n console.log(\"Channel: \", channelObj)\n this.consts.modifyChannelConfig({\n channel: channelObj.code,\n locale: channelObj.defaultLocale.code\n /* channeltype: channelObj.type */\n /* currency: channelObj.baseCurrency */\n })\n this.injector.get(AddressingService).setTypeSelectAddres(channelObj.headquarterSelectionOnly || null)\n }\n\n}\n\n","import { Injectable, Injector } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { User } from '../classes/user';\nimport 'rxjs/add/observable/of';\nimport { ToastrService } from 'ngx-toastr';\nimport { Constants } from '../core.consts';\nimport { map, mapTo, catchError, tap } from 'rxjs/operators';\nimport * as moment from \"moment\";\nimport { ChannelConfigService } from './channel-config.service';\nimport { take } from 'rxjs-compat/operator/take';\nimport { CartService } from './cart.service';\nimport { Router } from '@angular/router';\nimport { UserRoleType } from '../classes/user-role-type';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private readonly JWT_TOKEN = 'JWT_TOKEN'\n private readonly REFRESH_TOKEN = 'REFRESH_TOKEN'\n private readonly EXPIRATES_IN = 'EXPIRATES_IN'\n private readonly USER = 'USER'\n private readonly MAIL = 'mail'\n private readonly LOCALE = 'LOCALE'\n private readonly CHANNEL = 'CHANNEL'\n private readonly CUSTOMER = 'CUSTOMER'\n\n /* activeChannelSwitch? */\n private activeChannelChange: boolean = false\n private loggedInSubject = new BehaviorSubject<any>(false)\n private loggingInSubject = new BehaviorSubject<any>(false)\n private userInSubject = new BehaviorSubject<User>(null)\n private channelsUserSubject = new BehaviorSubject<any[]>([])\n /* private customerSubject = new BehaviorSubject<any>(null) */\n private user: User = null\n\n // APIS\n public tokenApi = () => 'shop-api/login_check';\n public registerApi = () => 'shop-api/' + this.constants.getChannel() + '/register';\n public registerWholesalerApi = () => 'shop-api/' + this.constants.getChannel() + '/register-wholesaler';\n public confirmAccountApi = (token) => 'shop-api/' + this.constants.getChannel() + '/verify-account?token=' + token;\n public resetPasswordApi = (token) => 'shop-api/' + this.constants.getChannel() + '/password-reset/' + token;\n public recoverPasswordApi = () => 'shop-api/' + this.constants.getChannel() + '/request-password-reset';\n public countriesApi = () => 'shop-api/' + this.constants.getChannel() + '/countries';\n\n // Atributos utiles\n public waiting = false;\n public loggedIn = this.loggedInSubject.asObservable()\n public loggingIn = this.loggingInSubject.asObservable()\n public userAuth = this.userInSubject.asObservable()\n public channelsUser = this.channelsUserSubject.asObservable()\n /* private customer = this.channelsUserSubject.asObservable() */\n private customer = null\n public channel = null\n public channels = []\n private homeResolver = null\n\n constructor(private connection: ConnectionService,\n private toastrService: ToastrService,\n private constants: Constants,\n private injector: Injector\n ) {\n this.isAuthenticated() && this.loggedInSubject.next(true)\n }\n\n /**\n * @desc Devuelve un observable\n * @param user Objeto que contiene username y password \n */\n login(user: { username: string, password: string }, withRoles: UserRoleType[] = []): Observable<any> {\n this.injector.get(ChannelConfigService).channelConfig$.subscribe(ch => this.channel = ch)\n this.injector.get(ChannelConfigService).channels.subscribe(ch => this.channels = ch)\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n let result = this.connection.post(this.tokenApi(), user).pipe(\n map(res => {\n if (this.channelAccessPermission({ ...user, ...res }) && this.isAllowedRole(withRoles, res.type)) {\n this.doLoginUser({ ...user, ...res })\n return 'ok'\n }\n return 'error'\n }),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n );\n return result\n }\n\n channelAccessPermission = (res) => {\n this.channelsUserSubject.next([])\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n /* if (UserRoleType.SELLER == res.type as UserRoleType) return true */\n\n /* No authorized channels */\n if (res.channels?.length == 0) {\n return false\n }\n /* Some authorized channel(s) including current channel */\n if (res.channels.find(userchannel => userchannel.code === this.channel.code)) {\n /* Multiple authorized channels including current channel */\n if (res.channels?.length > 1 && this.activeChannelChange)\n this.channelsUserSubject.next(res.channels)\n return true\n }\n /* One authorized channel not including current channel */\n if (res.channels?.length == 1 && this.activeChannelChange) {\n delete res.password\n this.channelAccess(res.channels[0], res)\n return true\n }\n /* Multiple authorized channels not including current channel */\n if (this.activeChannelChange) {\n this.channelsUserSubject.next(res.channels)\n return true\n }\n return false\n }\n\n channelAccess = (channel, user = null) => {\n if (window.location.hostname != channel.hostname) {\n let encoded = btoa(JSON.stringify(user != null ? user : this.user))\n window.location.replace(`${window.location.protocol}//${channel.hostname}/auth/redirect/${encoded}`)\n } else {\n this.constants.modifyChannelConfig(channel)\n window.location.reload()\n }\n }\n\n /**\n * @desc Devuelve una promesa\n * @param user Objeto que contiene username y password \n */\n doLogin = (user: { username: string, password: string }) => {\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n return this.connection.post(this.tokenApi(), user).pipe(\n map(res => this.doLoginUser(res)),\n mapTo('ok'),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n ).toPromise();\n }\n\n getUserProfile(): Observable<User> {\n return (this.user && Observable.of(this.user)) || this.getCurrentUser();\n }\n\n getUserProfileAsUser(): User {\n return this.user || this.getCurrentUserAsUser();\n }\n\n private getCurrentUserAsUser(): User {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n else if (this.user?.channels.find(userchannel => userchannel?.code === this.constants.getChannel())) {\n // this.user.channels?.length > 1 && this.channelsUserSubject.next(this.user.channels)\n return this.user;\n } else {\n this.logout()\n //window.location.reload()\n }\n return this.user;\n }\n\n private getCurrentUser(): Observable<User> {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n return Observable.of(this.user);\n }\n\n // private getCurrentUser(): Observable<User> {\n // return this.connection.get('getProfile').map(res => {\n // const user = new User();\n // this.user = user.deserialize(res.data);\n // return user;\n // });\n // }\n\n signUp = (data) => this.connection.post(this.registerApi(), data);\n\n isAuthenticated(): boolean {\n if (this.isTokenExpired()) {\n this.doLogoutUser()\n }\n this.getCurrentUserAsUser()\n this.userInSubject.next(this.user);\n return this.getToken() && !this.isTokenExpired() && this.user != null;\n }\n\n confirmAccount = (token: string) =>\n this.connection.get(this.confirmAccountApi(token));\n\n passwordReset = (new_password, token) => {\n const data = { password: { first: new_password, second: new_password } };\n return this.connection.put(this.resetPasswordApi(token), data);\n }\n\n recoverPassword = (email: string) =>\n this.connection.put(this.recoverPasswordApi(), { email });\n\n /* TOKEN */\n\n logout() {\n this.doLogoutUser();\n }\n\n refreshToken() {\n let data = { ...this.constants.loginExtraData(), refresh_token: this.getRefreshToken() }\n return this.connection.post(this.tokenApi(), data).pipe(map(\n res => this.doLoginUser(res)\n ))\n }\n\n getToken() {\n return localStorage.getItem(this.JWT_TOKEN);\n }\n\n isTokenExpired = () => {\n const fecha_expiracion = this.getExpiratesAt();\n const result = moment() >= moment(fecha_expiracion);\n return result;\n }\n\n getExpiratesAt = () => localStorage.getItem(this.EXPIRATES_IN);\n\n public doLoginUser(tokens) {\n this.user = new User()\n this.user.initilized(tokens)\n this.forceChannelsForSeller(tokens)\n this.user.persistInStorage()\n // localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'days').format());\n // localStorage.setItem(this.REFRESH_TOKEN, tokens.refresh_token);\n localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.REFRESH_TOKEN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.JWT_TOKEN, tokens.token);\n localStorage.setItem(this.MAIL, tokens.username);\n this.userInSubject.next(this.user);\n this.loggedInSubject.next(true);\n this.loggingInSubject.next(false);\n }\n\n public doLogoutUser() {\n this.user = null\n localStorage.removeItem(this.USER);\n localStorage.removeItem(this.EXPIRATES_IN);\n localStorage.removeItem(this.JWT_TOKEN);\n localStorage.removeItem(this.REFRESH_TOKEN);\n localStorage.removeItem('cart_token');\n localStorage.removeItem(this.MAIL);\n localStorage.removeItem(this.CHANNEL);\n localStorage.removeItem(this.LOCALE);\n localStorage.removeItem(this.CUSTOMER);\n localStorage.removeItem('MASTER_CHANNEL');\n this.loggedInSubject.next(false);\n this.userInSubject.next(this.user);\n this.channelsUserSubject.next([])\n }\n\n private getRefreshToken() {\n return localStorage.getItem(this.REFRESH_TOKEN);\n }\n\n hasToRefresh = () => this.getRefreshToken();\n\n signUpWholesaler = (data) => this.connection.post(this.registerWholesalerApi(), data);\n\n getCountriesData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res._embedded.items)).toPromise();\n\n public setActiveChannelChange = (activelyChangeChannelsOnLogin: boolean) => this.activeChannelChange = activelyChangeChannelsOnLogin\n\n private isAllowedRole = (allowedRoles: UserRoleType[], role: string) => {\n return allowedRoles.length\n ? allowedRoles.includes(role as UserRoleType)\n : true\n }\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n private forceChannelsForSeller = tokens => {\n if (UserRoleType.SELLER == tokens.type as UserRoleType)\n this.channels?.length\n ? this.user.setChannels(...this.channels)\n : this.user.setChannels(this.channel)\n }\n\n public setCustomer = customer => {\n /* this.customerSubject.next(customer) */\n this.customer = customer\n localStorage.setItem(this.CUSTOMER, JSON.stringify(customer))\n this.injector.get(CartService).clearAndResetCustomerCart()\n }\n\n /* public getCustomer = () => Observable.of(JSON.parse(localStorage.getItem(this.CUSTOMER))) */\n\n public getCustomer = () => {\n /* this.customerSubject.next(JSON.parse(localStorage.getItem(this.CUSTOMER)))\n return this.customer */\n return this.customer || JSON.parse(localStorage.getItem(this.CUSTOMER))\n }\n\n public setHomeResolver = resolverFunction => this.homeResolver = resolverFunction\n\n public getHomeResolver = () => this.homeResolver\n\n public isAbleToBuy = (): boolean => !this.getUserProfileAsUser()?.isSeller() || !!this.getCustomer()\n\n}","import { Injectable } from '@angular/core';\r\nimport { Product } from '../interfaces/product';\r\nimport { CartItem } from '../interfaces/cart-item';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConnectionService } from '../api/connection.service';\r\nimport { Constants } from '../core.consts';\r\nimport { AuthService } from './auth.service';\r\nimport { ToastService } from '../utils/toast.service';\r\nimport { CouponI } from '../interfaces/coupon';\r\nimport { OrderUtilityService } from '../utils/order-util.service';\r\nimport { CheckoutData } from '../interfaces/checkout-data';\r\nimport { CartAffordable } from '../interfaces/cart/cart-affordable';\r\nimport { ChannelConfigService } from './channel-config.service';\r\nimport { AnalyticsService } from '../../public-api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService {\r\n private cartItemsSubject: BehaviorSubject<CartItem[]> = new BehaviorSubject([]);\r\n private couponSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private cartSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private requestInProcess = new BehaviorSubject(false);\r\n private promotionsSubject: BehaviorSubject<CheckoutData[]> = new BehaviorSubject([]);\r\n\r\n private items = [];\r\n private count: number = 0;\r\n private locale = \"\";\r\n private logged_in = false;\r\n private have_to_update = true;\r\n public channelConfig: any = {};\r\n private cart_baseUrl = 'shop-api/' + this.consts.getChannel() + '/carts';\r\n\r\n public cartItemsApi = () => this.cart_baseUrl;\r\n public addItemApi = () => this.cart_baseUrl + '/' + this.cart_token + '/items';\r\n public addAllItemsApi = () => this.cart_baseUrl + '/' + this.cart_token + '/multiple-items';\r\n public updateItemQuantityApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public deleteItemApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public couponApi = () => this.cart_baseUrl + '/' + this.cart_token + '/coupon';\r\n\r\n public cart_token;\r\n public cartItems = this.cartItemsSubject.asObservable().pipe(map(items => this.switchPriceInCartItem(items)))\r\n public coupon = this.couponSubject.asObservable();\r\n public loading = this.requestInProcess.asObservable();\r\n public cart = this.cartSubject.asObservable();\r\n public promotions = this.promotionsSubject.asObservable();\r\n\r\n constructor(private connection: ConnectionService, private toastrService: ToastService, private consts: Constants,\r\n private authService: AuthService, private orderUtils: OrderUtilityService, private analyticsService: AnalyticsService,\r\n private channelConfigService: ChannelConfigService) {\r\n\r\n this.requestInProcess.next(true);\r\n this.items = JSON.parse(localStorage.getItem('cart')) || [];\r\n this.cart_token = localStorage.getItem('cart_token') || null;\r\n this.authService.loggedIn.subscribe(res => this.getCart());\r\n this.channelConfigService.channelConfig$.subscribe(res => this.channelConfig = res);\r\n }\r\n\r\n\r\n private getCart = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token && this.items.length >= 1) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByToken = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByCustomer = async () =>\r\n this.connection.post(this.cartItemsApi()).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n /**\r\n * @private\r\n * CART CRUD SERVER'S SYNCRONIZED\r\n */\r\n\r\n private initializeCart = (response) => {\r\n this.cart_token = response.tokenValue;\r\n localStorage.setItem('cart_token', this.cart_token);\r\n this.locale = response.locale;\r\n this.updateCartObj(response, false);\r\n this.updateCartItems(this.transformItems(response.items));\r\n this.requestInProcess.next(false);\r\n return true;\r\n }\r\n\r\n private switchPriceInCartItem = (items: CartItem[]) => {\r\n //return items;\r\n return items.map(\r\n item => {\r\n if (item.product) {\r\n item.product.price = item.product.variants[0].saleprice ? item.product.variants[0].saleprice : item.product.variants[0].price\r\n }\r\n return item\r\n }\r\n )\r\n }\r\n\r\n private stepCart = (res) => {\r\n res.items.length > 0 && res.items.forEach(\r\n item => !this.isItemInLocal(item.id) && this.deleteCartItem(item, false)\r\n );\r\n this.addAllToCart(\r\n this.items.filter(\r\n item => !res.items.some(external_item => external_item.id == item.item_id)\r\n )\r\n );\r\n }\r\n\r\n private updateCartItems = (items) => {\r\n this.items = items;\r\n this.count = items.length;\r\n this.cartItemsSubject.next(this.items);\r\n this.updateLocalCart();\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n private updateCartItemQuantity = (variant_id, quantity) => {\r\n this.items.find(item => item.variant_id == variant_id).quantity = quantity;\r\n this.cartItemsSubject.next(this.items);\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-updated');\r\n }\r\n\r\n private appendToCart = (cart) => {\r\n this.updateCartObj(cart);\r\n this.items = this.transformItems(cart.items);\r\n this.count = this.items.length;\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-added');\r\n this.cartItemsSubject.next(this.items);\r\n }\r\n\r\n private removeCartItem = (cart, product, toast = true) => {\r\n this.updateCartObj(cart, false);\r\n this.items.splice(this.items.findIndex(item => item.item_id == product.item_id), 1);\r\n this.cartItemsSubject.next(this.items);\r\n toast && this.requestInProcess.next(false);\r\n toast && this.toastrService.show('product-removed');\r\n this.updateLocalCart();\r\n // this.googleAnalytics.removeFromCart(product);\r\n this.analyticsService.callEvent('remove_from_cart', { ...product, currency: this.consts.currency.code })\r\n }\r\n\r\n private addIfAllreadyExists = (product, variant_id, quantityAdd = 1) =>\r\n this.items.find((item, index) => {\r\n if (item.product.id == product.id && item.variant_id == variant_id) {\r\n this.updateItemQuantity(item, this.findItem(product.id).quantity + quantityAdd);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n private updateLocalCart = () => {\r\n localStorage.setItem('cart', JSON.stringify(this.items));\r\n }\r\n\r\n private resetCart = (next?) => {\r\n this.items = [];\r\n this.cartSubject.next(null);\r\n this.cart_token = null;\r\n this.cartItemsSubject.next([]);\r\n this.count = 0;\r\n localStorage.setItem('cart', \"[]\");\r\n localStorage.removeItem('cart_token');\r\n next && next();\r\n }\r\n\r\n private updateCartObj = (cart, emitEvent = true): boolean => {\r\n this.cartSubject.next(cart);\r\n emitEvent && this.analyticsService.callEvent('add_to_cart', cart);\r\n this.promotionsSubject.next(this.orderUtils.getPromotions(cart, true));\r\n\r\n cart.couponCode\r\n ? this.formatCoupon(cart)\r\n : this.couponSubject.next(null);\r\n return true;\r\n }\r\n\r\n private isItemInLocal = (item_id) => this.items.some(item => item.item_id == item_id);\r\n\r\n /**\r\n * @public\r\n * CART CRUD\r\n */\r\n\r\n addToCart = (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n !added && this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id })\r\n .subscribe(\r\n res => this.appendToCart(res),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n addToCartPromise = async (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n if (!added) {\r\n let result = await (this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id }).toPromise());\r\n if (!result || result.error) this.handleError(result.error);\r\n else {\r\n this.appendToCart(result);\r\n return { error: false }\r\n }\r\n }\r\n return { error: true }\r\n }\r\n\r\n\r\n addAllToCart = (items: any[]) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n\r\n const params = { items: this.mergeItemsAddAllToCart(items) };\r\n\r\n this.connection.post(this.addAllItemsApi(), params)\r\n .toPromise().then(\r\n res => {\r\n this.updateCartObj(res.cart) && this.updateCartItems(this.transformItems(res.cart.items));\r\n res.cart_response.status == 'success' && this.toastrService.show('products-added');\r\n },\r\n err => {\r\n this.handleError(err);\r\n }\r\n ).catch(err => {\r\n this.handleError(err);\r\n });\r\n }\r\n\r\n mergeItemsAddAllToCart = (items: any[]) => {\r\n let paramsMerge = []\r\n this.items.forEach(item => {\r\n let itemInterno = items.find(itemParam => itemParam.variantCode == item.variant_id)\r\n paramsMerge.push(\r\n {\r\n productCode: item.product.id,\r\n variantCode: item.variant_id,\r\n quantity: itemInterno && itemInterno.quantity || item.quantity\r\n }\r\n )\r\n })\r\n\r\n items = items.filter(itemParam => !this.items.find(item => itemParam.variantCode == item.variant_id))\r\n\r\n return [...items, ...paramsMerge]\r\n }\r\n\r\n updateItemQuantity = (item: CartItem, quantity) => {\r\n if (this.validateQuantity(item, quantity)) {\r\n this.connection.put(this.updateItemQuantityApi(this.findItemByIdVariant(item.variant_id)), { 'quantity': Number(quantity) }).subscribe(\r\n res => this.updateCartObj(res) && this.updateCartItemQuantity(item.variant_id, Number(quantity)),\r\n err => this.handleError(err)\r\n )\r\n }\r\n }\r\n\r\n\r\n validateQuantity = (item: CartItem, quantity) => {\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) > item.product.variants[0].maximumItemsQuantity) {\r\n this.toastrService.show('maximum-items-quantity', { quantity: item.product.variants[0].maximumItemsQuantity })\r\n return false\r\n }\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) < item.product.variants[0].minimumItemsQuantity) {\r\n this.toastrService.show('minimum-items-quantity', { quantity: item.product.variants[0].minimumItemsQuantity })\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n calculateStockCounts = (item: CartItem, quantity) => {\r\n if (item.product.stock < item.quantity + quantity) {\r\n // this.toastrService.show('out-of-stock');\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n deleteCartItem = (item, toast = true) => {\r\n let id_buscado = this.findItemByIdVariant(item.variant_id)\r\n this.connection.delete(this.deleteItemApi(id_buscado)).subscribe(\r\n res => this.removeCartItem(res, item, toast),\r\n err => this.handleError(err)\r\n )\r\n }\r\n\r\n clearCart() {\r\n //solucion provisaoria\r\n let items = [...this.items]\r\n while (items && items.length > 0) {\r\n this.deleteCartItem(items.pop(), false)\r\n }\r\n //this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCart() {\r\n this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCustomerCart() {\r\n console.log(\"Clearing and reseting...\")\r\n this.resetCart(this.getCartByCustomer)\r\n }\r\n\r\n handleError = (error: { error: string }) => {\r\n this.toastrService.show('operation-error-param');\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n getCountFromItemInCart = (codeVariant): number => this.items.find(item => item.variant_id == codeVariant)?.quantity || 0;\r\n\r\n findItemByIdVariant = (variant_id) => this.items.find(item => item.variant_id == variant_id).item_id\r\n\r\n findItem = (product_id) => this.items.find(item => item.product.id == product_id);\r\n\r\n /** DATA FOR OTHER SERVICES */\r\n getCartToken = () => this.cart_token;\r\n\r\n getLocale = () => this.locale;\r\n\r\n getTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.total));\r\n\r\n getCountCartItems = (): Observable<number> =>\r\n this.cartItems.pipe(map((cartItems) => cartItems?.length));\r\n\r\n getTaxesAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.taxes > 0 ? cart?.totals?.taxes : 0));\r\n\r\n getSubTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.items));\r\n\r\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total\r\n\r\n getDiscount(): Observable<number> {\r\n return this.cartItems.pipe(map((product) => {\r\n let total = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.saleprice * curr.quantity;\r\n }, 0);\r\n let subtotal = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.price * curr.quantity;\r\n }, 0);\r\n return subtotal - total;\r\n }));\r\n }\r\n\r\n addCoupon = async (code): Promise<any> => {\r\n try {\r\n let result = await this.connection.put(this.couponApi(), { coupon: code }).toPromise();\r\n if (result.error || result.errors) return { error: true, message: 'invalid-coupon' };\r\n this.updateCartObj(result, false);\r\n return { error: false, message: 'ok' };\r\n } catch (e) {\r\n return { error: true, message: 'invalid-coupon' };\r\n }\r\n }\r\n\r\n removeCoupon = async () => this.connection.delete(this.couponApi()).pipe(map(res => this.updateCartObj(res, false))).toPromise();\r\n\r\n formatCoupon = (cart) => {\r\n let current_coupon = this.couponSubject.value;\r\n let coupon: CouponI = { code: cart.couponCode };\r\n try {\r\n const key = Object.keys(cart.cartDiscounts)[0];\r\n coupon = {\r\n ...coupon,\r\n amount: (cart.cartDiscounts && cart.cartDiscounts[key].amount.current) || 0,\r\n name: (cart.cartDiscounts && cart.cartDiscounts[key].name) || 'no-name'\r\n };\r\n } catch (e) { }\r\n (coupon != current_coupon) && this.couponSubject.next(coupon);\r\n }\r\n\r\n changeHaveToUpdate = (value) => this.have_to_update = value;\r\n\r\n readyForCheckout = (successCallback?: Function, errorCallback?: Function): CartAffordable => {\r\n let cart = this.cartSubject.value;\r\n let items = this.cartItemsSubject.value;\r\n let result: CartAffordable = { ok: true };\r\n if (items.length < this.channelConfig.minimumQuantityPurchaseItems) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-items' })\r\n }\r\n if (cart.totals.total < this.channelConfig.minimumPurchaseAmount) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-amount' })\r\n }\r\n if (successCallback || errorCallback) {\r\n result.ok\r\n ? successCallback && successCallback()\r\n : errorCallback && errorCallback();\r\n }\r\n return result;\r\n }\r\n\r\n updateItemsOnError = (itemsWithError: any[], code: string) => {\r\n // console.log(itemsWithError);\r\n // console.log(this.items);\r\n let itemsUpdated = this.items.map(item => {\r\n let itemWithError = itemsWithError.find(failedItem => item.item_id == failedItem.id);\r\n if (itemWithError) {\r\n item.failed = true;\r\n item.error = code;\r\n }\r\n return item;\r\n })\r\n // console.log(itemsUpdated);\r\n this.updateCartItems(itemsUpdated);\r\n }\r\n\r\n loadCartByToken = async (token: string) => {\r\n this.cart_token = token\r\n let result = await this.getCartByToken()\r\n return result\r\n }\r\n\r\n /**\r\n * UTILS\r\n */\r\n\r\n transformItems = (server_item) => server_item.map(\r\n item => {\r\n item = {\r\n product: item.product,\r\n variant_id: item.product.variants[0].code,\r\n quantity: item.quantity,\r\n item_id: item.id,\r\n total: item.total\r\n }\r\n // console.log(item.product.variants[0]);\r\n // console.log(item.product.variants[0].saleprice);\r\n // console.log(item.product.variants[0].price);\r\n // console.log(item.product.variants[0].saleprice > 0 ? item.product.variants[0].seleprice : item.product.variants[0].price);\r\n // setTimeout(() => {\r\n // item.product.price = item.total / item.quantity// ? item.product.variants[0].seleprice : item.product.variants[0].price;\r\n // }, 100);\r\n return item;\r\n }\r\n )\r\n \r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { ObservableError } from '../../interfaces/observable-error.interface';\nimport { Constants } from '../../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrdersService {\n\n private ordersSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n private errorSubject: BehaviorSubject<ObservableError> = new BehaviorSubject(null);\n private selectedOrderSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n\n public orders$ = this.ordersSubject.asObservable();\n public error$ = this.errorSubject.asObservable();\n public selectedOrder$ = this.selectedOrderSubject.asObservable();\n\n private loading = false;\n\n ordersListapi = () => `shop-api/${this.consts.getChannel()}/orders`;\n\n constructor(private connection: ConnectionService, private cartService: CartService, private router: Router, private consts: Constants) {\n // this.updateOrders();\n }\n\n updateOrders = () => {\n this.loading = true;\n this.connection.get(this.ordersListapi())\n .pipe(\n map(res => {\n let orders = this.mapOrdersAndAddInfo(res);\n return orders;\n })\n )\n .subscribe(\n response => {\n this.ordersSubject.next(response);\n this.loading = false;\n },\n err => {\n this.errorSubject.next({ message: 'unable-get-orders' });\n }\n )\n }\n\n mapOrdersAndAddInfo = (orders) =>\n orders.map(order => {\n order.total = order.payments.reduce((a, b) => a + b.price.current, 0);\n return order;\n })\n\n setSelectedOrder = (order: any) => this.selectedOrderSubject.next(order);\n\n findOrder = (order_number) =>\n this.ordersSubject.value ? this.getOrderByNumber(order_number) : this.waitUntilOrders(order_number, this.getOrderByNumber);\n\n getOrderByNumber = (order_number) => {\n // El dia de mañana, cuando vengan paginadas y haya que preguntarle al servidor, se cambia este metodo\n const orders = this.ordersSubject.value;\n let order = orders.find(order => order.number == order_number)\n return order;\n }\n\n waitUntilOrders = (order_number, next) => {\n this.orders$.toPromise().then(orders => {\n if (!orders) {\n if (!this.loading) this.updateOrders();\n this.waitUntilOrders(order_number, next);\n }\n this.getOrderByNumber(order_number);\n })\n }\n\n reBuy(order) {\n // this.cartService.clearCart();\n order.items.map(item => {\n this.cartService.addToCart(this.formatProduct(item.product, item.product.discount), item.quantity, item.variant_id);\n });\n this.router.navigateByUrl('/cart');\n }\n\n formatProduct(product, discount) {\n let percentaje = parseFloat('0.' + discount.toString()).toFixed(2);\n product.price = product.variants[0].price;\n product.saleprice = (product.price - (product.price * parseFloat(percentaje)));\n product.options = {};\n product.variants[0].options.forEach(option => product.options = { ...product.options, ...option });\n return product;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ShipmentDataTransformer {\n\n getData = (method, response) => {\n switch(method) {\n case 'andreani': return response;\n case 'oca': return response.newDataSet;\n }\n }\n\n getApi = (method) => {\n switch(method) {\n case 'andreani': return 'https://api.andreani.com/v1/sucursales';\n case 'oca': return 'http://webservice.oca.com.ar/oep_tracking/Oep_Track.asmx/GetCentrosImposicion';\n }\n }\n\n constructor() { }\n\n appendShipmentExtra = (contract, data) => {\n let result: any = {}\n switch(contract) {\n case 'domicilio': result = { ...data }; break;\n // case 'sucursal': result = { ...data, codigo_sucursal: data. }; break;\n // case 'local': result = { ...data, codigo_local: data. }\n }\n if (contract == 'domicilio') {\n result = { ...data }\n } else {\n result = { codigo_sucursal: data.id }\n }\n return data;\n }\n\n // Andreni\n getMethodDetail = (method, branch) => {\n let result = '';\n branch.direccion.componentesDeDireccion.forEach(component => result += (component.meta + ' ' + component.contenido + ' '));\n return result;\n }\n\n transformAndreani = (response) => {\n let result = []\n response.forEach(element => {\n let data: any = {};\n data.name = element.descripcion;\n data.label = element.descripcion;\n data.latitude = element.geocoordenadas && element.geocoordenadas.latitud;\n data.longitude = element.geocoordenadas && element.geocoordenadas.longitud;\n data.atencion = element.horarioDeAtencion;\n data.address = element.direccion.componentesDeDireccion.map(data => data.contenido).join(' ');\n data.info = 'Sucursal ' + data.name + ' - ' + data.address + ' - ' + data.atencion;\n result.push(data);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Store } from '../interfaces/store';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoresService {\n\n private storesSubject = new BehaviorSubject<Store[]>([]);\n public stores = this.storesSubject.asObservable();\n\n getAllStoresApi = () => 'shop-api/' + this.consts.getChannel() + '/stores';\n\n constructor(private connection: ConnectionService, private consts: Constants) {\n this.connection.get(this.getAllStoresApi()).toPromise().then(\n res => {\n res.length && this.storesSubject.next(res);\n !res.length && this.storesSubject.next(null);\n }\n )\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, Observable, Subscription } from 'rxjs';\nimport { take, tap, map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { CheckoutProcessState } from '../../classes/checkout-process-state';\nimport { ShipmentDataTransformer } from '../../utils/shipment-transformer.service';\nimport { ConnectionService } from '../../api/connection.service';\nimport { StoresService } from '../stores.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class ShipmentService extends StepService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n private methodsSubject = new BehaviorSubject<any>([]);\n private costsSubject = new BehaviorSubject<any>([]);\n private subscription: Subscription;\n\n public order;\n\n private baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n\n public state = this.stateSubject.asObservable();\n public methods = this.methodsSubject.asObservable();\n public costs = this.costsSubject.asObservable();\n\n\n public shipmentMethodsApi = () => this.baseApi() + '/shipping';\n\n public persistShipmentApi = () => 'shop-api/' + this.consts.getChannel() + '/andreani/' + this.cartService.getCartToken() + '/ship';\n public putShipmentApi = () => this.baseApi() + '/shipping/' + this.stateSubject.getValue().data.method;\n public putContractApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() + '/shipping-contract';\n public calculatedCostsApi = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/multiple-estimated-shipping-cost';\n\n constructor(private connection: ConnectionService, private transformer: ShipmentDataTransformer, private analyticsService: AnalyticsService,\n private consts: Constants, private cartService: CartService, private storesService: StoresService, private checkoutService: CheckoutService) {\n super(checkoutService);\n }\n\n getShipmentMethods = () => {\n // this.connection.get(this.shipmentMethodsApi()).toPromise().then(\n // res => this.methodsSubject.next(this.responseToList(res))\n // ).catch(err => this.methodsSubject.next([]))\n this.connection.getErrorNotHandler(this.shipmentMethodsApi()).toPromise().then(\n res => {\n this.methodsSubject.next(this.responseToList(res))\n },\n err => {\n this.methodsSubject.next([])\n }\n ).catch(err => {\n this.methodsSubject.next([])\n })\n }\n\n setMethod = async (method) => {\n this.costsSubject.next([]);\n this.stateSubject.next({ doing: true, ok: false, data: { method } });\n this.putShipment().then(\n async res => {\n this.checkoutService.updateAsociatedData(res);\n this.order = res;\n const costs = await this.getCalculatedCosts();\n this.modifyCostsResponse(costs, this.getUserData().shippingAddress.postcode, method);\n },\n err => {\n return new Promise((resolve,reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n private putShipment = () => this.connection.put(this.putShipmentApi(), { method: this.stateSubject.getValue().data.method }).toPromise();\n\n getCalculatedCosts = () => this.connection.get(this.calculatedCostsApi()).toPromise();\n\n setContract = async (contract: any) => {\n const data = { ...contract, ...this.otherParamsForContract(contract) };\n return await this.connection.put(this.putContractApi(), data)\n .toPromise().then(\n order => {\n this.analyticsService.callEvent('shipping_info', order);\n return this.setStepReady(data, order)},\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n ngOnDestroy() {\n this.subscription && this.subscription.unsubscribe();\n }\n\n // UTILS\n\n /**\n * @param response De api de solicitud de costos por metodo de envío seleccionado\n * @param post_code Indicado en el paso de Addressing (datos personales y de facturación)\n * @param method Metodo de envío seleccionado\n */\n modifyCostsResponse = async (response, post_code, method) => {\n response = response.multiplePrices;\n let branch_delivery = response.findIndex(submethod => submethod.name == 'branch_delivery');\n if (branch_delivery != -1) {\n response[branch_delivery].contracts = response[branch_delivery].contracts.map(contract => {\n let branch_property = contract.branch_property || {};\n let address_data = branch_property.address || {};\n return {\n contract: 'branch_delivery',\n name: contract.name,\n price: contract.price,\n ...address_data,\n ...branch_property,\n computed: (address_data.street || '') + ' N° ' + (address_data.number || '')\n };\n });\n this.costsSubject.next(response);\n }\n if (method == 'pickup_store') {\n let final_method_data = response;\n this.subscription = this.storesService.stores.subscribe(stores => {\n if (stores.length) {\n final_method_data.forEach(pickup_store => {\n pickup_store.contracts.forEach(contract => {\n const current_store = stores.find(store => store.code == contract.name);\n if (!current_store) contract.detail = 'Sin información';\n else contract.detail = current_store.name + ' - ' + current_store.address;\n return contract;\n })\n })\n this.costsSubject.next(final_method_data);\n }\n })\n } else {\n this.costsSubject.next(response);\n }\n }\n\n responseToList = (response) =>\n (response.shipments && response.shipments.length > 0) && Object.keys(response.shipments[0].methods).map(key => response.shipments[0].methods[key]);\n\n otherParamsForContract = (contract) => {\n return {\n shipping_method_contract:\n contract.shipping_method_contract\n ? contract.shipping_method_contract\n : contract.contract + '_' + contract.name,\n shipping_method_branch_code:\n contract.shipping_method_branch_code\n ? contract.shipping_method_branch_code\n : (contract.contract && contract.contract == \"branch_delivery\") ? contract.number : contract.name\n }\n }\n\n getBranchOffices = (method) => this.connection.getOutsider(this.transformer.getApi(method.toLowerCase())).toPromise();\n\n formatUnnecesaryDocument = (data) => {\n if (data.shippingAddress?.documentNumber?.length == 0) {\n data.shippingAddress.documentNumber = '00000000'\n }\n if (data.shippingAddress?.documentType?.length == 0) {\n data.shippingAddress.documentType = 'XXX'\n }\n if (data.billingAddress && data.billingAddress.documentNumber?.length == 0) {\n data.billingAddress.documentNumber = '00000000'\n }\n if (data.billingAddress && data.billingAddress.documentType?.length == 0) {\n data.billingAddress.documentType = 'XXX'\n }\n return data\n }\n}\n","export interface FilterOption {\n name: string;\n value: string;\n type: FilterOptionTypes;\n selectedOption: any;\n options: Array<FilterOptionValue>;\n}\n\nexport interface FilterOptionValue {\n name: string;\n value: any;\n selected: boolean;\n}\n\nexport enum FilterOptionTypes {\n oneSelect = 'one-select',\n multiSelect = 'multi-select'\n}","import { Injectable } from '@angular/core';\nimport { OptionsOfProductListInterface } from '../interfaces/choose-options/options-of-product-list';\nimport { FilterOptionTypes } from '../interfaces/choose-options/filter-option';\n\n@Injectable()\nexport class OptionsOfProductListDataReceiverService {\n constructor() { }\n\n getData(): OptionsOfProductListInterface {\n return {\n sortOptions: [\n {\n name: 'Alphabetical order',\n value: 'name',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Ascendancy',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Descendant',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Created date',\n value: 'createdAt',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Oldest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Newest first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Price',\n value: 'price',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Cheapest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Most expensive first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n ],\n filterOptions: [\n {\n name: 'Vigencia',\n value: 'enabled',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Habilitados',\n value: 'true',\n selected: false,\n },\n {\n name: 'Deshabilitados',\n value: 'false',\n selected: false,\n }\n ]\n }\n ],\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AuthService } from './auth.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\n\n@Injectable()\nexport class DataformService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n\n public state = this.stateSubject.asObservable();\n public checkoutForm : FormGroup;\n\n constructor(private fb: FormBuilder, private authService: AuthService) {\n this.checkoutForm = this.fb.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: ['', Validators.required],\n city: ['', Validators.required],\n provinceName: ['', Validators.required],\n postcode: ['', Validators.required]\n });\n\n this.authService.getUserProfile().subscribe(\n res => this.checkoutForm.patchValue(res.toForm())\n )\n }\n\n isValid = () => this.checkoutForm.valid;\n\n change = () => {\n this.checkoutForm.valid ? this.stateSubject.next({ doing: false, ok: true, data: this.checkoutForm.value }) \n : this.stateSubject.next({ doing: true, ok: false, data: null })\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\n\nexport interface BlockInfo {\n section: string,\n blocks: IBlock[]\n}\n\n@Injectable()\nexport class BlocksRepositoryService {\n\n private data: BlockInfo[] = [];\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n\n constructor(private consts: Constants, private connection: ConnectionService) {\n this.consts.getBlocksCacheTime() && setInterval(this.restartBlocks, this.consts.getBlocksCacheTime());\n }\n\n getBlocks = async (section) : Promise<IBlock[]> => this.hasSectionBlocks(section)?.blocks || this.connection.get(this.blocksAPI(section))\n .toPromise().then(\n res => this.appendBlock(res.items, section) && res.items,\n err => new Promise((resolve, reject) => reject()) // Va por callback error, el servicio define el valor a setear\n ).catch(err => new Promise((resolve,reject) => reject(new Error(null)))); //Queda pendiente ver como manejar el error de este lado\n\n hasSectionBlocks = (section) => this.data.find(block_info => block_info.section == section);\n\n appendBlock = (blocks : IBlock[], section) => {\n const new_block = { section, blocks };\n this.data.push(new_block);\n return true;\n }\n\n restartBlocks = () => this.data = [];\n}","import { Injectable } from '@angular/core';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BlocksRepositoryService } from './blocks-repository.service';\n\n\n/**\n * @description Servicio de manejo de Bloques. Cada sección posee N bloques asociados, ordenados por posición y con tu tipo y datos correspondientes\n * (chequear interfaz de IBlock)\n */\n@Injectable()\nexport class BlocksService {\n\n private blocksSubject = new BehaviorSubject<any[]>([]);\n\n public blocks = this.blocksSubject.asObservable();\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n contactFormResponseAPI = () => 'cms/' + this.consts.getLocale() + '/contact-form/response';\n\n constructor(private consts: Constants, private connection: ConnectionService,\n private blocksRepo: BlocksRepositoryService) { }\n\n getBlocks = (section) => {\n this.blocksRepo.getBlocks(section).then(\n res => this.blocksSubject.next(this.orderedAndModified(res)),\n err => this.blocksSubject.next(null)\n )\n }\n\n orderedAndModified = (result) => {\n let result_ordered = result.sort((a, b) => a.priority - b.priority);\n return (result_ordered.length ? result_ordered : null);\n }\n\n getBlockByCode = (code) =>\n this.blocksSubject.value && this.blocksSubject.value.find(block => block.code == code);\n\n // getBannerImage = (banner) => (this.consts.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getBannerImage = (banner) =>\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName;\n\n getImage = (banner) => (this.consts.mediaBannerUrl() +\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName)\n\n formUrl = (banner) => {\n let resultado = \"/\";\n const element = (banner.redirectionType == 'attribute' ? 'attributes' : 'categories');\n try {\n let asociacion = banner[(element == 'categories' ? 'taxons' : element)];\n asociacion = asociacion.length && asociacion[0];\n if (asociacion) resultado = '/collection/' + element + '/' + (asociacion.slug || asociacion.translations[this.consts.getLocale()].slug);\n } catch (e) {\n }\n return resultado;\n }\n\n sendResponse = (response_obj) =>\n this.connection.post(this.contactFormResponseAPI(), this.prepareData(response_obj));\n\n prepareData = (obj) => {\n // Para el futuro, cuando haya que toquetear antes de mandar\n // attachmentFile\n return obj;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilsService {\n\n constructor() { }\n\n titleCaseWord(word: string) {\n if (!word) return word;\n return word[0].toUpperCase() + word.substr(1).toLowerCase();\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaymentUtils {\n\n constructor() {}\n\n private mp_error_codes = {\n 'pending_contingency': 'Estamos procesando el pago. En menos de 2 días hábiles te enviaremos por e-mail el resultado.',\n 'pending_review_manual': 'Estamos procesando el pago. En menos de 2 días hábiles te diremos por e-mail si se acreditó o si necesitamos más información.',\n 'cc_rejected_bad_filled_card_number': 'Revisa el número de tarjeta.',\n 'cc_rejected_bad_filled_date': \t'Revisa la fecha de vencimiento.',\n 'cc_rejected_bad_filled_other': \t'Revisa los datos.',\n 'cc_rejected_bad_filled_security_code': \t'Revisa el código de seguridad.',\n 'cc_rejected_blacklist': \t'No pudimos procesar tu pago.',\n 'cc_rejected_call_for_authorize': \t'Debes autorizar ante payment_method_id el pago de amount a Mercado Pago',\n 'cc_rejected_card_disabled': \t'Llama a payment_method_id para que active tu tarjeta. El teléfono está al dorso de tu tarjeta.',\n 'cc_rejected_card_error': \t'No pudimos procesar tu pago.',\n 'cc_rejected_duplicated_payment': \t'Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.',\n 'cc_rejected_high_risk': \t'Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.',\n 'cc_rejected_insufficient_amount': \t'Tu payment_method_id no tiene fondos suficientes.',\n 'cc_rejected_invalid_installments': \t'El metodo de pago no procesa pagos en cuotas.',\n 'cc_rejected_max_attempts': \t'Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.',\n 'cc_rejected_other_reason': \t'No procesó el pago.'\n }\n\n getErrorMessage = (code) => this.mp_error_codes[code];\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAuthenticated())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbleBuyerGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAbleToBuy())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAbleToBuy()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserRoleGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n const authorizedRoles = routeSnapshot.data.authorizedRoles || []\n\n if (!authorizedRoles.includes(this.auth.getUserProfileAsUser()?.typeUser))\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class LoggedInGuard implements CanActivate { \n \n constructor(private auth: AuthService, public router: Router) {} \n \n canActivate(): boolean {\n if (!this.auth.isAuthenticated()) {\n this.router.navigate(['/login']);\n }\n return this.auth.isAuthenticated();\n }\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { CheckoutService } from '../services/checkout/checkout.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class CheckoutReadyGuard implements CanActivate { \n \n constructor(private router: Router, private checkoutService: CheckoutService) {} \n \n canActivate(): boolean {\n if (!this.checkoutService.isCheckoutReady()) {\n this.router.navigate(['/']);\n }\n return this.checkoutService.isCheckoutReady();\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse\n} from \"@angular/common/http\";\nimport { throwError, Observable, of } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n \n if (this.injector.get(AuthService).isAuthenticated()\n && req.url.includes(this.injector.get(Constants).getUrlBase())\n && !req.url.includes('shop-api/login_check')) {\n\n let headers = {\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.injector.get(AuthService).getToken()}`,\n },\n }\n\n if (req.url.includes('contact-form/response'))\n delete headers.setHeaders[\"Content-Type\"]\n\n /* if (this.injector.get(AuthService).getCustomer())\n delete headers.setHeaders[\"Authorization\"] */\n\n let authReq: HttpRequest<any> = req.clone(headers)\n \n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse, HttpHeaders, HttpClient\n} from \"@angular/common/http\";\nimport { Router } from '@angular/router';\nimport { throwError, Observable, BehaviorSubject, of } from \"rxjs\";\nimport { catchError, filter, take, switchMap } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\nimport { BodyError } from \"../interfaces/checkout/checkout-error\";\nimport { ToastService } from \"../utils/toast.service\";\n\n@Injectable()\nexport class CustomerInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n\n const customer = this.injector.get(AuthService).getCustomer()\n\n if (customer) {\n\n const headers = {\n setHeaders: {\n 'customer': String(customer.id)\n }\n }\n\n let authReq: HttpRequest<any> = req.clone(headers)\n\n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).logout()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CheckoutService } from \"../services/checkout/checkout.service\";\n\nexport class ComponentHelper {\n\n constructor() {\n this.ecOnConstruct()\n }\n\n ecOnInit = (params = {}) => {\n\n }\n\n ecOnConstruct = (params = {}) => {\n\n }\n\n hasParams = (params, searched) => params && params != null && params.find(param => param.code?.toLowerCase().includes(searched.toLowerCase()));\n\n navigateOnRouter(router : Router,url: string) {\n router.navigateByUrl(`/${url}`);\n }\n}","import { Injectable, Renderer2, Inject, RendererFactory2 } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { Parameter } from '../interfaces/parameters';\nimport { DOCUMENT } from '@angular/common';\nimport { Script } from '../interfaces/Script';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { AnalyticsService } from './analytics.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParametersService {\n\n private parametersSubject = new BehaviorSubject<Parameter[]>(null);\n private readyParamsSubject = new ReplaySubject<boolean>(1);\n\n public parameters = this.parametersSubject.asObservable();\n public ready$ = this.readyParamsSubject.asObservable();\n\n getAllParametersAPI = () => 'shop-api/' + (this.constants.getMasterChannel() || this.constants.getChannel()) + '/parameters';\n\n constructor(private connection: ConnectionService, private constants: Constants,\n private analyticsService: AnalyticsService) {\n this.connection.get(this.getAllParametersAPI()).toPromise().then(res => {\n this.parametersSubject.next(res);\n this.readyParamsSubject.next(true);\n })\n }\n\n insertAnalitycs = () => {\n this.parametersSubject.value\n ? this.constants.onlyIfProduction(this.initializeAnalytics, this.parametersSubject.value)\n : this.waitUntilData(this.initializeAnalytics)\n }\n\n private initializeAnalytics = (params) => {\n\n let facebook = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('facebook') && param.code.includes('id'));\n !facebook && (facebook = params.find(param => param.code.includes('facebook') && param.code.includes('id')));\n facebook && this.analyticsService.initializeFacebook(facebook.value);\n\n let google = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('google') && param.code.includes('id'));\n !google && (google = params.find(param => param.code.includes('google') && param.code.includes('id')));\n google && this.analyticsService.initializeGoogle(google.value);\n\n let gtm = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('gtm') && param.code.includes('id'));\n !gtm && (gtm = params.find(param => param.code.includes('gtm') && param.code.includes('id')));\n gtm && this.analyticsService.initializeGTM(gtm.value);\n\n let metricool = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('metricool') && param.code.includes('id'));\n !metricool && (metricool = params.find(param => param.code.includes('metricool') && param.code.includes('id')));\n metricool && this.analyticsService.initializeMetricool(metricool.value);\n\n let doppler = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('doppler') && param.code.includes('id'));\n !doppler && (doppler = params.find(param => param.code.includes('doppler') && param.code.includes('id')));\n doppler && this.analyticsService.initializeDoppler(doppler.value);\n\n }\n\n private waitUntilData = (next) => {\n const subscription = this.parameters.subscribe(res => {\n if (res) {\n this.insertAnalitycs();\n subscription.unsubscribe();\n }\n });\n }\n\n}","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-account-ec',\n templateUrl: 'account-ec.component.html',\n styleUrls: ['account-ec.component.scss']\n})\nexport class AccountEcComponent extends ComponentHelper {\n\n public params = null\n\n constructor(protected authService: AuthService, public router: Router, public paramsService: ParametersService ) {\n super();\n this.paramsService.parameters.subscribe(p => {\n this.params = p\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('/home');\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Banner } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n// import { OwlOptions } from 'ngx-owl-carousel-o';\n\nexport type ColumnSize = 'col-md-8' | 'col-md-4' | 'col-md-12'\n\n@Component({\n selector: 'app-block-banner-boxes-ec',\n templateUrl: './block-banner-boxes-ec.component.html',\n styleUrls: ['./block-banner-boxes-ec.component.scss']\n})\nexport class BlockBannerBoxesEcComponent extends ComponentHelper implements OnInit {\n @Input() banners: Banner[];\n @Input() meta: any;\n\n protected big_ones = [0, 3, 4, 7, 8, 11, 12, 15, 16];\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.meta = { ...this.meta, ...this.meta.translations[this.consts.getLocale()] }\n this.ecOnInit()\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n columnSize = (i): ColumnSize => {\n if (!this.consts.mobile()) {\n if (this.big_ones.includes(i)) return 'col-md-8';\n else if (!((i + 1) == this.banners.length)) return 'col-md-4';\n else if (((i + 1) == this.banners.length) && this.esImpar(i)) return 'col-md-4';\n }\n return 'col-md-12';\n }\n\n esImpar = (number) => (number % 2) == 1;\n \n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n\ndeclare var $: any;\n\n@Component({\n selector: 'app-block-banner-full-ec',\n templateUrl: './block-banner-full-ec.component.html',\n styleUrls: ['./block-banner-full-ec.component.scss']\n})\nexport class BlockBannerFullEcComponent extends ComponentHelper implements OnInit {\n\n @Input() banners;\n @Input() meta: any;\n\n public options: any;\n\n constructor(public blocksService: BlocksService, protected consts: Constants, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.ecOnInit()\n\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n handlePage(page: string) {\n return this.router.url.includes(page);\n }\n\n}\n","import { Component, Input, OnInit, OnChanges } from '@angular/core';\n// import { ToastService, Constants, BlocksService } from 'ng-easycommerce';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-form-contact-ec',\n templateUrl: 'block-form-contact-ec.component.html',\n styleUrls: ['block-form-contact-ec.component.scss']\n})\nexport class BlockFormContactEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() block;\n @Input() success_message;\n @Input() redirect = true;\n @Input() subject?;\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = new FormData();\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants,\n public formBuilder: FormBuilder, protected blocksService: BlocksService) {\n super();\n this.contact_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n attachment: [''],\n captcha: ['', Validators.required],\n })\n this.newsletter_form = this.formBuilder.group({\n email: ['', Validators.required],\n })\n this.ecOnConstruct()\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('mailText', form.value.body)\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', this.contact_form.get('name').value)\n this.sendValue('email') && formData.append('email', this.contact_form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', this.contact_form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', this.contact_form.get('subject').value)\n this.sendValue('body') && formData.append('body', this.contact_form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', this.contact_form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.contact_form.reset()\n this.toastrService.show(this.success_message || success_message);\n this.redirect && this.router.navigateByUrl('/home');\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n uploadFile(event) {\n if (event.target.files.length > 0) {\n const file = event.target.files[0];\n this.contact_form.get('attachment').setValue(file);\n }\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n toastCompleteForm = (e) => {\n e.preventDefault();\n this.sendForm(this.contact_form, 'inquiry-sent');\n }\n\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-html-ec',\n templateUrl: './block-html-ec.component.html',\n styleUrls: ['./block-html-ec.component.scss'],\n})\nexport class BlockHtmlEcComponent extends ComponentHelper implements OnInit {\n\n @Input() html_content;\n\n constructor(protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.html_content = this.sanitizer.bypassSecurityTrustHtml(this.html_content);\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlockType } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-contact-form-news-ec',\n templateUrl: './contact-form-news-ec.component.html',\n styleUrls: ['./contact-form-news-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class ContactFormNewsEcComponent extends ComponentHelper implements OnInit {\n\n @Input() block;\n @Input() complete = false;\n @Input() success_message;\n @Input() subject?;\n @Input() codeBlock = 'newsletter_block'\n\n public blocks: BlockType[] = [];\n public blockContact: any = null;\n\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = {};\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants, public paramsService: ParametersService,\n public formBuilder: FormBuilder, protected blocksService: BlocksService, @Inject('env') public env ) {\n super();\n this.newsletter_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n captcha: ['', []],\n terms: ['', Validators.required],\n })\n this.ecOnConstruct()\n\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', form.get('name').value)\n this.sendValue('email') && formData.append('email', form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', form.get('subject').value)\n this.sendValue('body') && formData.append('body', form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.newsletter_form.reset()\n this.toastrService.show(this.success_message || success_message);\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n ngOnChanges() {\n }\n\n ngOnInit() {\n if (!this.block) {\n this.blocksService.getBlocks('home') ;\n this.blocksService.blocks.pipe(filter((blocks) => (blocks && blocks.length > 0))).subscribe(blocks => {\n this.block = this.blocksService.getBlockByCode(this.codeBlock);\n if (this.block.contactForm) {\n this.block = this.block.contactForm\n }\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n\n this.subscribeBlockNews(this.block);\n\n }) \n }else{\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n }\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n subscribeBlockNews = (block: any) => {\n \n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string, res) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Product } from '../../../interfaces/product';\nimport { AnalyticsService } from '../../../services/analytics.service';\n\n@Component({\n selector: 'app-block-products-ec',\n templateUrl: './block-products-ec.component.html',\n styleUrls: ['./block-products-ec.component.scss']\n})\nexport class BlockProductsEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() products: Product[];\n @Input() meta: any;\n\n public options: any;\n\n constructor(protected consts: Constants, \n private analyticsService: AnalyticsService,\n ) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.meta = { ...this.meta, ...(this.meta.translations ? this.meta.translations[this.consts.getLocale()] : { name: null }) }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: this.meta.name || 'Block Products', item_list_id: this.meta.name?.toLowerCase()?.replace(' ', '-') || 'block-products' })\n this.ecOnInit()\n }\n\n ngOnChanges(): void {\n\n }\n\n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n\n getKeyByValue(object, value) {\n return Object.keys(object).find(key => object[key] === value);\n}\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n@Component({\n selector: 'app-blocks-ec',\n templateUrl: './blocks-ec.component.html',\n styleUrls: ['./blocks-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class BlocksEcComponent extends ComponentHelper implements OnInit {\n\n private strsection = null\n\n @Input()\n set section(paramsstrsection) {\n this.strsection = paramsstrsection\n this.strsection && this.blocksService.getBlocks(this.strsection);\n }\n @Input() show_loading = true;\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n // this.blocksService.getBlocks(this.section);\n this.ecOnInit()\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n isNewsletter = (block) => block.code.includes('news');\n}\n","import { Component, OnInit, Input, TemplateRef } from \"@angular/core\"\nimport { Router } from \"@angular/router\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from \"../../core.consts\";\nimport { AuthService } from '../../services/auth.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { CartService } from '../../services/cart.service';\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { ToastService } from \"../../utils/toast.service\";\n\n\n@Component({\n selector: 'app-cart-ec',\n templateUrl: './cart-ec.component.html',\n styleUrls: ['./cart-ec.component.scss']\n})\nexport class CartEcComponent extends ComponentHelper implements OnInit {\n\n public isLoggedIn = false;\n public mediaUrl = '';\n public modalRef: BsModalRef | null;\n public promotions = [];\n\n constructor(public cartService: CartService, public authService: AuthService, protected consts: Constants,\n public productsService: ProductsService, public router: Router, public modalService: BsModalService, protected toastrService: ToastService) {\n super();\n this.ecOnConstruct()\n this.isLoggedIn = this.authService.isAuthenticated();\n this.mediaUrl = this.consts.mediaUrl();\n }\n\n\n ngOnChanges() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n updateLoggedIn() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.cartService.promotions.subscribe(promotions => this.promotions = promotions);\n this.ecOnInit()\n\n }\n\n toDecimal = (amount) => this.consts.toDecimal(amount);\n\n actualizarCantidad = (item, cantidad, stock) => {\n cantidad > 0 && cantidad <= stock ? this.cartService.updateItemQuantity(item, cantidad) : this.toastrService.show('out-of-stock-actually');\n }\n\n redirectCheckout = () => this.router.navigateByUrl(`/checkout`)\n\n redirectRegister = () => this.router.navigateByUrl(`/auth/login`)\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-xl', keyboard: false });\n }\n\n redirectDetailProduct(product) {\n let variant = product.variants[0]\n let path = '/product/'\n path += variant.code\n path += variant.options.length ? \"?variant=true\" : \"\"\n this.router.navigateByUrl(path)\n }\n}\n","import { Component, OnInit, OnChanges } from '@angular/core';\nimport Stepper from 'bs-stepper';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../../services/cart.service';\nimport { StepI } from '../../interfaces/step';\nimport { CheckoutData } from '../../interfaces/checkout-data';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n@Component({\n selector: 'app-checkout-ec',\n templateUrl: './checkout-ec.component.html',\n styleUrls: ['./checkout-ec.component.scss']\n})\nexport class CheckoutEcComponent extends ComponentHelper implements OnInit {\n\n public stepper: Stepper;\n public loadingSubject = new BehaviorSubject<boolean>(true);\n public canCheckout = false;\n public require_login = false;\n public subCan: Subscription;\n public subReady: Subscription;\n\n public loading$ = this.loadingSubject.asObservable();\n\n constructor(public checkoutService: CheckoutService, public toastrService: ToastService,\n public router: Router, public cartService: CartService, public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.subCan = this.checkoutService.canCheckout$.pipe(take(1)).subscribe(contain_items => {\n if (contain_items) this.initializeCheckout();\n else this.canCheckout = false;\n })\n this.ecOnInit()\n\n }\n\n ngOnDestroy() {\n this.subCan?.unsubscribe()\n this.subReady?.unsubscribe()\n }\n\n initializeCheckout = () => {\n this.canCheckout = true;\n let steps: StepI[] = [];\n steps.push({ name: 'address' });\n steps.push({ name: 'shipment' });\n steps.push({ name: 'payment' });\n this.checkoutService.setSteps(steps);\n this.setStepper();\n this.loadingSubject.next(false);\n\n this.subReady = this.checkoutService.onReady$.pipe(filter( ready => ready )).subscribe(\n res => { res && this.endCheckout()}\n );\n }\n\n goBack = () => this.stepper.previous();\n\n isStepReady = (step_name) => this.checkoutService.isStepReady(step_name);\n\n endCheckout = () => {\n this.checkoutService.complete().then(\n res => res.ok && this.router.navigate(['checkout/order_success']),\n err => this.toastrService.show('operation-error')\n )\n }\n\n setStepper = () => {\n setTimeout(() => {\n if (document.querySelector('#stepper') != null) {\n this.stepper = new Stepper(document.querySelector('#stepper'), {\n linear: true,\n animation: true\n })\n }else{\n this.setStepper()\n }\n }, 1000);\n }\n\n next = () => {\n this.stepper.next()\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n };\n\n error = (error_value) => this.toastrService.show(error_value);\n\n getIcon = (data_item: CheckoutData) => {\n switch (data_item.type) {\n case 'coupon': return 'assets/images/coupon.png';\n case 'discount': return 'assets/images/discount.png';\n case 'shipment': return 'assets/images/ico-envio.png';\n case 'subtotal': return 'assets/images/products.png';\n case 'total': return 'assets/images/ico-carrito.png';\n default: return 'assets/images/ico-carrito.png';\n }\n }\n\n}\n","import { Component, EventEmitter, Output, Input, OnInit, ViewChild, TemplateRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { CartService } from '../../../services/cart.service';\nimport { AddressingService } from '../../../services/checkout/addressing.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from '../../../core.consts';\nimport { add } from 'ngx-bootstrap/chronos';\nimport { ParametersService } from '../../../services/parameters.service';\n\n\n@Component({\n selector: 'app-dataform-ec',\n templateUrl: 'dataform-ec.component.html',\n styleUrls: ['dataform-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DataFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() step_id;\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesFacturacionSubject = new BehaviorSubject<any[]>([]);\n protected provincesFacturacionSubject = new BehaviorSubject<any[]>([]);\n\n public countries$ = this.countriesSubject.asObservable();\n public provinces$ = this.provincesSubject.asObservable();\n public countriesFacturacion$ = this.countriesFacturacionSubject.asObservable();\n public provincesFacturacion$ = this.provincesFacturacionSubject.asObservable();\n\n public require_login = false;\n public checkoutForm: FormGroup;\n public checkoutFormFacturacion: FormGroup;\n public loading = false;\n public form_ready = false;\n public allready_data = false;\n public addressBook = [];\n public addressBookSelected = { id: 0, notes: \"\" }\n\n public validado = false;\n public viewDataFacturacion: boolean = true;\n\n public modalRef: BsModalRef | null;\n public params: any = {};\n public selectAddres: boolean = false;\n\n constructor(public authService: AuthService,\n public fb: FormBuilder,\n public toast: ToastService,\n public addressingService: AddressingService,\n public cartService: CartService,\n private modalService: BsModalService,\n public paramsService: ParametersService,\n public consts: Constants) {\n super();\n this.ecOnConstruct()\n this.checkoutForm = this.fb.group(this.addressingService.getTypeForm().configForm.formAddres);\n this.checkoutForm.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutForm.valid }))\n .subscribe(() => this.onFormValid());\n\n this.checkoutFormFacturacion = this.fb.group(this.addressingService.getTypeForm().configForm.formBilling);\n this.checkoutFormFacturacion.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutFormFacturacion.valid }))\n .subscribe(() => this.onFormValid());\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.addressingService.initialize(this.step_id);\n const localEmail = localStorage.getItem('mail')\n this.authService.isAuthenticated() && this.checkoutForm.controls['email'].setValue(this.authService.getCustomer()?.email || localEmail);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n this.addressingService.getAddressingData().then(res => {\n this.countriesSubject.next(res);\n this.countriesFacturacionSubject.next(res);\n });\n\n (this.addressingService.modeSelectAddress == 'LOAD_ADDRESS_AND_SELECTION' || this.addressingService.modeSelectAddress == 'ONLY_ADDRESS_SELECTION') \n && this.addressingService.getAddressBook().then(res => {\n this.addressBook = res && res || null\n this.addressBook == null && this.setMode('carga') }\n )\n\n this.ecOnInit()\n }\n\n showFormFacturacion = () => {\n this.viewDataFacturacion = !this.viewDataFacturacion\n this.onFormChange()\n return this.viewDataFacturacion\n }\n\n onFormValid = () => {\n }\n\n protected onFormChange() {\n if (this.checkoutForm.valid) {\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) {\n this.validado = true\n return\n }\n if (this.viewDataFacturacion && this.checkoutForm.valid) {\n this.validado = true\n return\n }\n }\n this.validado = false\n }\n\n onInputChange = () => this.form_ready = false;\n\n onCountrySelected = (value) => {\n this.checkoutForm.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutForm.controls['provinceCode'].setValue(null);\n this.provincesSubject.next(\n value && value != 'null' ?\n this.countriesSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onCountrySelectedFacturacion = (value) => {\n this.checkoutFormFacturacion.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutFormFacturacion.controls['provinceCode'].setValue(null);\n this.provincesFacturacionSubject.next(\n value && value != 'null' ?\n this.countriesFacturacionSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onProvincesSelected = (value) => this.checkoutForm.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n onProvincesSelectedFacturacion = (value) => this.checkoutFormFacturacion.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n verifyValidate = (e) => {\n console.log(\"Verifying: \", e)\n this.require_login = false;\n if (e) {\n this.checkoutForm.controls['email'].setValue(e);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n }\n this.checkoutForm.valid ? this.emitResult() : this.showError('invalid-form');\n }\n\n showError = (error_message) => { this.toast.show(error_message); return true; }\n\n protected emitResult = async () => {\n this.loading = true;\n let data: any = { shippingAddress: { ...this.checkoutForm.getRawValue(), phoneNumber: this.checkoutForm.value.phoneNumber.toString() }, notes: (this.checkoutForm.getRawValue()).notes };\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) data = { ...data, notes: data.notes, billingAddress: this.checkoutFormFacturacion.getRawValue() };\n try {\n let result = await this.addressingService.setAddress(data);\n\n if (result === false)\n this.require_login = true\n\n if (result !== false && result !== undefined) {\n this.form_ready = true\n this.allready_data = true\n }\n\n } catch (e) { this.toast.show('operation-error') }\n this.loading = false;\n }\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-lg ', keyboard: false, backdrop: 'static' });\n }\n\n setSelectAddress = (addressSelect: any) => {\n this.addressBook.map(address => address.selected = address.id === addressSelect.id)\n this.addressBookSelected.id = this.addressBook.find(address => address.selected).id || 0\n }\n\n selectAddress = async () => {\n this.loading = true;\n let addressSelected = this.addressBook.find(address => address.selected)\n if (addressSelected) {\n try {\n if (!this.addressBookSelected.id) {\n this.addressBookSelected.id = addressSelected.id || 0\n }\n const request = {\n selected: this.addressBookSelected,\n shippingAddress: addressSelected\n }\n const resultSede = await this.addressingService.setHeadquarter(request);\n if (resultSede) {\n this.form_ready = true;\n this.allready_data = true;\n } else {\n this.toast.show('operation-error')\n }\n } catch (e) { this.toast.show('operation-error') }\n } else {\n this.showError('invalid-form')\n }\n this.loading = false;\n }\n\n getMode = () => {\n switch (this.addressingService.modeSelectAddress) {\n case 'ONLY_LOAD_ADDRESS':\n return true\n case 'ONLY_ADDRESS_SELECTION':\n if (this.authService.isAuthenticated()) {\n return false\n }\n return true\n case 'LOAD_ADDRESS_AND_SELECTION':\n if (this.authService.isAuthenticated()) {\n return this.selectAddres\n }\n return true\n }\n }\n\n setMode = (mode) => this.selectAddres = mode == \"carga\"\n\n getCountry = (code) => this.addressingService.countriesList.find(paises => paises.code.toLocaleLowerCase().includes(code.toLocaleLowerCase()))?.name || \"\"\n\n getProvince = (code) => this.addressingService.provinceList.find(ct => ct.code == code)?.name || \"\"\n\n getDocumentType = (code) => this.addressingService.documentTypes.find(dt => dt.code == code)?.name || \"\"\n\n getLabelNotesParam = () => this.hasParams(this.params, 'label_notes_' + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n getParamByChannelAndLanguage = (nameParam) => this.hasParams(this.params, nameParam + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class PaymentService extends StepService {\n\n private paymentMethodsSubject = new BehaviorSubject<any[]>([]);\n public methods$ = this.paymentMethodsSubject.asObservable();\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getCheckoutMobbexApi = () => 'shop-api/' + this.consts.getChannel() + '/mobbex/' + this.cartService.getCartToken() + '/process-payment'\n getCheckoutBancardApi = () => 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.getCartToken() + '/process-payment' //?testOrderNumber=' + this.getRandomArbitrary()\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n\n constructor(private connection: ConnectionService, private toastrService: ToastService, private cartService: CartService, private consts: Constants,\n private checkoutService: CheckoutService, private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getPaymentMethods();\n }\n\n getPaymentMethods = async () => this.connection.get(this.getPaymentMethodsApi()).toPromise().then(\n res => res.payments?.length && this.paymentMethodsSubject.next(Object.keys(res.payments[0].methods).map(key => res.payments[0].methods[key])),\n err => this.toastrService.show('operation-error')\n );\n\n // putPayment = (method) => this.connection.put(this.putPaymentApi(method), { method }).toPromise();\n putPayment = (method) =>\n this.connection\n .put(this.putPaymentApi(method), { method })\n .toPromise()\n .then(\n res => {\n this.analyticsService.callEvent('add_payment_info', res);\n return res\n },\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n\n getPreference = (shipment_data) => this.connection.post(this.getPreferenceApi(), shipment_data).pipe(map(res => (res.preference || res))).toPromise();\n\n getCheckoutMobbex = (shipment_data) => this.connection.post(this.getCheckoutMobbexApi(), shipment_data).toPromise();\n\n getCheckoutBancard = (shipment_data) => this.connection.get(this.getCheckoutBancardApi(), shipment_data).toPromise();\n\n private getRandomArbitrary = () => Math.round(Math.random() * (Number(9999999) - Number(2000003)) + Number(2000003))\n}","import { Component, Renderer2, ElementRef, ViewChild, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { PaymentService } from '../../../services/checkout/payment.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-payment-ec',\n templateUrl: 'payment-ec.component.html',\n styleUrls: ['payment-ec.component.scss'],\n providers: [PaymentService]\n\n})\nexport class PaymentEcComponent extends ComponentHelper implements OnChanges, OnInit {\n\n @Input() step_id;\n @ViewChild('formContainer') protected mercadopago_button: ElementRef;\n protected methodDataSubject = new BehaviorSubject<any>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n protected preference;\n\n\n public loading_internal = false;\n public order_id;\n public error;\n public loading = true;\n public loading_internal_mp = false;\n public method_data$ = this.methodDataSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public total_amount;\n\n \n constructor(protected renderer: Renderer2, protected toastr: ToastService,\n public paymentService: PaymentService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.paymentService.initialize(this.step_id);\n this.checkoutService.asociatedData$.subscribe((data: CheckoutData[]) => this.total_amount = (data.find(item => item.type == 'total')).amount)\n this.ecOnInit()\n\n }\n\n allData = () => ({\n ...this.paymentService.getUserData().shippingAddress,\n ...this.paymentService.getShipmentData(),\n });\n\n setError = (message) => {\n this.error = message;\n }\n\n emitResult = async () => {\n this.paymentService.setStepReady(this.methodDataSubject.getValue(), null).then(res => {\n this.setLoading(false)\n });\n }\n\n setLoading = (estado = true) => {\n this.loadingSubject.next(estado);\n return true;\n }\n\n verifyValidate = () => {\n this.setLoading()\n setTimeout(r => this.emitResult(), 1000);\n }\n\n setMethod = async (method) => {\n this.methodDataSubject.next(null);\n let result = await this.paymentService.putPayment(method.code);\n this.methodDataSubject.next(method);\n // this.isMP(method.code) && this.getPreference();\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n submitForm = (event) => {\n try {\n //console.log(\"EVENT\", event);\n event.preventDefault();\n return false;\n } catch (e) {\n //console.log('SE ROMOPIO EL PREVENT DEFAULT')\n }\n\n }\n\n getPK = (method) => (method.config.public_key || method.public_key);\n\n isRedirectRedsys = (code: string) => code && code.toLocaleLowerCase().includes('redsys_redirect');\n\n isRedirectCecaBank = (code: string) => code && code.toLocaleLowerCase().includes('ceca_bank_redirect');\n\n isMP = (code: string) => code && code.toLocaleLowerCase() == ('mercado_pago');\n \n isMPTarjetaDeCredito = (code: string) => code && code.toLocaleLowerCase().includes('credit');\n\n isMethodOffline = (code: string) => code && code.toLocaleLowerCase().includes('offline');\n\n isPeyPalExpress = (code: string) => code && code.toLocaleLowerCase().includes('paypal') && code.toLocaleLowerCase().includes('express');\n\n isMobbex = (code: string) => code && code.toLocaleLowerCase().includes('mobbex');\n\n isBancard = (code: string) => code && code.toLocaleLowerCase().includes('bancard');\n\n isDecidir = (code: string) => code && code.toLocaleLowerCase().includes('decidir');\n}","import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\nimport { map } from 'rxjs-compat/operator/map';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ShipmentService } from '../../../services/checkout/shipment.service';\nimport { ProductsService } from '../../../services/products/products.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-shipment-ec',\n templateUrl: './shipment-ec.component.html',\n styleUrls: ['./shipment-ec.component.scss'],\n providers: [ShipmentService]\n})\nexport class ShipmentEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() step_id;\n public methods_list: any[];\n public loading_internal = false;\n public points: any[] = [];\n public selected_final;\n public costos = null\n public costs = []\n\n contracts = [];\n\n constructor(public shipmentService: ShipmentService, protected toastrService: ToastService,\n public productsService: ProductsService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n emitResult = (method_name, contract_data) => {\n contract_data = {\n ...contract_data,\n shipping_method_contract: method_name + '_' + contract_data.name,\n shipping_method_branch_code: method_name == \"branch_delivery\" ? contract_data.sucursal_id : contract_data.name,\n }\n this.shipmentService.setContract(contract_data);\n }\n\n verifyValidate = (contract, data) => {\n try {\n this.costs.forEach(cost => cost.contracts.forEach(co => co.selected = false))\n this.costs.find(cost => cost.name == contract).contracts.find(contra => contra.name == data.name).selected = true\n } catch (error) {\n console.log(\"error al buscar contrato\", error);\n }\n this.emitResult(contract, data);\n };\n\n ngOnInit() {\n this.shipmentService.initialize(this.step_id);\n this.shipmentService.getShipmentMethods();\n this.checkoutService.asociatedData$.subscribe(data => {\n this.costos = data && data.find(value => value.type == \"shipment\") || null\n })\n this.shipmentService.costs.subscribe(cos => {\n this.costs = cos.map(cost => { return { ...cost, contracts: cost.contracts.map(co => { return { ...co, selected: false } } ) } })\n if (this.costs.length && this.costs[0]?.name && this.costs[0]?.contracts[0]) {\n this.verifyValidate(this.costs[0].name, this.costs[0].contracts[0])\n }\n })\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n this.shipmentService.getShipmentMethods();\n }\n\n toTraducible = (name) => name.replace(/_/g, '-');\n\n deleteUPS = (methods) => methods.filter(method => method.name != 'UPS');\n\n setMethod = (method) => {\n this.loading_internal = true;\n this.shipmentService.restartStep();\n setTimeout(() => {\n this.shipmentService.setMethod(method).then(res => this.loading_internal = false);\n }, 1000);\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n validName = (name) => isNaN(name);\n\n showResponse = (costs) => console.log(costs);\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-order-success-ec',\n templateUrl: './success-ec.component.html',\n styleUrls: ['./success-ec.component.scss']\n})\nexport class SuccessEcComponent extends ComponentHelper implements OnInit {\n\n public orderDetails = {};\n public params: any = {};\n public from_mp = true;\n\n constructor(protected activedRoute: ActivatedRoute, protected cartService: CartService, public router: Router, protected checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.checkoutService.order$.subscribe(\n res => {\n //console.log('LO QUE LLEGA EN ORDEN', res);\n this.params = {\n external_reference: res.number,\n }\n }\n );\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n// import { Constants, Filter, OptionsService, Product, ProductsService } from 'ng-easycommerce';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Filter } from '../../classes/filters/Filter';\nimport { Constants } from '../../core.consts';\nimport { FilterType } from '../../interfaces/filter';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { AuthService } from '../../services/auth.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n\n@Component({\n selector: 'app-collection-ec',\n templateUrl: './collection-ec.component.html',\n styleUrls: ['./collection-ec.component.scss']\n})\nexport class CollectionEcComponent extends ComponentHelper implements OnInit {\n\n public filters: Filter[] = [];\n public filters_top: Filter[];\n // public optionsFilters: ['all'];\n public products: Product[];\n public finished = false;\n protected suscripcion: Subscription;\n public loading = true;\n public breadcrumb: string[] = []\n public isCollection = true;\n public params: any;\n\n @Input() type;\n @Input() value;\n @Input() productsWithUniqueVariant: boolean = false;\n @Input() optionsFilters: FilterType[] = ['all'];\n\n constructor(public productsService: ProductsService,\n protected paramsSrv: ParametersService,\n protected activeRoute: ActivatedRoute,\n protected optionsService: OptionsService,\n public authService: AuthService,\n private analyticsService: AnalyticsService,\n public cartService: CartService,\n public consts: Constants) {\n super();\n this.paramsSrv.parameters.subscribe(param => this.params = param)\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n window.scroll(0, 0);\n this.products = [];\n this.ecOnInit()\n this.getProductsAndSubscribe();\n }\n getProductsAndSubscribe(): void {\n combineLatest([this.activeRoute.params, this.optionsService.ready, this.activeRoute.queryParams]).subscribe(([params, ready, queryParams]) => {\n if (ready.readyAll) {\n let cambio = false;\n this.products = [];\n if (!params['type'] || !params['value']) {\n this.productsService.getProductsForFilter({ latest: true, limit: 10 }, this.optionsFilters, queryParams.search);\n }\n else {\n this.productsService.getProductsForFilter({ type: params.type, value: params.value }, this.optionsFilters, queryParams.search);\n cambio = true;\n this.type = params['type'];\n this.value = params['value'];\n }\n try { this.suscripcion.unsubscribe(); } catch (e) { };\n this.suscripcion = this.productsService.products$.subscribe(\n res => {\n this.loading = false;\n if (res.length == 0) {\n this.products = [];\n this.finished = this.productsService.isFinished();\n } else {\n if (this.productsWithUniqueVariant) {\n if (cambio) {\n this.products = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n cambio = false;\n }\n else {\n res = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n this.products.push(...res)\n };\n } else {\n if (cambio) { this.products = res; cambio = false; }\n else this.products.push(...res);\n }\n }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: 'Collection', item_list_id: 'collection' })\n });\n this.productsService.filters$.subscribe(res => {\n this.breadcrumb = this.optionsService.getBreadcrumbByFilters(res);\n this.filters = this.getSpecificFilters(res, ['category', 'attributes', 'dynamics']);\n this.filters_top = this.getSpecificFilters(res, ['sort']);\n });\n this.productsService.finished().subscribe(res => this.finished = res);\n this.loading = false;\n }\n })\n }\n\n getSpecificFilters = (filters: Filter[], types: FilterType[]): Filter[] => {\n let result = [];\n types.forEach(type => {\n let result_filter = filters.find(filter => filter.type() == type);\n if (result_filter) result.push(result_filter);\n return result;\n });\n return result;\n }\n\n onScroll(): void {\n this.loading = true;\n if (!this.productsService.isWaiting() && !this.productsService.getNext()) {\n this.finished = true;\n this.loading = false;\n }\n }\n\n areProducts = () => this.products.length > 0;\n isWaiting = () => this.productsService.isWaiting();\n setFinished = () => this.finished = true;\n\n\n changeFilter = (e) => {\n if (!this.isCollection) {\n this.isCollection = true;\n }\n }\n\n addAllProductosToCart = (products = null) => {\n let items = [];\n (products || this.products).map(prod => prod.productWithUniqueVariant.map(p => items.push(p)))\n items = items.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem )\n items?.length && this.cartService.addAllToCart(items)\n }\n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: false , checkIfStock:true } \n } \n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { CartService } from '../../services/cart.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-coupon-ec',\n templateUrl: 'coupon-ec.component.html',\n styleUrls: ['coupon-ec.component.scss']\n})\nexport class CouponEcComponent extends ComponentHelper {\n\n public coupon_value = \"\";\n public aplied = false;\n public loading = false;\n\n constructor(public cartService: CartService, protected toastr: ToastService) { \n super();\n this.ecOnConstruct()\n }\n \n ngOnInit() {\n this.ecOnInit()\n }\n\n addCoupon = () => {\n this.validCoupon() && this.cartService.addCoupon(this.coupon_value).then(\n res => {\n res.error ? this.invalidCoupon() : this.applyCoupon();\n }\n )\n }\n\n invalidCoupon = () => {\n this.toastr.show('invalid-coupon');\n this.coupon_value = '';\n this.loading = false;\n }\n\n applyCoupon = () => {\n this.aplied = true;\n this.loading = false;\n }\n\n setLoading = () => this.loading = true;\n\n validCoupon = (): boolean => \n this.coupon_value && /^([A-Za-z\\-0-9]*)\\w+$/.test(this.coupon_value);\n}","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { FAQ } from '../../interfaces/faqs';\nimport { OptionsService } from '../../services/options.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-faqs-content-ec',\n templateUrl: 'faqs-content-ec.component.html',\n styleUrls: ['faqs-content-ec.component.scss']\n})\nexport class FaqsContentEcComponent extends ComponentHelper implements OnInit {\n\n public faqs : FAQ[];\n public actual_index;\n public empty_faqs = false;\n\n constructor(protected optionsService: OptionsService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.optionsService.getFAQ().toPromise().then(\n faqs => {\n console.log('LAS FAQS; ', faqs);\n if (faqs.length > 0) {\n this.faqs = faqs;\n this.actual_index = 0;\n } else {\n this.empty_faqs = true;\n }\n },\n error => {\n console.log(error);\n this.toastr.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(err => this.toastr.show('empty-faqs')); \n this.ecOnInit()\n\n }\n\n changeFAQ = (new_index) => this.actual_index = new_index;\n}","import { Component, Input, OnChanges, OnInit, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-ec',\n templateUrl: './filters-ec.component.html',\n styleUrls: ['./filters-ec.component.scss']\n})\nexport class FiltersEcComponent extends ComponentHelper implements OnInit {\n\n @Input() setSelected;\n @Input() filters;\n public expand: boolean = true;\n\n\n constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n close = (accordion_id) => {\n // this.consts.mobile()\n // ? this.document.getElementById(\"accordionExample\").classList.remove('show')\n // : this.document.getElementById(accordion_id).classList.remove('show');\n return true;\n };\n\n}\n","import { Component, Input, OnChanges, OnInit, Inject, EventEmitter, Output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-top-ec',\n templateUrl: './filters-top-ec.component.html',\n styleUrls: ['./filters-top-ec.component.scss']\n})\nexport class FiltersTopEcComponent extends ComponentHelper implements OnInit {\n\n // @Input() setSelected;\n // @Input() filters;\n\n // public expand: boolean = true;\n\n\n // constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n // super();\n // this.ecOnConstruct() \n // }\n\n // ngOnInit() {\n // this.expand = !this.consts.mobile()\n // this.ecOnInit()\n\n // }\n\n // ngOnChanges() {\n // }\n\n // setSelectedInternal = (filter, $event) => {\n // console.log('EL VALO RQUE VA A MANDAR: ', $event.target.value);\n // this.setSelected(filter, $event.target.value);\n // }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n @Input() setSelected;\n @Input() filters;\n @Input() full = true\n @Output() changeFilter = new EventEmitter();\n\n public expand: boolean = true;\n\n constructor(private consts: Constants, @Inject(DOCUMENT) private document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.full = !this.consts.mobile()\n this.ecOnInit()\n }\n\n ngOnChanges() {\n }\n\n mid = (filter, filterChild, value) => {\n // console.log(\"FILTER \", filter);\n // console.log(\"HIJO \", filterChild);\n // console.log(\"VALOR \", value);\n this.changeFilter.emit(value);\n return true\n }\n\n close = () => {\n //this.document.getElementById(\"filtros\").classList.remove('in');\n return true;\n };\n\n getDescripcion = (title) => {\n switch (title) {\n case 'most-expensive-first':\n return '+';\n case 'cheapest-first':\n return '-';\n case 'ascendancy':\n return 'Asc';\n case 'descendant':\n return 'Desc';\n default:\n return title;\n }\n }\n\n getStyles = (state) => {\n console.log(state);\n return (state) ? 'btn btn-secondary btn-sm active' : 'btn btn-secondary btn-sm'\n }\n\n setSeleccion = (values) => {\n //console.log('SELECIOTOTOT => ', values);\n let valores = values.split('@')\n let filter = this.filters.find(f => f.type() == valores[0]);\n let opChild = {}\n if (valores[1] == 'sub') {\n opChild = (filter.data.find(f => f.children.find(c => c.selected))).children.find(c => c.selected)\n } else {\n opChild = (filter.data.find(f => f.children.find(c => c.value == valores[2]))).children.find(c => c.value == valores[2])\n }\n this.setSelected(filter, opChild)\n }\n\n createValue = (filter, filterItem) => filter.type() + '@' + filterItem.type + '@' + filterItem.value\n\n}\n","import { Component, OnInit, Output } from '@angular/core';\nimport { EventEmitter } from 'events';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-footer-ec',\n templateUrl: 'footer-ec.component.html',\n styleUrls: ['footer-ec.component.scss']\n})\n\nexport class FooterEcComponent extends ComponentHelper implements OnInit {\n public menuItemsCategories: Menu[] = [];\n public menuItemsSections: Menu[] = [];\n public menuItemsAttributes: Menu[] = [];\n\n public sections = [];\n public categories = [];\n public attributes = [];\n public mediaUrl: string;\n public params: any = {};\n\n\n constructor(protected optionsService: OptionsService, public paramsService: ParametersService, protected consts: Constants) {\n super();\n this.optionsService.sections.subscribe(res => (res.length > 0) && this.updateMenuItem(res));\n this.optionsService.categories.subscribe(res => (res.length > 0) && this.updateCategories(res));\n this.optionsService.attributes.subscribe(res => (res.length > 0) && this.updateAttributes(res));\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.ecOnInit()\n\n }\n\n protected updateCategories = (categories) => {\n this.menuItemsCategories = this.optionsService.generateMenu(categories);\n this.menuItemsCategories = this.ecUpdateMenuItemCategories(this.menuItemsCategories)\n this.categories = this.menuItemsCategories\n }\n\n protected updateAttributes = (attributes) => {\n this.menuItemsAttributes = this.optionsService.generateMenu(attributes);\n this.menuItemsAttributes = this.ecUpdateMenuItemAttributes(this.menuItemsAttributes)\n this.attributes = this.menuItemsAttributes\n }\n\n protected updateMenuItem = (elements) => {\n this.menuItemsSections = this.optionsService.generateMenu(elements);\n this.menuItemsSections = this.ecUpdateMenuItemSection(this.menuItemsSections)\n this.sections = this.menuItemsSections;\n }\n\n hasParams = (params, searched) => params && params.find(param => param.code.toLowerCase().includes(searched));\n\n mobile = () => this.consts.mobile();\n\n public addChildren = (menuItems, code, item, stackPlace = 'end') => {\n (stackPlace == 'start')\n ? menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.unshift(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n : menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.push(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n }\n\n public ecUpdateMenuItemSection = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemCategories = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemAttributes = (menuItems) => {\n return menuItems\n }\n}","import { Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Router, Event, NavigationStart } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { Constants } from '../../core.consts';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { AuthService } from '../../services/auth.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { TranslateService } from '@ngx-translate/core';\ndeclare var $ : any\n\n@Component({\n selector: 'app-header-ec',\n templateUrl: './header-ec.component.html',\n styleUrls: ['./header-ec.component.scss']\n})\n\nexport class HeaderEcComponent extends ComponentHelper implements OnInit {\n \n transparent: boolean;\n mediaMenu: boolean;\n\n //og elden\n public menuItems: Menu[] = [];\n public menuSections: any[] = [];\n\n public attributes: Menu[] = [];\n public categories: Menu[] = [];\n public envetUrlTransparent = [\"/home\", \"/\"];\n public searchValue: string;\n public params: any = {};\n public toggled = false;\n\n @ViewChild(\"menu\") menu_button: ElementRef;\n\n constructor(\n public router: Router,\n protected consts: Constants,\n public cartService: CartService,\n protected optionsService: OptionsService,\n public paramsService: ParametersService,\n public productsService: ProductsService,\n public authService: AuthService,\n public translate: TranslateService,\n protected renderer: Renderer2) {\n super();\n this.envetUrlTransparent = this.changeUrlTransparent(this.envetUrlTransparent)\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n this.changeUrlNavigation(url)\n this.envetUrlTransparent.find(evUrl => evUrl === url) != undefined \n ? this.transparent = true\n : this.transparent = false\n }\n });\n // menu\n this.optionsService.categories.pipe(filter(cat => cat.length > 0)).subscribe(res => {\n this.updateMenuItem('categories', res)\n this.subscribeCategories(res)\n });\n this.optionsService.attributes.pipe(filter(atr => atr.length > 0)).subscribe(res => {\n this.updateMenuItem('attributes', res)\n this.subscribeAttributes(res)\n });\n this.ecOnConstruct()\n }\n\n \n\n\n ngOnInit(): void {\n this.paramsService.parameters.subscribe(res => this.params = res);\n const mediaQuery = window.matchMedia('(max-width: 992px)');\n this.mediaMenu = mediaQuery.matches;\n this.ecOnInit()\n }\n\n protected updateMenuItem = (title, elements) => {\n const index = this.menuItems.findIndex(element => element.title == title);\n if (index != null && index >= 0) {\n this.menuItems[index].children = this.optionsService.generateMenu(elements);\n } else {\n if (title == 'attributes') {\n this.attributes.push(...this.optionsService.generateMenu(elements))\n this.attributes = this.updateMenuItemLastCreated(this.attributes);\n }\n if (title == 'categories') {\n this.categories.push(...this.optionsService.generateMenu(elements))\n this.categories = this.updateMenuItemLastCreated(this.categories);\n } \n }\n }\n\n nagivate = (url: string) => this.router.navigateByUrl(`/${url}`);\n \n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('home');\n }\n\n setSearchValue = (event) => {\n event.key == 'Enter' && this.getCollectionSearch()\n this.searchValue = event.target.value;\n }\n\n getCollectionSearch = () => this.router.navigateByUrl('/collection?search=' + this.searchValue);\n \n\n toogleToolbar = () => {\n console.log('LLAMA AL TOOGLE')\n if (this.menu_button.nativeElement.classList.contains('d-none')) {\n this.renderer.removeClass(this.menu_button, 'd-none');\n this.renderer.addClass(this.menu_button, 'active-mobile');\n } else {\n this.renderer.addClass(this.menu_button, 'd-none');\n this.renderer.removeClass(this.menu_button, 'active-mobile');\n }\n }\n\n changeLanguage = (lang) => {\n this.consts.setLocale(lang)\n window.location.reload()\n } \n\n changeUrlTransparent = (urlTransparent = []) => urlTransparent\n\n subscribeAttributes = (arrayAttributes: Array<any>) => {\n \n }\n\n subscribeCategories = (arrayCategories: Array<any>) => {\n \n }\n\n updateMenuItemLastCreated = (arrayMenu: Menu[]) => arrayMenu\n\n changeUrlNavigation = (url: string) => { }\n \n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n\n@Component({\n selector: 'app-home-ec',\n templateUrl: './home-ec.component.html',\n styleUrls: ['./home-ec.component.scss']\n})\nexport class HomeEcComponent extends ComponentHelper implements OnInit {\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.blocksService.getBlocks('home');\n this.ecOnInit()\n\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n noNewsletter = (block) => !block.code.includes('newsletter');\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\"\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { UserRoleType } from \"../../classes/user-role-type\";\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from \"../../utils/toast.service\";\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-login-ec',\n templateUrl: './login-ec.component.html',\n styleUrls: ['./login-ec.component.scss']\n})\nexport class LoginEcComponent extends ComponentHelper implements OnInit {\n\n @Input() redirect = true;\n @Input() title = 'login';\n @Input() buyButton = false;\n @Input() withRoles: UserRoleType[] = []\n @Output() ready = new EventEmitter();\n @Output() loggedIn = new EventEmitter();\n\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService,\n protected toastrService: ToastService,\n protected formBuilder: FormBuilder,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n\n ngOnInit() {\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.ecOnInit()\n\n }\n\n redirectHome = () => {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl('/home')\n }\n\n nagivate(url: string) {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl(`/${url}`);\n }\n\n\n login = ($event) => {\n $event.preventDefault();\n this.loading = true;\n this.authService.login(this.loginForm.value, this.withRoles).toPromise().then(\n res => {\n $('#collapse_login5').collapse('hide');\n if (res == 'ok') {\n localStorage.setItem('mail', this.loginForm.value.username);\n $('#collapse_login5').collapse('hide');\n if (this.redirect) {\n this.redirectHome()\n } else {\n this.loggedIn.emit('true')\n this.ready.emit(this.loginForm.value.username)\n }\n }\n else {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n $('#collapse_login5').collapse('hide');\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, partition } from 'rxjs';\nimport { Product } from '../../interfaces/product';\nimport { ProductsService } from './products.service';\nimport { CartService } from '../cart.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport _ from \"lodash\";\nimport { AnalyticsService } from '../analytics.service';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\n\n@Injectable()\nexport class ProductDetailService {\n\n private productSubject = new BehaviorSubject<Product>({});\n private optionsSubject = new BehaviorSubject<any>({});\n private asociatedDataSubject = new BehaviorSubject<any>({ price: '', stock: 0, picture: '' });\n\n private variants = []\n\n public product$ = this.productSubject.asObservable();\n public options$ = this.optionsSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n\n constructor(\n private productsService: ProductsService, private cartService: CartService, private toastrService: ToastService,\n private constants: Constants, public analyticsService: AnalyticsService,) {\n }\n\n /**\n * @param code Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * \n * Carga el producto solicitado asyncronicamente sin respuesta \n */\n loadProduct = (code, variant: boolean = false) =>\n this.productsService.getSpecificProduct(code, variant).toPromise().then(\n res => variant ? this.initialize(res, code) : this.initialize(res),\n err => this.productSubject.next(null)\n )\n\n /**\n * @param product_id Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * @async\n * \n * A diferencia del metodo loadProduct, este retorna un valor cuando termina \n */\n getProduct = async (product_id, variant: boolean = false) => {\n let result = await this.productsService.getSpecificProduct(product_id, variant).toPromise();\n if (!result || result.error) this.productSubject.next(null);\n else variant ? this.initialize(result, product_id) : this.initialize(result);\n return true;\n }\n\n private initialize = (product, variant_code?) => {\n this.productSubject.next(product);\n this.optionsSubject.next(this.getOptions())\n variant_code ? this.updateVariants(variant_code) : this.updateVariants();\n this.variants.length && this.generateAsociatedDataFromVariants();\n //this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n // variant_code && this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n }\n\n setProduct = (product) => this.isProductValid(product) && this.initialize(product);\n\n isReady = () => this.variants.length == 1;\n\n setOption = (option_code, option_value) => {\n let options = this.optionsSubject.value;\n let option = options.find(element => element.code == option_code).values.find(value => value.name == option_value);\n option.selected = !option.selected;\n options.find(element => element.code == option_code).values.forEach(\n value => { if (value.name != option.name) value.selected = false }\n );\n this.optionsSubject.next(options);\n this.updateVariants();\n this.generateAsociatedDataFromVariants();\n }\n\n changePicture = (picture) => {\n let data = this.asociatedDataSubject.value;\n data.picture = picture;\n this.asociatedDataSubject.next(data);\n }\n\n handleError = (error) => {\n // Whathever we need to do with error\n }\n\n addToCart(quantity) {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n this.toastrService.show('cant-buy');\n return;\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n this.variants.length == 0 && this.toastrService.show('no-variants');\n (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) && this.toastrService.show('variants-left');\n (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) && this.toastrService.show('out-of-stock');\n return;\n }\n if (!this.validateQuantity(quantity)) return;\n this.cartService.addToCart(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n };\n\n\n\n addToCartPromise = async (quantity) => {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n return { error: true, message: 'cant-buy' };\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n if (this.variants.length == 0) return { error: true, message: 'no-variants' };\n else if (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) return { error: true, message: 'variants-left' };\n else if (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) return { error: true, message: 'out-of-stock' };\n }\n if (!this.validateQuantity(quantity)) return;\n let result = await this.cartService.addToCartPromise(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n return (result && !(result.error));\n };\n\n private getOptions = (product_received?: Product) => {\n let product = product_received || this.productSubject.value;\n let options = [];\n product.options.forEach(element => {\n options.push(this.toOption(element));\n })\n return options;\n }\n\n private toOption = (preoption) => {\n return {\n name: preoption.label,\n code: preoption.code,\n type: preoption.type,\n values: preoption.values.map(value => ({ name: value.code, description: value.name, selected: false }))\n }\n }\n\n private makeAffordableProduct(product_selected: Product) {\n product_selected.price = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.saleprice = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.options = {};\n this.variants[0].options.forEach(option => product_selected.options = { ...product_selected.options, ...option })\n return product_selected;\n }\n\n private updateVariants = (code?) => {\n let variants = this.productSubject.value.variants;\n if (!code) {\n this.optionsSubject.value.forEach(option => {\n option.values.forEach(value => {\n if (value.selected) {\n variants = variants.filter(variant => {\n return variant.options.some(variant_option => {\n return (option.code in variant_option && variant_option[option.code] == value.name);\n })\n })\n }\n })\n })\n } else {\n variants = variants.filter(variant => variant.code == code);\n }\n this.variants = variants;\n code && this.updateOptions();\n }\n\n private updateOptions = () => {\n let { options } = this.variants.length && this.variants[0];\n options && options.forEach(option => Object.keys(option).forEach(key => this.setOption(key, option[key])))\n }\n\n private generateAsociatedDataFromVariants = () => {\n let asociated: any = {};\n if (this.isReady()) {\n asociated.stock = this.variants[0].stock\n asociated.price = this.variants[0].price.toString()\n asociated.saleprice = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n asociated.discount = this.variants[0]?.discount || undefined;\n // asociated.price = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n // asociated.saleprice = this.variants[0].price.toString()\n } else {\n asociated.price = this.cratePrice()\n asociated.saleprice = this.crateSalePrice()\n asociated.stock = (this.variants.map(variant => variant.stock)).reduce((a, b) => a + b)\n asociated.discount = this.crateDiscount()\n }\n\n ('images' in this.variants[0] && this.variants[0].images.length > 0)\n ? asociated.picture = this.variants[0].images[0]\n : asociated.picture = (this.asociatedDataSubject.value.picture || this.productSubject.value.picturesdefault[0]);\n\n\n asociated.maximumAmount = this.variants[0]?.maximumAmount || 0\n asociated.minimumAmount = this.variants[0]?.minimumAmount || 0\n\n asociated.maximumItemsQuantity = this.variants[0]?.stock > 0 && 'maximumItemsQuantity' in this.variants[0] ? this.variants[0]?.maximumItemsQuantity : this.variants[0]?.stock\n asociated.minimumItemsQuantity = this.variants[0]?.stock > 0 && 'minimumItemsQuantity' in this.variants[0] && this.variants[0]?.minimumItemsQuantity > 0 ? this.variants[0]?.minimumItemsQuantity : 1\n\n asociated.finalConsumer = {\n finalConsumerPrice: this.variants[0]?.final_consumer_price,\n originalFinalConsumerPrice: this.variants[0]?.original_final_consumer_price,\n }\n\n asociated.taxes = {\n taxIncluded: this.variants[0]?.taxIncluded,\n taxCategory: this.variants[0]?.taxCategory,\n }\n\n this.asociatedDataSubject.next(asociated);\n }\n\n private crateDiscount = () => {\n try {\n let all_discount = '';\n this.variants.forEach(variant => {\n variant.discount && (all_discount = all_discount + ', ' + variant.discount);\n });\n if (all_discount == '') {\n return undefined\n }\n return all_discount\n } catch (error) {\n return undefined\n }\n }\n\n private cratePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n all_prices.push(variant.price);\n });\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private crateSalePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n variant.saleprice && all_prices.push(variant.saleprice);\n });\n if (!all_prices.length) {\n return undefined\n }\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private inRange = (quantity, min, max) => ((quantity - min) * (quantity - max) <= 0)\n\n private validateQuantity = (quantity: number) => {\n const actualQuantity = this.cartService.getCountFromItemInCart(this.variants[0].code);\n const asociatedData = this.asociatedDataSubject.value;\n console.log('La cantidad que llego: ', quantity, ' y la cantidad actual: ', actualQuantity);\n if ((actualQuantity + quantity) > asociatedData.maximumItemsQuantity) {\n this.toastrService.show('maximum-items-quantity', { quantity: asociatedData.maximumItemsQuantity })\n return false;\n }\n if ((actualQuantity + quantity) < asociatedData.minimumItemsQuantity) {\n this.toastrService.show('minimum-items-quantity', { quantity: asociatedData.minimumItemsQuantity })\n return false;\n }\n return true\n }\n\n // Cuando haya modelos de respuesta, validamos que no se intente cargar un producto incompleto\n private isProductValid = (product: Product) => true;\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * \n * @description Retorna una lista filtrada de las variantes que estan seleccionadas\n */\n private getVariantsSelected(options: any, optionsException: Array<any>): Array<Object> {\n\n let variantsSelected = [];\n options.forEach(v => {\n if (v.values && v.values.length) {\n v.values.forEach(val => {\n if (val.selected && !optionsException.find(op => op.toUpperCase() == v.code.toUpperCase())) {\n variantsSelected[v.code] = val.name;\n }\n })\n }\n });\n\n return variantsSelected;\n\n }\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * @param variants Todas las variantes disponibles del producto\n * \n * @description retorna todas las variantes disponibles a seleccion y su stock\n */\n public getVariantsAvailable(options: any, variants: any, optionsException: Array<any>): any {\n\n let variantsSelected = this.getVariantsSelected(options, optionsException);\n\n let variantsAvailable = [];\n\n variants.map(v => {\n\n let aux = {};\n if (v.options && v.options.length) {\n v.options.map(op => {\n Object.assign(aux, op, { stock: v.stock });\n })\n }\n variantsAvailable.push(aux);\n })\n return variantsAvailable.filter(va => this.constants.containsAll({ ...variantsSelected }, va))\n }\n\n\n /**\n * \n * @param options Array de variantes y sus valores\n * @param code Codigo de la variante a buscar\n * @param name nombre de la variante a buscar\n * @param variants variantes del producto\n * \n * @description busca en la lista de variantes disponibles si hay de ese codigo, ese nombre y con stock \n */\n public existVariantAndHasStock(options, code, name, variants, optionsException = []): boolean {\n\n return this.getVariantsAvailable(options, variants, optionsException).find(va =>\n va.hasOwnProperty(code) && va[code] === name && va.stock > 0)\n }\n\n /**\n * \n * @param product producto el cual se quiere desdoblar por variantes por una opción.\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\n * @returns arreglo con el producto desdoblado por la variante solicitada.\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \n */\n getProductWithUniqueVariant = (product, withOption?: ParamsProductsWithUniqueVariant) => {\n return this.productsService.getProductsWithUniqueVariant([product], withOption)\n }\n\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ToastService } from '../../utils/toast.service';\n\n\n@Component({\n selector: 'app-product-detail-ec',\n templateUrl: './product-detail-ec.component.html',\n styleUrls: ['./product-detail-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductDetailEcComponent extends ComponentHelper implements OnInit {\n\n public product: any;\n public mediaUrl;\n public show = false;\n public quantity = 1;\n public breadcrumb = [];\n public carousel: any;\n public code = null;\n public focusImage: string = null\n public owlOptions = {}\n \n\n @ViewChild('contact') contact: ElementRef;\n\n constructor(\n public productService: ProductDetailService,\n public consts: Constants,\n protected activedRoute: ActivatedRoute,\n public cartService: CartService,\n public optionsService: OptionsService,\n public productsService: ProductsService,\n public analyticsService: AnalyticsService,\n public router: Router,\n protected toastrService: ToastService) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.activedRoute.params.subscribe(queryParams => {\n let variant: any = (this.activedRoute.snapshot.queryParamMap.get('variant'));\n let code = queryParams.id;\n this.productService.loadProduct(code, variant);\n this.code = queryParams.id\n })\n this.productService.product$.subscribe(res => {\n this.product = res;\n window.scroll(0, 0);\n this.breadcrumb = this.optionsService.getBreadcrumb(this.product.category);\n });\n this.productService.product$.pipe(filter(data => data && data.id && data.id != 0)).subscribe(\n (productParam) => {\n this.analyticsService.callEvent('view_item', { ...productParam, currency: this.consts.currency.code })\n this.changeImgFocus(productParam.picturesdefault[0])}\n )\n this.ecOnConstruct()\n\n }\n\n ngOnInit(): void {\n this.ecOnInit()\n }\n\n addToCart = () => {\n this.quantity > 0 && this.productService.addToCart(this.quantity);\n }\n\n addAllProductosToCart = () => {\n let items = this.product.productWithUniqueVariant?.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem)\n items?.length && this.cartService.addAllToCart(items)\n }\n\n scroll() {\n let el = this.contact.nativeElement as HTMLElement;\n el.scrollIntoView();\n }\n\n saveRef = (carousel) => {\n this.carousel = carousel;\n }\n\n plus = (stock) => this.quantity < stock ? this.quantity = this.quantity + 1 : this.toastrService.show('out-of-stock-actually');\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n showContact = () => this.show = true;\n hideContact = () => this.show = false;\n\n thereIsMoreInfo = (product: any) => {\n let result;\n if (product?.special_mark && product?.special_mark.length) {\n result = product?.special_mark?.find(special_mark => special_mark.type == 'more_info');\n }\n return result;\n }\n\n changeImgFocus = (img) => {\n this.focusImage = img\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AuthService } from '../../services/auth.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\n\n@Component({\n selector: 'app-product-ec',\n templateUrl: './product-ec.component.html',\n styleUrls: ['./product-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductEcComponent extends ComponentHelper implements OnInit {\n\n public quantity = 1;\n public stock = 0\n public data = null\n\n\n constructor(public consts: Constants, public router: Router,public productService: ProductDetailService,public authService: AuthService,) {\n super();\n this.ecOnConstruct()\n }\n @Input() product: any;\n\n ngOnInit(): void {\n this.productService.setProduct(this.product)\n this.productService.asociatedData$.subscribe(res => { this.data = res; this.stock = res.stock })\n this.ecOnInit()\n }\n\n canBuy = () => false;\n\n ngOnChanges() {\n }\n\n buyOrRedirect = (variant = false) => {\n let idredirect = variant && this.product.variants.find(v => v.stock > 0)?.code\n if (!idredirect) { idredirect = this.product.id; variant = false }\n else { if (idredirect.includes(\"/\")) {idredirect = this.product.id ; variant = false} }\n this.router.navigateByUrl(`/product/${idredirect}${variant ? '?variant=true':''}`)\n }\n\n plus = () => this.quantity = this.quantity + 1;\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n addToCart = () => {\n this.productService.addToCart(+this.quantity)\n }\n\n getBrandName = product => {\n if (product && product.attributes)\n return product.attributes\n .filter(attribute => attribute.code === 'marca')\n .map(attribute => attribute.children[0].name)\n }\n}\n","import { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n@Component({\n selector: 'app-related-products-ec',\n templateUrl: './related-products-ec.component.html',\n styleUrls: ['./related-products-ec.component.scss']\n})\nexport class RelatedProductsEcComponent extends ComponentHelper implements OnInit {\n\n public relatedProducts = [];\n @Input() product_id;\n public name = null;\n\n constructor(protected productsService: ProductsService,\n private analyticsService: AnalyticsService,\n public consts: Constants,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.load(this.product_id)\n this.ecOnInit()\n }\n\n load(product_id) {\n this.productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(\n res => {\n this.relatedProducts = res\n res.map(products => this.analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.title?.toLowerCase()?.replace(' ', '-') || 'related-products' }))\n },\n //res => res.items ? this.products = res.items : null\n // err => this.toastrService.show('unable-to-fetch-products')\n )\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.load(changes.product_id.currentValue)\n //this.doSomething(changes.categoryId.currentValue);\n // You can also use categoryId.previousValue and \n // categoryId.firstChange for comparing old and new values\n\n }\n\n\n\n public customOptions: any = {\n loop: true,\n dots: false,\n navSpeed: 950,\n margin: 0,\n navText: ['', ''],\n nav: true,\n responsive: {\n 0: {\n items: 1,\n nav: true\n },\n 600: {\n items: 3,\n nav: true\n },\n 900: {\n items: 4,\n nav: true,\n }\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { OptionsService } from '../../services/options.service';\n\n@Component({\n selector: 'app-section-container-ec',\n templateUrl: './section-container-ec.component.html',\n styleUrls: ['./section-container-ec.component.scss']\n})\nexport class SectionContainerEcComponent extends ComponentHelper implements OnInit {\n\n public content_html: SafeHtml = \"<p>Sin información</p>\";\n public loadSection: boolean = false;\n @Input() sanitizeHtml: boolean = false\n @Input() name = null;\n\n constructor(protected activatedRoute: ActivatedRoute, protected optionsService: OptionsService,\n protected toastrService: ToastrService, protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n if (this.name) {\n this.getSection(this.name)\n } else {\n this.activatedRoute.params.subscribe(\n params => {\n this.name = params.name;\n this.getSection(this.name)\n }\n );\n }\n this.ecOnInit()\n }\n\n getSection = (link: any) => {\n this.loadSection = false\n this.optionsService.getSectionContentByLink(link).toPromise().then(\n html => {\n if (html) this.content_html =\n this.sanitizeHtml\n ? html\n : this.sanitizer.bypassSecurityTrustHtml(html)\n this.loadSection = true\n }\n ,\n error => {\n console.log(error);\n this.loadSection = true\n this.content_html = \"<p>Sin información</p>\";\n this.toastrService.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(error => {\n this.content_html = \"<p>Sin información</p>\"\n this.loadSection = true\n });\n }\n}","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { StoresService } from '../../services/stores.service';\n\n@Component({\n selector: 'app-store-ec',\n templateUrl: 'stores-ec.component.html',\n styleUrls: ['stores-ec.component.scss']\n})\nexport class StoresEcComponent extends ComponentHelper {\n\n public filterStores = null\n public storesAll = null\n public imageMap = true\n public urlmap;\n public stores = [];\n public provinces = []\n\n constructor(public storesService: StoresService, public consts: Constants , protected sanitizer: DomSanitizer) {\n super();\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148')\n this.storesService.stores.pipe(filter(store => store && store.length > 0)).subscribe(stores => {\n this.storesAll = stores\n this.stores = stores\n this.selectChange('')\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n updateMap(url:string) {\n url = url.includes ('embed') ? url : 'https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148'\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl(url)\n }\n\n getProvices = (stores) => {\n let provincesOpt = []\n stores.forEach(store => {\n if (provincesOpt.find(s => s.code == store.province.code) == undefined) {\n provincesOpt.push(store.province)\n }\n });\n return provincesOpt\n }\n\n selectChange = (select) => {\n this.filterStores = select != '' && this.storesAll.filter(store => store.province.code == select) || this.storesAll\n return true\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-product-variants-ec',\n templateUrl: 'variants-ec.component.html',\n styleUrls: ['variants-ec.component.scss']\n})\nexport class VariantsEcComponent extends ComponentHelper {\n\n @Input() product;\n @Input('options') options$;\n @Input() setOption;\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n setSeleccion = (values) => {\n $('#op').attr('disabled', true); \n let valores = values.split(',')\n if (valores.length != 2) return\n console.log(values);\n console.log(valores);\n this.setOption(valores[0], valores[1])\n }\n\n view = (length, options) => {\n // console.log('LAS OPCIONES', options);\n return length > 1;\n }\n\n\n\n}","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport { take } from 'rxjs/operators';\nimport Fuse from 'fuse.js'\n\nexport type SellerDashboardUI =\n | 'HEADER_TAB'\n | 'GENERATE_BUDGET_BTN'\n | 'MANAGE_ORDERS_BTN'\n | 'SORT_SELECT'\n | 'SEARCH_FORM'\n | 'ORDER_COUNTER'\n\n@Component({\n selector: 'app-seller-dashboard-container',\n templateUrl: 'seller-dashboard-container-ec.component.html',\n styleUrls: ['seller-dashboard-container-ec.component.scss']\n})\nexport class SellerDashboardContainerEcComponent extends ComponentHelper implements OnInit {\n\n @Input() UIComponents: SellerDashboardUI[] = []\n \n public user = null\n public activeCustomer = null\n public sortValue = ''\n public searchInput = ''\n public customers = []\n public filteredCustomers = []\n private fuseOptions = {\n isCaseSensitive: false,\n shouldSort: false,\n tokenize: true,\n threshold: 0.2,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 0,\n keys: ['firstName', 'lastName', 'email', 'id']\n }\n private fuse = new Fuse(this.customers, this.fuseOptions)\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected constants: Constants, @Inject('env') protected env) {\n super()\n this.ecOnConstruct()\n }\n\n updateCustomers = () => {\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n\n this.filteredCustomers =\n this.searchInput\n ? this.fuse\n .search(this.searchInput)\n .map(customer => customer.item)\n : this.customers\n\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers(this.sortValue)\n }\n\n sortCustomers = value => {\n this.sortValue = value\n\n const comparator =\n (this.sortValue == 'asc')\n ? [-1, 1]\n : [1, -1]\n\n this.filteredCustomers =\n this.sortValue\n ? this.filteredCustomers.sort((aCustomer, otherCustomer) => {\n return (aCustomer.firstName == otherCustomer.firstName)\n ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]\n : aCustomer.firstName.toLowerCase() < otherCustomer.firstName.toLowerCase() ? comparator[0] : comparator[1]\n })\n : this.filteredCustomers\n }\n\n changeCustomer = customer => {\n this.authService.setCustomer(customer)\n customer\n ? this.toastrService.show('start-impersonating', { customer: customer.firstName + ' ' + customer.lastName })\n : this.toastrService.show('stop-impersonating')\n }\n\n hasHeader = () =>\n this.hasUIComponent('HEADER_TAB') ||\n this.hasUIComponent('GENERATE_BUDGET_BTN') ||\n this.hasUIComponent('MANAGE_ORDERS_BTN') ||\n this.hasUIComponent('SORT_SELECT') ||\n this.hasUIComponent('SEARCH_FORM')\n\n navigateExternal = url => window.open(url)\n\n hasUIComponent = (UIComponent: SellerDashboardUI) => this.UIComponents.includes(UIComponent)\n\n ngOnInit() {\n this.authService.getUserProfile()\n .pipe(take(1))\n .subscribe(user => {\n this.user = user\n this.customers = user.customers\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n })\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-full-ec',\n templateUrl: 'loading-full-ec.component.html',\n styleUrls: ['loading-full-ec.component.scss']\n})\nexport class LoadingFullEcComponent extends ComponentHelper {\n\n @Input() hole_height = false;\n \n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-inline-ec',\n templateUrl: 'loading-inline-ec.component.html',\n styleUrls: ['loading-inline-ec.component.scss']\n})\nexport class LoadingInlineEcComponent extends ComponentHelper {\n\n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { CartService } from '../../../../services/cart.service';\nimport { ComponentHelper } from '../../../../classes/component-helper';\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: '[app-mp-credit-ec]',\n templateUrl: 'mpcredit-ec.component.html',\n styleUrls: ['mpcredit-ec.component.scss']\n})\nexport class MPCreditEcComponent extends ComponentHelper implements OnInit {\n\n @Input() public_key;\n @Input() total_amount;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n\n public installments = [];\n public installment;\n public installment_data;\n public issuers = [];\n public issuer_id;\n public merchant_account_id;\n public doSubmit = false;\n public payment_method = '';\n public require_issuer = false;\n public allready_payed = false;\n public payment_method_option_id;\n public payment_method_id;\n public processing_mode;\n public token;\n public email;\n public doc_number;\n public doc_type = \"DNI\";\n public bin;\n public code;\n public month;\n public year;\n public cardholder;\n\n protected finishApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.cart_token + '/process-payment';\n\n constructor(protected renderer: Renderer2, protected connection: ConnectionService,\n public consts: Constants, protected cartService: CartService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n //console.log('SHIPMENT DATA', this.user_data);\n var s = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(s, 'src', 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js');\n this.renderer.appendChild(document.body, s);\n setTimeout(() => {\n Mercadopago.setPublishableKey(this.public_key);\n }, 1000)\n this.ecOnInit()\n\n }\n\n expiryChange = (event) => {\n let fecha = (event.target.value).replace(/ /g, \"\");\n let fechaSplit = fecha.split('/')\n if (fechaSplit.length == 2) {\n this.month = fechaSplit[0]\n this.year = fechaSplit[1]\n }\n }\n\n cardNumberChange = (event) => {\n //console.log('TOMA EL ON CHANGE DE TARJETA');\n this.restartInstallments();\n this.guessPaymentMethod(event);\n }\n\n verifyValidate = (data) => {\n // FALTA SACAR EL PAYMENT METOD OPTTION ID\n let post_data = {\n token: data.id,\n issuer_id: this.issuer_id,\n installments: this.installment,\n merchant_account_id: this.merchant_account_id,\n payment_method_option_id: this.payment_method_option_id,\n payment_method_id: this.payment_method_id,\n processing_mode: this.processing_mode,\n email: this.email,\n document_type: this.doc_type,\n document_number: this.doc_number,\n };\n //console.log('LA DATA QUE VA A MANDAR: ', post_data);\n this.connection.post(this.finishApi(), post_data).toPromise().then(this.processResponse, this.processError)\n }\n\n // Obtener método de pago de la tarjeta\n\n guessPaymentMethod = (event) => {\n //console.log('SE LLAMA AL GUESS PAYMENT');\n let cardnumber = (event.target.value).replace(/ /g, \"\");\n this.setPaymentMethod.bind(this);\n if (cardnumber.length >= 6) {\n let bin = cardnumber.substring(0, 6);\n this.getPaymentMethod(bin);\n }\n };\n\n getPaymentMethod = (bin) => {\n let data_to_send = {\n public_key: this.public_key,\n marketplace: 'NONE',\n status: 'active',\n js_version: '1.3.1',\n bins: bin,\n referer: 'http://enzoshoes.easycommercetech.com'\n }\n\n this.connection.getOutsiderWithParams('https://api.mercadopago.com/v1/payment_methods/search', data_to_send).toPromise().then((res) => {\n //console.log('LA RESPUESTA DEL SEARCH PAYMENT METHOD: ', res);\n if (res && res.results && res.results.length) {\n const payment_data = res.results.find(result => result.processing_mode == \"gateway\") || res.results[0];\n if (payment_data.payment_type_id != \"credit_card\") {\n this.toastr.show('Debe ingresar información de una tarjeta de credito');\n return;\n }\n this.payment_method = payment_data.id;\n this.issuer_id = payment_data.issuer.id;\n payment_data.payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: ('Cuotas: ' + payerCost.installments + ' - Total: ' + this.calculateTotal(payerCost)), value: payerCost.installments });\n });\n this.installment_data = payment_data;\n } else {\n this.toastr.show('El número de tarjeta ingresado no es valido');\n }\n }).catch(err => this.toastr.show('Hubo un error al obtener la información de la tarjeta. Verifique que los datos sean correctos.'));\n }\n\n setPaymentMethod = (status, response) => {\n //console.log('SE LLAMA AL SET PAYMENT', response);\n let paymentMethod = response[0];\n this.payment_method = paymentMethod.id;\n this.getIssuers.bind(this);\n this.getInstallments.bind(this);\n if (paymentMethod.additional_info_needed.includes(\"issuer_id\")) {\n this.getIssuers(paymentMethod.id);\n } else {\n // this.issuer_id = response.issuer\n this.getInstallments(\n paymentMethod.id,\n this.total_amount\n );\n }\n }\n\n // Obtener banco emisor\n\n getIssuers = (paymentMethodId) => {\n this.restartInstallments();\n this.require_issuer = true;\n //console.log('SE LLAMA AL GET ISSUER');\n this.setIssuers.bind(this);\n Mercadopago.getIssuers(\n paymentMethodId,\n this.setIssuers\n );\n }\n\n setIssuers = (status, response) => {\n //console.log('SE LLAMA AL SET ISSUER', response);\n this.getInstallments.bind(this);\n if (status == 200) {\n response.forEach(issuer => {\n this.issuers.push({ name: issuer.name, value: issuer.value });\n });\n } else {\n this.toastr.show('Error al obtener proveedores disponibles');\n }\n }\n\n // UTILS\n\n restartInstallments = () => {\n this.installments = [];\n this.installment_data = null;\n this.merchant_account_id = null;\n this.payment_method_option_id = null;\n this.issuer_id = null;\n this.payment_method_id = null;\n }\n\n selectIssuer = (value) => {\n this.issuer_id = value;\n this.getInstallments(this.payment_method, this.total_amount, this.issuer_id);\n }\n\n selectInstallment = (value) => {\n const cost = this.installments.find(installment_cost => installment_cost.value == value);\n this.installment = cost.value;\n this.merchant_account_id = this.installment_data.merchant_account_id;\n this.payment_method_option_id = cost.payment_method_option_id || (this.installment_data.agreements && this.installment_data.agreements[0].merchant_accounts[0].payment_method_option_id);\n this.issuer_id = this.installment_data.issuer.id;\n this.payment_method_id = this.installment_data.payment_method_id || this.installment_data.id;\n this.processing_mode = this.installment_data.processing_mode;\n\n //console.log('COMO QUEDAN: ', this.merchant_account_id, this.payment_method_option_id, this.issuer_id, this.payment_method_id, this.installment);\n // this.payme\n }\n\n // Obtener cantidad de cuotas\n\n getInstallments = (paymentMethodId?, transactionAmount?, issuerId?) => {\n let payment = paymentMethodId || this.payment_method;\n let amount = transactionAmount || this.total_amount;\n //console.log('SE LLAMA AL GET INSTALLMENTS');\n this.setInstallments.bind(this);\n let data = {\n \"payment_method_id\": payment,\n \"bin\": this.bin.replace(/ /g, \"\"),\n \"amount\": parseFloat(amount),\n \"issuer_id\": issuerId ? parseInt(issuerId) : undefined\n };\n //console.log('LO QUE VA A MANDAR AL GET INSTALLMENTS');\n Mercadopago.getInstallments(data, this.setInstallments);\n }\n\n setInstallments = (status, response) => {\n //console.log('LA RESPUESTA DEL GET INSTALLMENTS', response);\n if (status == 200 && response.length) {\n this.installments = [];\n response[0].payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: payerCost.recommended_message, value: payerCost.installments });\n });\n this.installment_data = response[0];\n } else {\n // alert(`installments method info error: ${response}`);\n this.toastr.show('Hubo un error al obtener las cuotas disponibles. Vuelva a intentarlo más tarde');\n }\n }\n\n // Crea el token de la tarjeta\n\n getCardToken = (event) => {\n //console.log('SE LLAMA AL GET CARD TOKEN');\n event.preventDefault();\n if (!this.doSubmit) {\n let $form = document.getElementById('paymentForm');\n Mercadopago.createToken.bind(this)($form, this.setCardTokenAndPay);\n return false;\n }\n };\n\n setCardTokenAndPay = (status, response) => {\n //console.log('SE LLAMA AL SET CARD TOKEN AND PAY');\n if (status == 200 || status == 201) {\n let form = document.getElementById('paymentForm');\n let card = document.createElement('input');\n card.setAttribute('name', 'token');\n card.setAttribute('type', 'hidden');\n card.setAttribute('value', response.id);\n form.appendChild(card);\n this.token = response.id;\n this.doSubmit = true;\n // form.submit();\n // TERMINAR\n this.verifyValidate(response);\n } else {\n //console.log('EL RESPONSE: ', response);\n this.toastr.show(this.parseErrorMessage(status));\n }\n };\n\n // UTILS\n\n isInvalid = () => {\n const result = (\n !this.issuer_id ||\n !this.payment_method_id ||\n !this.payment_method_option_id ||\n (this.processing_mode == 'gateway' && !this.merchant_account_id) ||\n !this.installment ||\n !this.email ||\n !this.doc_type ||\n !this.doc_number ||\n this.allready_payed ||\n !this.code ||\n !this.month ||\n !this.year ||\n !this.cardholder\n )\n return result;\n }\n\n calculateTotal = (cost) => {\n let result = this.total_amount + ((this.total_amount * cost.installment_rate) / 100);\n result = parseFloat(result).toFixed(2);\n return result;\n }\n\n processResponse = (response) => {\n if (response.status !== 'rejected') {\n //console.log('SE PUDO EFECTUAR LA COMPRA');\n this.ready.emit('true');\n return;\n }\n this.processError(response);\n }\n\n processError = (response) => {\n this.allready_payed = false;\n if (response.status_detail) {\n switch (response.status_detail) {\n case 'rejected': this.toastr.show('Revisa el número de tarjeta.'); break;\n case 'rejected': this.toastr.show('Revisa la fecha de vencimiento.'); break;\n case 'rejected': this.toastr.show('Revisa los datos.'); break;\n case 'rejected': this.toastr.show('Revisa el código de seguridad de la tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Debes autorizar ante payment_method_id el pago de amount.'); break;\n case 'rejected': this.toastr.show('Llama a payment_method_id para activar tu tarjeta o usa otro medio de pago. El teléfono está al dorso de tu tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.'); break;\n case 'rejected': this.toastr.show('Tu payment_method_id no tiene fondos suficientes.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesa pagos en installments cuotas.'); break;\n case 'rejected': this.toastr.show('Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesó el pago.'); break;\n }\n return;\n }\n this.toastr.show('Hubo un error al intentar realizar el pago. Vuelva a intentarlo más tarde');\n }\n\n parseErrorMessage = (status_code) => {\n switch (status_code) {\n case 205: return ('Ingresa el número de tu tarjeta.');\n case 208: return ('Elige un mes.');\n case 209: return ('Elige un año.');\n case 212: return ('Ingresa tu tipo de documento.');\n case 213: return ('Ingresa tu documento.');\n case 214: return ('Ingresa tu documento.');\n case 220: return ('Ingresa tu banco.');\n case 221: return ('Ingresa el nombre y apellido.');\n case 224: return ('Ingresa el código de seguridad.');\n case 316: return ('Ingresa un nombre válido.');\n case 322: return ('El tipo de documento es inválido.');\n case 323: return ('Revisa tu documento.');\n case 324: return ('El documento es inválido.');\n case 325: return ('El mes es inválido');\n case 326: return ('El año es inválido');\n default: return ('Verifique que los datos sean correctos.');\n }\n }\n\n getDescripcionCuota = (itemCuota) => {\n //console.log(itemCuota);\n return itemCuota.name\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { ProductsService } from '../../../services/products/products.service';\n\n@Component({\n selector: 'app-price-ec',\n templateUrl: 'price-ec.component.html',\n styleUrls: ['price-ec.component.scss']\n})\n\nexport class PriceEcComponent extends ComponentHelper implements OnInit {\n\n @Input() price;\n @Input() saleprice;\n @Input() priceSize: boolean = true\n @Input() classStrSpacing;\n\n constructor(public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-redsys-catch-ec',\n templateUrl: './redsys-catch-ec.component.html',\n styleUrls: ['./redsys-catch-ec.component.scss']\n})\nexport class RedsysCatchEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, public router: Router, public checkoutService: CheckoutService) {\n super();\n $(\"header\").hide();\n $(\"footer\").hide();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let state\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n state = queryRouter.state\n state && state == 'statuspayment' && (state = queryParams.status)\n console.log('PARAMETROS STATE -> ', state);\n switch (state) {\n case '200':\n state = 'success'\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'success':\n this.setStateInLocal('Su pago fue procesado con éxito.',state)\n break;\n case 'pending':\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'failure':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'cancel':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'ok':\n this.setStateInSesion('Su pago fue procesado con éxito.', state)\n break;\n case 'challenge':\n this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state)\n break;\n case 'error':\n this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state)\n break;\n case '0':\n state = 'failure'\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n default:\n break;\n }\n })\n this.ecOnInit()\n }\n\n\n setStateInLocal = (mensaje, state) => {\n this.message = mensaje\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n setStateInSesion = (mensaje, state) => {\n this.message = mensaje\n sessionStorage.setItem('state', state)\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { CartService } from '../../../services/cart.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-redsys-pro-ec',\n templateUrl: 'redsys-pro-ec.component.html',\n styleUrls: ['redsys-pro-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysProEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n @ViewChild('formDobleAuthContainer') protected formDobleAuth: ElementRef;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n protected intentoRequest: boolean = false\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected finishApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/process-payment';\n protected challengeApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/3ds-challenge';\n protected merchantOrder = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/ds-merchant-order';\n \n constructor(protected renderer: Renderer2, protected connection: ConnectionService, protected toastrService: ToastService,\n public consts: Constants, public cartService: CartService, protected toastr: ToastService, @Inject(DOCUMENT) protected document: Document,\n protected activedRoute: ActivatedRoute,protected modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('method', JSON.stringify(this.method))\n sessionStorage.setItem('user_data', JSON.stringify(this.user_data))\n sessionStorage.setItem('finishApi',this.finishApi())\n sessionStorage.setItem('challengeApi',this.challengeApi())\n sessionStorage.setItem('merchantOrder',this.merchantOrder())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state && state != 'challenge') {\n sessionStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-redsys-redirect-ec',\n templateUrl: 'redsys-redirect-ec.component.html',\n styleUrls: ['redsys-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state) {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-ceca-redirect-ec',\n templateUrl: 'ceca-redirect-ec.component.html',\n styleUrls: ['ceca-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CecaRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/cecabank/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n console.log(state);\n if (state) {\n localStorage.removeItem('state')\n if (state == 'success') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.modalRef.hide()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago')\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { OrdersService } from '../../../services/account/orders.service';\n// import { OwlOptions } from 'projects/ng-easycommerce/src/lib/ec-component/product-detail-ec/node_modules/projects/ng-easycommerce/src/lib/ec-component/home-ec/node_modules/ngx-owl-carousel-o';\n\n@Component({\n selector: 'app-orders-ec',\n templateUrl: 'orders-list-ec.component.html',\n styleUrls: ['orders-list-ec.component.scss']\n})\nexport class OrdersEcComponent extends ComponentHelper implements OnInit {\n\n public mediaUrl;\n public orders;\n public loading = true;\n public error;\n\n constructor(public ordersService: OrdersService, public router: Router, protected consts: Constants) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.updateOrders();\n this.ordersService.orders$.pipe(filter(or => or)).subscribe(\n orders => {\n this.orders = this.sortedByNewest(orders);\n this.loading = false\n },\n err => {\n this.loading = false\n this.error = 'orders-error';\n }\n )\n this.ecOnInit()\n\n }\n\n sortedByNewest = orders => orders && orders.length && orders.sort((anOrder, otherOrder) => anOrder.number > otherOrder.number ? -1 : 1)\n\n goToOrder = (order) => {\n this.ordersService.setSelectedOrder(order);\n this.router.navigateByUrl((`account/orders/${order.number}`))\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n optionsBox = {\n loop: true,\n autoplay: true,\n smartSpeed: 950,\n margin: 10,\n dots: false,\n dotsData: false,\n navText: [\"\", \"\"],\n responsive: {\n 0: {\n items: 1,\n },\n 600: {\n items: 1,\n },\n 1000: {\n items: 1,\n }\n }\n }\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { OrdersService } from '../../../services/account/orders.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-order-ec',\n templateUrl: 'order-ec.component.html',\n styleUrls: ['order-ec.component.scss']\n})\nexport class OrderEcComponent extends ComponentHelper implements OnInit {\n\n protected orderSubject = new BehaviorSubject<any>({});\n\n public order$ = this.orderSubject.asObservable();\n public order = null\n public loading = true;\n public error;\n @Input() numberOrder = null\n\n constructor(public ordersService: OrdersService, protected activedRoute: ActivatedRoute, public router: Router, public consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.selectedOrder$.subscribe(\n async res => {\n let order;\n if (this.numberOrder == null) {\n this.numberOrder = this.activedRoute.snapshot.params.number\n }\n if (res) order = res;\n else order = await this.ordersService.findOrder(this.numberOrder);\n order && this.orderSubject.next(order);\n !order && this.callError();\n this.order = order\n this.loading = false;\n }),\n err => {\n this.ordersService.error$.toPromise().then(res => this.error = res);\n this.loading = false;\n this.callError();\n }\n this.ecOnInit()\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n callError = () => {\n this.error = '?';\n this.router.navigateByUrl('account/orders');\n }\n\n volver = () => this.router.navigateByUrl('account/orders');\n\n}","import { Component, Input, OnInit, OnChanges } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-auth-ec',\n templateUrl: 'auth-ec.component.html',\n styleUrls: ['auth-ec.component.scss']\n})\nexport class AuthEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() complete = true;\n public data = {\n email: null,\n password: null,\n nombre: null,\n apellido: null,\n }\n @Input() redirect = true;\n public loginForm: FormGroup;\n public registerForm: FormGroup;\n public loading: Boolean = false;\n public register_loading: Boolean = false;\n public params: any = [];\n\n\n constructor(public authService: AuthService, protected toastr: ToastService,\n public paramsService: ParametersService,\n protected activatedRoute: ActivatedRoute,\n protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n\n this.activatedRoute.params.subscribe(\n params => {\n if (params?.data) {\n let resul = JSON.parse(atob(params.data))\n resul && this.authService.doLoginUser(resul)\n }\n }\n );\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n }\n\n setProp = (prop, event) => {\n this.data[prop] = event.target.value;\n }\n\n login = () => this.redirect && this.redirectHome();\n\n redirectHome = () => {\n setTimeout(() => this.router.navigateByUrl('/'), 1500);\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.router.navigateByUrl('home')\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}\n\n\n\n\n\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AnalyticsService } from '../../../services/analytics.service';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-register-form-ec',\n templateUrl: 'register-form-ec.component.html',\n styleUrls: ['register-form-ec.component.scss']\n})\nexport class RegisterFormEcComponent extends ComponentHelper implements OnInit {\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success: Boolean = false\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public registroUsuario: any = {\n firstName: '',\n lastName: '',\n email: '',\n plainPassword: '',\n plainPassword2: '',\n newsletter: false,\n terms: false,\n }\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public analyticsService: AnalyticsService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n this.ecOnInit()\n\n }\n\n setProp = (prop, event) => {\n this.registroUsuario[prop] = event.target.value;\n }\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.value.plainPassword != this.registerForm.value.plainPassword2) {\n this.toastr.show('Las contraseñas no coinciden');\n this.register_loading = false\n return;\n }\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.analyticsService.callEvent('sign_up', {\n firstName: this.registerForm.value.firstName,\n lastName: this.registerForm.value.lastName,\n email:this.registerForm.value.email\n })\n this.success =true\n this.ready.emit(true)\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { UserRoleType } from '../../../classes/user-role-type';\n\n@Component({\n selector: 'app-login-form-ec',\n templateUrl: 'login-form-ec.component.html',\n styleUrls: ['login-form-ec.component.scss']\n})\nexport class LoginFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Input() title = 'login';\n /* @Input() withRoles: UserRoleType[] = [UserRoleType.SELLER, UserRoleType.RETAILER, UserRoleType.WHOLESALER] */\n /* @Input() withRoles: UserRoleType[] = [] */\n @Output() ready = new EventEmitter();\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.redirect && this.authService.isAuthenticated() && this.redirectHome()\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n\n this.ecOnInit()\n }\n\n login = ($event, withRoles: UserRoleType[] = []) => {\n $event.preventDefault();\n this.loading = true;\n if (!this.loginForm.valid) {\n this.toastrService.show('Aún hay datos sin completar');\n return;\n }\n this.authService.login(this.loginForm.value, withRoles).toPromise().then(\n res => {\n if (res == 'ok') {\n if (this.redirect) {\n setTimeout(() => this.redirectHome(), 500);\n } else {\n this.ready.emit(this.loginForm.value.username);\n }\n }\n else {\n if (res == 'error') {\n /* Why would the USER care (or even know) about channels */\n /* this.toastrService.show('channel-permission-denied') */\n this.toastrService.show('invalid-credentials')\n this.loading = false;\n return\n }\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n redirectHome = () => {\n const resolverFunction = this.authService.getHomeResolver()\n resolverFunction\n ? resolverFunction()\n : this.router.navigateByUrl('/')\n }\n\n}","import { Component } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-forgot-password-ec',\n templateUrl: 'forgot-password-ec.component.html',\n styleUrls: ['forgot-password-ec.component.scss']\n})\nexport class ForgotPasswordEcComponent extends ComponentHelper {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n\n constructor(protected authService: AuthService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n recoverPassword = (event) => {\n event.preventDefault();\n if (!this.validEmail()) this.toastr.show('invalid-email');\n else {\n this.loading = true;\n this.authService.recoverPassword(this.email).toPromise()\n .then(this.processOk, this.processOk).catch(this.processOk);\n }\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('non-existent-email')\n : this.toastr.show(response.error);\n }\n\n validEmail = () => this.email != '' && this.email.includes('@');\n}","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\n\n@Component({\n selector: 'app-confirm-account-ec',\n templateUrl: 'confirm-account-ec.component.html',\n styleUrls: ['confirm-account-ec.component.scss']\n})\nexport class ConfirmAccountEcComponent extends ComponentHelper {\n\n public ok: Boolean = false;\n public error: Boolean = false;\n\n constructor(protected authService: AuthService, protected activedRoute: ActivatedRoute) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n const token = this.activedRoute.snapshot.queryParams.token;\n this.authService.confirmAccount(token).toPromise().then(this.onSuccess, this.onSuccess).catch(this.onSuccess) \n this.ecOnInit()\n\n }\n\n onSuccess = () => {\n this.ok = true;\n }\n\n onError = () => {\n this.error = true;\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-password-reset-ec',\n templateUrl: 'password-reset-ec.component.html',\n styleUrls: ['password-reset-ec.component.scss']\n})\nexport class PasswordResetEcComponent extends ComponentHelper implements OnInit {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n protected token;\n public formGroup: FormGroup;\n\n constructor(protected authService: AuthService, protected toastr: ToastService, protected activedRoute: ActivatedRoute, \n public router: Router, protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.token = this.activedRoute.snapshot.queryParams.token;\n !this.token && this.router.navigateByUrl('/');\n this.formGroup = this.formBuilder.group({\n first: ['', Validators.required],\n second: ['', Validators.required]\n })\n this.ecOnInit()\n\n }\n\n sendNewPassword = (event) => {\n event.preventDefault();\n if (this.invalidForm()) return;\n this.loading = true;\n this.authService.passwordReset(this.formGroup.value.first, this.token).toPromise()\n .then(this.processOk)\n .catch(this.processError);\n }\n\n invalidForm = () => {\n if (this.formGroup.valid) {\n const passwords = this.formGroup.value;\n if (passwords.first == passwords.second) return false;\n else this.toastr.show('password-doesnt-match');\n } else this.toastr.show('invalid-form');\n return true;\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('operation-error')\n : this.toastr.show(response.error);\n }\n\n sendToLogin = () => this.router.navigateByUrl('/auth/login');\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { BehaviorSubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { AuthService } from '../../../services/auth.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-register-wholesaler-form-ec',\n templateUrl: 'register-wholesaler-form-ec.component.html',\n styleUrls: ['register-wholesaler-form-ec.component.scss']\n})\nexport class RegisterWholesalerFormEcComponent extends ComponentHelper implements OnInit {\n\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected documentTypesSubject = new BehaviorSubject<any[]>([]);\n\n public provinces$ = this.provincesSubject.asObservable();\n public countries$ = this.countriesSubject.asObservable();\n public documentTypes$ = this.documentTypesSubject.asObservable();\n\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success : Boolean = false;\n public requestTerms = false;\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public params: any = {};\n\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public consts: Constants,\n public paramsService: ParametersService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.registerForm = this.formBuilder.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n documentType: [null, [Validators.required]],\n documentNumber: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', []],\n countryCode: [null, Validators.required],\n street: [null, [Validators.maxLength(50)]],\n city: ['', Validators.required],\n postcode: ['', Validators.required],\n provinceName: ['', Validators.required],\n provinceCode: [null, Validators.required],\n companyName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n gender: [null, []],\n birthday: [null, [Validators.maxLength(11)]],\n taxIdentification: ['', Validators.required],\n comments: ['', []],\n contactFirstName: ['', []],\n contactLastName: ['', []],\n contactCompanyPosition: ['', []],\n contactEmail: ['', []],\n contactDocumentType: ['', []],\n contactDocumentNumber: ['', []],\n subscribedToNewsletter: [false],\n terms: [true, Validators.required],\n });\n this.authService.getCountriesData().then(res => {\n this.countriesSubject.next(res);\n let documentTypes = []\n res.map(paises => {\n this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase()) && (documentTypes = paises.documentTypes || [])\n });\n this.documentTypesSubject.next(documentTypes);\n });\n this.ecOnInit()\n }\n\n onCountrySelected = (value) => {\n $('#selectOpPais').attr('disabled', true);\n this.registerForm.controls['countryCode'].setValue(value);\n this.registerForm.controls['provinceCode'].setValue('');\n value != '' && this.provincesSubject.next(this.countriesSubject.value.find(country => country.code == value).provinces);\n }\n\n onProvincesSelected = (value) => {\n $('#selectOpProvincia').attr('disabled', true);\n this.registerForm.controls['provinceName'].setValue(this.provincesSubject.value.find(province => province.code == value).name);\n }\n\n onGenderSelected = (value) => {\n $('#selectOpSexo').attr('disabled', true);\n }\n\n onDocumentTypeSelected = (value) => {\n $('#selectOpDocumentType').attr('disabled', true);\n }\n\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUpWholesaler(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.success = true;\n this.ready.emit(true);\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Product } from '../../interfaces/product';\n\n\n@Component({\n selector: 'app-share-block-ec',\n templateUrl: './share-block-ec.component.html',\n styleUrls: ['./share-block-ec.component.scss'],\n})\nexport class ShareBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() product: Product\n\n public url = ''\n public mediaimg = ''\n public description = ''\n\n constructor(\n public consts: Constants, protected renderer: Renderer2, private meta: Meta, private title: Title) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.url = window.location.href\n this.mediaimg = this.product.picturesdefault && this.product.picturesdefault[0]\n this.description = this.product.name\n if (this.description) {\n this.meta.addTags(\n [\n {\n name: \"description\",\n content: this.description\n },\n {\n property: \"og:site_name\",\n content: this.title.getTitle()\n }\n ,\n {\n property: \"og:url\",\n content: this.url\n }\n ,\n {\n property: \"og:title\",\n content: this.description\n }\n ,\n {\n property: \"og:type\",\n content: 'product'\n }\n ,\n {\n property: \"og:price:amount\",\n content: this.product.price\n }\n ,\n {\n property: \"og:price:currency\",\n content: this.consts.currency.code\n }\n ,\n {\n property: \"og:image\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"og:image:secure_url\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"witter:site\",\n content: '@'\n }\n ,\n {\n property: \"twitter:card\",\n content: 'summary_large_image'\n }\n ,\n {\n property: \"twitter:title\",\n content: this.description\n }\n ,\n {\n property: \"twitter:description\",\n content: this.description\n }\n \n ], true);\n }\n\n this.ecOnInit()\n }\n\n\n toShareFacebook = () => {\n //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`\n return `https://www.facebook.com/share.php?u=${this.url}`\n }\n\n toShareTwitter = () => {\n //return `https://twitter.com/share?text=${encodeURIComponent(this.description)};url=${encodeURIComponent(this.url)}`\n return `https://twitter.com/share?text=${this.description}&url=${this.url}`\n }\n\n toSharePinterest = () => {\n //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`\n return `https://pinterest.com/pin/create/button/?url=${this.url}&media=${this.consts.mediaUrl()+this.mediaimg}&description=${this.description}`\n }\n\n\n createMetadata = () => {\n\n // <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.\">\n // <meta property=\"og:site_name\" content=\"MYC HOME LINENS\">\n // <meta property=\"og:url\" content=\"https://myc-homelinens.com/products/cojin-algodon-joy-azul\">\n \n // <meta property=\"og:title\" content=\"COJÍN JOY - AZUL\">\n // <meta property=\"og:type\" content=\"product\">\n // <meta property=\"og: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.\">\n // <meta property=\"og:price:amount\" content=\"20,20\">\n // <meta property=\"og:price:currency\" content=\"EUR\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta name=\"twitter:site\" content=\"@\">\n // <meta name=\"twitter:card\" content=\"summary_large_image\">\n // <meta name=\"twitter:title\" content=\"COJÍN JOY - AZUL\">\n // <meta name=\"twitter: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.\">\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-detail-checkout-block-ec',\n templateUrl: './detail-checkout-block-ec.component.html',\n styleUrls: ['./detail-checkout-block-ec.component.scss'],\n})\nexport class DetailCheckoutBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() asociatedData\n public data = null\n\n constructor(public checkoutService: CheckoutService,) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.asociatedData && (this.data = this.asociatedData) ||\n this.checkoutService.asociatedData$.subscribe(data => this.data = data)\n this.ecOnInit()\n }\n\n getIcon = (data_item: CheckoutData) => {\n\n switch (data_item.type) {\n case 'coupon': return 'fas fa-ticket-alt fa-3x';\n case 'discount': return 'fas fa-tags fa-3x';\n case 'shipment': return 'fas fa-shipping-fast fa-3x';\n case 'subtotal': return 'fas fa-boxes fa-3x';\n case 'taxes': return 'fas fa-file-invoice-dollar fa-3x';\n case 'total': return 'fas fa-shopping-basket fa-3x';\n default: return 'fas fa-tags fa-3x';\n }\n }\n // case 'coupon': return 'assets/images/iconosdetailcheckout/ticket-alt.svg';\n // case 'discount': return 'assets/images/iconosdetailcheckout/tags.svg';\n // case 'shipment': return 'assets/images/iconosdetailcheckout/shipping-fast.svg';\n // case 'subtotal': return 'assets/images/iconosdetailcheckout/boxes.svg';\n // case 'taxes': return 'assets/images/iconosdetailcheckout/file-invoice-dollar.svg';\n // case 'total': return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n // default: return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n}\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'ec-checkout-error',\n templateUrl: 'checkout-error-ec.component.html',\n styleUrls: ['checkout-error-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CheckoutErrorComponent extends ComponentHelper implements OnInit {\n\n public error: BodyError;\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n @Input() urlRedireccion = '/cart'\n subs: Subscription;\n subsModal: Subscription;\n\n constructor(\n public checkoutErrorService: ErrorHandlerService,\n public checkoutService: CheckoutService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n console.log('Componente manejo de errores inicializando')\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n setTimeout(() => {\n this.navigateByUrl()\n }, 3000);\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl(this.urlRedireccion)\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n }else{\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-lg ', keyboard: false, backdrop: 'static', animated: true })\n }\n );\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n this.navigateByUrl()\n })\n }\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../../classes/component-helper\";\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { CartService } from '../../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mp-redirect-ec',\n templateUrl: 'mp-redirect-ec.component.html',\n styleUrls: ['mp-redirect-ec.component.scss'],\n})\nexport class MpRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getPreference()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con mercado pago')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getPreference = () =>\n this.paymentServiceInst.getPreference(this.allData).then(\n res => {\n this.preference = res;\n this.url = this.preference.init_point\n this.renderMP(this.preference);\n },\n err => this.setError('operation-error')\n );\n\n setError = (message) => {\n //this.error = message;\n }\n\n renderMP = (preference) => {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== 'https://www.mercadopago.com.ar' || !event.data.type) {\n return;\n }\n let dataType = event.data.type;\n if (dataType === 'submit') {\n const paymentData = event.data.value;\n return;\n }\n });\n }\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-redsys-redirect-out-ec',\n templateUrl: 'redsys-redirect-out-ec.component.html',\n styleUrls: ['redsys-redirect-out-ec.component.scss'],\n})\nexport class RedSysRedirectOutEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.url = \"../../../assets/redsysFrameRedirectOutBase.html\"\n }, 1000);\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure' || state == 'error') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con redsys')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n\n setError = (message) => {\n \n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Subscription } from 'rxjs';\ndeclare var paypal;\ndeclare var PAYPAL_CLIENT: any;\ndeclare var PAYPAL_SECRET: any;\ndeclare var PAYPAL_ORDER_API: any;\n\n@Component({\n selector: 'app-paypal-express-ec',\n templateUrl: 'paypal-express-ec.component.html',\n styleUrls: ['paypal-express-ec.component.scss'],\n})\nexport class PaypalExpressEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n @ViewChild('paypal', { static: true }) paypalElement: ElementRef;\n\n public getUrlNotification = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/paypal/redirect/notification';\n\n producto = {\n descripcion: 'producto en venta',\n precio: 10,\n img: 'imagen de tu producto'\n }\n title = 'angular-paypal-payment';\n\n public loading = false;\n public cart = null;\n public tried = 10;\n public subsCart: Subscription;\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute) {\n super();\n\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.setVariables()\n this.subsCart = this.cartService.cart.subscribe(cart => {\n this.cart = cart\n console.log(this.cart);\n let scriptSdk = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptSdk, 'src', 'https://www.paypal.com/sdk/js?client-id=' + this.method.config.public_client_id + '&currency=' + this.cart?.currency || 'USD');\n this.renderer.appendChild(document.body, scriptSdk);\n this.renderPayPal()\n })\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subsCart.unsubscribe()\n }\n\n ngOnChanges() {\n }\n\n renderPayPal = () => {\n if (this.tried == 0) {\n return\n }else{\n this.tried--\n }\n setTimeout(() => {\n try {\n if ((typeof paypal !== 'undefined') && paypal != undefined && paypal != null) {\n paypal\n .Buttons({\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [\n {\n amount: {\n currency_code: this.cart?.currency || 'USD',\n value: this.total_amount || this.cart?.totals?.total\n }\n }\n ]\n })\n },\n onApprove: async (data, actions) => {\n const order = await actions.order.capture();\n order.purchase_units[0]['reference_id'] = this.cart.tokenValue\n console.log(order);\n this.connection.postOutsider(this.getUrlNotification(), order).toPromise().then(res => {\n this.ready.emit(true)\n console.log('ok');\n }).catch(res => {\n this.processError('')\n console.log('error');\n })\n },\n onError: err => {\n console.log(err);\n this.processError('')\n }\n })\n .render(this.paypalElement.nativeElement);\n this.loading = false;\n } else {\n console.log('Entro al else');\n this.renderPayPal();\n }\n } catch (error) {\n console.log('Entro al catch');\n this.renderPayPal();\n }\n }, 1000);\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setVariables = () => {\n // setTimeout(() => {\n // if (typeof PAYPAL_CLIENT !== 'undefined'\n // && typeof PAYPAL_SECRET !== 'undefined'\n // && typeof PAYPAL_ORDER_API !== 'undefined') {\n // PAYPAL_CLIENT = this.method.config.public_client_id;\n // PAYPAL_SECRET = this.method.config.public_client_secret;\n // PAYPAL_ORDER_API = 'https://api-m.paypal.com/v2/checkout/orders/';\n // } else {\n // console.log('no entro al if');\n // this.setVariables()\n // }\n // }, 2000);\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mobbex-ec',\n templateUrl: 'mobbex-ec.component.html',\n styleUrls: ['mobbex-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class MobbexEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataMobbex;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutMobbex()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con mobbex')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n \n } \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutMobbex = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutMobbex(this.allData).then(\n res => {\n this.dataMobbex = res;\n this.url = res?.data?.url && this.sanitizer.bypassSecurityTrustResourceUrl(res?.data?.url)\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-bancard-ec',\n templateUrl: 'bancard-ec.component.html',\n styleUrls: ['bancard-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class BancardEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataBancard;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con bancard')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && this.sanitizer.bypassSecurityTrustResourceUrl(res?.iframe_link)\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.dataBancard?.process_id && localStorage.setItem('dataRedirect', this.dataBancard.process_id )\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-bancard-redirect-ec',\n templateUrl: 'bancard-redirect-ec.component.html',\n styleUrls: ['bancard-redirect-ec.component.scss'],\n})\nexport class BancardRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n protected dataBancard;\n\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.ventana?.close()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 4000); \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setError = (message) => {\n \n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && res?.iframe_link\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { BodyError } from '../../../interfaces/checkout/checkout-error';\nimport { AuthService } from '../../../services/auth.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'select-channel-ec',\n templateUrl: 'select-channel-ec.component.html',\n styleUrls: ['select-channel-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class SelectChannelEcComponent extends ComponentHelper implements OnInit {\n\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n subs: Subscription;\n subsModal: Subscription;\n public channels = []\n\n constructor(\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n this.subs = this.authService.channelsUser.pipe(filter(res => res != null && res.length > 0)).subscribe(\n res => {\n this.channels = res.map(item => {\n return { ...(item as object), selected: false }\n })\n this.initializeTemplate()\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl('')\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n } else {\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-sm modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true })\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n })\n }\n }\n\n setSelect = (chanelSelect: any) => {\n this.channels.map(chanel => chanel.selected = chanel.code == chanelSelect.code)\n }\n\n setChannel = () => {\n if (this.channels.find(chanel => chanel.selected)) {\n this.authService.channelAccess(this.channels.find(chanel => chanel.selected))\n this.bsModalRef.hide()\n }\n }\n\n\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-cart-load-ec',\n templateUrl: './cart-load-ec.component.html',\n styleUrls: ['./cart-load-ec.component.scss']\n})\nexport class CartLoadEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, \n public router: Router, \n public checkoutService: CheckoutService, \n public cartService: CartService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let token\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n token = queryRouter.token\n console.log('PARAMETROS token -> ', token);\n this.cartService.loadCartByToken(token).then(res => {\n this.router.navigateByUrl('/cart')\n })\n })\n this.ecOnInit()\n }\n\n}\n","import { ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: '[app-magnizoom-ec]',\n templateUrl: './magnizoom.component.html',\n styleUrls: ['./magnizoom.component.scss']\n})\nexport class MagnizoomComponent implements OnInit {\n\n private imageSrc:string\n @Input() set ImageSrc(value) { \n this.imageSrc = value; \n this.loadImage(this.imageSrc); \n }\n @Input() zoomMode: 'LENS' | 'COVER' = 'COVER';\n @Input() minZoomFactor = 1.2;\n @Input() maxZoomFactor = 3;\n\n @Input() imageStyle: { [x: string]: any; };\n @Input() imageClass: any;\n\n @ViewChild('mainCanvas', { static: true }) mainCanvasRef: ElementRef;\n\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n image: HTMLImageElement;\n\n mousePosition: Point2D = null;\n lensSize: Size2D = { width: 400, height: 300 };\n zoomFactor = 2;\n\n get canvasWidth() { return this.image && this.image.width || 800; }\n get canvasHeight() { return this.image && this.image.height || 600; }\n\n constructor() { }\n \n ngOnInit() {\n this.initContext();\n this.loadImage(this.imageSrc);\n }\n\n initContext() {\n \n this.canvas = (this.mainCanvasRef.nativeElement as HTMLCanvasElement);\n this.context = this.canvas.getContext('2d');\n }\n\n loadImage(src: string) {\n \n this.image = new Image();\n this.image.onload = () => {\n this.lensSize = { width: this.image.width / 2, height: this.image.height / 2 };\n setTimeout(() => this.render());\n };\n this.image.src = src;\n }\n\n render() {\n this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight); // clear canvas\n this.context.lineWidth = 1; // border width\n this.context.drawImage(this.image, 0, 0); // bg image\n\n if (this.mousePosition) {\n switch (this.zoomMode) {\n case 'LENS': this.renderLensMode(); break;\n case 'COVER': this.renderCoverMode(); break;\n }\n }\n }\n\n renderLensMode() {\n this.context.lineWidth = 5; // border width\n const zoomRect = this.getZoomRect();\n this.context.fillRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // bg (clear)\n const clippingRect = this.getClippingRect();\n // zoom image\n this.context.drawImage(\n this.image,\n clippingRect.x, clippingRect.y, clippingRect.w, clippingRect.h,\n zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h\n );\n this.context.strokeRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // border\n }\n\n renderCoverMode() {\n const covertRect = this.getCoverRect();\n this.context.drawImage(\n this.image,\n covertRect.x, covertRect.y, covertRect.w, covertRect.h,\n 0, 0, this.canvasWidth, this.canvasHeight\n ); // cover image\n }\n\n getZoomRect() {\n const w = this.lensSize.width;\n const h = this.lensSize.height;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getClippingRect() {\n const w = this.lensSize.width / this.zoomFactor;\n const h = this.lensSize.height / this.zoomFactor;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getCoverRect() {\n const w = this.canvasWidth / this.zoomFactor;\n const h = this.canvasHeight / this.zoomFactor;\n // const x = this.mousePosition.x - (w / 2);\n // const y = this.mousePosition.y - (h / 2);\n const x = this.mousePosition.x - this.mousePosition.x / this.zoomFactor;\n const y = this.mousePosition.y - this.mousePosition.y / this.zoomFactor;\n return this.clampRect(x, y, w, h);\n }\n\n clampRect(x: number, y: number, w: number, h: number) {\n if (x <= 0) { x = 0; }\n if (x + w >= this.canvasWidth) { x = this.canvasWidth - w; }\n if (y < 0) { y = 0; }\n if (y + h >= this.canvasHeight) { y = this.canvasHeight - h; }\n return { x, y, w, h };\n }\n\n calculateMousePosition(clientX: number, clientY: number) {\n const boundingRect = this.canvas.getBoundingClientRect();\n const viewToModelX = this.canvasWidth / boundingRect.width;\n const viewToModelY = this.canvasHeight / boundingRect.height;\n const x = (clientX - boundingRect.left) * viewToModelX;\n const y = (clientY - boundingRect.top) * viewToModelY;\n this.mousePosition = { x, y };\n }\n\n onMouseLeave(event: MouseEvent) {\n this.mousePosition = null;\n this.render();\n }\n\n onMouseEnterOrMove(event: MouseEvent) {\n this.calculateMousePosition(event.clientX, event.clientY);\n this.render();\n }\n\n onMouseScroll(event: WheelEvent) {\n let newZoomFactor = this.zoomFactor;\n newZoomFactor -= event.deltaY / 1000;\n if (newZoomFactor < this.minZoomFactor) { newZoomFactor = this.minZoomFactor; }\n if (newZoomFactor > this.maxZoomFactor) { newZoomFactor = this.maxZoomFactor; }\n if (this.zoomFactor !== newZoomFactor) {\n this.zoomFactor = newZoomFactor;\n this.render();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-multiple-items-to-cart-ec',\n templateUrl: 'multiple-items-to-cart-ec.component.html',\n styleUrls: ['multiple-items-to-cart-ec.component.scss']\n})\nexport class MultipleItemsToCartEcComponent extends ComponentHelper {\n\n @Input() product: Product;\n @Input() objectWithVariant: ParamsProductsWithUniqueVariant;\n @Output() totalCostItems = new EventEmitter()\n @Output() totalItems = new EventEmitter()\n\n public total = 0\n public countItems = 0\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.product.productWithUniqueVariant = this.productService?.getProductWithUniqueVariant(this.product, this.getObjectParamsWithVariant())\n this.ecOnInit()\n }\n\n optionsProductForVariant = () => this.product.productWithUniqueVariant\n\n setQuantity = (value, product: Product) => {\n \n let quantity = Number(value) > product.currentOption.stock ? product.currentOption.stock : Number(value)\n product.productToCartItem = {\n productCode: product.currentOption.productCode,\n variantCode: product.currentOption.variantCode,\n quantity: quantity,\n finalPrice: product.currentOption.finalPrice,\n totalCost: quantity * product.currentOption.finalPrice,\n }\n\n this.total = 0\n this.countItems = 0\n this.product.productWithUniqueVariant.filter(prod => prod.productToCartItem).map(\n prod => {\n this.total += prod.productToCartItem.totalCost\n this.countItems += prod.productToCartItem.quantity\n }\n )\n this.totalCostItems.emit(this.total.toString())\n this.totalItems.emit(this.countItems.toString())\n\n }\n\n condition = (value, product: Product) : boolean => {\n if (Number(value) >= product.currentOption.stock) {\n return false\n }\n return true\n }\n\n allWithoutTracking = () => this.optionsProductForVariant().some( item => item.currentOption?.stock != 9999)\n\n private getObjectParamsWithVariant = (): ParamsProductsWithUniqueVariant => {\n return this.objectWithVariant || this.getObjectWithVariant()\n } \n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: true , checkIfStock: false }\n } \n\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { RecaptchaSettings } from 'ng-recaptcha/recaptcha/recaptcha-settings';\nimport { BehaviorSubject} from 'rxjs';\nimport { map, filter, concatMap} from 'rxjs/operators';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\n//import * from '../assets/ec-i18n'\n@Injectable({\n providedIn: 'root'\n})\nexport class CaptchaService {\n \n private captchaSubject: BehaviorSubject<RecaptchaSettings> = new BehaviorSubject({siteKey:''})\n public captcha = this.captchaSubject.asObservable()\n \n private urlBaseFormat:string\n \n private recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';\n private recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';\n\n private RECAPTCHA_SITE_KEYS \n private RECAPTCHA_SITES \n /**\n * @description Carga las configuraciones iniciales\n * @param consts Constantes del core\n * @param connection Servicio para realizar las peticiones HTTP al backend\n * @param http Servicio utilizado para obtener archivos estaticos contenidos dentro de la aplicación\n */\n constructor(private consts: Constants,\n private connection: ConnectionService,\n private http:HttpClient) {\n /**\n * @description Carga la direccion de la pagina actual que sera utilizada como clave para obtener\n * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.\n */\n this.urlBaseFormat = this.formatUrl(location.href)\n this.initializer()\n }\n /**\n * \n * @returns {string} path que contiene la direccion del endpoint referido al captcha\n */\n private captchaApi = () => 'shop-api/channels';\n\n /**\n * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores\n * de los Json estaticos, para posteriormente obtener la \"siteKey\"(clave del captcha) en caso\n * de que no venga desde el backend. \n */\n private initializer = () => {\n this.getRecaptchaSites().pipe(\n //filter( e => e[this.urlBaseFormat+'ee'] ),\n map(res => this.RECAPTCHA_SITES = res),\n concatMap(e => this.getRecaptchaSiteKeys().pipe(\n map(res => this.RECAPTCHA_SITE_KEYS = res)))).subscribe(\n e => this.getSiteKey())\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las claves captcha\n */\n private getRecaptchaSiteKeys = () => {\n return this.http.get<any[]>(this.recaptchaSiteKeysUrl)\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios\n */\n private getRecaptchaSites = () => {\n return this.http.get<any[]>(this.recaptchaSitesUrl)\n }\n\n /**\n * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,\n * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con\n * los datos generados.\n */\n private getSiteKey = () => {\n this.connection.get(this.captchaApi()).toPromise().then(\n res => { console.log(res); this.captchaSubject.next({ siteKey: res.siteKey ? res.siteKey : this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) },\n err => { console.log('ERROR 1', err); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITES[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) }\n ).catch(err => { console.log('ERROR 2 ', err, ' Base url:', this.consts.getUrlBase()); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) })\n //console.log(this.captcha)\n }\n\n /**\n * \n * @returns {string} Clave del captcha.\n */\n public getKey = () => {\n return this.captcha.pipe(map((elem) => elem?.siteKey));\n }\n\n /**\n * @description Recibe una url y se encarga de quitarle \"http\", \"/\" y las demas rutas, para devolver la url\n * del sitio con una formato limpio. Ejemplo \"https://ejemplo.com.ar/ruta1/ruta2/\" a \"ejemplo.com.ar\" \n * @param {string} url url que sera formateada \n * @returns {string} url formateada\n */\n private formatUrl = (url:string) => url.split(\"/\").filter(e => e != \"/\").filter(e => !e.includes(\"http\")).filter(e => e.length).slice(0,1).pop()\n\n}","import { ElementRef, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { CaptchaService } from '../../../services/captcha.service';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: 're-captcha-ec',\n templateUrl: './re-captcha-ec.component.html',\n styleUrls: ['./re-captcha-ec.component.scss']\n})\nexport class RecaptchaEcComponent implements OnInit {\n \n /**\n * @param form recibe el formulario que contiene al captcha.\n * @param siteKey recibe un string con la clave para el captcha\n */\n @Input() form: any;\n @Input() siteKey: string;\n public captcha:any;\n constructor(public captchaService: CaptchaService){ \n }\n\n ngOnInit(): void {\n // throw new Error('Method not implemented.');\n this.captchaService.captcha.subscribe( res => {\n this.captcha = res;\n this.updateKey()} )\n }\n\n /**\n * @description Carga el campo captcha del formulario pasado con la respuesta luego de completar el captcha.\n * @param {string} captchaResponse obtiene la respuesta que genero el captcha.\n */\n resolved(captchaResponse: string) {\n this.form.catpcha = captchaResponse;\n }\n /**\n * @description Actualiza la clave si está es pasada por parametro en la variable siteKey \n * @returns {null}\n */\n updateKey = () => this.siteKey ? this.captcha.siteKey = this.siteKey : null\n\n \n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-decidir-ec',\n templateUrl: 'decidir-ec.component.html',\n styleUrls: ['decidir-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DecidirEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataDecidir;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutDecidir()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n localStorage.setItem('dataDecidir', JSON.stringify(this.method))\n console.log('dataaaaa', this.method);\n this.modalRef = this.modalService.show(template, { class: 'modal-xl modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n localStorage.removeItem('dataRedirect')\n localStorage.removeItem('dataDecidir')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con Decidir')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n this.clearStorageState()\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutDecidir = () => {\n this.loading = true\n this.dataDecidir = this.method;\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html')\n this.loading = false\n }\n\n resizeIframe = (obj) => {\n obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';\n obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';\n }\n\n}\n\n","// //Component base\n\nimport { AccountEcComponent } from \"./account-ec/account-ec.component\";\nimport { BlockBannerBoxesEcComponent } from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nimport { BlockBannerFullEcComponent } from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nimport { BlockFormContactEcComponent } from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nimport { BlockHtmlEcComponent } from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nimport { ContactFormNewsEcComponent } from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nimport { BlockProductsEcComponent } from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nimport { BlocksEcComponent } from \"./blocks-ec/blocks-ec.component\";\nimport { CartEcComponent } from \"./cart-ec/cart-ec.component\";\nimport { CheckoutEcComponent } from \"./checkout-ec/checkout-ec.component\";\nimport { DataFormEcComponent } from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nimport { PaymentEcComponent } from \"./checkout-ec/payment-ec/payment-ec.component\";\nimport { ShipmentEcComponent } from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nimport { SuccessEcComponent } from \"./checkout-ec/success-ec/success-ec.component\";\nimport { CollectionEcComponent } from \"./collection-ec/collection-ec.component\";\nimport { CouponEcComponent } from \"./coupon-ec/coupon-ec.component\";\nimport { FaqsContentEcComponent } from \"./faqs-content-ec/faqs-content-ec.component\";\nimport { FiltersEcComponent } from \"./filters-ec/filters-ec.component\";\nimport { FiltersTopEcComponent } from \"./filters-top-ec/filters-top-ec.component\";\nimport { FooterEcComponent } from \"./footer-ec/footer-ec.component\";\nimport { HeaderEcComponent } from \"./header-ec/header-ec.component\";\nimport { HomeEcComponent } from \"./home-ec/home-ec.component\";\nimport { LoginEcComponent } from \"./login-ec/login-ec.component\";\nimport { ProductDetailEcComponent } from \"./product-detail-ec/product-detail-ec.component\";\nimport { ProductEcComponent } from \"./product-ec/product-ec.component\";\nimport { RelatedProductsEcComponent } from \"./related-products-ec/related-products-ec.component\";\nimport { SectionContainerEcComponent } from \"./section-container-ec/section-container-ec.component\";\nimport { StoresEcComponent } from \"./stores-ec/stores-ec.component\";\nimport { VariantsEcComponent } from \"./variants-ec/variants-ec.component\";\nimport { SellerDashboardContainerEcComponent } from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nimport { LoadingFullEcComponent } from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nimport { LoadingInlineEcComponent } from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nimport { MPCreditEcComponent } from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nimport { PriceEcComponent } from \"./widgets-ec/price-ec/price-ec.component\";\nimport { RedsysCatchEcComponent } from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nimport { RedSysProEcComponent } from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nimport { RedSysRedirectEcComponent } from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nimport { CecaRedirectEcComponent } from \"./widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nimport { OrdersEcComponent } from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nimport { OrderEcComponent } from \"./account-ec/order-ec/order-ec.component\";\nimport { AuthEcComponent } from \"./auth-ec/auth-ec.component\";\nimport { RegisterFormEcComponent } from \"./auth-ec/register-form-ec/register-form-ec.component\";\nimport { LoginFormEcComponent } from \"./auth-ec/login-form-ec/login-form-ec.component\";\nimport { ForgotPasswordEcComponent } from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nimport { ConfirmAccountEcComponent } from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nimport { PasswordResetEcComponent } from \"./password-reset-ec/password-reset-ec.component\";\nimport { RegisterWholesalerFormEcComponent } from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nimport { ShareBlockEcComponent } from \"./share-block-ec/share-block-ec.component\";\nimport { DetailCheckoutBlockEcComponent } from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nimport { CheckoutErrorComponent } from \"./checkout-error-ec/checkout-error-ec.component\";\nimport { MpRedirectEcComponent } from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nimport { RedSysRedirectOutEcComponent } from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nimport { PaypalExpressEcComponent } from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nimport { MobbexEcComponent } from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nimport { BancardEcComponent } from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nimport { BancardRedirectEcComponent } from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nimport { SelectChannelEcComponent } from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nimport { CartLoadEcComponent } from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nimport { MagnizoomComponent } from \"./widgets-ec/zoom-ec/magnizoom.component\";\nimport { MultipleItemsToCartEcComponent } from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nimport { RecaptchaEcComponent } from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nimport { DecidirEcComponent } from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n\n\nexport const components: any[] = [\n BlockBannerBoxesEcComponent,\n BlockBannerFullEcComponent,\n BlockFormContactEcComponent,\n BlockHtmlEcComponent,\n ContactFormNewsEcComponent,\n BlockProductsEcComponent,\n BlocksEcComponent,\n\n CartEcComponent,\n\n DataFormEcComponent,\n PaymentEcComponent,\n ShipmentEcComponent,\n SuccessEcComponent,\n CheckoutEcComponent,\n \n CollectionEcComponent,\n CouponEcComponent,\n FaqsContentEcComponent,\n FiltersEcComponent,\n FiltersTopEcComponent,\n FooterEcComponent,\n HeaderEcComponent,\n LoginEcComponent,\n ProductEcComponent,\n RelatedProductsEcComponent,\n SectionContainerEcComponent,\n StoresEcComponent,\n VariantsEcComponent,\n SellerDashboardContainerEcComponent,\n \n LoadingInlineEcComponent,\n LoadingFullEcComponent,\n MPCreditEcComponent,\n PriceEcComponent,\n RedsysCatchEcComponent,\n RedSysProEcComponent,\n RedSysRedirectEcComponent,\n HomeEcComponent,\n ProductDetailEcComponent,\n AccountEcComponent,\n OrdersEcComponent,\n OrderEcComponent,\n AuthEcComponent,\n RegisterFormEcComponent,\n LoginFormEcComponent,\n SelectChannelEcComponent,\n ForgotPasswordEcComponent,\n ConfirmAccountEcComponent,\n PasswordResetEcComponent,\n CecaRedirectEcComponent,\n\n RegisterWholesalerFormEcComponent,\n\n ShareBlockEcComponent,\n DetailCheckoutBlockEcComponent,\n\n CheckoutErrorComponent,\n MpRedirectEcComponent,\n RedSysRedirectOutEcComponent,\n PaypalExpressEcComponent,\n\n MobbexEcComponent,\n BancardEcComponent,\n BancardRedirectEcComponent,\n DecidirEcComponent,\n\n CartLoadEcComponent,\n MultipleItemsToCartEcComponent,\n\n MagnizoomComponent,\n RecaptchaEcComponent\n];\n\n\nexport * from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./blocks-ec/blocks-ec.component\";\nexport * from \"./cart-ec/cart-ec.component\";\nexport * from \"./checkout-ec/checkout-ec.component\";\nexport * from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./checkout-ec/success-ec/success-ec.component\";\nexport * from \"./collection-ec/collection-ec.component\";\nexport * from \"./coupon-ec/coupon-ec.component\";\nexport * from \"./faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./filters-ec/filters-ec.component\";\nexport * from \"./filters-top-ec/filters-top-ec.component\";\nexport * from \"./footer-ec/footer-ec.component\";\nexport * from \"./header-ec/header-ec.component\";\nexport * from \"./login-ec/login-ec.component\";\nexport * from \"./product-ec/product-ec.component\";\nexport * from \"./related-products-ec/related-products-ec.component\";\nexport * from \"./section-container-ec/section-container-ec.component\";\nexport * from \"./stores-ec/stores-ec.component\";\nexport * from \"./variants-ec/variants-ec.component\";\nexport * from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nexport * from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./widgets-ec/price-ec/price-ec.component\";\nexport * from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./home-ec/home-ec.component\";\nexport * from \"./product-detail-ec/product-detail-ec.component\";\nexport * from \"./account-ec/account-ec.component\";\nexport * from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./account-ec/order-ec/order-ec.component\";\nexport * from \"./auth-ec/auth-ec.component\";\nexport * from \"./auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./password-reset-ec/password-reset-ec.component\";\nexport * from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./share-block-ec/share-block-ec.component\";\nexport * from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from './widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component';\nexport * from \"./checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./widgets-ec/zoom-ec/magnizoom.component\";\nexport * from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nexport * from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { BlocksService } from \"../services/blocks/blocks.service\";\nimport { Router } from \"@angular/router\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecAddActionRedirect]\",\n})\nexport class AddActionRedirectDirective implements OnChanges, OnInit, OnDestroy {\n private banner: any;\n private classStr: \"\";\n private redirectUrl = ''\n private linstenEvent = null\n private transparent = true\n\n @Input()\n set ecAddActionRedirect(value: any) {\n this.banner = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set isTransparent(value: boolean) {\n this.transparent = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private blocksService: BlocksService,\n private router: Router,\n ) { }\n\n ngOnInit() { }\n\n\n ngOnChanges(changes: SimpleChanges) {\n this.transparent && this.renderer.setStyle(this.elementRef.nativeElement, 'color', 'transparent')\n this.renderer.setAttribute(this.elementRef.nativeElement, \"role\", \"button\")\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(this.elementRef.nativeElement, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n this.redirectUrl = this.banner.url ? this.banner.url : this.blocksService.formUrl(this.banner)\n this.banner.url ?\n this.renderer.setProperty(this.elementRef.nativeElement, \"href\", this.banner.url)\n :\n this.linstenEvent = this.renderer.listen(this.elementRef.nativeElement, 'click', this.redirectFromUrl)\n }\n\n redirectFromUrl = (evt) => {\n this.router.navigateByUrl(this.redirectUrl)\n }\n\n ngOnDestroy() {\n this.linstenEvent && this.linstenEvent()\n }\n}\n","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { Product } from '../interfaces/product';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecProductStock]\"\n})\nexport class ProductStockDirective {\n\n private productDirective: Product = null;\n\n @Input()\n ecProductStockElse: TemplateRef<any>\n\n @Input()\n set ecProductStock(product: Product) {\n this.productDirective = product\n this.viewContainer.clear();\n if (this.validateStock()) {\n if (this.ecProductStockElse) {\n this.viewContainer.createEmbeddedView(this.ecProductStockElse);\n }else{\n console.error('falta definir el template de agotado');\n }\n } else {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef, ) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n\n validateStock = () => {\n if (this.productDirective.special_mark == undefined || this.productDirective.variants == undefined) {\n setTimeout(() => {\n return this.validateStock()\n }, 1000);\n } else {\n return this.checkValuesForStock()\n }\n }\n\n checkValuesForStock = () => {\n let existMark = false\n this.productDirective.special_mark.forEach(special_mark => {\n switch (special_mark.type) {\n case 'out_of_stock': existMark = true; break;\n }\n })\n if (!existMark) {\n existMark = this.productDirective.variants.find(v => v.stock > 0) == undefined\n }\n return existMark\n }\n}","import {\n Directive,\n OnInit,\n ViewContainerRef,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecProductOff]\",\n})\nexport class ProductOffDirective implements OnChanges, OnInit, OnDestroy {\n\n private product: any;\n private classStr: \"\";\n private customMessageStr = \"{discount}% OFF\";\n\n @Input()\n set ecProductOff(value: any) {\n this.product = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set customMessage(value: string) {\n this.customMessageStr = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit() { }\n hasDiscount = (product) => {\n\n if (!product.saleprice) {\n return null\n }\n if (product.price?.toString().includes(\"-\") && product.saleprice?.toString().includes(\"-\")) {\n let prices = product.price?.toString().split('-')\n let saleprices = product.saleprice?.toString().split('-')\n let saleBf = this.generateDiscount(prices[1]?.trim(), saleprices[1]?.trim())\n let saleLt = this.generateDiscount(prices[0]?.trim(), saleprices[0]?.trim())\n if (!saleBf && !saleLt) {\n return null\n }\n if (saleBf && saleLt && saleBf == saleLt) {\n return `${saleBf}`\n }\n if (saleBf && !saleLt) {\n return `${saleBf}`\n }\n if (!saleBf && saleLt) {\n return `${saleLt}`\n }\n return `${saleBf} - ${saleLt}`\n }else{\n if (parseInt(product.price) > parseInt(product.saleprice)) {\n return this.generateDiscount(product.price, product.saleprice)\n }\n }\n // console.log(product.price?.toString().includes(\"-\"));\n // console.log(product.saleprice?.toString().includes(\"-\"));\n // console.log(' PRECIO ', product.price);\n // console.log(' SALE ', product.saleprice);\n \n // if (\n // !product.price.toString().includes(\"-\") &&\n // product.saleprice &&\n // parseInt(product.price) > parseInt(product.saleprice)\n // ) {\n // let result =\n // ((parseInt(product.price) - parseInt(product.saleprice)) /\n // parseInt(product.price)) *\n // 100;\n // if (Number.isNaN(result)) {\n // return null;\n // } else return Math.floor(result);\n // }\n // return null;\n };\n\n\n generateDiscount = (price, saleprice) => {\n \n if (parseFloat(price) > parseFloat(saleprice) ) {\n let result =\n ((parseFloat(price) - parseFloat(saleprice)) /\n parseFloat(price)) *\n 100;\n if (Number.isNaN(result)) {\n return null;\n } else return Math.round(result)//Math.floor(result);\n }\n return null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.product.price) {\n let discount = this.hasDiscount(this.product);\n this.elementRef.nativeElement.childNodes.forEach(node => {\n this.renderer.removeChild(this.elementRef.nativeElement, node)\n })\n if (discount) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.createImage(discount));\n } \n // else {\n // this.renderer.removeChild(this.elementRef.nativeElement.parentElement, this.elementRef.nativeElement);\n // }\n }\n }\n\n createImage = (discount) => {\n let popover = this.renderer.createElement(\"a\");\n this.customMessageStr = this.customMessageStr.replace('{discount}',discount)\n this.renderer.setProperty(popover, \"innerHTML\", this.customMessageStr);\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(popover, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n return popover;\n };\n\n ngOnDestroy() { }\n}\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, OnDestroy, Input, ElementRef, Renderer2, Inject, OnChanges, SimpleChanges } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Product } from '../interfaces/product';\nimport { Constants } from '../core.consts';\n\n\n@Directive({\n selector: '[ecProductMiniStandard]'\n})\nexport class ProductMiniStandardDirective implements OnChanges, OnInit, OnDestroy {\n\n private special_marks: any[];\n private product: Product;\n private idConteiner = null\n @Input()\n set ecProductMiniStandard(productParam: Product) {\n this.special_marks = productParam.special_mark\n this.product = productParam\n this.idConteiner = `container-img-marks-standard-${this.product.id}`\n }\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private renderer: Renderer2,\n private constants: Constants,\n ) { }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n (this.special_marks && this.special_marks.length)\n &&\n (this.special_marks.filter(special_mark => special_mark.type.includes('standard')))\n .map(special_mark => this.setMarkStandar(special_mark));\n }\n\n ngOnDestroy() { }\n\n setMarkStandar = (special_mark) => {\n let containerImg = document.getElementById(this.idConteiner);\n if (!containerImg) {\n let containerImg = this.renderer.createElement('div');\n this.renderer.setAttribute(containerImg, 'id', this.idConteiner);\n this.renderer.addClass(containerImg, 'container-img-marks-standard');\n this.renderer.appendChild(this.elementRef.nativeElement, containerImg);\n }\n this.renderer.appendChild(document.getElementById(this.idConteiner), this.createImage(special_mark));\n }\n\n createImage = (data) => {\n let image = (data.images && data.images.length) && data.images[0];\n if (!image) return null;\n let image_view = this.renderer.createElement('img');\n this.renderer.setAttribute(image_view, 'src', this.constants.mediaUrl() + image);\n return image_view;\n }\n\n}","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { User } from '../classes/user';\nimport { Product } from '../interfaces/product';\nimport { AuthService } from '../services/auth.service';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecAuthWholesaler]\"\n})\nexport class AuthWholesalerDirective {\n\n public auth: boolean = true\n public user: User = null\n private productDirective: Product = null;\n\n\n @Input()\n ecAuthWholesalerElse: TemplateRef<any>\n\n @Input()\n set ecAuthWholesaler(authparams) {\n this.auth = authparams\n if (this.auth) {\n this.authService.userAuth.subscribe(user => {\n this.viewContainer.clear();\n this.user = user\n this.viewContainer.createEmbeddedView(\n user?.isWholesaler() ? this.templateRef : this.ecAuthWholesalerElse\n )\n })\n }else{\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView( this.templateRef )\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private authService: AuthService,) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n}","//Directives base\n\n// import { ProductButtonBaseDirective } from './product-button-base.directive';\n// import { ProductContactBaseDirective } from './product-contact-base.directive';\n// import { ProductMiniBaseDirective } from './product-mini-base.directive';\n// import { ProductOffDetailBaseDirective } from './product-off-detail-base.directive';\n// import { ProductPriceBaseDirective } from './product-price-base.directive';\n\n\nimport { AddActionRedirectDirective } from './add-action-redirect.directive';\nimport { ProductStockDirective } from './product-stock.directive';\nimport { ProductOffDirective } from './product-off.directive';\nimport { ProductMiniStandardDirective } from './product-mini-standard.directive';\nimport { AuthWholesalerDirective } from './auth-wholesaler.directive';\n\nexport const directives: any[] = [\n // ProductButtonBaseDirective,\n // ProductContactBaseDirective,\n // ProductMiniBaseDirective,\n // ProductOffDetailBaseDirective,\n // ProductPriceBaseDirective,\n\n ProductMiniStandardDirective,\n ProductOffDirective,\n AddActionRedirectDirective,\n ProductStockDirective,\n AuthWholesalerDirective,\n];\n\n// export * from './product-button-base.directive';\n// export * from './product-contact-base.directive';\n// export * from './product-mini-base.directive';\n// export * from './product-off-detail-base.directive';\n// export * from './product-price-base.directive';\n\nexport * from './product-mini-standard.directive';\nexport * from './product-stock.directive';\nexport * from './product-off.directive';\nexport * from './auth-wholesaler.directive';\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { Constants } from '../core.consts';\nimport { ProductsService } from '../services/products/products.service';\n\n@Pipe({\n name: 'ecCurrencySymbol',\n})\nexport class ecCurrencySymbolPipe implements PipeTransform {\n \n\n constructor(public productsService: ProductsService, private currencyPipe: CurrencyPipe, public consts: Constants) { }\n\n transform(\n value: number\n ): string {\n const formatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'USD' });\n return value && this.changeSymbolTransform(formatter.format(value)?.toString()) || ''\n //return value && this.changeSymbolTransform(this.currencyPipe.transform(value,'USD').toString()) || ''\n }\n\n changeSymbolTransform = (valor) => {\n try {\n return this.positionSymbol(this.checkingWithoutDecimals(this.clearSymbol(valor)))\n } catch (error) {\n console.error('Errores en custom pipe -> ',error);\n return valor\n }\n }\n\n clearSymbol = (value) => value.replace('$', '')\n\n positionSymbol = (value) => this.consts?.currency.position.toUpperCase() == 'L' ? `${this.consts?.currency.symbol} ${value?.trim()}` : `${value?.trim()} ${this.consts?.currency.symbol}`\n\n checkingWithoutDecimals = (value) => {\n if (this.consts?.currency.withoutDecimals) {\n let val = value?.split(',')\n return val[1]?.trim() == \"00\" && value.trim().slice(0, value.trim().length - 3) || value\n }\n return value\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerHtml'\n})\nexport class EcSanitizerHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerUrl'\n})\nexport class EcSanitizerUrlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n\n}\n","//Pipes base\n\nimport { ecCurrencySymbolPipe } from \"./ec-currency-symbol.pipe\";\nimport { EcSanitizerHtmlPipe } from \"./ec-sanitizer-html.pipe\";\nimport { EcSanitizerUrlPipe } from \"./ec-sanitizer-url.pipe\";\n\n\nexport const pipes: any[] = [\n ecCurrencySymbolPipe,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe\n];\n\nexport * from \"./ec-currency-symbol.pipe\";\nexport * from \"./ec-sanitizer-html.pipe\";\nexport * from \"./ec-sanitizer-url.pipe\";\n","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OrderByPipe } from './pipes/order-by.pipe';\nimport { RouterModule } from '@angular/router';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { ToastrModule } from 'ngx-toastr';\nimport { WINDOW_PROVIDERS } from './services/windows.service';\nimport { ProductsService } from './services/products/products.service';\nimport { BannerService } from './services/banner.service';\nimport { CartService } from './services/cart.service';\nimport { OrdersService } from './services/account/orders.service';\nimport { PaginationService } from './interfaces/paginate';\nimport { ConnectionService } from './api/connection.service';\nimport { AuthService } from './services/auth.service';\nimport { OptionsService } from './services/options.service';\nimport { ShipmentService } from './services/checkout/shipment.service';\nimport { CheckoutService } from './services/checkout/checkout.service';\nimport { OptionsOfProductListDataReceiverService } from './utils/options-of-product-list-data.service';\nimport { DataformService } from './services/dataform.service';\nimport { BlocksService } from './services/blocks/blocks.service';\nimport { UtilsService } from './utils/utils.service';\nimport { ShipmentDataTransformer } from './utils/shipment-transformer.service';\nimport { PaymentUtils } from './utils/payment-utils.service';\nimport { ToastService } from './utils/toast.service';\nimport { Constants } from './core.consts';\nimport { AuthGuardService } from './guards/auth-guard.service';\nimport { AbleBuyerGuardService } from './guards/able-buyer-guard.service';\nimport { UserRoleGuardService } from './guards/user-role-guard.service';\nimport { LoggedInGuard } from './guards/loggedin-guard.service';\nimport { CheckoutReadyGuard } from './guards/checkout-ready.service';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { CustomerInterceptor } from './interceptors/customer.interceptor';\nimport { StoresService } from './services/stores.service';\nimport { AddressingService } from './services/checkout/addressing.service';\nimport * as fromComponentsBase from './ec-component/index';\nimport * as fromDirectiveBase from './ec-directive/index';\nimport * as fromPipeBase from './ec-pipe/index';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RecaptchaModule, RecaptchaFormsModule, RECAPTCHA_SETTINGS, RecaptchaSettings, RECAPTCHA_LANGUAGE } from 'ng-recaptcha';\nimport { OrderUtilityService } from './utils/order-util.service';\nimport { FacebookPixelService } from './utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from './utils/analytics/google-analytics.service';\nimport { CardModule } from 'ngx-card';\nimport { AnalyticsService } from './services/analytics.service';\nimport { GTMService } from './utils/analytics/gtm.service';\nimport { ChannelConfigService } from './services/channel-config.service';\nimport { BlocksRepositoryService } from './services/blocks/blocks-repository.service';\nimport { ErrorHandlerService } from './services/checkout/error-handler.service';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { EcSanitizerHtmlPipe } from './ec-pipe/ec-sanitizer-html.pipe';\nimport { EcSanitizerUrlPipe } from './ec-pipe/ec-sanitizer-url.pipe';\nimport { CaptchaService } from './services/captcha.service';\nimport { DopplerService } from './utils/analytics/doppler.service';\n\n@NgModule({\n exports: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n ],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n HttpClientModule,\n InfiniteScrollModule,\n ToastrModule,\n FormsModule,\n ReactiveFormsModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n CardModule,\n ModalModule\n ],\n declarations: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe,\n ],\n providers: [\n\n ]\n})\nexport class NgEasycommerceModule {\n public static forRoot(environment: any): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: [\n Constants,\n {\n provide: 'env', // you can also use InjectionToken\n useValue: environment\n },\n WINDOW_PROVIDERS,\n ProductsService,\n BannerService,\n CartService,\n OrdersService,\n PaginationService,\n ConnectionService,\n AuthService,\n OptionsService,\n ShipmentService,\n CheckoutService,\n OptionsOfProductListDataReceiverService,\n DataformService,\n BlocksService,\n StoresService,\n AnalyticsService,\n // Utils\n Constants,\n UtilsService,\n ShipmentDataTransformer,\n PaymentUtils,\n OptionsOfProductListDataReceiverService,\n ToastService,\n AddressingService,\n FacebookPixelService,\n GoogleAnalyticsService,\n GTMService,\n DopplerService,\n // Guards\n AuthGuardService,\n AbleBuyerGuardService,\n UserRoleGuardService,\n LoggedInGuard,\n CheckoutReadyGuard,\n OrderUtilityService,\n fromPipeBase.pipes,\n CurrencyPipe,\n ChannelConfigService,\n BlocksRepositoryService,\n ErrorHandlerService,\n CaptchaService,\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: '6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3' } as RecaptchaSettings,\n },\n // Others\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CustomerInterceptor,\n multi: true\n }\n ]\n };\n }\n\n public static forChild(): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: []\n };\n }\n}","import { Injectable } from '@angular/core';\r\nimport { Constants } from '../core.consts';\r\nimport { CartService } from './cart.service';\r\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ConnectionService } from '../api/connection.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GiftCardService {\r\n\r\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\r\n\r\n private baseUrl = this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/';\r\n private couponApi = () => this.baseUrl + 'carts/' + this.cartService.getCartToken() + '/coupon';\r\n\r\n public state = this.stateSubject.asObservable();\r\n\r\n constructor(private consts: Constants, private cartService: CartService, private connection: ConnectionService) { }\r\n\r\n setCoupon = (coupon) => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.put(this.couponApi(), { coupon }).subscribe(\r\n res => this.handleResponse(res, coupon)\r\n )\r\n }\r\n\r\n removeCoupon = () => this.stateSubject.getValue().data.coupon && this.deleteCoupon();\r\n\r\n deleteCoupon = () => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.delete(this.couponApi());\r\n }\r\n\r\n handleResponse = (response, coupon) => {\r\n response.code ?\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: false,\r\n data: { message: response.message, discount: '' }\r\n }) :\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: true,\r\n data: { message: 'coupon-ready', discount: 'APPLIED DISCOUNT', coupon }\r\n });\r\n }\r\n\r\n avoidCoupon = () => {\r\n this.stateSubject.next({ doing: false, ok: true, data: { discount: null, message: 'avoided', coupon: null } })\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { Product } from '../interfaces/product';\nimport { BehaviorSubject, Observable, Subscriber } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\n// Get product from Localstorage\nlet products = JSON.parse(localStorage.getItem(\"wishlistItem\")) || [];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WishlistService {\n \n // wishlist array\n public wishlistProducts: BehaviorSubject<Product[]> = new BehaviorSubject([]);\n public observer : Subscriber<{}>;\n\n // Initialize \n constructor(private toastrService: ToastrService) { \n this.wishlistProducts.subscribe(products => products = products);\n }\n\n // Get wishlist Products\n public getProducts(): Observable<Product[]> {\n const itemsStream = new Observable(observer => {\n observer.next(products);\n observer.complete();\n });\n return <Observable<Product[]>>itemsStream;\n }\n\n // If item is aleready added In wishlist\n public hasProduct(product: Product): boolean {\n const item = products.find(item => item.id === product.id);\n return item !== undefined;\n }\n\n // Add to wishlist\n public addToWishlist(product: Product): Product | boolean {\n var item: Product | boolean = false;\n if (this.hasProduct(product)) {\n item = products.filter(item => item.id === product.id)[0];\n const index = products.indexOf(item);\n } else {\n products.push(product);\n }\n this.toastrService.success('This product added to Wishlist.'); // toasr services\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n return item;\n }\n\n // Removed Product\n public removeFromWishlist(product: Product) {\n if (product === undefined) { return; }\n const index = products.indexOf(product);\n products.splice(index, 1);\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n }\n \n\n}\n","import {Inject, Injectable, OnInit} from '@angular/core';\nimport {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';\nimport {Constants} from '../core.consts';\n\n@Injectable()\nexport class StandardReuseStrategy implements RouteReuseStrategy {\n\n private routes : string[] = [];\n private storedRoutes = new Map<string, DetachedRouteHandle>();\n\n constructor(@Inject('env')private env) {}\n\n shouldDetach(route : ActivatedRouteSnapshot): boolean {\n this.routes = (this.routes.length && this.routes) || (this.env.routes || []);\n let result = route.data.key && this.routes.includes(route.data.key);\n return result;\n }\n\n store(route : ActivatedRouteSnapshot, handle : DetachedRouteHandle): void {\n this.storedRoutes.set(route.data.key, handle);\n }\n\n shouldAttach(route : ActivatedRouteSnapshot): boolean {\n return !!this.storedRoutes.get(route.data.key);\n }\n\n retrieve(route : ActivatedRouteSnapshot): DetachedRouteHandle {\n return this.storedRoutes.get(route.data.key);\n }\n\n shouldReuseRoute(future : ActivatedRouteSnapshot, curr : ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n","/*\n * Public API Surface of ng-easycommerce\n */\n\nexport * from './lib/ng-easycommerce.module';\n\n// Classes\nexport * from './lib/classes/user';\nexport * from './lib/classes/checkout/step';\nexport * from './lib/classes/checkout-process-state';\nexport * from './lib/classes/filters/AttributesFilter';\nexport * from './lib/classes/filters/CategoryFilter';\nexport * from './lib/classes/filters/DinamycsFilter';\nexport * from './lib/classes/filters/Filter';\nexport * from './lib/classes/filters/SortFilter';\n\n// Servicios\nexport * from './lib/services/auth.service';\nexport * from './lib/services/banner.service';\nexport * from './lib/services/cart.service';\nexport * from './lib/services/blocks/blocks.service';\nexport * from './lib/services/dataform.service';\nexport * from './lib/services/gift-card.service';\nexport * from './lib/services/options.service';\nexport * from './lib/services/account/orders.service';\nexport * from './lib/services/pagination.service';\nexport * from './lib/services/parameters.service';\nexport * from './lib/services/windows.service';\nexport * from './lib/services/wishlist.service';\nexport * from './lib/services/checkout/checkout.service';\nexport * from './lib/services/checkout/shipment.service';\nexport * from './lib/services/checkout/addressing.service';\nexport * from './lib/services/checkout/payment.service';\nexport * from './lib/services/stores.service';\nexport * from './lib/services/products/product-detail.service';\nexport * from './lib/services/products/products.service';\nexport * from './lib/services/analytics.service';\nexport * from './lib/services/channel-config.service';\nexport * from './lib/services/captcha.service';\n\n// Interfaces\nexport * from './lib/interfaces/block';\nexport * from './lib/interfaces/cart-item';\nexport * from './lib/interfaces/core.interfaces';\nexport * from './lib/interfaces/filter';\nexport * from './lib/interfaces/coupon';\nexport * from './lib/interfaces/deserializable';\nexport * from './lib/interfaces/navbar-items';\nexport * from './lib/interfaces/paginate';\nexport * from './lib/interfaces/parameters';\nexport * from './lib/interfaces/product';\nexport * from './lib/interfaces/step';\nexport * from './lib/interfaces/selection';\nexport * from './lib/interfaces/checkout-data';\nexport * from './lib/interfaces/faqs';\nexport * from './lib/interfaces/store';\nexport * from './lib/interfaces/choose-options/options-of-product-list';\nexport * from './lib/interfaces/choose-options/filter-option';\n\nexport * from './lib/api/connection.service';\n\n// Guards\nexport * from './lib/guards/auth-guard.service';\nexport * from './lib/guards/able-buyer-guard.service';\nexport * from './lib/guards/user-role-guard.service';\nexport * from './lib/guards/checkout-ready.service';\nexport * from './lib/guards/loggedin-guard.service';\n\n// Interceptors\nexport * from './lib/interceptors/auth.interceptor';\n\n// Pipes\n// export * from './lib/pipes/order-by.pipe';\n\n// Utils\nexport * from './lib/utils/toast.service';\nexport * from './lib/utils/utils.service';\n\nexport * from './lib/core.consts';\n\n// Strategy\nexport * from './lib/strategies/standard.strategy';\n\n// Component Base\nexport * from \"./lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/blocks-ec.component\";\nexport * from \"./lib/ec-component/cart-ec/cart-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/checkout-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/success-ec/success-ec.component\";\nexport * from \"./lib/ec-component/collection-ec/collection-ec.component\";\nexport * from \"./lib/ec-component/coupon-ec/coupon-ec.component\";\nexport * from \"./lib/ec-component/faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./lib/ec-component/filters-ec/filters-ec.component\";\nexport * from \"./lib/ec-component/filters-top-ec/filters-top-ec.component\";\nexport * from \"./lib/ec-component/footer-ec/footer-ec.component\";\nexport * from \"./lib/ec-component/header-ec/header-ec.component\";\nexport * from \"./lib/ec-component/login-ec/login-ec.component\";\nexport * from \"./lib/ec-component/product-ec/product-ec.component\";\nexport * from \"./lib/ec-component/related-products-ec/related-products-ec.component\";\nexport * from \"./lib/ec-component/section-container-ec/section-container-ec.component\";\nexport * from \"./lib/ec-component/stores-ec/stores-ec.component\";\nexport * from \"./lib/ec-component/variants-ec/variants-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/price-ec/price-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./lib/ec-component/home-ec/home-ec.component\";\nexport * from \"./lib/ec-component/product-detail-ec/product-detail-ec.component\";\nexport * from \"./lib/ec-component/account-ec/account-ec.component\";\nexport * from \"./lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./lib/ec-component/account-ec/order-ec/order-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/auth-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./lib/ec-component/password-reset-ec/password-reset-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./lib/ec-component/share-block-ec/share-block-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nexport * from \"./lib/ec-component/checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component\";\n\n\n// Directive base\n// export * from './lib/ec-directive/product-button-ec.directive'\n// export * from './lib/ec-directive/product-contact-ec.directive'\n// export * from './lib/ec-directive/product-mini-ec.directive'\n// export * from './lib/ec-directive/product-off-detail-ec.directive'\n// export * from './lib/ec-directive/product-price-ec.directive'\n\nexport * from './lib/ec-directive/product-mini-standard.directive'\nexport * from './lib/ec-directive/add-action-redirect.directive';\nexport * from './lib/ec-directive/product-stock.directive';\nexport * from './lib/ec-directive/auth-wholesaler.directive';\n\n\n//Pipes base\nexport * from './lib/ec-pipe/ec-currency-symbol.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-html.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-url.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {StepService as ɵn} from './lib/classes/checkout/step-service';\nexport {ComponentHelper as ɵf} from './lib/classes/component-helper';\nexport {components as ɵb} from './lib/ec-component/index';\nexport {SellerDashboardContainerEcComponent as ɵc} from './lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component';\nexport {RecaptchaEcComponent as ɵe} from './lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component';\nexport {MagnizoomComponent as ɵd} from './lib/ec-component/widgets-ec/zoom-ec/magnizoom.component';\nexport {directives as ɵq} from './lib/ec-directive/index';\nexport {ProductOffDirective as ɵr} from './lib/ec-directive/product-off.directive';\nexport {pipes as ɵs} from './lib/ec-pipe/index';\nexport {CustomerInterceptor as ɵv} from './lib/interceptors/customer.interceptor';\nexport {OrderByPipe as ɵa} from './lib/pipes/order-by.pipe';\nexport {BlocksRepositoryService as ɵg} from './lib/services/blocks/blocks-repository.service';\nexport {ErrorHandlerService as ɵo} from './lib/services/checkout/error-handler.service';\nexport {DopplerService as ɵl} from './lib/utils/analytics/doppler.service';\nexport {FacebookPixelService as ɵh} from './lib/utils/analytics/facebook-pixel.service';\nexport {GoogleAnalyticsService as ɵi} from './lib/utils/analytics/google-analytics.service';\nexport {GTMService as ɵj} from './lib/utils/analytics/gtm.service';\nexport {MetricoolPixelService as ɵk} from './lib/utils/analytics/metricool-pixel.service';\nexport {OptionsOfProductListDataReceiverService as ɵt} from './lib/utils/options-of-product-list-data.service';\nexport {OrderUtilityService as ɵm} from './lib/utils/order-util.service';\nexport {PaymentUtils as ɵu} from './lib/utils/payment-utils.service';\nexport {ShipmentDataTransformer as ɵp} from './lib/utils/shipment-transformer.service';"],"names":["__param","__decorate","ParamsContext","fromPipeBase.pipes","fromComponentsBase.components","fromDirectiveBase.directives","products"],"mappings":"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"}
1
+ {"version":3,"file":"ng-easycommerce.js","sources":["ng://ng-easycommerce/lib/pipes/order-by.pipe.ts","ng://ng-easycommerce/lib/services/windows.service.ts","ng://ng-easycommerce/lib/core.consts.ts","ng://ng-easycommerce/lib/api/connection.service.ts","ng://ng-easycommerce/lib/services/pagination.service.ts","ng://ng-easycommerce/lib/classes/filters/Filter.ts","ng://ng-easycommerce/lib/classes/filters/CategoryFilter.ts","ng://ng-easycommerce/lib/services/options.service.ts","ng://ng-easycommerce/lib/classes/filters/AttributesFilter.ts","ng://ng-easycommerce/lib/classes/filters/DinamycsFilter.ts","ng://ng-easycommerce/lib/classes/filters/SortFilter.ts","ng://ng-easycommerce/lib/services/products/products.service.ts","ng://ng-easycommerce/lib/services/banner.service.ts","ng://ng-easycommerce/lib/classes/user.ts","ng://ng-easycommerce/lib/classes/checkout/step.ts","ng://ng-easycommerce/lib/utils/order-util.service.ts","ng://ng-easycommerce/lib/utils/analytics/doppler.service.ts","ng://ng-easycommerce/lib/utils/analytics/facebook-pixel.service.ts","ng://ng-easycommerce/lib/utils/analytics/google-analytics.service.ts","ng://ng-easycommerce/lib/utils/analytics/gtm.service.ts","ng://ng-easycommerce/lib/utils/analytics/metricool-pixel.service.ts","ng://ng-easycommerce/lib/services/analytics.service.ts","ng://ng-easycommerce/lib/services/checkout/error-handler.service.ts","ng://ng-easycommerce/lib/utils/toast.service.ts","ng://ng-easycommerce/lib/services/checkout/checkout.service.ts","ng://ng-easycommerce/lib/classes/checkout/step-service.ts","ng://ng-easycommerce/lib/services/checkout/addressing.service.ts","ng://ng-easycommerce/lib/services/channel-config.service.ts","ng://ng-easycommerce/lib/services/auth.service.ts","ng://ng-easycommerce/lib/services/cart.service.ts","ng://ng-easycommerce/lib/services/account/orders.service.ts","ng://ng-easycommerce/lib/utils/shipment-transformer.service.ts","ng://ng-easycommerce/lib/services/stores.service.ts","ng://ng-easycommerce/lib/services/checkout/shipment.service.ts","ng://ng-easycommerce/lib/interfaces/choose-options/filter-option.ts","ng://ng-easycommerce/lib/utils/options-of-product-list-data.service.ts","ng://ng-easycommerce/lib/services/dataform.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks-repository.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks.service.ts","ng://ng-easycommerce/lib/utils/utils.service.ts","ng://ng-easycommerce/lib/utils/payment-utils.service.ts","ng://ng-easycommerce/lib/guards/auth-guard.service.ts","ng://ng-easycommerce/lib/guards/able-buyer-guard.service.ts","ng://ng-easycommerce/lib/guards/user-role-guard.service.ts","ng://ng-easycommerce/lib/guards/loggedin-guard.service.ts","ng://ng-easycommerce/lib/guards/checkout-ready.service.ts","ng://ng-easycommerce/lib/interceptors/auth.interceptor.ts","ng://ng-easycommerce/lib/interceptors/customer.interceptor.ts","ng://ng-easycommerce/lib/classes/component-helper.ts","ng://ng-easycommerce/lib/services/parameters.service.ts","ng://ng-easycommerce/lib/ec-component/account-ec/account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/blocks-ec.component.ts","ng://ng-easycommerce/lib/ec-component/cart-ec/cart-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/checkout-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.ts","ng://ng-easycommerce/lib/services/checkout/payment.service.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/success-ec/success-ec.component.ts","ng://ng-easycommerce/lib/ec-component/collection-ec/collection-ec.component.ts","ng://ng-easycommerce/lib/ec-component/coupon-ec/coupon-ec.component.ts","ng://ng-easycommerce/lib/ec-component/faqs-content-ec/faqs-content-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-ec/filters-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-top-ec/filters-top-ec.component.ts","ng://ng-easycommerce/lib/ec-component/footer-ec/footer-ec.component.ts","ng://ng-easycommerce/lib/ec-component/header-ec/header-ec.component.ts","ng://ng-easycommerce/lib/ec-component/home-ec/home-ec.component.ts","ng://ng-easycommerce/lib/ec-component/login-ec/login-ec.component.ts","ng://ng-easycommerce/lib/services/products/product-detail.service.ts","ng://ng-easycommerce/lib/ec-component/product-detail-ec/product-detail-ec.component.ts","ng://ng-easycommerce/lib/ec-component/product-ec/product-ec.component.ts","ng://ng-easycommerce/lib/ec-component/related-products-ec/related-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/section-container-ec/section-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/stores-ec/stores-ec.component.ts","ng://ng-easycommerce/lib/ec-component/variants-ec/variants-ec.component.ts","ng://ng-easycommerce/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/price-ec/price-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/order-ec/order-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/auth-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-form-ec/register-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/password-reset-ec/password-reset-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/share-block-ec/share-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-error-ec/checkout-error-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/zoom-ec/magnizoom.component.ts","ng://ng-easycommerce/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.ts","ng://ng-easycommerce/lib/services/captcha.service.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.ts","ng://ng-easycommerce/lib/ec-component/index.ts","ng://ng-easycommerce/lib/ec-directive/add-action-redirect.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-stock.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-off.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-mini-standard.directive.ts","ng://ng-easycommerce/lib/ec-directive/auth-wholesaler.directive.ts","ng://ng-easycommerce/lib/ec-directive/index.ts","ng://ng-easycommerce/lib/ec-pipe/ec-currency-symbol.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-html.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-url.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/index.ts","ng://ng-easycommerce/lib/ng-easycommerce.module.ts","ng://ng-easycommerce/lib/services/gift-card.service.ts","ng://ng-easycommerce/lib/services/wishlist.service.ts","ng://ng-easycommerce/lib/strategies/standard.strategy.ts","ng://ng-easycommerce/public-api.ts","ng://ng-easycommerce/ng-easycommerce.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'orderBy'\n})\nexport class OrderByPipe implements PipeTransform {\n\n transform(array, val = 'desc'){\n \n if (!val || val.trim() == \"\"){\n return array;\n } \n\n //ascending\n if (val == 'asc'){\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item1['id'], item2['id']);\n });\n } else if(val == 'desc'){ // desc\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item2['id'], item1['id']);\n });\n } else if(val == 'a-z') { // a-z\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] < b['name'] ){\n return -1;\n } else if ( a['name'] > b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'z-a') { // z-a\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] > b['name'] ){\n return -1;\n } else if ( a['name'] < b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'low') { // low to high\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] < b['price'] ){\n return -1;\n } else if ( a['price'] > b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'high') { // high to low\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] > b['price'] ){\n return -1;\n } else if ( a['price'] < b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n }\n\n }\n\n orderByComparator(a:any, b:any):number{\n\n if((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))){\n //Isn't a number so lowercase the string to properly compare\n if(a.toLowerCase() < b.toLowerCase()) return -1;\n if(a.toLowerCase() > b.toLowerCase()) return 1;\n }\n else{\n //Parse strings as numbers to compare properly\n if(parseFloat(a) < parseFloat(b)) return -1;\n if(parseFloat(a) > parseFloat(b)) return 1;\n }\n\n return 0; //equal each other\n }\n\n}\n","import { isPlatformBrowser } from \"@angular/common\";\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/* Create a new injection token for injecting the window into a component. */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/* Define abstract class for obtaining reference to the global window object. */\r\nexport abstract class WindowRef {\r\n\r\n get nativeWindow(): Window | Object {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n}\r\n\r\n/* Define class that implements the abstract class and returns the native window object. */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get nativeWindow(): Window | Object {\r\n return window;\r\n }\r\n\r\n}\r\n\r\n/* Create an factory function that returns the native window object. */\r\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n return new Object();\r\n}\r\n\r\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\r\nexport const browserWindowProvider: ClassProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n\r\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\r\nexport const windowProvider: FactoryProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [ WindowRef, PLATFORM_ID ]\r\n};\r\n\r\n/* Create an array of providers. */\r\nexport const WINDOW_PROVIDERS = [\r\n browserWindowProvider,\r\n windowProvider\r\n];","\nimport { Injectable, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from './api/connection.service';\nimport { CurrencyConfig } from './interfaces/currencyConfig';\ntype currencyType = 'EUR' | 'ARG' | 'USD' | 'PYG' | 'PEN' | 'CUSTOM';\ntype positionType = 'L' | 'R';\ntype channelTypes = 'b2b' | 'b2b2c' | 'b2c';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Constants {\n\n constructor(public translate: TranslateService, private router: Router, @Inject('env') private env) { }\n\n private readonly LOCALE = 'LOCALE';\n private readonly CHANNEL = 'CHANNEL';\n\n private channelConfigSubject = new ReplaySubject<any>();\n public channelConfig$ = this.channelConfigSubject.asObservable();\n\n private channelConfigAPI = (channel) => '/shop-api/' + channel + 'channel';\n\n private browserWindow: object = window || {};\n private browserWindowEnv: object = this.browserWindow['__env'] || {};\n\n // private urlBase: string = 'http://testing.backend.easycommercetech.com/';\n private urlBase: string = this.browserWindowEnv['apiUrl'] ? this.browserWindowEnv['apiUrl'] : (this.env.apiUrl || 'http://backend.easycommerce.devp/');\n private urlAssets: string = this.browserWindowEnv['urlAssets'] ? this.browserWindowEnv['urlAssets'] : (this.env.urlAssets || this.urlBase);\n private urlFrontend: string = this.browserWindowEnv['urlFrontend'] ? this.browserWindowEnv['urlFrontend'] : (this.env.urlFrontend || 'https://elden.easycommercetech.com/');\n private locale: string = localStorage.getItem(this.LOCALE) ? localStorage.getItem(this.LOCALE) : this.browserWindowEnv['locale'] ? this.browserWindowEnv['locale'] : (this.env.locale || 'es_AR');\n private channel: string = localStorage.getItem(this.CHANNEL) ? localStorage.getItem(this.CHANNEL) : this.browserWindowEnv['channel'] ? this.browserWindowEnv['channel'] : (this.env.channel || 'minorista')\n private blocksCacheTime: string = this.browserWindowEnv['blocksCacheTime'] ? this.browserWindowEnv['blocksCacheTime'] : (this.env.blocksCacheTime || null);\n\n private modalConfig = { title: 'Example', class: 'modal-xl modal-dialog-centered', keyboard: false };\n setModalConfig = (config: any) => this.modalConfig = config;\n getModalConfig = () => this.modalConfig;\n\n private version: string = 'v1';\n\n private routes = [/^home$/g, /^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g, /^contact$/g];\n\n /* Get rid of this ASAP! */\n private masterChannel = null\n\n public getMasterChannel = () => {\n if (!this.masterChannel) this.masterChannel = localStorage.getItem('MASTER_CHANNEL')\n return this.masterChannel\n }\n\n public setMasterChannel = channel => {\n this.masterChannel = channel\n localStorage.setItem('MASTER_CHANNEL', channel)\n }\n\n private isProduction = () => this.browserWindowEnv['production'] ? this.browserWindowEnv['production'] : (this.env.production || false);\n\n setUrlBase = (url) => this.urlBase = url;\n setUrlAssets = (url) => this.urlAssets = url;\n\n /**\n * @param next Function to execute\n * @param params That function needs\n *\n * Execute the function passed as params, if the frontend is in production mode\n */\n onlyIfProduction = (next, params) => this.isProduction() && next(params);\n\n mediaUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"image/\";\n mediaBannerUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"banner-image/\";\n mediaStoreUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"store-image/\";\n\n getProductsListRoute = () => 'collection/';\n\n getSectionsRoute = () => 'section/';\n\n getUrlBase = () => this.urlBase;\n getUrlFrontend = () => this.urlFrontend;\n\n getBlocksCacheTime = (): number => this.blocksCacheTime && parseInt(this.blocksCacheTime);\n\n // getLocale = () => this.locale;\n // setLocale = (locale) => this.locale = locale;\n\n getLocale = () => {\n if (localStorage.getItem(this.LOCALE)) {\n this.locale = localStorage.getItem(this.LOCALE)\n }\n return this.locale\n }\n\n getLocaleTranslate = () => {\n return this.getLocale().split('_')[0]\n }\n\n public setLocale = locale => {\n localStorage.setItem(this.LOCALE, locale)\n this.translate.use(locale.split('_')[0])\n this.locale = locale\n }\n\n getChannel = () => {\n if (localStorage.getItem(this.CHANNEL)) {\n this.channel = localStorage.getItem(this.CHANNEL)\n }\n return this.channel\n }\n\n public setChannel = channel => {\n localStorage.setItem(this.CHANNEL, channel)\n this.channel = channel\n }\n\n getVersion = () => this.version;\n\n loginExtraData = () => {\n return {\n client_id: 'demo_client',\n client_secret: 'secret_demo_client',\n grant_type: 'password'\n }\n }\n\n isCollection = (path) => (/^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g).test(path);\n\n /**\n * Utilities\n */\n\n mobile = () => window.innerWidth < 750;\n\n strictTypeChannel = () => this.env.strictTypeChannel || 'b2b2c';\n\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total;\n\n /**\n * Elementos para manejo de lista de rutas reutilizables\n */\n\n addRouteToReuse = (route: RegExp) => route && this.routes.push(route);\n\n removeRouteToReuse = (route: RegExp) => {\n const index = this.routes.indexOf(route);\n if (index > -1) {\n this.routes.splice(index, 1);\n }\n }\n\n getRoutesToReuse = (): RegExp[] => this.routes;\n\n\n\n /**\n * @public ejemplo de uso <img *ngFor=\"let item of consts.getRatingStar(product.rating,'assets/images/star.png','assets/images/notStar.png')\" [src]=\"item\">\n * @description funcion que dado un valor entre 1 .. 5, y star: notStar: \n * (deben ser el path del archivo local a la implementacion).\n * retorna un arreglo con con la valoracion correspondiente. \n */\n getRatingStar = (rating: any, star: String, notStar: String) => {\n try {\n let urlStar = [];\n let cantStar = Number(rating) || 0;\n for (let index = 0; index < 5; index++) {\n urlStar.push(\n cantStar > 0\n ? star\n : notStar\n );\n cantStar--;\n }\n return urlStar;\n } catch (error) {\n console.error(\"getRatingStar produjo un error -> \", error);\n }\n\n };\n\n /**\n * @public ejemplo de uso (keypress)=\"inputValidationByExpressions($event,'[0-9]{1,9}')\" en el DOM.\n * @description funcion que dado un manejandor de evento, y una expresion regular esta es \n * evaluada sobre los valores que el manejador de eventos nos envia. \n * En el caso en el que se envie el parametro 'condition' este puede ser para \n * anular el evento como condicion adicional a la evaluacion de la entrada.\n */\n inputValidationByExpressions = (e, patron, condition = null ) => {\n try {\n let tecla = (document) ? e.keyCode : e.which;\n if (tecla == 8) return true;\n let patronReg = new RegExp(patron)\n let tecla_final = String.fromCharCode(tecla);\n if (condition != null) {\n return patronReg.test(tecla_final) && condition;\n }\n return patronReg.test(tecla_final)\n } catch (error) {\n console.error(\"inputValidationByExpressions produjo un error -> \", error);\n }\n }\n\n\n /**\n * \n * @param needles (agujas) object con claves valor a filtrar\n * @param haystack (pajar) objecto en el que buscar\n * \n * @description funcion que busca en el haystack (pajar) todos los objetos que contentan \n * todas las claves de los needles(agujas) que contengan el mismo valor\n */\n containsAll(needles: object, haystack: object): boolean {\n let result: boolean = true;\n\n if (!!needles && !!haystack) {\n Object.entries(needles).forEach(value => {\n if (!(haystack.hasOwnProperty(value[0]) && haystack[value[0]] == value[1])) result = false\n })\n }\n return result;\n }\n\n /**\n * Propiedad que se utiliza para tomar como configuración para el tipo de moneda que se utiliza en el sitio. \n * Estos valores son utilizados para el pipe currencyPrice\n */\n public currency: CurrencyConfig = {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n }\n\n /**\n * \n * @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar. \n * Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.\n * @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,\n * todas las key son opcionales y por defecto se toman los valores del ejemplo. \n * @returns se retorna la configuración que se seteo a la propiedad currency del servicio.\n */\n public setCurrency = (currencyTypeFind: currencyType, customType?: CurrencyConfig) => {\n let currencyTypeCofig: CurrencyConfig[] = [\n {\n code: 'EUR',\n symbol: '€',\n position: 'R',\n withoutDecimals: false\n\n },\n {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'USD',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PYG',\n symbol: 'Gs.',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PEN',\n symbol: 'S/',\n position: 'L',\n withoutDecimals: false\n }\n ]\n this.currency = currencyTypeCofig.find(ct => ct.code == currencyTypeFind.toUpperCase()) || this.currency\n customType && (this.currency = { ...this.currency, ...customType })\n return this.currency;\n };\n\n\n /**\n * devuelve true si existe el elemento \"search\" en el array de parametros \"params\"\n * \n * @param params Array de parametros entre los que buscar\n * @param searched Elemento que buscar\n * @param prefix prefijo del string a buscar (ejemplo: \"link_\")\n * @param suffix sufijo del string a buscar (ejemplo: \"link_\")\n * @param casesensitive determina si se evalua con sensibilidad entre mayuscula y minuscula\n * @returns retorna true o false si se encontro o no el parametro en el array\n */\n public hasParams(\n params,\n searched,\n prefix = '',\n suffix = '',\n casesensitive = false): boolean {\n\n\n return casesensitive ? params.find(param => (param.code).toLowerCase() == (prefix + searched + suffix).toLowerCase() || (param.code).toLowerCase() == (searched).toLowerCase())\n : params.find(param => param.code == (prefix + searched + suffix) || param.code == searched)\n\n };\n modifyChannelConfig = (channelConfig) => {\n console.log(\"Channel config: \", channelConfig)\n if (channelConfig.channel || channelConfig.code)\n this.setChannel(channelConfig.channel || channelConfig.code)\n\n if (channelConfig.locale || channelConfig.locales.code)\n this.setLocale(channelConfig.locale || channelConfig.locales.code)\n\n return channelConfig;\n }\n}\n\n","import { Injectable, OnInit } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilterOption, FilterOptionTypes, FilterOptionValue } from '../interfaces/choose-options/filter-option';\nimport { take } from 'rxjs/operators';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class ConnectionService {\n\n private url;\n\n constructor(private http: HttpClient, private translate: TranslateService,\n private consts: Constants) {\n this.url = this.consts.getUrlBase();\n }\n\n /** POST */\n post(api: string, data?): Observable<any> {\n return this.http.post<any>(this.url + api, data || {}).pipe(take(1));\n }\n\n postOutsider(api: string, data): Observable<any> {\n return this.http.post<any>(api, data).pipe(take(1));\n }\n\n /** GET */\n get(api: string, data?): Observable<any> {\n return this.http.get<any>(this.formUrl(api), { params: { ...data } }).catch(err => of(null)).pipe(take(1));\n }\n\n getOutsider(api: string): Observable<any> {\n return this.http.get<any>(api).pipe(take(1));\n }\n\n getErrorNotHandler(api: string): Observable<any> {\n return this.http.get<any>(this.url + api).pipe(take(1));\n }\n\n getOutsiderWithParams(api: string, data: any): Observable<any> {\n return this.http.get<any>(api, { params: { ...data }});\n }\n\n getHTML(api: string): Observable<any> {\n let httpHeaders = new HttpHeaders({ Accept: 'text/plain, text/html' });\n return this.http.get(this.url + api, { responseType: 'text', headers: httpHeaders }).pipe(take(1));\n }\n\n getWithLimit(api: string, limit: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n getPaginated(api: string, limit: string, page: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n params = params.append('page', page);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n /** PUT */\n put(api: string, data): Observable<any> {\n return this.http.put<any>(this.url + api, data).pipe(take(1));\n }\n\n /** DELETE */\n delete(api: string): Observable<any> {\n return this.http.delete<any>(this.url + api).pipe(take(1));\n }\n\n formUrl = (api) => {\n return window.location.protocol == 'https:' && !this.url.includes('https') ? (this.url.replace('http', 'https')) + api : this.url + api;\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { Product } from '../interfaces/product';\n\n@Injectable()\nexport class PaginationService {\n\n private api: string;\n private limit;\n private params;\n private nextSubject : BehaviorSubject<Product[]> = new BehaviorSubject([]);\n private finishedSubject : BehaviorSubject<boolean> = new BehaviorSubject(false);\n private finished;\n public total= 0;\n \n public waiting = false;\n \n public next = this.nextSubject.asObservable();\n public finished$ = this.finishedSubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) { }\n\n initialize(api, limit?, initialValues?) {\n this.api = api;\n this.limit = limit || this.limit || 10;\n this.finished = false;\n this.nextSubject.next([]);\n }\n\n getNext(next?) : boolean{\n this.waiting = true;\n this.api = this.api.replace('%20', ' '); //-\n let nextProducts = !this.api.includes('page=') \n ? this.connection.get(this.api, { limit: this.limit, page: 1 }) \n : this.connection.get(this.api);\n !this.finished && nextProducts.subscribe(\n response => {\n response.links ? this.updatePageData(response) : this.finalize(response)\n next && next(response);\n }\n )\n return true;\n }\n\n private updatePageData = (response) => {\n this.api = this.cleanRoute(response.links.next);\n this.finished = response.page == response.pages;\n this.total = response.total;\n this.finishedSubject.next((response.page == response.pages))\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n private finalize = (response) => {\n this.finished = true;\n this.finishedSubject.next(true);\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n cleanRoute = (route: string) => route.slice(1);\n\n getPage(totalItems: number, currentPage: number = 1, pageSize: number = 8) { }\n\n isFinished = () => this.finished;\n}\n","import { IFilter, FilterElement, FilterType } from \"../../interfaces/filter\";\n\nexport class Filter implements IFilter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = false;\n type = (): FilterType => null;\n getContent = (): FilterElement[] => null;\n toUrlParams = (): string => null;\n setContent = (options): void => null;\n\n setSelected = (element, value?) => {\n !this.multi && this.cleanFilter(this.data, element);\n this.setSelectedValue(element, value);\n }\n\n cleanFilter = (data, element_to_change) => {\n element_to_change && data.forEach(element => {\n element_to_change != element ? element.selected = false : null;\n (element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);\n })\n }\n\n reset = (children?) => {\n let data = children || this.data;\n data.forEach(element => {\n element.selected = false;\n (element.children && element.children.length > 0) && this.reset(element.children);\n })\n }\n\n setSelectedValue = (element, value?, sublist?, multi?) => {\n let elements = sublist || this.data;\n let index = elements.findIndex(subelement => {\n return (element.code || element) == subelement.code;\n });\n if (index >= 0) {\n elements[index].selected = elements[index].selected ? false : true;\n !multi && elements.forEach((child, i) => {\n if (i != index) child.selected = false;\n });\n return {\n elements,\n founded: true\n };\n } else {\n elements.some(elem => elem.type == 'sub') && elements.some(\n filter => {\n let founded = false;\n if (filter.type == 'sub') {\n const result = this.setSelectedValue(element, value, filter.children, filter.multi);\n if (result && result.founded) {\n filter.children = result.elements;\n founded = true;\n }\n }\n return founded;\n }\n )\n }\n };\n\n getSelectedList = (): any => this.findSelected(this.data, []);\n\n findSelected = (elements: any[], result) => {\n let element = elements.find(elem => elem.selected);\n if (element) {\n result.push(element.code);\n return result;\n }\n elements.forEach(elem => {\n if (elem.children && elem.children.length) {\n let new_result = this.findSelected(elem.children, result);\n if (new_result) result = new_result;\n }\n })\n return result;\n }\n}\n\n","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class CategoryFilter extends Filter {\n\n data: FilterElement[] = [];\n private raw_data;\n multi = false;\n\n constructor(private categories$: Observable<any>, formatter, initial_value?) {\n super();\n this.categories$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n type = (): FilterType => 'category';\n\n setContent = (categories, original?, initial_value?) => {\n categories.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = categories;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '', sublist?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub' && !element.selected) {\n const result = this.toUrlParams('', element.children);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if (element.selected) {\n if (actual_url == '') actual_url = '&category=' + element.value;\n else actual_url = element.value;\n }\n })\n return actual_url;\n };\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { BehaviorSubject, of, Observable } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { AuthService } from './auth.service';\nimport { take, map, catchError } from 'rxjs/operators';\nimport { FAQ } from '../interfaces/faqs';\nimport { Filter } from '../classes/filters/Filter';\n\n@Injectable()\nexport class OptionsService {\n\n private categoriesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private attributesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private sectionsSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private readySubject: BehaviorSubject<any> = new BehaviorSubject({ options: { categories: false, attributes: false, sections: false }, readyAll: false });\n private data = [];\n\n\n public categories = this.categoriesSubject.asObservable();\n public attributes = this.attributesSubject.asObservable();\n public sections = this.sectionsSubject.asObservable();\n public ready = this.readySubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) {\n this.getAllData();\n // this.authService.loggedIn.subscribe(res => res && this.getAllData());\n }\n\n private getAllData = () => {\n this.getCategories();\n this.getAttributes();\n this.getSections();\n }\n\n private async getCategories() {\n await this.connection.get(this.taxonsApi()).pipe(take(1),\n map(response => this.appendPaths(true, response)))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.categoriesSubject.next(response)\n }\n ).catch(() => this.categoriesSubject.next([]))\n this.optionLoaded('categories');\n }\n\n private async getAttributes() {\n await this.connection.get(this.attributesApi()).pipe(\n map(response => this.appendPaths(false, (response.items || response))))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.attributesSubject.next(this.addAttributesSlug(response));\n }\n ).catch(() => this.attributesSubject.next([]))\n this.optionLoaded('attributes');\n }\n\n private appendPaths(isCategory, response) {\n let result = response.map(subelement => {\n if (!subelement.children || subelement.children.length == 0) {\n subelement.children = [];\n subelement.path = isCategory ? this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name))\n : this.constants.getProductsListRoute() + 'attributes/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name));\n } else if (subelement.children) {\n subelement.slug = subelement.slug || this.slugify(subelement.name);\n subelement.children = this.appendPaths(isCategory, subelement.children);\n }\n isCategory ? subelement.path = this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name)) : null;\n return subelement;\n });\n return result;\n }\n\n private async getSections() {\n await this.connection.get(this.sectionsApi()).toPromise().then(\n response => {\n let sections = response.filter(item => item.code != 'home');\n sections = sections.map(section => this.appendSection(section));\n this.sectionsSubject.next(sections);\n }\n ).catch(() => this.categoriesSubject.next([]));\n this.optionLoaded('sections');\n }\n\n private appendSection(section) {\n let data: any = {};\n if (section.pages?.length) {\n data.type = 'sub';\n data.children = section.pages.map(page => {\n return {\n code: page.code,\n name: page.name,\n type: 'link',\n path: this.constants.getSectionsRoute() + page.code,\n // path: this.constants.getSectionsRoute() + page.slug,\n }\n });\n data.title = section.name;\n data.name = section.name;\n data.path = this.constants.getSectionsRoute() + section.code;\n data.code = section.code;\n } else {\n data.code = section.code;\n data.title = section.name;\n data.type = 'link';\n data.children = [];\n data.path = this.constants.getSectionsRoute() + section.code;\n }\n return data;\n }\n\n public getSectionContentByLink = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n catchError(e => of(false))\n );\n\n public getSectionContentByLinkAsPromise = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n ).toPromise().catch(e => null);\n\n public getFAQ = () => {\n return this.connection.get(this.faqsApi()).pipe(map(response => {\n let result: FAQ[] = [];\n response.forEach(response_faq => {\n let faqs: FAQ = {\n code: response_faq.code,\n position: response_faq.position,\n title: response_faq.translations[this.constants.getLocale()].topic,\n questions: response_faq.frequentlyAskedQuestions.map(asked_question => ({\n code: asked_question.code,\n position: asked_question.position,\n question: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].question : '',\n answer: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].answer : '',\n }))\n };\n result.push(faqs);\n })\n return result;\n }));\n }\n\n private optionLoaded(key) {\n const allReady = (options) => Object.keys(options).every(option_key => state.options[option_key]);\n let state = this.readySubject.value;\n state.options[key] = true;\n this.readySubject.next({ options: state.options, readyAll: allReady(state.options) })\n }\n\n private isSubElement = (array, code) => {\n let element = array.find(element => element.code == code);\n return (element && element.code) || (array.children && this.isSubElement(array.chidren, code));\n }\n\n private findCode = (slug, elements) => {\n let element = elements.find(elem => elem.slug == slug);\n if (element) return element.code;\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n element = this.findCode(slug, elem.children);\n }\n return element || false;\n });\n return element;\n }\n\n getCodeBySlug = (slug) => {\n let code = this.findCode(slug, this.generateMenu(this.categoriesSubject.value));\n if (!code) code = this.findCode(slug, this.generateMenu(this.attributesSubject.value));\n return code || slug;\n }\n\n getHigher = (code) => {\n let higher_code;\n higher_code = this.data.find(element => !(element.code == code) && !this.isSubElement(element.children, code)).code;\n return higher_code || 'default';\n }\n\n /**\n * @private\n * APIS\n */\n\n private cmsBase = () => 'cms/' + this.constants.getLocale();\n private cmsChannel = () => 'cms/' + this.constants.getChannel();\n private shopApi = () => 'shop-api/' + this.constants.getChannel();\n\n private faqsApi = () => 'cms/' + this.constants.getChannel() + '/faq';\n // private sectionsApi = () => this.cmsBase() + '/sections/';\n private sectionsApi = () => this.cmsChannel() + '/sections/' + '?locale=' + this.constants.getLocale();\n private sectionByCodeApi = (code) => this.cmsBase() + '/pages/' + code;\n // private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private taxonsApi = () => this.shopApi() + '/taxons/' + '?locale=' + this.constants.getLocale();\n private attributesApi = () => this.shopApi() + '/attributes-list' + '?locale=' + this.constants.getLocale();\n\n /**\n * @public\n * UTILS\n */\n\n addAttributesSlug = (attributes) => attributes.map(\n attribute => { return { ...attribute, children: attribute.children.map(child => { return { ...child, slug: this.slugify(child.name) } }) } }\n );\n\n slugify = (text: string) => this.removeAccents(text.toLowerCase().replace(/ & /g, ' ').replace(/ /g, '-').replace(/\\//g, '-').replace(/ñ/g, 'n'));\n\n generateMenu = (elements) => {\n return elements.map(subelement => {\n let result;\n (subelement.children && subelement.children.length == 0) ? result = {\n ...subelement,\n title: subelement.name,\n path: subelement.path,\n type: 'link',\n }\n : result = {\n ...subelement,\n title: subelement.name,\n type: 'sub',\n path: subelement.path,\n children: (subelement.children ? this.generateMenu(subelement.children) : [])\n };\n return result;\n });\n }\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n\n getBreadcrumb = (code) => {\n if (!code) return null;\n let breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.categoriesSubject.value), []);\n if (!breadcrumb || !breadcrumb.length) breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.attributesSubject.value), []);\n return (breadcrumb && breadcrumb.length) && breadcrumb.reverse();\n }\n\n getBreadcrumbByFilters = (filters: Filter[]) => {\n let final_result = [];\n filters.forEach(filter => {\n let result = filter.getSelectedList();\n if (!result || !result.length) return;\n\n if (filter.type() == 'category') final_result.unshift(...this.generateBreadcrumb(result[0], filter.data, []).reverse());\n else result.forEach(\n code => {\n let breadcrumb = this.generateBreadcrumb(code, filter.data, [])\n breadcrumb.length && final_result.push(breadcrumb[0]);\n }\n );\n });\n\n return final_result;\n }\n\n private generateBreadcrumb = (code, elements, result) => {\n let element = elements.find(elem => elem.code == code);\n if (element) {\n result.push(element);\n }\n else {\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n const length = result.length;\n let new_result = this.generateBreadcrumb(code, elem.children, result);\n if (new_result.length > length) {\n result = new_result;\n result.push(elem);\n return true;\n }\n }\n return false;\n })\n }\n return result;\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { OptionsService } from \"../../services/options.service\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class AttributesFilter extends Filter {\n\n data: FilterElement[] = [];\n raw_data;\n multi = false;\n\n constructor(private attributes$: Observable<any>, formatter, initial_value?) {\n super();\n this.attributes$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n setContent = (attributes, original?, initial_value?) => {\n attributes.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = attributes;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n type = (): FilterType => 'attributes';\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&attributeCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&attributeCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&attributeCodes=', '');\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class DynamicsFilter extends Filter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = true;\n\n type = (): FilterType => 'dynamics';\n\n setContent = (options) => {\n options = options.map(option => option = this.createElement(option));\n this.data = options;\n }\n\n createElement = (option) => {\n option = {\n title: option.label, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map(value => {\n return {\n title: value.code,\n description: value.name,\n code: (option.code + ' ' + value.name),\n type: 'child',\n value: value.code,\n selected: false\n }\n })\n }\n return option;\n }\n\n holi = () => {\n\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&optionCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&optionCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&optionCodes=', '');\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class SortFilter extends Filter {\n\n data : FilterElement[] = [];\n multi = true;\n\n constructor() {\n super();\n this.setContent();\n }\n\n type = () : FilterType => 'sort';\n\n setContent = () => {\n this.data = [\n {\n title: 'price', type: 'sub', multi: false, code: 'price' ,shape: 'text', children: [\n { title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false },\n { title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false }\n ]\n },\n {\n title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [\n { title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false },\n { title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false }\n ]\n }\n ]\n }\n\n getContent = () : FilterElement[] => this.data;\n \n toUrlParams = (actual_url = '', sublist?, father?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub') {\n const result = this.toUrlParams(actual_url, element.children, element.title);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if(element.selected) {\n actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);\n }\n })\n return actual_url;\n };\n\n // UTILS\n\n translate = (value) => {\n switch(value) {\n case 'price': return 'price';\n case 'created-date': return 'createdAt';\n case 'alphabetical-order': return 'name';\n }\n }\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscriber } from 'rxjs';\r\nimport 'rxjs/add/operator/map';\r\nimport { ConnectionService } from '../../api/connection.service';\r\nimport { Constants } from '../../core.consts';\r\nimport { Product } from '../../interfaces/product';\r\nimport { FilterOptionValue, FilterOption } from '../../interfaces/choose-options/filter-option';\r\nimport { FilterType, FilterElement, DefaultFilter } from '../../interfaces/filter';\r\nimport { PaginationService } from '../pagination.service';\r\nimport { CategoryFilter } from '../../classes/filters/CategoryFilter';\r\nimport { OptionsService } from '../options.service';\r\nimport { AttributesFilter } from '../../classes/filters/AttributesFilter';\r\nimport { DynamicsFilter } from '../../classes/filters/DinamycsFilter';\r\nimport { SortFilter } from '../../classes/filters/SortFilter';\r\nimport { Filter } from '../../classes/filters/Filter';\r\nimport 'rxjs/add/operator/catch';\r\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\r\n\r\n\r\n// Get product from Localstorage\r\nlet products : any = {};\r\ntype order_type = 'asc' | 'desc';\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n\r\n /** ATTRIBUTES */\r\n private subscription;\r\n private productsSubject: BehaviorSubject<Product[]> = new BehaviorSubject([]);\r\n private filtersSubject: BehaviorSubject<Filter[]> = new BehaviorSubject([]);\r\n\r\n public currency = 'USD';\r\n public catalogMode: boolean = false;\r\n public products$ = this.productsSubject.asObservable();\r\n public filters$ = this.filtersSubject.asObservable();\r\n\r\n\r\n private search_value :String;\r\n\r\n /** APIS */\r\n\r\n latestProductsByCategoryApi = (category) => 'shop-api/' + this.constants.getChannel() + '/taxon-products/by-code/' + category;\r\n latestProductsApi = () => 'shop-api/' + this.constants.getChannel() + '/product-latest/';\r\n specificProductApi = (code, variant) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/' + (variant ? 'variant/' : '') + code + '?locale=' + this.constants.getLocale();\r\n productsBySpecialMarkApi = (specialmark) => 'shop-api/' + this.constants.getVersion() + '/' + this.constants.getChannel() + '/special-marks/' + specialmark + '/products/';\r\n relatedProductsApi = (key) => 'shop-api/' + this.constants.getChannel() + '/products/related/by-code/' + key + '?locale=' + this.constants.getLocale();\r\n productVariantApi = (code) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/variant/' + code;\r\n latestProductsByAttributeApi = (attribute) => 'shop-api/' + this.constants.getChannel() + '/products/by-attribute/' + attribute;\r\n productSearchApi = () => 'shop-api/' + this.constants.getChannel() + '/product-search/';\r\n cmsRelatedProductsApi = (page) => 'cms/' + this.constants.getLocale() + '/' + this.constants.getChannel() + '/page/' + page + '/product-related';\r\n productsFilterApi = (filters = '') => 'shop-api/' + this.constants.getChannel() + '/product-search/' + '?locale=' + this.constants.getLocale() + filters;\r\n\r\n constructor(private connection: ConnectionService, private constants: Constants, private pagination: PaginationService, private options: OptionsService) { }\r\n\r\n /** FUNCTIONS */\r\n\r\n getLatestProducts = (limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsApi()) :\r\n this.connection.getWithLimit(this.latestProductsApi(), limit);\r\n\r\n getLatestProductsByCategory = (category: string, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsByCategoryApi(category)) :\r\n this.connection.getWithLimit(this.latestProductsByCategoryApi(category), limit);\r\n\r\n getPaginated = (limit: string, page: string): Observable<any> =>\r\n this.connection.getPaginated(this.latestProductsApi(), limit, page);\r\n\r\n getSpecificProduct = (code: string, variant: boolean): Observable<any> =>\r\n this.connection.get(this.specificProductApi(code, variant));\r\n\r\n getProductsBySpecialMark = (specialmark, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.productsBySpecialMarkApi(specialmark)) :\r\n this.connection.getWithLimit(this.productsBySpecialMarkApi(specialmark), limit);\r\n\r\n getRelatedProducts = (key: string): Observable<any> =>\r\n this.connection.get(this.relatedProductsApi(key));\r\n\r\n getProductVariant = (code: string) =>\r\n this.connection.get(this.productVariantApi(code));\r\n\r\n getlatestProductsByAttribute = (attribute) =>\r\n this.connection.get(this.latestProductsByAttributeApi(attribute));\r\n\r\n getSearchedProducts = (content) => {\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.generateFinalApi(content), products?.limit || 8);\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n }\r\n\r\n getCMSRelatedProducts = (page) =>\r\n this.connection.get(this.cmsRelatedProductsApi(page)).catch((err) => of(null));\r\n\r\n getProductsSearched = (search_value, filters?: FilterType[]) => {\r\n this.getProductsForFilter(null, filters, search_value);\r\n }\r\n\r\n /**\r\n * @param products \r\n * @param filters \r\n * @param search_value \r\n * @param defaultFilters \r\n */\r\n getProductsForFilter = (products?: { type?: string, value?: string, limit?: number, latest?: boolean }, filters?: FilterType[], search_value?, defaultFilters?: DefaultFilter[]) => {\r\n this.productsSubject.next([]);\r\n search_value ? this.search_value = search_value : this.search_value = ''; \r\n filters && this.setFilters(products, filters, defaultFilters);\r\n this.pagination.initialize(this.generateFinalApi(search_value), products?.limit || 8);\r\n this.subscription && this.subscription.unsubscribe();\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n this.filtersSubject.value.some(filter => filter.type() == 'dynamics')\r\n ? this.pagination.getNext(this.updateDynamicFilters)\r\n : this.pagination.getNext();\r\n }\r\n\r\n setFilters = (products, filters: FilterType[], defaultFilters?: DefaultFilter[]) => {\r\n let final_filters: Filter[] = [];\r\n if (filters?.includes('all')) filters = ['attributes', 'category', 'dynamics', 'sort'];\r\n filters?.forEach(filter => final_filters.push(this.getFilterInstance(filter, products)));\r\n defaultFilters?.forEach(filterDefault => {\r\n let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);\r\n filter && filterDefault.codes.forEach(value => filter.setSelected(value));\r\n })\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getFilterInstance = (filter: string, products): Filter => {\r\n let instance: Filter;\r\n switch (filter) {\r\n case 'category': instance = new CategoryFilter(this.options.categories, this.options.generateMenu, (products.type == 'categories' && products.value)); break;\r\n case 'attributes': instance = new AttributesFilter(this.options.attributes, this.options.generateMenu, (products.type == 'attributes' && products.value)); break;\r\n case 'sort': instance = new SortFilter(); break;\r\n case 'dynamics': instance = new DynamicsFilter(); break;\r\n }\r\n return instance;\r\n }\r\n\r\n updateDynamicFilters = (request) => {\r\n if (!request.options) return;\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == 'dynamics');\r\n index && final_filters[index].setContent(request.options);\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getNext = (): boolean => !this.pagination.isFinished() && this.pagination.getNext();\r\n\r\n setFilterSelected = (filterObj: Filter, filterElem: FilterElement) => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == filterObj.type());\r\n final_filters[index].setSelected(filterElem, filterElem.value);\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n updateProductsForFilter = () => {\r\n this.pagination.waiting = true;\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.search_value ? this.generateFinalApi(this.search_value) : this.generateFinalApi() );\r\n this.pagination.getNext();\r\n // SI SE ACTUALIZARAN LOS FILTROS DINAMICOS EN EL FUTURO\r\n // let filtersObj = this.filtersSubject.value;\r\n // filtersObj.some(filter => filter.type() == 'dynamics') \r\n // ? this.pagination.getNext(this.updateDynamicFilters) \r\n // : this.pagination.getNext();\r\n }\r\n\r\n /**\r\n * \r\n * @param products Array. Lista de productos.\r\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\r\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\r\n * @returns arreglo con los productos desdoblados por la opción solicitada. \r\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \r\n * \r\n * @description Recibe una lista de productos y retorna los mismos productos tantas veces como variantes tenga. \r\n * cada producto retornado tendrá una única variante.\r\n */\r\n getProductsWithUniqueVariant = (products, withOption: ParamsProductsWithUniqueVariant = { type: 'color' , code: 'color' , defaultFirstOption:false , checkIfStock:true }) => {\r\n\r\n !withOption['code'] && withOption['type'] && (withOption['code'] = withOption['type']) || !withOption['code'] && (withOption['code'] = 'color')\r\n !withOption['type'] && withOption['code'] && (withOption['type'] = withOption['code']) || !withOption['type'] && (withOption['type'] = 'color')\r\n !withOption.hasOwnProperty('defaultFirstOption') && (withOption['defaultFirstOption'] = false)\r\n !withOption.hasOwnProperty('checkIfStock') && (withOption['checkIfStock'] = true)\r\n\r\n let productsUniqueVariant = [];\r\n products.forEach(product => {\r\n let variants = [...product?.variants];\r\n let option = product.options.find(opt => opt.type.toLowerCase() === withOption.type.toLowerCase());\r\n \r\n if (option) {\r\n option.values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type.toLowerCase() == withOption.type.toLowerCase()).values = [{ code: optionValue.code, name: optionValue.name}];\r\n //busco una variante con ese code para asignarle la lista de imagenes\r\n let variantAux = variants.find(\r\n variant => ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(withOption.code.toLowerCase()) || op.hasOwnProperty(withOption.code.toUpperCase())) \r\n && (op[withOption.code.toLowerCase()] || op[withOption.code.toUpperCase()]) === optionValue.code)\r\n \r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n if (withOption.defaultFirstOption && product.options?.length) {\r\n let firstOptions = product.options[0]\r\n product.options[0].values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type == firstOptions.type).values = [{ code: firstOptions.code, name: firstOptions.name }];\r\n let variantAux = variants.find(\r\n variant => {\r\n return ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(firstOptions.code.toLowerCase()) || op.hasOwnProperty(firstOptions.code.toUpperCase())) \r\n && (op[firstOptions.code.toLowerCase()] || op[firstOptions.code.toUpperCase()]) === optionValue.code)\r\n }\r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n productsUniqueVariant.push(product)\r\n }\r\n\r\n }\r\n })\r\n return productsUniqueVariant.length > 0 ? productsUniqueVariant : products;\r\n }\r\n\r\n productWithVariantValues = (product, variant, optionValue) => {\r\n product.picturesdefault = variant.images\r\n product.variant_id = variant.code; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.stock = variant.stock || 0; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.currentOption = {\r\n ...optionValue,\r\n productCode: product.id,\r\n variantCode: variant.code,\r\n stock: variant.stock || 0,\r\n finalPrice: variant.saleprice || variant.price || 0,\r\n }\r\n return product\r\n }\r\n\r\n\r\n cleanAllFilters = () => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n final_filters.forEach(filter => filter.reset());\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n /** UTILS AND FILTERING */\r\n\r\n isWaiting = () => this.pagination.waiting;\r\n isFinished = () => this.pagination.isFinished();\r\n\r\n generateFinalApi = (search_value?) => {\r\n let extra_params = '';\r\n this.filtersSubject.value.forEach(filter => {\r\n const extra = filter.toUrlParams();\r\n extra.split('=')[1] != '' ? extra_params += extra : null;\r\n })\r\n if (search_value) extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);\r\n return this.productsFilterApi(extra_params);\r\n }\r\n\r\n finished = (): Observable<boolean> => this.pagination.finished$;\r\n\r\n getTotal = () => this.pagination.total;\r\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { OptionsService } from './options.service';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class BannerService {\n\n private bannerSubject = new BehaviorSubject<any>({ banners: [], button_route: '' });\n private type;\n private code;\n\n public banner = this.bannerSubject.asObservable();\n\n bannersByTaxonApi = (taxon) => 'api/' + this.constants.getVersion() + '/banners/by-taxon/' + taxon;\n bannersByAttributeApi = (attribute) => 'api/' + this.constants.getVersion() + '/banners/by-attribute/' + attribute;\n\n constructor(private connection: ConnectionService, private constants: Constants, private optionsService: OptionsService) {\n // Get available methods of instance, and update this.methods\n }\n\n getBanner = (type, code) => {\n this.type = type;\n this.code = code;\n if (type && code) {\n if (type == 'taxon' || type == 'categories') {\n this.loadBannersByTaxon(code);\n } else {\n this.loadBannersByAtrribute(code);\n }\n }\n }\n\n getBannersByTaxon(taxon: string): Observable<any> {\n return this.connection.get(this.bannersByTaxonApi(taxon)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(taxon)))\n ));\n }\n\n getBannersByAttribute(attribute): Observable<any> {\n return this.connection.get(this.bannersByAttributeApi(attribute)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(attribute)))\n ));\n }\n\n loadBannersByTaxon(taxon) {\n this.getBannersByTaxon(taxon).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n loadBannersByAtrribute(attribute) {\n this.getBannersByAttribute(attribute).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n private procesateBanners(banners) {\n let final_banners = [];\n banners.forEach(banner => final_banners.push(banner.translations.filter(res => res['locale'] == this.constants.getLocale())[0]));\n let button_route = '/collection/' + (this.type == 'taxon' ? 'categories' : 'attributes') + '/' + this.code;\n this.bannerSubject.next({ banners: final_banners, button_route });\n }\n\n getImage = (banner) => (this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getImageFull = (banner) =>\n this.constants.getUrlBase() + ((this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName);\n\n mobile = () => window.innerWidth < 750;\n\n\n}\n","import { Deserializable } from '../interfaces/deserializable';\n\nexport class User implements Deserializable {\n\n private readonly USER = 'USER';\n public type = 'loguedin';\n public config = {};\n public client_id = 'demo_client';\n public client_secret = 'secret_demo_client';\n public grant_type = 'password';\n public email = '';\n public username = '';\n public password = '';\n public first_name = '';\n public last_name = '';\n public address = { country: '', city: '', state: '', address: '', postcode: '' };\n public birthday = '';\n public gender = '';\n public phone_number = '';\n public suscribed_to_newsletter: boolean = true;\n public document_type? = '';\n public preferred_card? = '';\n public document_number? = '';\n public channels = []\n public customers = []\n public token = '';\n public typeUser? = null;\n\n initilized = res => {\n this.token = res.token\n this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'\n this.username = res.username\n this.email = res.username\n this.channels = res.channels || []\n this.customers = res.customers || []\n }\n\n isWholesaler = () => this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false\n\n isSeller = () => this.typeUser && this.typeUser == 'seller' || false\n\n isRetailCustomer = () => this.typeUser && this.typeUser == 'retail_customer' || false\n\n deserialize(input: any): this {\n return Object.assign(this, input);\n }\n\n jsonify() {\n return {\n client_id: this.client_id,\n client_secret: this.client_secret,\n grant_type: this.grant_type,\n username: this.username,\n email: this.email,\n password: this.password,\n token: this.token,\n typeUser: this.typeUser,\n channels: this.channels,\n customers: this.customers\n }\n }\n\n removePassword() {\n this.password = '';\n }\n\n needsAuth() {\n return this.type == 'loguedin';\n }\n\n toForm = () => {\n return {\n firstName: this.first_name,\n lastName: this.last_name,\n phoneNumber: this.phone_number,\n email: this.email,\n documentType: this.document_type,\n documentNumer: this.document_number,\n street: this.address.address,\n countryCode: this.address.country,\n city: this.address.city,\n provinceName: this.address.state,\n postcode: this.address.postcode\n }\n }\n\n persistInStorage = (key = this.USER) => {\n try {\n const json = this.jsonify()\n const str = JSON.stringify(json)\n localStorage.setItem(key, JSON.stringify(this.jsonify()))\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n loadFromStorage = (key = this.USER) => {\n if (localStorage.getItem(key)) {\n this.deserialize(JSON.parse(localStorage.getItem(key)));\n return true\n }\n return false\n }\n\n removeFromStorage = (key = this.USER) => {\n try {\n localStorage.removeItem(key);\n console.log('usuario removido');\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n public setChannels = (...channels) => this.channels = channels\n\n}","import { StepI, StepState, StepTypeI } from \"../../interfaces/step\";\n\nexport class Step implements StepI {\n\n public name;\n public priority;\n public type: StepTypeI;\n public data;\n public state: StepState = 'pending';\n\n constructor(name, priority) {\n this.name = name;\n this.priority = priority;\n }\n\n doing = () => {\n this.data = null;\n this.state = 'doing';\n };\n\n restart = () => {\n this.data = null;\n this.state = 'pending';\n }\n\n ready = (data) => {\n this.data = data;\n this.state = 'ready';\n }\n\n isPending = () => this.state == 'pending' || this.state == 'doing';\n\n isReady = () => this.state == 'ready' && this.data;\n}","import { Injectable } from '@angular/core';\nimport { CheckoutData, CheckoutDataType } from '../interfaces/checkout-data';\n\n@Injectable()\nexport class OrderUtilityService {\n\n constructor() { }\n\n /**\n * @param cart Objeto carrito o orden, indistintamente, ya que poseen el mismo formato\n * @param forCart Si la solicitud de promociones proviene del carrito, suprime el subtotal y el total\n * @description Devuelve un listado con todas las promociones que posee el carro/orden\n */\n getPromotions = (cart: any, forCart: boolean = false): CheckoutData[] => {\n if (cart.checkoutState && cart.checkoutState == \"completed\") return;\n let new_state: CheckoutData[] = [];\n let subtotal: CheckoutData = { type: 'subtotal', name: 'subtotal', amount: cart.totals.items };\n let total: CheckoutData = { type: 'total', name: 'total', amount: cart.totals.total };\n !forCart && new_state.push(subtotal);\n cart.cartDiscounts.forEach(cartDiscount => {\n cartDiscount.type = this.formatType(cartDiscount.type);\n new_state.push({\n type: cartDiscount.type,\n name: (cartDiscount.type != 'coupon') ? cartDiscount.name : 'coupon',\n amount: this.getAmount(cartDiscount, cart)\n });\n });\n !forCart && new_state.push(total);\n return new_state;\n }\n\n getAmount = (discount, cart): number => {\n if (discount.type != 'shipment') return discount.amount;\n return cart.totals.shipping;\n }\n\n formatType = (type: string): CheckoutDataType => {\n let result;\n switch (type) {\n case 'order_promotion': result = 'discount'; break;\n case 'order_shipping_promotion': result = 'shipment'; break;\n case 'order_coupon_promotion': result = 'coupon'; break;\n case 'order_unit_promotion': result = 'discount'; break;\n }\n !result && (result = type.includes('promotion') || type.includes('discount') ? 'discount' : type )\n return result || type;\n }\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class DopplerService {\n\n private isLoaded = false;\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixelSrc) => {\n this.isLoaded = true\n let scriptInsert = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptInsert, 'type', 'text/javascript');\n this.renderer.setAttribute(scriptInsert, 'async', 'async');\n this.renderer.setAttribute(scriptInsert, 'src', pixelSrc);\n this.renderer.appendChild(this.document.body, scriptInsert);\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { FacebookPixelData } from '../../interfaces/analytics/facebook-pixel/facebook-pixel-model';\n\ndeclare let fbq: Function;\n\n@Injectable()\nexport class FacebookPixelService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_id) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `!function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', ${pixel_id});`;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n this.enabled = true;\n setTimeout(() => this.callEvent('initialize'), 1000);\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && fbq('track', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'initialize': return 'PageView';\n case 'view_item': return 'ViewContent';\n case 'checkout_init': return 'InitiateCheckout';\n case 'payment_info': return 'AddPaymentInfo';\n case 'purchase': return 'Purchase';\n case 'add_to_cart': return 'AddToCart';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'initialize': return data;\n case 'view_item': return this.toViewContent(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n default: return data;\n }\n }\n \n callCustomEvent = (event_name, data: FacebookPixelData = {}) => {\n if (!this.enabled) return;\n fbq('trackCustom', event_name, data);\n }\n \n disable = () => this.enabled = false;\n\n private toViewContent = (data) => {\n let lastProduct = data?.name || 'not-product'\n return {\n content_type: 'product',\n content_name: lastProduct,\n content_ids: [data.variants[0]?.code],\n currency: data.currency || \"USD\",\n value: data.variants[0]?.saleprice || data.variants[0]?.price,\n //product_catalog_id: 'TEST'\n }\n }\n \n private toPurchase = (data) => {\n return { \n currency: data.currency || \"USD\",\n value: data.totals?.total || 0 ,\n content_type: 'product_group',\n contents: this.getContents(data),\n //product_catalog_id: 'TEST'\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n num_items: data.items?.length || 0,\n value: data.totals?.total || 0 ,\n }\n }\n\n private toPaymentInfo = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n }\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]?.product?.name || 'not-product'\n return {\n content_name: lastProduct,\n content_type: 'product',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n //product_catalog_id: 'TEST'\n\n }\n }\n\n private getContents = (data) => {\n return data.items.map(\n item => {\n return {\n id: item.product.variants[0]?.code,\n quantity: item.quantity\n }\n }\n )\n }\n\n private getContentIds = (data) => {\n return data.items.map(\n item => item.product.variants[0]?.code\n )\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { ProductsService } from '../../services/products/products.service';\n\ndeclare var gtag: Function;\ndeclare var dataLayer: any[];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleAnalyticsService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any,\n private router: Router, private productsService: ProductsService) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize(gtm_id: string) {\n const declaration = this.renderer.createElement('script');\n declaration.async = true;\n declaration.src = `https://www.googletagmanager.com/gtag/js?id=${gtm_id}`;\n const initialization = this.renderer.createElement('script');\n initialization.text = `window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '${gtm_id}')`;\n this.renderer.appendChild(this.document.head, initialization);\n this.renderer.appendChild(this.document.head, declaration);\n this.enabled = true;\n setTimeout(() => this.startListeningPageViews(gtm_id), 1000);\n }\n\n private startListeningPageViews = (gtm_id) => {\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n gtag('config', gtm_id, {\n 'page_path': event.urlAfterRedirects\n })\n })\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && gtag('event', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item';\n case 'view_item_list': return 'view_item_list';\n case 'checkout_init': return 'begin_checkout'; \n case 'shipping_info': return 'add_shipping_info';\n case 'add_payment_info': return 'add_payment_info';\n case 'purchase': return 'purchase';\n case 'add_to_cart': return 'add_to_cart';\n case 'remove_from_cart': return 'remove_from_cart';\n case 'sign_up': return 'sign_up';\n default: return null;\n //default: return event_name;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item': return this.toViewItem(data);\n case 'view_item_list': return this.toViewItemList(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'shipping_info': return this.toShippingInfo(data);\n case 'add_payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n case 'remove_from_cart': return this.toRemoveToCart(data);\n case 'sign_up': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n // console.log('toPurchese', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency,\n // shipping: data.totals.shipping,\n // tax: data.totals.taxes,\n // value: data.totals.total,\n // transaction_id: data.number,\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // }))\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n // console.log('toInitcheckout', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency || \"USD\",\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // })),\n // value: data.totals?.total || 0,\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity:lastProduct.quantity,...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n // console.log('addtocart', {\n // data,\n // currency: data.currency || \"USD\",\n // items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n // value: lastProduct.total || 0,\n // });\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n // console.log('view ', {\n // currency: product.currency,\n // items: [this.toItem(product)],\n // value: product.variants[0]?.saleprice || product.variants[0]?.price,\n // });\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n // console.log('toViewItemList ', {\n // items: data.products.map(product => this.toItem(product)),\n // item_list_name: data.item_list_name || 'Collection',\n // item_list_id: data.item_list_id || 'collection'\n // });\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n // console.log('remove_from_cart ', {\n // currency: product.currency || \"USD\",\n // items: [this.toItem({ quantity: product.quantity, ...productParam })],\n // value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n // });\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}","import {Inject, Injectable, Optional} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport {GoogleTagManagerConfig} from '../../interfaces/analytics/gtm-config';\n\n@Injectable({providedIn: 'root'})\nexport class GTMService {\n private isLoaded = false;\n private enabled = false;\n\n\n private config : GoogleTagManagerConfig = { id: null };\n\n private browserGlobals = {\n windowRef(): any {\n return window;\n },\n documentRef(): any {\n return document;\n }\n };\n\n constructor(private router: Router) {}\n\n public getDataLayer(): any[]{\n const window = this.browserGlobals.windowRef();\n window.dataLayer = window.dataLayer || [];\n return window.dataLayer;\n }\n\n private pushOnDataLayer(obj : object): void {\n const dataLayer = this.getDataLayer();\n dataLayer.push(obj);\n }\n\n public addGtmToDom(): Promise < boolean > {\n return new Promise(\n (resolve, reject) => {\n if (this.isLoaded) {\n return resolve(this.isLoaded);\n }\n const doc = this.browserGlobals.documentRef();\n this.pushOnDataLayer({'gtm.start': new Date().getTime(), event: 'gtm.js'});\n\n const gtmScript = doc.createElement('script');\n gtmScript.id = 'GTMscript';\n gtmScript.async = true;\n gtmScript.src = this.applyGtmQueryParams(this.config.gtm_resource_path ? this.config.gtm_resource_path : 'https://www.googletagmanager.com/gtm.js');\n gtmScript.addEventListener('load', () => {\n return resolve(this.isLoaded = true);\n });\n gtmScript.addEventListener('error', () => {\n return reject(false);\n });\n doc.head.insertBefore(gtmScript, doc.head.firstChild);\n }\n );\n }\n\n public initialize = (config : GoogleTagManagerConfig) => {\n this.config = config || this.config;\n this.addGtmToDom().then(() => {\n this.router.events.forEach(item => {\n if (item instanceof NavigationEnd) {\n const gtmTag = {\n event: 'page',\n pageName: item.url\n };\n this.pushTag(gtmTag);\n }\n });\n })\n }\n\n public pushTag(item : object): Promise < void > {\n return new Promise<void>((resolve, reject) => {\n if (!this.isLoaded) {\n this.addGtmToDom().then(() => {\n this.pushOnDataLayer(item);\n return resolve();\n }).catch(() => reject());\n } else {\n this.pushOnDataLayer(item);\n return resolve();\n }\n });\n }\n\n private applyGtmQueryParams(url : string): string {\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n return(url + Object.keys(this.config).filter((k) => this.config[k]).map((k) => `${k}=${\n this.config[k]\n }`).join('&'));\n }\n\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.isLoaded) return;\n let event = this.translateEventName(event_name);\n event && this.pushTag({ 'event': this.translateEventName(event_name), data: this.evalEvent(event_name, data) })\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item_gtm';\n case 'view_item_list': return 'view_item_list_gtm';\n case 'checkout_init': return 'begin_checkout_gtm';\n case 'shipping_info': return 'add_shipping_info_gtm';\n case 'add_payment_info': return 'add_payment_info_gtm';\n case 'purchase': return 'purchase_gtm';\n case 'add_to_cart': return 'add_to_cart_gtm';\n case 'remove_from_cart': return 'remove_from_cart_gtm';\n case 'sign_up': return 'sign_up_gtm';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item_gtm': return this.toViewItem(data);\n case 'view_item_list_gtm': return this.toViewItemList(data);\n case 'checkout_init_gtm': return this.toCheckoutInit(data);\n case 'shipping_info_gtm': return this.toShippingInfo(data);\n case 'add_payment_info_gtm': return this.toPaymentInfo(data);\n case 'purchase_gtm': return this.toPurchase(data);\n case 'add_to_cart_gtm': return this.toAddToCart(data);\n case 'remove_from_cart_gtm': return this.toRemoveToCart(data);\n case 'sign_up_gtm': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n countItems: data.items?.length || 0,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MetricoolPixel } from \"../../interfaces/analytics/metricool-pixel\";\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class MetricoolPixelService {\n private isLoaded = false;\n\n\n\n private renderer: Renderer2;\n\n \n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_hash) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `\n function loadScript(a) {\n var b = document.getElementsByTagName(\"head\")[0], c = document.createElement(\"script\");\n c.type = \"text/javascript\",\n c.src = \"https://tracker.metricool.com/resources/be.js\",\n c.onreadystatechange = a,\n c.onload = a, b.appendChild(c)\n } loadScript(function () {\n beTracker.t({ hash: \"${pixel_hash}\" })\n });\n `;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { DopplerService } from '../utils/analytics/doppler.service';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { GTMService } from '../utils/analytics/gtm.service';\nimport { MetricoolPixelService } from '../utils/analytics/metricool-pixel.service';\n\n@Injectable()\nexport class AnalyticsService {\n\n private services: any[] = [];\n\n constructor(\n private facebookAnalitycs: FacebookPixelService,\n private googleAnalytics: GoogleAnalyticsService,\n private gtmAnalytics: GTMService,\n private metricoolAnalytics:MetricoolPixelService,\n private dopplerAnalytics:DopplerService) {\n this.services.push(this.facebookAnalitycs);\n this.services.push(this.googleAnalytics);\n this.services.push(this.gtmAnalytics);\n }\n\n initializeFacebook = (value) => {\n this.facebookAnalitycs.initialize(value);\n }\n\n initializeGoogle = (value) => {\n this.googleAnalytics.initialize(value);\n }\n\n initializeGTM = (value) => {\n this.gtmAnalytics.initialize({ id: value });\n }\n\n initializeMetricool = (value) => {\n this.metricoolAnalytics.initialize(value);\n }\n\n initializeDoppler = (value) => {\n this.dopplerAnalytics.initialize(value);\n }\n\n callEvent = (event_name: AnalyticEventKey, data: any = {}) => {\n this.services.forEach(service => {\n service.callEvent(event_name, data)\n });\n }\n}","import { Injectable, Injector } from '@angular/core';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AuthService } from '../auth.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandlerService {\n\n private errorSubject = new BehaviorSubject<BodyError>(null);\n public error$ = this.errorSubject.asObservable();\n\n constructor(private cartService: CartService,\n private toastrService: ToastrService,\n private injector: Injector,\n private consts: Constants) { }\n\n outOfStock = (error: BodyError) => {\n this.cartService.updateItemsOnError(error.content, error.code)\n this.otherErrors(error)\n }\n\n channeAccessPermissionDenied = (error: BodyError) => {\n this.injector.get(AuthService).logout()\n this.otherErrors(error)\n }\n\n otherErrors = (error: BodyError) => {\n error && error.message && this.errorSubject.next(error)\n this.toastrService.show(error.message,'', {closeButton:true,timeOut:6000})\n this.clearError()\n }\n\n clearError = () => {\n setTimeout(() => {\n this.errorSubject.next(null)\n }, 3000);\n }\n\n handlerErrorResponse = (error: BodyError) => {\n switch (error.code) {\n case 'out_of_stock': this.outOfStock(error); break;\n case 'items_with_product_or_product_variant_not_enabled': this.outOfStock(error); break;\n case 'channel_access_permission_denied': this.channeAccessPermissionDenied(error); break;\n default: this.otherErrors(error); break;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class ToastService {\n\n constructor(private translation: TranslateService, private toastrService: ToastrService) {}\n\n show = (message, interpolateParams: any = {}, title = '', configToastr: Partial<IndividualConfig> = { }) => {\n this.translation.get(message, interpolateParams).pipe(take(1)).subscribe(\n res => this.toastrService.show((res ? res : message), title, configToastr)\n );\n }\n}","import { Injectable, OnInit } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\nimport { StepI, StepTypeI } from '../../interfaces/step';\nimport { Step } from '../../classes/checkout/step';\nimport { CheckoutData, CheckoutDataType } from '../../interfaces/checkout-data';\nimport { OrderUtilityService } from '../../utils/order-util.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { AuthService } from '../auth.service';\nimport { User } from '../../classes/user';\nimport { ErrorHandlerService } from './error-handler.service';\nimport { filter, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ToastService } from '../../utils/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CheckoutService implements OnInit {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n putAddressApi = () => this.baseApi() + '/address';\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n completeApi = () => this.baseApi() + '/complete';\n persistShipmentApi = () => '';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getHasPurchaseConditions = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/has_purchase_conditions';\n\n private canCheckoutSubject = new ReplaySubject<boolean>();\n private onReadySubject = new BehaviorSubject<boolean>(false);\n\n private stateSubject = new BehaviorSubject<Step[]>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private orderSubject = new BehaviorSubject<any>(null);\n private asociatedDataSubject = new BehaviorSubject<CheckoutData[]>(null);\n private order: any;\n private checkout_data: any = {};\n public total;\n private cartLocal;\n private user: User;\n\n public order$ = this.orderSubject.asObservable();\n public state$ = this.stateSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public canCheckout$ = this.canCheckoutSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n public onReady$ = this.onReadySubject.asObservable();\n\n constructor(private connection: ConnectionService,\n private cartService: CartService,\n private consts: Constants,\n private toastrService: ToastService,\n private orderUtils: OrderUtilityService,\n private analyticsService: AnalyticsService,\n public authService: AuthService,\n private router: Router,\n private checkoutError: ErrorHandlerService) {\n\n combineLatest([this.cartService.cartItems, this.cartService.loading]).subscribe(([items, loading]) => {\n if (!loading && items.length > 0) {\n this.canCheckoutSubject.next(true)\n this.cartService.getTotalAmount().subscribe(res => {\n this.total = res;\n });\n }\n\n })\n this.cartService.cart.subscribe(cart => cart && (this.cartLocal = cart) && this.updateAsociatedData(cart));\n this.order$.subscribe(order => order && this.updateAsociatedData(order))\n this.authService.getUserProfile().subscribe(user => this.user = user)\n this.checkoutError.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.toastrService.show('redirect-cart')\n setTimeout(() => {\n this.router.navigateByUrl('/cart')\n }, 3000);\n }\n )\n }\n\n ngOnInit() {\n }\n\n updateOrder = (order) => order && this.orderSubject.next(order);\n\n getStepData = (step_name: StepTypeI) => {\n let step_result = this.stateSubject.getValue().find(step => step.name == step_name);\n return (step_result && step_result.data);\n }\n\n setSteps = (steps: StepI[], autohandle = true) => {\n let final_steps = [];\n steps.forEach((step, i) => final_steps.push(new Step(step.name, step.priority || (i + 1))));\n this.stateSubject.next(final_steps);\n this.connection.getErrorNotHandler(this.getHasPurchaseConditions()).toPromise().then(\n res => {\n this.analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total })\n }\n )\n }\n\n setStepReady = async (step_number, data, order?) => {\n await this.restartAllStepsFrom(step_number);\n setTimeout(() => {\n let steps = this.stateSubject.getValue();\n steps.find(step => step.priority == step_number).ready(data);\n this.stateSubject.next(steps);\n\n if (order) {\n this.orderSubject.next(order);\n this.total = order.totals.total;\n }\n\n this.isCheckoutReady() &&\n setTimeout(() => {\n this.onReadySubject.next(true);\n }, 500);\n }, 150);\n return true;\n }\n\n setStepDoing = async (step_number) => {\n let steps = this.stateSubject.getValue();\n steps = await this.restartAllStepsFrom(step_number, false, false);\n steps.find(step => step.priority == step_number).doing();\n this.stateSubject.next(steps);\n return true;\n }\n\n restartAllStepsFrom = (step_number, included = true, update = true) => {\n let steps = this.stateSubject.getValue();\n steps = steps.map((step) => {\n included\n ? (step.priority >= step_number) && step.restart()\n : (step.priority > step_number) && step.restart()\n return step;\n })\n update && this.stateSubject.next(steps);\n return steps;\n }\n\n isCheckoutReady = () => {\n let steps = this.stateSubject.value;\n const step_missing = steps.find(step => step.isPending());\n return !step_missing;\n }\n\n isStepReady = (step_name) => {\n return this.stateSubject.getValue().find(step => step.name == step_name).isReady()\n };\n\n setOrder = (order) => { this.order = order, this.orderSubject.next(order) };\n getOrder = () => this.order || this.orderSubject.value;\n\n private completeOrder = () => this.connection.put(this.completeApi(), { email: this.checkout_data.email, notes: this.checkout_data.notes || '' }).toPromise();\n\n complete = async () => {\n this.loadingSubject.next(true);\n let result = await this.completeOrder();\n if (result && result.error) {\n this.cartService.changeHaveToUpdate(false);\n this.loadingSubject.next(false);\n return ({ ok: false, require_login: true, message: 'not-completed' });\n }\n this.setOrder(result);\n this.analyticsService.callEvent('purchase', { ...result, currency: result.currency, value: result.total });\n this.cartService.clearAndResetCart();\n this.canCheckoutSubject.next(false);\n this.onReadySubject.next(false);\n this.loadingSubject.next(false);\n return ({ ok: true, require_login: false, message: '' });\n }\n\n updateAsociatedData = (cart: any) => {\n let result = this.orderUtils.getPromotions(cart);\n if (this.authService.getUserProfileAsUser()?.isWholesaler() && cart.totals.taxes != 0) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'taxes',\n name: 'taxes',\n amount: cart.totals.taxes\n }\n result.push(total);\n }\n let shipment = result?.find(promotion => promotion.type == \"shipment\");\n if (!shipment && cart.totals.shipping != 0) {\n\n if (result?.length && !result.find(item => item.type === \"shipment\")) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'shipment',\n name: 'shipment',\n amount: cart.totals.shipping\n }\n result.push(total);\n }\n }\n this.asociatedDataSubject.next(result);\n }\n\n restartCheckout = () => { }\n\n}","import { BodyError } from \"../../interfaces/checkout/checkout-error\";\nimport { CheckoutService } from \"../../services/checkout/checkout.service\";\n\nexport class StepService {\n\n public step_id;\n\n constructor(private checkout: CheckoutService) { }\n\n /** Persistir el id del paso para luego indicarle al CheckoutService quien le habla */\n initialize = (step_id) => {\n this.step_id = step_id;\n }\n\n /** Reinicia información en CheckoutService del paso */\n restartStep = () => this.checkout.setStepDoing(this.step_id);\n\n /**\n * Obtener información obtenida en el paso de datos asociados al usuario y a la facturación\n */\n getUserData = () => this.checkout.getStepData('address');\n\n /**\n * Obtener información obtenida en el paso de envío\n */\n getShipmentData = () => this.checkout.getStepData('shipment');\n\n /**\n * Obtener información obtenida en el paso de pago\n */\n getPaymentData = () => this.checkout.getStepData('payment');\n\n /**\n * \n * @param step_data Información obtenida en el paso\n * @param order Información de la orden que devolvió el backend al terminar el paso\n */\n setStepReady = async (step_data, order) => (await this.restartStep()) && this.checkout.setStepReady(this.step_id, step_data, order);\n\n /**\n * \n */\n //setError = (error: BodyError) => error && this.checkout.handleError(error);\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { Validators } from '@angular/forms';\n\ntype typeForms = 'EUR' | 'ARG';\ntype typeSelectAddres = 'ONLY_LOAD_ADDRESS' | 'ONLY_ADDRESS_SELECTION' | 'LOAD_ADDRESS_AND_SELECTION';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AddressingService extends StepService {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n countriesApi = () => 'shop-api/' + this.consts.getChannel() + '/countries';\n zonesApi = () => 'shop-api/' + this.consts.getChannel() + '/zones';\n provincesApi = () => 'shop-api/' + this.consts.getChannel() + '/provinces';\n putAddressApi = () => this.baseApi() + '/address';\n addressBookApi = () => 'shop-api/' + this.consts.getChannel() + '/address-book';\n headquarterApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() +'/headquarter';\n\n public typeForms: typeForms = 'ARG';\n public modeSelectAddress: typeSelectAddres = 'ONLY_LOAD_ADDRESS';\n public countriesList = [];\n public documentTypes = [];\n public provinceList = [];\n\n constructor(private connection: ConnectionService, private consts: Constants, private cartService: CartService, private checkoutService: CheckoutService,\n private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getAddressingData().then(res => {\n if (res) {\n this.documentTypes = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.documentTypes || []\n this.provinceList = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.provinces || []\n this.countriesList = res\n }\n })\n }\n\n ngOnInit() {\n\n }\n\n getAddressingData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res?._embedded?.items)).toPromise();\n\n getAddressBook = async () =>\n this.connection.get(this.addressBookApi()).pipe(map(res => res?.length && res.map(addres => { return addres && { ...addres, selected: addres.default } }) || null )).toPromise();\n \n setHeadquarter = (sede: any) => {\n return this.connection.put(this.headquarterApi(), sede.selected)\n .pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(sede, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n \n setAddress = (user_data: any) => {\n user_data.locale = this.consts.getLocale();\n return this.connection.put(this.putAddressApi(), user_data).pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(user_data, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n putAddressAndHandle = (user_data, next?, onError?) => {\n user_data.locale = this.consts.getLocale();\n let data = { shippingAddress: { ...user_data.data } };\n this.connection.put(this.putAddressApi(), data).toPromise().then(\n res => {\n this.setStepReady(user_data, res);\n this.analyticsService.callEvent('payment_info', res);\n next && next();\n },\n err => onError && onError(err)\n )\n }\n\n getTypeForm = () => {\n let formsTypeCofig = [\n {\n code: 'EUR',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n terms: [null, Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: false, values: this.documentTypes },\n documentNumber: { enabled: true, required: false, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: true, required: true, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n },\n {\n code: 'ARG',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: true, values: this.documentTypes},\n documentNumber: { enabled: true, required: true, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: false, required: false, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n }\n ]\n return formsTypeCofig.find(ct => ct.code == this.typeForms);\n }\n\n setTypeSelectAddres = (type: typeSelectAddres) => {\n console.log(\"Setting type: \", type)\n this.modeSelectAddress = type && type || 'ONLY_LOAD_ADDRESS'\n\n }\n\n setTypeForms = (type: typeForms) => {\n this.typeForms = type && type || 'ARG' \n }\n}","\nimport { Injectable, Inject, Injector } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from '../api/connection.service';\nimport { AddressingService } from './checkout/addressing.service';\nimport { Constants } from '../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChannelConfigService {\n\n constructor(private consts: Constants, @Inject('env') private env, private connection: ConnectionService, private injector: Injector) {\n this.getChannelConfig()\n this.getChannels()\n this.getLocales()\n }\n\n private channelConfigApi = () => 'shop-api/' + this.consts.getChannel() + '/channel'\n private localesApi = () => 'shop-api/' + this.consts.getChannel() + '/locales'\n private channelsApi = () => 'shop-api/channels'\n\n private channelConfigSubject = new ReplaySubject<any>()\n public channelConfig$ = this.channelConfigSubject.asObservable()\n\n private channelsSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public channels = this.channelsSubject.asObservable()\n\n private localesSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public locales = this.localesSubject.asObservable()\n\n public getChannelConfig = () => {\n this.connection.get(this.channelConfigApi()).toPromise().then(\n res => { this.channelConfigSubject.next(res), res && this.consts.setChannel(res.code) },\n err => this.channelConfigSubject.next({})\n ).catch(err => this.channelConfigSubject.next(null))\n }\n\n public getChannels = () => {\n this.connection.get(this.channelsApi()).toPromise()\n .then(res => this.channelsSubject.next(res))\n .catch(err => this.channelsSubject.next([]))\n }\n\n public getLocales = () => {\n this.connection.get(this.localesApi()).toPromise()\n .then(res => this.localesSubject.next(res.items))\n .catch(err => this.localesSubject.next([]))\n }\n\n public changeChannel = channelObj => {\n console.log(\"Channel: \", channelObj)\n this.consts.modifyChannelConfig({\n channel: channelObj.code,\n locale: channelObj.defaultLocale.code\n /* channeltype: channelObj.type */\n /* currency: channelObj.baseCurrency */\n })\n this.injector.get(AddressingService).setTypeSelectAddres(channelObj.headquarterSelectionOnly || null)\n }\n\n}\n\n","import { Injectable, Injector } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { User } from '../classes/user';\nimport 'rxjs/add/observable/of';\nimport { ToastrService } from 'ngx-toastr';\nimport { Constants } from '../core.consts';\nimport { map, mapTo, catchError, tap } from 'rxjs/operators';\nimport * as moment from \"moment\";\nimport { ChannelConfigService } from './channel-config.service';\nimport { take } from 'rxjs-compat/operator/take';\nimport { CartService } from './cart.service';\nimport { Router } from '@angular/router';\nimport { UserRoleType } from '../classes/user-role-type';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private readonly JWT_TOKEN = 'JWT_TOKEN'\n private readonly REFRESH_TOKEN = 'REFRESH_TOKEN'\n private readonly EXPIRATES_IN = 'EXPIRATES_IN'\n private readonly USER = 'USER'\n private readonly MAIL = 'mail'\n private readonly LOCALE = 'LOCALE'\n private readonly CHANNEL = 'CHANNEL'\n private readonly CUSTOMER = 'CUSTOMER'\n\n /* activeChannelSwitch? */\n private activeChannelChange: boolean = false\n private loggedInSubject = new BehaviorSubject<any>(false)\n private loggingInSubject = new BehaviorSubject<any>(false)\n private userInSubject = new BehaviorSubject<User>(null)\n private channelsUserSubject = new BehaviorSubject<any[]>([])\n /* private customerSubject = new BehaviorSubject<any>(null) */\n private user: User = null\n\n // APIS\n public tokenApi = () => 'shop-api/login_check';\n public registerApi = () => 'shop-api/' + this.constants.getChannel() + '/register';\n public registerWholesalerApi = () => 'shop-api/' + this.constants.getChannel() + '/register-wholesaler';\n public confirmAccountApi = (token) => 'shop-api/' + this.constants.getChannel() + '/verify-account?token=' + token;\n public resetPasswordApi = (token) => 'shop-api/' + this.constants.getChannel() + '/password-reset/' + token;\n public recoverPasswordApi = () => 'shop-api/' + this.constants.getChannel() + '/request-password-reset';\n public countriesApi = () => 'shop-api/' + this.constants.getChannel() + '/countries';\n\n // Atributos utiles\n public waiting = false;\n public loggedIn = this.loggedInSubject.asObservable()\n public loggingIn = this.loggingInSubject.asObservable()\n public userAuth = this.userInSubject.asObservable()\n public channelsUser = this.channelsUserSubject.asObservable()\n /* private customer = this.channelsUserSubject.asObservable() */\n private customer = null\n public channel = null\n public channels = []\n private homeResolver = null\n\n constructor(private connection: ConnectionService,\n private toastrService: ToastrService,\n private constants: Constants,\n private injector: Injector\n ) {\n this.isAuthenticated() && this.loggedInSubject.next(true)\n }\n\n /**\n * @desc Devuelve un observable\n * @param user Objeto que contiene username y password \n */\n login(user: { username: string, password: string }, withRoles: UserRoleType[] = []): Observable<any> {\n this.injector.get(ChannelConfigService).channelConfig$.subscribe(ch => this.channel = ch)\n this.injector.get(ChannelConfigService).channels.subscribe(ch => this.channels = ch)\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n let result = this.connection.post(this.tokenApi(), user).pipe(\n map(res => {\n if (this.channelAccessPermission({ ...user, ...res }) && this.isAllowedRole(withRoles, res.type)) {\n this.doLoginUser({ ...user, ...res })\n return 'ok'\n }\n return 'error'\n }),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n );\n return result\n }\n\n channelAccessPermission = (res) => {\n this.channelsUserSubject.next([])\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n /* if (UserRoleType.SELLER == res.type as UserRoleType) return true */\n\n /* No authorized channels */\n if (res.channels?.length == 0) {\n return false\n }\n /* Some authorized channel(s) including current channel */\n if (res.channels.find(userchannel => userchannel.code === this.channel.code)) {\n /* Multiple authorized channels including current channel */\n if (res.channels?.length > 1 && this.activeChannelChange)\n this.channelsUserSubject.next(res.channels)\n return true\n }\n /* One authorized channel not including current channel */\n if (res.channels?.length == 1 && this.activeChannelChange) {\n delete res.password\n this.channelAccess(res.channels[0], res)\n return true\n }\n /* Multiple authorized channels not including current channel */\n if (this.activeChannelChange) {\n this.channelsUserSubject.next(res.channels)\n return true\n }\n return false\n }\n\n channelAccess = (channel, user = null) => {\n if (window.location.hostname != channel.hostname) {\n let encoded = btoa(JSON.stringify(user != null ? user : this.user))\n window.location.replace(`${window.location.protocol}//${channel.hostname}/auth/redirect/${encoded}`)\n } else {\n this.constants.modifyChannelConfig(channel)\n window.location.reload()\n }\n }\n\n /**\n * @desc Devuelve una promesa\n * @param user Objeto que contiene username y password \n */\n doLogin = (user: { username: string, password: string }) => {\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n return this.connection.post(this.tokenApi(), user).pipe(\n map(res => this.doLoginUser(res)),\n mapTo('ok'),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n ).toPromise();\n }\n\n getUserProfile(): Observable<User> {\n return (this.user && Observable.of(this.user)) || this.getCurrentUser();\n }\n\n getUserProfileAsUser(): User {\n return this.user || this.getCurrentUserAsUser();\n }\n\n private getCurrentUserAsUser(): User {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n else if (this.user?.channels.find(userchannel => userchannel?.code === this.constants.getChannel())) {\n // this.user.channels?.length > 1 && this.channelsUserSubject.next(this.user.channels)\n return this.user;\n } else {\n this.logout()\n //window.location.reload()\n }\n return this.user;\n }\n\n private getCurrentUser(): Observable<User> {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n return Observable.of(this.user);\n }\n\n // private getCurrentUser(): Observable<User> {\n // return this.connection.get('getProfile').map(res => {\n // const user = new User();\n // this.user = user.deserialize(res.data);\n // return user;\n // });\n // }\n\n signUp = (data) => this.connection.post(this.registerApi(), data);\n\n isAuthenticated(): boolean {\n if (this.isTokenExpired()) {\n this.doLogoutUser()\n }\n this.getCurrentUserAsUser()\n this.userInSubject.next(this.user);\n return this.getToken() && !this.isTokenExpired() && this.user != null;\n }\n\n confirmAccount = (token: string) =>\n this.connection.get(this.confirmAccountApi(token));\n\n passwordReset = (new_password, token) => {\n const data = { password: { first: new_password, second: new_password } };\n return this.connection.put(this.resetPasswordApi(token), data);\n }\n\n recoverPassword = (email: string) =>\n this.connection.put(this.recoverPasswordApi(), { email });\n\n /* TOKEN */\n\n logout() {\n this.doLogoutUser();\n }\n\n refreshToken() {\n let data = { ...this.constants.loginExtraData(), refresh_token: this.getRefreshToken() }\n return this.connection.post(this.tokenApi(), data).pipe(map(\n res => this.doLoginUser(res)\n ))\n }\n\n getToken() {\n return localStorage.getItem(this.JWT_TOKEN);\n }\n\n isTokenExpired = () => {\n const fecha_expiracion = this.getExpiratesAt();\n const result = moment() >= moment(fecha_expiracion);\n return result;\n }\n\n getExpiratesAt = () => localStorage.getItem(this.EXPIRATES_IN);\n\n public doLoginUser(tokens) {\n this.user = new User()\n this.user.initilized(tokens)\n this.forceChannelsForSeller(tokens)\n this.user.persistInStorage()\n // localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'days').format());\n // localStorage.setItem(this.REFRESH_TOKEN, tokens.refresh_token);\n localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.REFRESH_TOKEN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.JWT_TOKEN, tokens.token);\n localStorage.setItem(this.MAIL, tokens.username);\n this.userInSubject.next(this.user);\n this.loggedInSubject.next(true);\n this.loggingInSubject.next(false);\n }\n\n public doLogoutUser() {\n this.user = null\n localStorage.removeItem(this.USER);\n localStorage.removeItem(this.EXPIRATES_IN);\n localStorage.removeItem(this.JWT_TOKEN);\n localStorage.removeItem(this.REFRESH_TOKEN);\n localStorage.removeItem('cart_token');\n localStorage.removeItem(this.MAIL);\n localStorage.removeItem(this.CHANNEL);\n localStorage.removeItem(this.LOCALE);\n localStorage.removeItem(this.CUSTOMER);\n localStorage.removeItem('MASTER_CHANNEL');\n this.loggedInSubject.next(false);\n this.userInSubject.next(this.user);\n this.channelsUserSubject.next([])\n }\n\n private getRefreshToken() {\n return localStorage.getItem(this.REFRESH_TOKEN);\n }\n\n hasToRefresh = () => this.getRefreshToken();\n\n signUpWholesaler = (data) => this.connection.post(this.registerWholesalerApi(), data);\n\n getCountriesData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res._embedded.items)).toPromise();\n\n public setActiveChannelChange = (activelyChangeChannelsOnLogin: boolean) => this.activeChannelChange = activelyChangeChannelsOnLogin\n\n private isAllowedRole = (allowedRoles: UserRoleType[], role: string) => {\n return allowedRoles.length\n ? allowedRoles.includes(role as UserRoleType)\n : true\n }\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n private forceChannelsForSeller = tokens => {\n if (UserRoleType.SELLER == tokens.type as UserRoleType)\n this.channels?.length\n ? this.user.setChannels(...this.channels)\n : this.user.setChannels(this.channel)\n }\n\n public setCustomer = customer => {\n /* this.customerSubject.next(customer) */\n this.customer = customer\n localStorage.setItem(this.CUSTOMER, JSON.stringify(customer))\n this.injector.get(CartService).clearAndResetCustomerCart()\n }\n\n /* public getCustomer = () => Observable.of(JSON.parse(localStorage.getItem(this.CUSTOMER))) */\n\n public getCustomer = () => {\n /* this.customerSubject.next(JSON.parse(localStorage.getItem(this.CUSTOMER)))\n return this.customer */\n return this.customer || JSON.parse(localStorage.getItem(this.CUSTOMER))\n }\n\n public setHomeResolver = resolverFunction => this.homeResolver = resolverFunction\n\n public getHomeResolver = () => this.homeResolver\n\n public isAbleToBuy = (): boolean => !this.getUserProfileAsUser()?.isSeller() || !!this.getCustomer()\n\n}","import { Injectable } from '@angular/core';\r\nimport { Product } from '../interfaces/product';\r\nimport { CartItem } from '../interfaces/cart-item';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConnectionService } from '../api/connection.service';\r\nimport { Constants } from '../core.consts';\r\nimport { AuthService } from './auth.service';\r\nimport { ToastService } from '../utils/toast.service';\r\nimport { CouponI } from '../interfaces/coupon';\r\nimport { OrderUtilityService } from '../utils/order-util.service';\r\nimport { CheckoutData } from '../interfaces/checkout-data';\r\nimport { CartAffordable } from '../interfaces/cart/cart-affordable';\r\nimport { ChannelConfigService } from './channel-config.service';\r\nimport { AnalyticsService } from '../../public-api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService {\r\n private cartItemsSubject: BehaviorSubject<CartItem[]> = new BehaviorSubject([]);\r\n private couponSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private cartSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private requestInProcess = new BehaviorSubject(false);\r\n private promotionsSubject: BehaviorSubject<CheckoutData[]> = new BehaviorSubject([]);\r\n\r\n private items = [];\r\n private count: number = 0;\r\n private locale = \"\";\r\n private logged_in = false;\r\n private have_to_update = true;\r\n public channelConfig: any = {};\r\n private cart_baseUrl = 'shop-api/' + this.consts.getChannel() + '/carts';\r\n\r\n public cartItemsApi = () => this.cart_baseUrl;\r\n public addItemApi = () => this.cart_baseUrl + '/' + this.cart_token + '/items';\r\n public addAllItemsApi = () => this.cart_baseUrl + '/' + this.cart_token + '/multiple-items';\r\n public updateItemQuantityApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public deleteItemApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public couponApi = () => this.cart_baseUrl + '/' + this.cart_token + '/coupon';\r\n\r\n public cart_token;\r\n public cartItems = this.cartItemsSubject.asObservable().pipe(map(items => this.switchPriceInCartItem(items)))\r\n public coupon = this.couponSubject.asObservable();\r\n public loading = this.requestInProcess.asObservable();\r\n public cart = this.cartSubject.asObservable();\r\n public promotions = this.promotionsSubject.asObservable();\r\n\r\n constructor(private connection: ConnectionService, private toastrService: ToastService, private consts: Constants,\r\n private authService: AuthService, private orderUtils: OrderUtilityService, private analyticsService: AnalyticsService,\r\n private channelConfigService: ChannelConfigService) {\r\n\r\n this.requestInProcess.next(true);\r\n this.items = JSON.parse(localStorage.getItem('cart')) || [];\r\n this.cart_token = localStorage.getItem('cart_token') || null;\r\n this.authService.loggedIn.subscribe(res => this.getCart());\r\n this.channelConfigService.channelConfig$.subscribe(res => this.channelConfig = res);\r\n }\r\n\r\n\r\n private getCart = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token && this.items.length >= 1) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByToken = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByCustomer = async () =>\r\n this.connection.post(this.cartItemsApi()).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n /**\r\n * @private\r\n * CART CRUD SERVER'S SYNCRONIZED\r\n */\r\n\r\n private initializeCart = (response) => {\r\n this.cart_token = response.tokenValue;\r\n localStorage.setItem('cart_token', this.cart_token);\r\n this.locale = response.locale;\r\n this.updateCartObj(response, false);\r\n this.updateCartItems(this.transformItems(response.items));\r\n this.requestInProcess.next(false);\r\n return true;\r\n }\r\n\r\n private switchPriceInCartItem = (items: CartItem[]) => {\r\n //return items;\r\n return items.map(\r\n item => {\r\n if (item.product) {\r\n item.product.price = item.product.variants[0].saleprice ? item.product.variants[0].saleprice : item.product.variants[0].price\r\n }\r\n return item\r\n }\r\n )\r\n }\r\n\r\n private stepCart = (res) => {\r\n res.items.length > 0 && res.items.forEach(\r\n item => !this.isItemInLocal(item.id) && this.deleteCartItem(item, false)\r\n );\r\n this.addAllToCart(\r\n this.items.filter(\r\n item => !res.items.some(external_item => external_item.id == item.item_id)\r\n )\r\n );\r\n }\r\n\r\n private updateCartItems = (items) => {\r\n this.items = items;\r\n this.count = items.length;\r\n this.cartItemsSubject.next(this.items);\r\n this.updateLocalCart();\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n private updateCartItemQuantity = (variant_id, quantity) => {\r\n let newQuantity = this.items.find(item => item.variant_id == variant_id).quantity = quantity;\r\n this.cartItemsSubject.next(this.items);\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-updated', {quantity:newQuantity});\r\n }\r\n\r\n private appendToCart = (cart) => {\r\n this.updateCartObj(cart);\r\n this.items = this.transformItems(cart.items);\r\n this.count = this.items.length;\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-added');\r\n this.cartItemsSubject.next(this.items);\r\n }\r\n\r\n private removeCartItem = (cart, product, toast = true) => {\r\n this.updateCartObj(cart, false);\r\n this.items.splice(this.items.findIndex(item => item.item_id == product.item_id), 1);\r\n this.cartItemsSubject.next(this.items);\r\n toast && this.requestInProcess.next(false);\r\n toast && this.toastrService.show('product-removed');\r\n this.updateLocalCart();\r\n // this.googleAnalytics.removeFromCart(product);\r\n this.analyticsService.callEvent('remove_from_cart', { ...product, currency: this.consts.currency.code })\r\n }\r\n\r\n private addIfAllreadyExists = (product, variant_id, quantityAdd = 1) =>\r\n this.items.find((item, index) => {\r\n if (item.product.id == product.id && item.variant_id == variant_id) {\r\n this.updateItemQuantity(item, this.findItem(product.id).quantity + quantityAdd);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n private updateLocalCart = () => {\r\n localStorage.setItem('cart', JSON.stringify(this.items));\r\n }\r\n\r\n private resetCart = (next?) => {\r\n this.items = [];\r\n this.cartSubject.next(null);\r\n this.cart_token = null;\r\n this.cartItemsSubject.next([]);\r\n this.count = 0;\r\n localStorage.setItem('cart', \"[]\");\r\n localStorage.removeItem('cart_token');\r\n next && next();\r\n }\r\n\r\n private updateCartObj = (cart, emitEvent = true): boolean => {\r\n this.cartSubject.next(cart);\r\n emitEvent && this.analyticsService.callEvent('add_to_cart', cart);\r\n this.promotionsSubject.next(this.orderUtils.getPromotions(cart, true));\r\n\r\n cart.couponCode\r\n ? this.formatCoupon(cart)\r\n : this.couponSubject.next(null);\r\n return true;\r\n }\r\n\r\n private isItemInLocal = (item_id) => this.items.some(item => item.item_id == item_id);\r\n\r\n /**\r\n * @public\r\n * CART CRUD\r\n */\r\n\r\n addToCart = (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n !added && this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id })\r\n .subscribe(\r\n res => this.appendToCart(res),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n addToCartPromise = async (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n if (!added) {\r\n let result = await (this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id }).toPromise());\r\n if (!result || result.error) this.handleError(result.error);\r\n else {\r\n this.appendToCart(result);\r\n return { error: false }\r\n }\r\n }\r\n return { error: true }\r\n }\r\n\r\n\r\n addAllToCart = (items: any[]) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n\r\n const params = { items: this.mergeItemsAddAllToCart(items) };\r\n\r\n this.connection.post(this.addAllItemsApi(), params)\r\n .toPromise().then(\r\n res => {\r\n this.updateCartObj(res.cart) && this.updateCartItems(this.transformItems(res.cart.items));\r\n res.cart_response.status == 'success' && this.toastrService.show('products-added');\r\n },\r\n err => {\r\n this.handleError(err);\r\n }\r\n ).catch(err => {\r\n this.handleError(err);\r\n });\r\n }\r\n\r\n mergeItemsAddAllToCart = (items: any[]) => {\r\n let paramsMerge = []\r\n this.items.forEach(item => {\r\n let itemInterno = items.find(itemParam => itemParam.variantCode == item.variant_id)\r\n paramsMerge.push(\r\n {\r\n productCode: item.product.id,\r\n variantCode: item.variant_id,\r\n quantity: itemInterno && itemInterno.quantity || item.quantity\r\n }\r\n )\r\n })\r\n\r\n items = items.filter(itemParam => !this.items.find(item => itemParam.variantCode == item.variant_id))\r\n\r\n return [...items, ...paramsMerge]\r\n }\r\n\r\n updateItemQuantity = (item: CartItem, quantity) => {\r\n if (this.validateQuantity(item, quantity)) {\r\n this.connection.put(this.updateItemQuantityApi(this.findItemByIdVariant(item.variant_id)), { 'quantity': Number(quantity) }).subscribe(\r\n res => this.updateCartObj(res) && this.updateCartItemQuantity(item.variant_id, Number(quantity)),\r\n err => this.handleError(err)\r\n )\r\n }\r\n }\r\n\r\n\r\n validateQuantity = (item: CartItem, quantity) => {\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) > item.product.variants[0].maximumItemsQuantity) {\r\n this.toastrService.show('maximum-items-quantity', { quantity: item.product.variants[0].maximumItemsQuantity })\r\n return false\r\n }\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) < item.product.variants[0].minimumItemsQuantity) {\r\n this.toastrService.show('minimum-items-quantity', { quantity: item.product.variants[0].minimumItemsQuantity })\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n calculateStockCounts = (item: CartItem, quantity) => {\r\n if (item.product.stock < item.quantity + quantity) {\r\n // this.toastrService.show('out-of-stock');\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n deleteCartItem = (item, toast = true) => {\r\n let id_buscado = this.findItemByIdVariant(item.variant_id)\r\n this.connection.delete(this.deleteItemApi(id_buscado)).subscribe(\r\n res => this.removeCartItem(res, item, toast),\r\n err => this.handleError(err)\r\n )\r\n }\r\n\r\n clearCart() {\r\n //solucion provisaoria\r\n let items = [...this.items]\r\n while (items && items.length > 0) {\r\n this.deleteCartItem(items.pop(), false)\r\n }\r\n //this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCart() {\r\n this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCustomerCart() {\r\n console.log(\"Clearing and reseting...\")\r\n this.resetCart(this.getCartByCustomer)\r\n }\r\n\r\n handleError = (error: { error: string }) => {\r\n this.toastrService.show('operation-error-param');\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n getCountFromItemInCart = (codeVariant): number => this.items.find(item => item.variant_id == codeVariant)?.quantity || 0;\r\n\r\n findItemByIdVariant = (variant_id) => this.items.find(item => item.variant_id == variant_id).item_id\r\n\r\n findItem = (product_id) => this.items.find(item => item.product.id == product_id);\r\n\r\n /** DATA FOR OTHER SERVICES */\r\n getCartToken = () => this.cart_token;\r\n\r\n getLocale = () => this.locale;\r\n\r\n getTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.total));\r\n\r\n getCountCartItems = (): Observable<number> =>\r\n this.cartItems.pipe(map((cartItems) => cartItems?.length));\r\n\r\n getTaxesAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.taxes > 0 ? cart?.totals?.taxes : 0));\r\n\r\n getSubTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.items));\r\n\r\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total\r\n\r\n getDiscount(): Observable<number> {\r\n return this.cartItems.pipe(map((product) => {\r\n let total = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.saleprice * curr.quantity;\r\n }, 0);\r\n let subtotal = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.price * curr.quantity;\r\n }, 0);\r\n return subtotal - total;\r\n }));\r\n }\r\n\r\n addCoupon = async (code): Promise<any> => {\r\n try {\r\n let result = await this.connection.put(this.couponApi(), { coupon: code }).toPromise();\r\n if (result.error || result.errors) return { error: true, message: 'invalid-coupon' };\r\n this.updateCartObj(result, false);\r\n return { error: false, message: 'ok' };\r\n } catch (e) {\r\n return { error: true, message: 'invalid-coupon' };\r\n }\r\n }\r\n\r\n removeCoupon = async () => this.connection.delete(this.couponApi()).pipe(map(res => this.updateCartObj(res, false))).toPromise();\r\n\r\n formatCoupon = (cart) => {\r\n let current_coupon = this.couponSubject.value;\r\n let coupon: CouponI = { code: cart.couponCode };\r\n try {\r\n const key = Object.keys(cart.cartDiscounts)[0];\r\n coupon = {\r\n ...coupon,\r\n amount: (cart.cartDiscounts && cart.cartDiscounts[key].amount.current) || 0,\r\n name: (cart.cartDiscounts && cart.cartDiscounts[key].name) || 'no-name'\r\n };\r\n } catch (e) { }\r\n (coupon != current_coupon) && this.couponSubject.next(coupon);\r\n }\r\n\r\n changeHaveToUpdate = (value) => this.have_to_update = value;\r\n\r\n readyForCheckout = (successCallback?: Function, errorCallback?: Function): CartAffordable => {\r\n let cart = this.cartSubject.value;\r\n let items = this.cartItemsSubject.value;\r\n let result: CartAffordable = { ok: true };\r\n if (items.length < this.channelConfig.minimumQuantityPurchaseItems) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-items' })\r\n }\r\n if (cart.totals.total < this.channelConfig.minimumPurchaseAmount) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-amount' })\r\n }\r\n if (successCallback || errorCallback) {\r\n result.ok\r\n ? successCallback && successCallback()\r\n : errorCallback && errorCallback();\r\n }\r\n return result;\r\n }\r\n\r\n updateItemsOnError = (itemsWithError: any[], code: string) => {\r\n // console.log(itemsWithError);\r\n // console.log(this.items);\r\n let itemsUpdated = this.items.map(item => {\r\n let itemWithError = itemsWithError.find(failedItem => item.item_id == failedItem.id);\r\n if (itemWithError) {\r\n item.failed = true;\r\n item.error = code;\r\n }\r\n return item;\r\n })\r\n // console.log(itemsUpdated);\r\n this.updateCartItems(itemsUpdated);\r\n }\r\n\r\n loadCartByToken = async (token: string) => {\r\n this.cart_token = token\r\n let result = await this.getCartByToken()\r\n return result\r\n }\r\n\r\n /**\r\n * UTILS\r\n */\r\n\r\n transformItems = (server_item) => server_item.map(\r\n item => {\r\n item = {\r\n product: item.product,\r\n variant_id: item.product.variants[0].code,\r\n quantity: item.quantity,\r\n item_id: item.id,\r\n total: item.total\r\n }\r\n // console.log(item.product.variants[0]);\r\n // console.log(item.product.variants[0].saleprice);\r\n // console.log(item.product.variants[0].price);\r\n // console.log(item.product.variants[0].saleprice > 0 ? item.product.variants[0].seleprice : item.product.variants[0].price);\r\n // setTimeout(() => {\r\n // item.product.price = item.total / item.quantity// ? item.product.variants[0].seleprice : item.product.variants[0].price;\r\n // }, 100);\r\n return item;\r\n }\r\n )\r\n \r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { ObservableError } from '../../interfaces/observable-error.interface';\nimport { Constants } from '../../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrdersService {\n\n private ordersSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n private errorSubject: BehaviorSubject<ObservableError> = new BehaviorSubject(null);\n private selectedOrderSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n\n public orders$ = this.ordersSubject.asObservable();\n public error$ = this.errorSubject.asObservable();\n public selectedOrder$ = this.selectedOrderSubject.asObservable();\n\n private loading = false;\n\n ordersListapi = () => `shop-api/${this.consts.getChannel()}/orders`;\n\n constructor(private connection: ConnectionService, private cartService: CartService, private router: Router, private consts: Constants) {\n // this.updateOrders();\n }\n\n updateOrders = () => {\n this.loading = true;\n this.connection.get(this.ordersListapi())\n .pipe(\n map(res => {\n let orders = this.mapOrdersAndAddInfo(res);\n return orders;\n })\n )\n .subscribe(\n response => {\n this.ordersSubject.next(response);\n this.loading = false;\n },\n err => {\n this.errorSubject.next({ message: 'unable-get-orders' });\n }\n )\n }\n\n mapOrdersAndAddInfo = (orders) =>\n orders.map(order => {\n order.total = order.payments.reduce((a, b) => a + b.price.current, 0);\n return order;\n })\n\n setSelectedOrder = (order: any) => this.selectedOrderSubject.next(order);\n\n findOrder = (order_number) =>\n this.ordersSubject.value ? this.getOrderByNumber(order_number) : this.waitUntilOrders(order_number, this.getOrderByNumber);\n\n getOrderByNumber = (order_number) => {\n // El dia de mañana, cuando vengan paginadas y haya que preguntarle al servidor, se cambia este metodo\n const orders = this.ordersSubject.value;\n let order = orders.find(order => order.number == order_number)\n return order;\n }\n\n waitUntilOrders = (order_number, next) => {\n this.orders$.toPromise().then(orders => {\n if (!orders) {\n if (!this.loading) this.updateOrders();\n this.waitUntilOrders(order_number, next);\n }\n this.getOrderByNumber(order_number);\n })\n }\n\n reBuy(order) {\n // this.cartService.clearCart();\n order.items.map(item => {\n this.cartService.addToCart(this.formatProduct(item.product, item.product.discount), item.quantity, item.variant_id);\n });\n this.router.navigateByUrl('/cart');\n }\n\n formatProduct(product, discount) {\n let percentaje = parseFloat('0.' + discount.toString()).toFixed(2);\n product.price = product.variants[0].price;\n product.saleprice = (product.price - (product.price * parseFloat(percentaje)));\n product.options = {};\n product.variants[0].options.forEach(option => product.options = { ...product.options, ...option });\n return product;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ShipmentDataTransformer {\n\n getData = (method, response) => {\n switch(method) {\n case 'andreani': return response;\n case 'oca': return response.newDataSet;\n }\n }\n\n getApi = (method) => {\n switch(method) {\n case 'andreani': return 'https://api.andreani.com/v1/sucursales';\n case 'oca': return 'http://webservice.oca.com.ar/oep_tracking/Oep_Track.asmx/GetCentrosImposicion';\n }\n }\n\n constructor() { }\n\n appendShipmentExtra = (contract, data) => {\n let result: any = {}\n switch(contract) {\n case 'domicilio': result = { ...data }; break;\n // case 'sucursal': result = { ...data, codigo_sucursal: data. }; break;\n // case 'local': result = { ...data, codigo_local: data. }\n }\n if (contract == 'domicilio') {\n result = { ...data }\n } else {\n result = { codigo_sucursal: data.id }\n }\n return data;\n }\n\n // Andreni\n getMethodDetail = (method, branch) => {\n let result = '';\n branch.direccion.componentesDeDireccion.forEach(component => result += (component.meta + ' ' + component.contenido + ' '));\n return result;\n }\n\n transformAndreani = (response) => {\n let result = []\n response.forEach(element => {\n let data: any = {};\n data.name = element.descripcion;\n data.label = element.descripcion;\n data.latitude = element.geocoordenadas && element.geocoordenadas.latitud;\n data.longitude = element.geocoordenadas && element.geocoordenadas.longitud;\n data.atencion = element.horarioDeAtencion;\n data.address = element.direccion.componentesDeDireccion.map(data => data.contenido).join(' ');\n data.info = 'Sucursal ' + data.name + ' - ' + data.address + ' - ' + data.atencion;\n result.push(data);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Store } from '../interfaces/store';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoresService {\n\n private storesSubject = new BehaviorSubject<Store[]>([]);\n public stores = this.storesSubject.asObservable();\n\n getAllStoresApi = () => 'shop-api/' + this.consts.getChannel() + '/stores';\n\n constructor(private connection: ConnectionService, private consts: Constants) {\n this.connection.get(this.getAllStoresApi()).toPromise().then(\n res => {\n res.length && this.storesSubject.next(res);\n !res.length && this.storesSubject.next(null);\n }\n )\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, Observable, Subscription } from 'rxjs';\nimport { take, tap, map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { CheckoutProcessState } from '../../classes/checkout-process-state';\nimport { ShipmentDataTransformer } from '../../utils/shipment-transformer.service';\nimport { ConnectionService } from '../../api/connection.service';\nimport { StoresService } from '../stores.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class ShipmentService extends StepService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n private methodsSubject = new BehaviorSubject<any>([]);\n private costsSubject = new BehaviorSubject<any>([]);\n private subscription: Subscription;\n\n public order;\n\n private baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n\n public state = this.stateSubject.asObservable();\n public methods = this.methodsSubject.asObservable();\n public costs = this.costsSubject.asObservable();\n\n\n public shipmentMethodsApi = () => this.baseApi() + '/shipping';\n\n public persistShipmentApi = () => 'shop-api/' + this.consts.getChannel() + '/andreani/' + this.cartService.getCartToken() + '/ship';\n public putShipmentApi = () => this.baseApi() + '/shipping/' + this.stateSubject.getValue().data.method;\n public putContractApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() + '/shipping-contract';\n public calculatedCostsApi = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/multiple-estimated-shipping-cost';\n\n constructor(private connection: ConnectionService, private transformer: ShipmentDataTransformer, private analyticsService: AnalyticsService,\n private consts: Constants, private cartService: CartService, private storesService: StoresService, private checkoutService: CheckoutService) {\n super(checkoutService);\n }\n\n getShipmentMethods = () => {\n // this.connection.get(this.shipmentMethodsApi()).toPromise().then(\n // res => this.methodsSubject.next(this.responseToList(res))\n // ).catch(err => this.methodsSubject.next([]))\n this.connection.getErrorNotHandler(this.shipmentMethodsApi()).toPromise().then(\n res => {\n this.methodsSubject.next(this.responseToList(res))\n },\n err => {\n this.methodsSubject.next([])\n }\n ).catch(err => {\n this.methodsSubject.next([])\n })\n }\n\n setMethod = async (method) => {\n this.costsSubject.next([]);\n this.stateSubject.next({ doing: true, ok: false, data: { method } });\n this.putShipment().then(\n async res => {\n this.checkoutService.updateAsociatedData(res);\n this.order = res;\n const costs = await this.getCalculatedCosts();\n this.modifyCostsResponse(costs, this.getUserData().shippingAddress.postcode, method);\n },\n err => {\n return new Promise((resolve,reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n private putShipment = () => this.connection.put(this.putShipmentApi(), { method: this.stateSubject.getValue().data.method }).toPromise();\n\n getCalculatedCosts = () => this.connection.get(this.calculatedCostsApi()).toPromise();\n\n setContract = async (contract: any) => {\n const data = { ...contract, ...this.otherParamsForContract(contract) };\n return await this.connection.put(this.putContractApi(), data)\n .toPromise().then(\n order => {\n this.analyticsService.callEvent('shipping_info', order);\n return this.setStepReady(data, order)},\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n ngOnDestroy() {\n this.subscription && this.subscription.unsubscribe();\n }\n\n // UTILS\n\n /**\n * @param response De api de solicitud de costos por metodo de envío seleccionado\n * @param post_code Indicado en el paso de Addressing (datos personales y de facturación)\n * @param method Metodo de envío seleccionado\n */\n modifyCostsResponse = async (response, post_code, method) => {\n response = response.multiplePrices;\n let branch_delivery = response.findIndex(submethod => submethod.name == 'branch_delivery');\n if (branch_delivery != -1) {\n response[branch_delivery].contracts = response[branch_delivery].contracts.map(contract => {\n let branch_property = contract.branch_property || {};\n let address_data = branch_property.address || {};\n return {\n contract: 'branch_delivery',\n name: contract.name,\n price: contract.price,\n ...address_data,\n ...branch_property,\n computed: (address_data.street || '') + ' N° ' + (address_data.number || '')\n };\n });\n this.costsSubject.next(response);\n }\n if (method == 'pickup_store') {\n let final_method_data = response;\n this.subscription = this.storesService.stores.subscribe(stores => {\n if (stores.length) {\n final_method_data.forEach(pickup_store => {\n pickup_store.contracts.forEach(contract => {\n const current_store = stores.find(store => store.code == contract.name);\n if (!current_store) contract.detail = 'Sin información';\n else contract.detail = current_store.name + ' - ' + current_store.address;\n return contract;\n })\n })\n this.costsSubject.next(final_method_data);\n }\n })\n } else {\n this.costsSubject.next(response);\n }\n }\n\n responseToList = (response) =>\n (response.shipments && response.shipments.length > 0) && Object.keys(response.shipments[0].methods).map(key => response.shipments[0].methods[key]);\n\n otherParamsForContract = (contract) => {\n return {\n shipping_method_contract:\n contract.shipping_method_contract\n ? contract.shipping_method_contract\n : contract.contract + '_' + contract.name,\n shipping_method_branch_code:\n contract.shipping_method_branch_code\n ? contract.shipping_method_branch_code\n : (contract.contract && contract.contract == \"branch_delivery\") ? contract.number : contract.name\n }\n }\n\n getBranchOffices = (method) => this.connection.getOutsider(this.transformer.getApi(method.toLowerCase())).toPromise();\n\n formatUnnecesaryDocument = (data) => {\n if (data.shippingAddress?.documentNumber?.length == 0) {\n data.shippingAddress.documentNumber = '00000000'\n }\n if (data.shippingAddress?.documentType?.length == 0) {\n data.shippingAddress.documentType = 'XXX'\n }\n if (data.billingAddress && data.billingAddress.documentNumber?.length == 0) {\n data.billingAddress.documentNumber = '00000000'\n }\n if (data.billingAddress && data.billingAddress.documentType?.length == 0) {\n data.billingAddress.documentType = 'XXX'\n }\n return data\n }\n}\n","export interface FilterOption {\n name: string;\n value: string;\n type: FilterOptionTypes;\n selectedOption: any;\n options: Array<FilterOptionValue>;\n}\n\nexport interface FilterOptionValue {\n name: string;\n value: any;\n selected: boolean;\n}\n\nexport enum FilterOptionTypes {\n oneSelect = 'one-select',\n multiSelect = 'multi-select'\n}","import { Injectable } from '@angular/core';\nimport { OptionsOfProductListInterface } from '../interfaces/choose-options/options-of-product-list';\nimport { FilterOptionTypes } from '../interfaces/choose-options/filter-option';\n\n@Injectable()\nexport class OptionsOfProductListDataReceiverService {\n constructor() { }\n\n getData(): OptionsOfProductListInterface {\n return {\n sortOptions: [\n {\n name: 'Alphabetical order',\n value: 'name',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Ascendancy',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Descendant',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Created date',\n value: 'createdAt',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Oldest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Newest first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Price',\n value: 'price',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Cheapest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Most expensive first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n ],\n filterOptions: [\n {\n name: 'Vigencia',\n value: 'enabled',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Habilitados',\n value: 'true',\n selected: false,\n },\n {\n name: 'Deshabilitados',\n value: 'false',\n selected: false,\n }\n ]\n }\n ],\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AuthService } from './auth.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\n\n@Injectable()\nexport class DataformService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n\n public state = this.stateSubject.asObservable();\n public checkoutForm : FormGroup;\n\n constructor(private fb: FormBuilder, private authService: AuthService) {\n this.checkoutForm = this.fb.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: ['', Validators.required],\n city: ['', Validators.required],\n provinceName: ['', Validators.required],\n postcode: ['', Validators.required]\n });\n\n this.authService.getUserProfile().subscribe(\n res => this.checkoutForm.patchValue(res.toForm())\n )\n }\n\n isValid = () => this.checkoutForm.valid;\n\n change = () => {\n this.checkoutForm.valid ? this.stateSubject.next({ doing: false, ok: true, data: this.checkoutForm.value }) \n : this.stateSubject.next({ doing: true, ok: false, data: null })\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\n\nexport interface BlockInfo {\n section: string,\n blocks: IBlock[]\n}\n\n@Injectable()\nexport class BlocksRepositoryService {\n\n private data: BlockInfo[] = [];\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n\n constructor(private consts: Constants, private connection: ConnectionService) {\n this.consts.getBlocksCacheTime() && setInterval(this.restartBlocks, this.consts.getBlocksCacheTime());\n }\n\n getBlocks = async (section) : Promise<IBlock[]> => this.hasSectionBlocks(section)?.blocks || this.connection.get(this.blocksAPI(section))\n .toPromise().then(\n res => this.appendBlock(res.items, section) && res.items,\n err => new Promise((resolve, reject) => reject()) // Va por callback error, el servicio define el valor a setear\n ).catch(err => new Promise((resolve,reject) => reject(new Error(null)))); //Queda pendiente ver como manejar el error de este lado\n\n hasSectionBlocks = (section) => this.data.find(block_info => block_info.section == section);\n\n appendBlock = (blocks : IBlock[], section) => {\n const new_block = { section, blocks };\n this.data.push(new_block);\n return true;\n }\n\n restartBlocks = () => this.data = [];\n}","import { Injectable } from '@angular/core';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BlocksRepositoryService } from './blocks-repository.service';\n\n\n/**\n * @description Servicio de manejo de Bloques. Cada sección posee N bloques asociados, ordenados por posición y con tu tipo y datos correspondientes\n * (chequear interfaz de IBlock)\n */\n@Injectable()\nexport class BlocksService {\n\n private blocksSubject = new BehaviorSubject<any[]>([]);\n\n public blocks = this.blocksSubject.asObservable();\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n contactFormResponseAPI = () => 'cms/' + this.consts.getLocale() + '/contact-form/response';\n\n constructor(private consts: Constants, private connection: ConnectionService,\n private blocksRepo: BlocksRepositoryService) { }\n\n getBlocks = (section) => {\n this.blocksRepo.getBlocks(section).then(\n res => this.blocksSubject.next(this.orderedAndModified(res)),\n err => this.blocksSubject.next(null)\n )\n }\n\n orderedAndModified = (result) => {\n let result_ordered = result.sort((a, b) => a.priority - b.priority);\n return (result_ordered.length ? result_ordered : null);\n }\n\n getBlockByCode = (code) =>\n this.blocksSubject.value && this.blocksSubject.value.find(block => block.code == code);\n\n // getBannerImage = (banner) => (this.consts.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getBannerImage = (banner) =>\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName;\n\n getImage = (banner) => (this.consts.mediaBannerUrl() +\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName)\n\n formUrl = (banner) => {\n let resultado = \"/\";\n const element = (banner.redirectionType == 'attribute' ? 'attributes' : 'categories');\n try {\n let asociacion = banner[(element == 'categories' ? 'taxons' : element)];\n asociacion = asociacion.length && asociacion[0];\n if (asociacion) resultado = '/collection/' + element + '/' + (asociacion.slug || asociacion.translations[this.consts.getLocale()].slug);\n } catch (e) {\n }\n return resultado;\n }\n\n sendResponse = (response_obj) =>\n this.connection.post(this.contactFormResponseAPI(), this.prepareData(response_obj));\n\n prepareData = (obj) => {\n // Para el futuro, cuando haya que toquetear antes de mandar\n // attachmentFile\n return obj;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilsService {\n\n constructor() { }\n\n titleCaseWord(word: string) {\n if (!word) return word;\n return word[0].toUpperCase() + word.substr(1).toLowerCase();\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaymentUtils {\n\n constructor() {}\n\n private mp_error_codes = {\n 'pending_contingency': 'Estamos procesando el pago. En menos de 2 días hábiles te enviaremos por e-mail el resultado.',\n 'pending_review_manual': 'Estamos procesando el pago. En menos de 2 días hábiles te diremos por e-mail si se acreditó o si necesitamos más información.',\n 'cc_rejected_bad_filled_card_number': 'Revisa el número de tarjeta.',\n 'cc_rejected_bad_filled_date': \t'Revisa la fecha de vencimiento.',\n 'cc_rejected_bad_filled_other': \t'Revisa los datos.',\n 'cc_rejected_bad_filled_security_code': \t'Revisa el código de seguridad.',\n 'cc_rejected_blacklist': \t'No pudimos procesar tu pago.',\n 'cc_rejected_call_for_authorize': \t'Debes autorizar ante payment_method_id el pago de amount a Mercado Pago',\n 'cc_rejected_card_disabled': \t'Llama a payment_method_id para que active tu tarjeta. El teléfono está al dorso de tu tarjeta.',\n 'cc_rejected_card_error': \t'No pudimos procesar tu pago.',\n 'cc_rejected_duplicated_payment': \t'Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.',\n 'cc_rejected_high_risk': \t'Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.',\n 'cc_rejected_insufficient_amount': \t'Tu payment_method_id no tiene fondos suficientes.',\n 'cc_rejected_invalid_installments': \t'El metodo de pago no procesa pagos en cuotas.',\n 'cc_rejected_max_attempts': \t'Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.',\n 'cc_rejected_other_reason': \t'No procesó el pago.'\n }\n\n getErrorMessage = (code) => this.mp_error_codes[code];\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAuthenticated())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbleBuyerGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectSellerTo || '/'\n\n if (!this.auth.isAbleToBuy())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAbleToBuy()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserRoleGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n const authorizedRoles = routeSnapshot.data.authorizedRoles || []\n\n if (!authorizedRoles.includes(this.auth.getUserProfileAsUser()?.typeUser))\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class LoggedInGuard implements CanActivate { \n \n constructor(private auth: AuthService, public router: Router) {} \n \n canActivate(): boolean {\n if (!this.auth.isAuthenticated()) {\n this.router.navigate(['/login']);\n }\n return this.auth.isAuthenticated();\n }\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { CheckoutService } from '../services/checkout/checkout.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class CheckoutReadyGuard implements CanActivate { \n \n constructor(private router: Router, private checkoutService: CheckoutService) {} \n \n canActivate(): boolean {\n if (!this.checkoutService.isCheckoutReady()) {\n this.router.navigate(['/']);\n }\n return this.checkoutService.isCheckoutReady();\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse\n} from \"@angular/common/http\";\nimport { throwError, Observable, of } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n \n if (this.injector.get(AuthService).isAuthenticated()\n && req.url.includes(this.injector.get(Constants).getUrlBase())\n && !req.url.includes('shop-api/login_check')) {\n\n let headers = {\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.injector.get(AuthService).getToken()}`,\n },\n }\n\n if (req.url.includes('contact-form/response'))\n delete headers.setHeaders[\"Content-Type\"]\n\n /* if (this.injector.get(AuthService).getCustomer())\n delete headers.setHeaders[\"Authorization\"] */\n\n let authReq: HttpRequest<any> = req.clone(headers)\n \n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse, HttpHeaders, HttpClient\n} from \"@angular/common/http\";\nimport { Router } from '@angular/router';\nimport { throwError, Observable, BehaviorSubject, of } from \"rxjs\";\nimport { catchError, filter, take, switchMap } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\nimport { BodyError } from \"../interfaces/checkout/checkout-error\";\nimport { ToastService } from \"../utils/toast.service\";\n\n@Injectable()\nexport class CustomerInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n\n const customer = this.injector.get(AuthService).getCustomer()\n\n if (customer) {\n\n const headers = {\n setHeaders: {\n 'customer': String(customer.id)\n }\n }\n\n let authReq: HttpRequest<any> = req.clone(headers)\n\n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).logout()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CheckoutService } from \"../services/checkout/checkout.service\";\n\nexport class ComponentHelper {\n\n constructor() {\n this.ecOnConstruct()\n }\n\n ecOnInit = (params = {}) => {\n\n }\n\n ecOnConstruct = (params = {}) => {\n\n }\n\n hasParams = (params, searched) => params && params != null && params.find(param => param.code?.toLowerCase().includes(searched.toLowerCase()));\n\n navigateOnRouter(router : Router,url: string) {\n router.navigateByUrl(`/${url}`);\n }\n}","import { Injectable, Renderer2, Inject, RendererFactory2 } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { Parameter } from '../interfaces/parameters';\nimport { DOCUMENT } from '@angular/common';\nimport { Script } from '../interfaces/Script';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { AnalyticsService } from './analytics.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParametersService {\n\n private parametersSubject = new BehaviorSubject<Parameter[]>(null);\n private readyParamsSubject = new ReplaySubject<boolean>(1);\n\n public parameters = this.parametersSubject.asObservable();\n public ready$ = this.readyParamsSubject.asObservable();\n\n getAllParametersAPI = () => 'shop-api/' + (this.constants.getMasterChannel() || this.constants.getChannel()) + '/parameters';\n\n constructor(private connection: ConnectionService, private constants: Constants,\n private analyticsService: AnalyticsService) {\n this.connection.get(this.getAllParametersAPI()).toPromise().then(res => {\n this.parametersSubject.next(res);\n this.readyParamsSubject.next(true);\n })\n }\n\n insertAnalitycs = () => {\n this.parametersSubject.value\n ? this.constants.onlyIfProduction(this.initializeAnalytics, this.parametersSubject.value)\n : this.waitUntilData(this.initializeAnalytics)\n }\n\n private initializeAnalytics = (params) => {\n\n let facebook = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('facebook') && param.code.includes('id'));\n !facebook && (facebook = params.find(param => param.code.includes('facebook') && param.code.includes('id')));\n facebook && this.analyticsService.initializeFacebook(facebook.value);\n\n let google = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('google') && param.code.includes('id'));\n !google && (google = params.find(param => param.code.includes('google') && param.code.includes('id')));\n google && this.analyticsService.initializeGoogle(google.value);\n\n let gtm = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('gtm') && param.code.includes('id'));\n !gtm && (gtm = params.find(param => param.code.includes('gtm') && param.code.includes('id')));\n gtm && this.analyticsService.initializeGTM(gtm.value);\n\n let metricool = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('metricool') && param.code.includes('id'));\n !metricool && (metricool = params.find(param => param.code.includes('metricool') && param.code.includes('id')));\n metricool && this.analyticsService.initializeMetricool(metricool.value);\n\n let doppler = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('doppler') && param.code.includes('id'));\n !doppler && (doppler = params.find(param => param.code.includes('doppler') && param.code.includes('id')));\n doppler && this.analyticsService.initializeDoppler(doppler.value);\n\n }\n\n private waitUntilData = (next) => {\n const subscription = this.parameters.subscribe(res => {\n if (res) {\n this.insertAnalitycs();\n subscription.unsubscribe();\n }\n });\n }\n\n}","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-account-ec',\n templateUrl: 'account-ec.component.html',\n styleUrls: ['account-ec.component.scss']\n})\nexport class AccountEcComponent extends ComponentHelper {\n\n public params = null\n\n constructor(protected authService: AuthService, public router: Router, public paramsService: ParametersService ) {\n super();\n this.paramsService.parameters.subscribe(p => {\n this.params = p\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('/home');\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Banner } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n// import { OwlOptions } from 'ngx-owl-carousel-o';\n\nexport type ColumnSize = 'col-md-8' | 'col-md-4' | 'col-md-12'\n\n@Component({\n selector: 'app-block-banner-boxes-ec',\n templateUrl: './block-banner-boxes-ec.component.html',\n styleUrls: ['./block-banner-boxes-ec.component.scss']\n})\nexport class BlockBannerBoxesEcComponent extends ComponentHelper implements OnInit {\n @Input() banners: Banner[];\n @Input() meta: any;\n\n protected big_ones = [0, 3, 4, 7, 8, 11, 12, 15, 16];\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.meta = { ...this.meta, ...this.meta.translations[this.consts.getLocale()] }\n this.ecOnInit()\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n columnSize = (i): ColumnSize => {\n if (!this.consts.mobile()) {\n if (this.big_ones.includes(i)) return 'col-md-8';\n else if (!((i + 1) == this.banners.length)) return 'col-md-4';\n else if (((i + 1) == this.banners.length) && this.esImpar(i)) return 'col-md-4';\n }\n return 'col-md-12';\n }\n\n esImpar = (number) => (number % 2) == 1;\n \n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n\ndeclare var $: any;\n\n@Component({\n selector: 'app-block-banner-full-ec',\n templateUrl: './block-banner-full-ec.component.html',\n styleUrls: ['./block-banner-full-ec.component.scss']\n})\nexport class BlockBannerFullEcComponent extends ComponentHelper implements OnInit {\n\n @Input() banners;\n @Input() meta: any;\n\n public options: any;\n\n constructor(public blocksService: BlocksService, protected consts: Constants, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.ecOnInit()\n\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n handlePage(page: string) {\n return this.router.url.includes(page);\n }\n\n}\n","import { Component, Input, OnInit, OnChanges } from '@angular/core';\n// import { ToastService, Constants, BlocksService } from 'ng-easycommerce';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-form-contact-ec',\n templateUrl: 'block-form-contact-ec.component.html',\n styleUrls: ['block-form-contact-ec.component.scss']\n})\nexport class BlockFormContactEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() block;\n @Input() success_message;\n @Input() redirect = true;\n @Input() subject?;\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = new FormData();\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants,\n public formBuilder: FormBuilder, protected blocksService: BlocksService) {\n super();\n this.contact_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n attachment: [''],\n captcha: ['', Validators.required],\n })\n this.newsletter_form = this.formBuilder.group({\n email: ['', Validators.required],\n })\n this.ecOnConstruct()\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('mailText', form.value.body)\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', this.contact_form.get('name').value)\n this.sendValue('email') && formData.append('email', this.contact_form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', this.contact_form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', this.contact_form.get('subject').value)\n this.sendValue('body') && formData.append('body', this.contact_form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', this.contact_form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.contact_form.reset()\n this.toastrService.show(this.success_message || success_message);\n this.redirect && this.router.navigateByUrl('/home');\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n uploadFile(event) {\n if (event.target.files.length > 0) {\n const file = event.target.files[0];\n this.contact_form.get('attachment').setValue(file);\n }\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n toastCompleteForm = (e) => {\n e.preventDefault();\n this.sendForm(this.contact_form, 'inquiry-sent');\n }\n\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-html-ec',\n templateUrl: './block-html-ec.component.html',\n styleUrls: ['./block-html-ec.component.scss'],\n})\nexport class BlockHtmlEcComponent extends ComponentHelper implements OnInit {\n\n @Input() html_content;\n\n constructor(protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.html_content = this.sanitizer.bypassSecurityTrustHtml(this.html_content);\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlockType } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-contact-form-news-ec',\n templateUrl: './contact-form-news-ec.component.html',\n styleUrls: ['./contact-form-news-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class ContactFormNewsEcComponent extends ComponentHelper implements OnInit {\n\n @Input() block;\n @Input() complete = false;\n @Input() success_message;\n @Input() subject?;\n @Input() codeBlock = 'newsletter_block'\n\n public blocks: BlockType[] = [];\n public blockContact: any = null;\n\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = {};\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants, public paramsService: ParametersService,\n public formBuilder: FormBuilder, protected blocksService: BlocksService, @Inject('env') public env ) {\n super();\n this.newsletter_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n captcha: ['', []],\n terms: ['', Validators.required],\n })\n this.ecOnConstruct()\n\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', form.get('name').value)\n this.sendValue('email') && formData.append('email', form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', form.get('subject').value)\n this.sendValue('body') && formData.append('body', form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.newsletter_form.reset()\n this.toastrService.show(this.success_message || success_message);\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n ngOnChanges() {\n }\n\n ngOnInit() {\n if (!this.block) {\n this.blocksService.getBlocks('home') ;\n this.blocksService.blocks.pipe(filter((blocks) => (blocks && blocks.length > 0))).subscribe(blocks => {\n this.block = this.blocksService.getBlockByCode(this.codeBlock);\n if (this.block.contactForm) {\n this.block = this.block.contactForm\n }\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n\n this.subscribeBlockNews(this.block);\n\n }) \n }else{\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n }\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n subscribeBlockNews = (block: any) => {\n \n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string, res) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Product } from '../../../interfaces/product';\nimport { AnalyticsService } from '../../../services/analytics.service';\n\n@Component({\n selector: 'app-block-products-ec',\n templateUrl: './block-products-ec.component.html',\n styleUrls: ['./block-products-ec.component.scss']\n})\nexport class BlockProductsEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() products: Product[];\n @Input() meta: any;\n\n public options: any;\n\n constructor(protected consts: Constants, \n private analyticsService: AnalyticsService,\n ) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.meta = { ...this.meta, ...(this.meta.translations ? this.meta.translations[this.consts.getLocale()] : { name: null }) }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: this.meta.name || 'Block Products', item_list_id: this.meta.name?.toLowerCase()?.replace(' ', '-') || 'block-products' })\n this.ecOnInit()\n }\n\n ngOnChanges(): void {\n\n }\n\n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n\n getKeyByValue(object, value) {\n return Object.keys(object).find(key => object[key] === value);\n}\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n@Component({\n selector: 'app-blocks-ec',\n templateUrl: './blocks-ec.component.html',\n styleUrls: ['./blocks-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class BlocksEcComponent extends ComponentHelper implements OnInit {\n\n private strsection = null\n\n @Input()\n set section(paramsstrsection) {\n this.strsection = paramsstrsection\n this.strsection && this.blocksService.getBlocks(this.strsection);\n }\n @Input() show_loading = true;\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n // this.blocksService.getBlocks(this.section);\n this.ecOnInit()\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n isNewsletter = (block) => block.code.includes('news');\n}\n","import { Component, OnInit, Input, TemplateRef } from \"@angular/core\"\nimport { Router } from \"@angular/router\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from \"../../core.consts\";\nimport { AuthService } from '../../services/auth.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { CartService } from '../../services/cart.service';\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { ToastService } from \"../../utils/toast.service\";\n\n\n@Component({\n selector: 'app-cart-ec',\n templateUrl: './cart-ec.component.html',\n styleUrls: ['./cart-ec.component.scss']\n})\nexport class CartEcComponent extends ComponentHelper implements OnInit {\n\n public isLoggedIn = false;\n public mediaUrl = '';\n public modalRef: BsModalRef | null;\n public promotions = [];\n\n constructor(public cartService: CartService, public authService: AuthService, protected consts: Constants,\n public productsService: ProductsService, public router: Router, public modalService: BsModalService, protected toastrService: ToastService) {\n super();\n this.ecOnConstruct()\n this.isLoggedIn = this.authService.isAuthenticated();\n this.mediaUrl = this.consts.mediaUrl();\n }\n\n\n ngOnChanges() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n updateLoggedIn() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.cartService.promotions.subscribe(promotions => this.promotions = promotions);\n this.ecOnInit()\n\n }\n\n toDecimal = (amount) => this.consts.toDecimal(amount);\n\n actualizarCantidad = (item, cantidad, stock) => {\n cantidad > 0 && cantidad <= stock ? this.cartService.updateItemQuantity(item, cantidad) : this.toastrService.show('out-of-stock-actually');\n }\n\n redirectCheckout = () => this.router.navigateByUrl(`/checkout`)\n\n redirectRegister = () => this.router.navigateByUrl(`/auth/login`)\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-xl', keyboard: false });\n }\n\n redirectDetailProduct(product) {\n let variant = product.variants[0]\n let path = '/product/'\n path += variant.code\n path += variant.options.length ? \"?variant=true\" : \"\"\n this.router.navigateByUrl(path)\n }\n}\n","import { Component, OnInit, OnChanges } from '@angular/core';\nimport Stepper from 'bs-stepper';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../../services/cart.service';\nimport { StepI } from '../../interfaces/step';\nimport { CheckoutData } from '../../interfaces/checkout-data';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n@Component({\n selector: 'app-checkout-ec',\n templateUrl: './checkout-ec.component.html',\n styleUrls: ['./checkout-ec.component.scss']\n})\nexport class CheckoutEcComponent extends ComponentHelper implements OnInit {\n\n public stepper: Stepper;\n public loadingSubject = new BehaviorSubject<boolean>(true);\n public canCheckout = false;\n public require_login = false;\n public subCan: Subscription;\n public subReady: Subscription;\n\n public loading$ = this.loadingSubject.asObservable();\n\n constructor(public checkoutService: CheckoutService, public toastrService: ToastService,\n public router: Router, public cartService: CartService, public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.subCan = this.checkoutService.canCheckout$.pipe(take(1)).subscribe(contain_items => {\n if (contain_items) this.initializeCheckout();\n else this.canCheckout = false;\n })\n this.ecOnInit()\n\n }\n\n ngOnDestroy() {\n this.subCan?.unsubscribe()\n this.subReady?.unsubscribe()\n }\n\n initializeCheckout = () => {\n this.canCheckout = true;\n let steps: StepI[] = [];\n steps.push({ name: 'address' });\n steps.push({ name: 'shipment' });\n steps.push({ name: 'payment' });\n this.checkoutService.setSteps(steps);\n this.setStepper();\n this.loadingSubject.next(false);\n\n this.subReady = this.checkoutService.onReady$.pipe(filter( ready => ready )).subscribe(\n res => { res && this.endCheckout()}\n );\n }\n\n goBack = () => this.stepper.previous();\n\n isStepReady = (step_name) => this.checkoutService.isStepReady(step_name);\n\n endCheckout = () => {\n this.checkoutService.complete().then(\n res => res.ok && this.router.navigate(['checkout/order_success']),\n err => this.toastrService.show('operation-error')\n )\n }\n\n setStepper = () => {\n setTimeout(() => {\n if (document.querySelector('#stepper') != null) {\n this.stepper = new Stepper(document.querySelector('#stepper'), {\n linear: true,\n animation: true\n })\n }else{\n this.setStepper()\n }\n }, 1000);\n }\n\n next = () => {\n this.stepper.next()\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n };\n\n error = (error_value) => this.toastrService.show(error_value);\n\n getIcon = (data_item: CheckoutData) => {\n switch (data_item.type) {\n case 'coupon': return 'assets/images/coupon.png';\n case 'discount': return 'assets/images/discount.png';\n case 'shipment': return 'assets/images/ico-envio.png';\n case 'subtotal': return 'assets/images/products.png';\n case 'total': return 'assets/images/ico-carrito.png';\n default: return 'assets/images/ico-carrito.png';\n }\n }\n\n}\n","import { Component, EventEmitter, Output, Input, OnInit, ViewChild, TemplateRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { CartService } from '../../../services/cart.service';\nimport { AddressingService } from '../../../services/checkout/addressing.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from '../../../core.consts';\nimport { add } from 'ngx-bootstrap/chronos';\nimport { ParametersService } from '../../../services/parameters.service';\n\n\n@Component({\n selector: 'app-dataform-ec',\n templateUrl: 'dataform-ec.component.html',\n styleUrls: ['dataform-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DataFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() step_id;\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesFacturacionSubject = new BehaviorSubject<any[]>([]);\n protected provincesFacturacionSubject = new BehaviorSubject<any[]>([]);\n\n public countries$ = this.countriesSubject.asObservable();\n public provinces$ = this.provincesSubject.asObservable();\n public countriesFacturacion$ = this.countriesFacturacionSubject.asObservable();\n public provincesFacturacion$ = this.provincesFacturacionSubject.asObservable();\n\n public require_login = false;\n public checkoutForm: FormGroup;\n public checkoutFormFacturacion: FormGroup;\n public loading = false;\n public form_ready = false;\n public allready_data = false;\n public addressBook = [];\n public addressBookSelected = { id: 0, notes: \"\" }\n\n public validado = false;\n public viewDataFacturacion: boolean = true;\n\n public modalRef: BsModalRef | null;\n public params: any = {};\n public selectAddres: boolean = false;\n\n constructor(public authService: AuthService,\n public fb: FormBuilder,\n public toast: ToastService,\n public addressingService: AddressingService,\n public cartService: CartService,\n private modalService: BsModalService,\n public paramsService: ParametersService,\n public consts: Constants) {\n super();\n this.ecOnConstruct()\n this.checkoutForm = this.fb.group(this.addressingService.getTypeForm().configForm.formAddres);\n this.checkoutForm.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutForm.valid }))\n .subscribe(() => this.onFormValid());\n\n this.checkoutFormFacturacion = this.fb.group(this.addressingService.getTypeForm().configForm.formBilling);\n this.checkoutFormFacturacion.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutFormFacturacion.valid }))\n .subscribe(() => this.onFormValid());\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.addressingService.initialize(this.step_id);\n const localEmail = localStorage.getItem('mail')\n this.authService.isAuthenticated() && this.checkoutForm.controls['email'].setValue(this.authService.getCustomer()?.email || localEmail);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n this.addressingService.getAddressingData().then(res => {\n this.countriesSubject.next(res);\n this.countriesFacturacionSubject.next(res);\n });\n\n (this.addressingService.modeSelectAddress == 'LOAD_ADDRESS_AND_SELECTION' || this.addressingService.modeSelectAddress == 'ONLY_ADDRESS_SELECTION') \n && this.addressingService.getAddressBook().then(res => {\n this.addressBook = res && res || null\n this.addressBook == null && this.setMode('carga') }\n )\n\n this.ecOnInit()\n }\n\n showFormFacturacion = () => {\n this.viewDataFacturacion = !this.viewDataFacturacion\n this.onFormChange()\n return this.viewDataFacturacion\n }\n\n onFormValid = () => {\n }\n\n protected onFormChange() {\n if (this.checkoutForm.valid) {\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) {\n this.validado = true\n return\n }\n if (this.viewDataFacturacion && this.checkoutForm.valid) {\n this.validado = true\n return\n }\n }\n this.validado = false\n }\n\n onInputChange = () => this.form_ready = false;\n\n onCountrySelected = (value) => {\n this.checkoutForm.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutForm.controls['provinceCode'].setValue(null);\n this.provincesSubject.next(\n value && value != 'null' ?\n this.countriesSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onCountrySelectedFacturacion = (value) => {\n this.checkoutFormFacturacion.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutFormFacturacion.controls['provinceCode'].setValue(null);\n this.provincesFacturacionSubject.next(\n value && value != 'null' ?\n this.countriesFacturacionSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onProvincesSelected = (value) => this.checkoutForm.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n onProvincesSelectedFacturacion = (value) => this.checkoutFormFacturacion.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n verifyValidate = (e) => {\n console.log(\"Verifying: \", e)\n this.require_login = false;\n if (e) {\n this.checkoutForm.controls['email'].setValue(e);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n }\n this.checkoutForm.valid ? this.emitResult() : this.showError('invalid-form');\n }\n\n showError = (error_message) => { this.toast.show(error_message); return true; }\n\n protected emitResult = async () => {\n this.loading = true;\n let data: any = { shippingAddress: { ...this.checkoutForm.getRawValue(), phoneNumber: this.checkoutForm.value.phoneNumber.toString() }, notes: (this.checkoutForm.getRawValue()).notes };\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) data = { ...data, notes: data.notes, billingAddress: this.checkoutFormFacturacion.getRawValue() };\n try {\n let result = await this.addressingService.setAddress(data);\n\n if (result === false)\n this.require_login = true\n\n if (result !== false && result !== undefined) {\n this.form_ready = true\n this.allready_data = true\n }\n\n } catch (e) { this.toast.show('operation-error') }\n this.loading = false;\n }\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-lg ', keyboard: false, backdrop: 'static' });\n }\n\n setSelectAddress = (addressSelect: any) => {\n this.addressBook.map(address => address.selected = address.id === addressSelect.id)\n this.addressBookSelected.id = this.addressBook.find(address => address.selected).id || 0\n }\n\n selectAddress = async () => {\n this.loading = true;\n let addressSelected = this.addressBook.find(address => address.selected)\n if (addressSelected) {\n try {\n if (!this.addressBookSelected.id) {\n this.addressBookSelected.id = addressSelected.id || 0\n }\n const request = {\n selected: this.addressBookSelected,\n shippingAddress: addressSelected\n }\n const resultSede = await this.addressingService.setHeadquarter(request);\n if (resultSede) {\n this.form_ready = true;\n this.allready_data = true;\n } else {\n this.toast.show('operation-error')\n }\n } catch (e) { this.toast.show('operation-error') }\n } else {\n this.showError('invalid-form')\n }\n this.loading = false;\n }\n\n getMode = () => {\n switch (this.addressingService.modeSelectAddress) {\n case 'ONLY_LOAD_ADDRESS':\n return true\n case 'ONLY_ADDRESS_SELECTION':\n if (this.authService.isAuthenticated()) {\n return false\n }\n return true\n case 'LOAD_ADDRESS_AND_SELECTION':\n if (this.authService.isAuthenticated()) {\n return this.selectAddres\n }\n return true\n }\n }\n\n setMode = (mode) => this.selectAddres = mode == \"carga\"\n\n getCountry = (code) => this.addressingService.countriesList.find(paises => paises.code.toLocaleLowerCase().includes(code.toLocaleLowerCase()))?.name || \"\"\n\n getProvince = (code) => this.addressingService.provinceList.find(ct => ct.code == code)?.name || \"\"\n\n getDocumentType = (code) => this.addressingService.documentTypes.find(dt => dt.code == code)?.name || \"\"\n\n getLabelNotesParam = () => this.hasParams(this.params, 'label_notes_' + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n getParamByChannelAndLanguage = (nameParam) => this.hasParams(this.params, nameParam + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class PaymentService extends StepService {\n\n private paymentMethodsSubject = new BehaviorSubject<any[]>([]);\n public methods$ = this.paymentMethodsSubject.asObservable();\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getCheckoutMobbexApi = () => 'shop-api/' + this.consts.getChannel() + '/mobbex/' + this.cartService.getCartToken() + '/process-payment'\n getCheckoutBancardApi = () => 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.getCartToken() + '/process-payment' //?testOrderNumber=' + this.getRandomArbitrary()\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n\n constructor(private connection: ConnectionService, private toastrService: ToastService, private cartService: CartService, private consts: Constants,\n private checkoutService: CheckoutService, private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getPaymentMethods();\n }\n\n getPaymentMethods = async () => this.connection.get(this.getPaymentMethodsApi()).toPromise().then(\n res => res.payments?.length && this.paymentMethodsSubject.next(Object.keys(res.payments[0].methods).map(key => res.payments[0].methods[key])),\n err => this.toastrService.show('operation-error')\n );\n\n // putPayment = (method) => this.connection.put(this.putPaymentApi(method), { method }).toPromise();\n putPayment = (method) =>\n this.connection\n .put(this.putPaymentApi(method), { method })\n .toPromise()\n .then(\n res => {\n this.analyticsService.callEvent('add_payment_info', res);\n return res\n },\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n\n getPreference = (shipment_data) => this.connection.post(this.getPreferenceApi(), shipment_data).pipe(map(res => (res.preference || res))).toPromise();\n\n getCheckoutMobbex = (shipment_data) => this.connection.post(this.getCheckoutMobbexApi(), shipment_data).toPromise();\n\n getCheckoutBancard = (shipment_data) => this.connection.get(this.getCheckoutBancardApi(), shipment_data).toPromise();\n\n private getRandomArbitrary = () => Math.round(Math.random() * (Number(9999999) - Number(2000003)) + Number(2000003))\n}","import { Component, Renderer2, ElementRef, ViewChild, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { PaymentService } from '../../../services/checkout/payment.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-payment-ec',\n templateUrl: 'payment-ec.component.html',\n styleUrls: ['payment-ec.component.scss'],\n providers: [PaymentService]\n\n})\nexport class PaymentEcComponent extends ComponentHelper implements OnChanges, OnInit {\n\n @Input() step_id;\n @ViewChild('formContainer') protected mercadopago_button: ElementRef;\n protected methodDataSubject = new BehaviorSubject<any>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n protected preference;\n\n\n public loading_internal = false;\n public order_id;\n public error;\n public loading = true;\n public loading_internal_mp = false;\n public method_data$ = this.methodDataSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public total_amount;\n\n \n constructor(protected renderer: Renderer2, protected toastr: ToastService,\n public paymentService: PaymentService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.paymentService.initialize(this.step_id);\n this.checkoutService.asociatedData$.subscribe((data: CheckoutData[]) => this.total_amount = (data.find(item => item.type == 'total')).amount)\n this.ecOnInit()\n\n }\n\n allData = () => ({\n ...this.paymentService.getUserData().shippingAddress,\n ...this.paymentService.getShipmentData(),\n });\n\n setError = (message) => {\n this.error = message;\n }\n\n emitResult = async () => {\n this.paymentService.setStepReady(this.methodDataSubject.getValue(), null).then(res => {\n this.setLoading(false)\n });\n }\n\n setLoading = (estado = true) => {\n this.loadingSubject.next(estado);\n return true;\n }\n\n verifyValidate = () => {\n this.setLoading()\n setTimeout(r => this.emitResult(), 1000);\n }\n\n setMethod = async (method) => {\n this.methodDataSubject.next(null);\n let result = await this.paymentService.putPayment(method.code);\n this.methodDataSubject.next(method);\n // this.isMP(method.code) && this.getPreference();\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n submitForm = (event) => {\n try {\n //console.log(\"EVENT\", event);\n event.preventDefault();\n return false;\n } catch (e) {\n //console.log('SE ROMOPIO EL PREVENT DEFAULT')\n }\n\n }\n\n getPK = (method) => (method.config.public_key || method.public_key);\n\n isRedirectRedsys = (code: string) => code && code.toLocaleLowerCase().includes('redsys_redirect');\n\n isRedirectCecaBank = (code: string) => code && code.toLocaleLowerCase().includes('ceca_bank_redirect');\n\n isMP = (code: string) => code && code.toLocaleLowerCase() == ('mercado_pago');\n \n isMPTarjetaDeCredito = (code: string) => code && code.toLocaleLowerCase().includes('credit');\n\n isMethodOffline = (code: string) => code && code.toLocaleLowerCase().includes('offline');\n\n isPeyPalExpress = (code: string) => code && code.toLocaleLowerCase().includes('paypal') && code.toLocaleLowerCase().includes('express');\n\n isMobbex = (code: string) => code && code.toLocaleLowerCase().includes('mobbex');\n\n isBancard = (code: string) => code && code.toLocaleLowerCase().includes('bancard');\n\n isDecidir = (code: string) => code && code.toLocaleLowerCase().includes('decidir');\n}","import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\nimport { map } from 'rxjs-compat/operator/map';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ShipmentService } from '../../../services/checkout/shipment.service';\nimport { ProductsService } from '../../../services/products/products.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-shipment-ec',\n templateUrl: './shipment-ec.component.html',\n styleUrls: ['./shipment-ec.component.scss'],\n providers: [ShipmentService]\n})\nexport class ShipmentEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() step_id;\n public methods_list: any[];\n public loading_internal = false;\n public points: any[] = [];\n public selected_final;\n public costos = null\n public costs = []\n\n contracts = [];\n\n constructor(public shipmentService: ShipmentService, protected toastrService: ToastService,\n public productsService: ProductsService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n emitResult = (method_name, contract_data) => {\n contract_data = {\n ...contract_data,\n shipping_method_contract: method_name + '_' + contract_data.name,\n shipping_method_branch_code: method_name == \"branch_delivery\" ? contract_data.sucursal_id : contract_data.name,\n }\n this.shipmentService.setContract(contract_data);\n }\n\n verifyValidate = (contract, data) => {\n try {\n this.costs.forEach(cost => cost.contracts.forEach(co => co.selected = false))\n this.costs.find(cost => cost.name == contract).contracts.find(contra => contra.name == data.name).selected = true\n } catch (error) {\n console.log(\"error al buscar contrato\", error);\n }\n this.emitResult(contract, data);\n };\n\n ngOnInit() {\n this.shipmentService.initialize(this.step_id);\n this.shipmentService.getShipmentMethods();\n this.checkoutService.asociatedData$.subscribe(data => {\n this.costos = data && data.find(value => value.type == \"shipment\") || null\n })\n this.shipmentService.costs.subscribe(cos => {\n this.costs = cos.map(cost => { return { ...cost, contracts: cost.contracts.map(co => { return { ...co, selected: false } } ) } })\n if (this.costs.length && this.costs[0]?.name && this.costs[0]?.contracts[0]) {\n this.verifyValidate(this.costs[0].name, this.costs[0].contracts[0])\n }\n })\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n this.shipmentService.getShipmentMethods();\n }\n\n toTraducible = (name) => name.replace(/_/g, '-');\n\n deleteUPS = (methods) => methods.filter(method => method.name != 'UPS');\n\n setMethod = (method) => {\n this.loading_internal = true;\n this.shipmentService.restartStep();\n setTimeout(() => {\n this.shipmentService.setMethod(method).then(res => this.loading_internal = false);\n }, 1000);\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n validName = (name) => isNaN(name);\n\n showResponse = (costs) => console.log(costs);\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-order-success-ec',\n templateUrl: './success-ec.component.html',\n styleUrls: ['./success-ec.component.scss']\n})\nexport class SuccessEcComponent extends ComponentHelper implements OnInit {\n\n public orderDetails = {};\n public params: any = {};\n public from_mp = true;\n\n constructor(protected activedRoute: ActivatedRoute, protected cartService: CartService, public router: Router, protected checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.checkoutService.order$.subscribe(\n res => {\n //console.log('LO QUE LLEGA EN ORDEN', res);\n this.params = {\n external_reference: res.number,\n }\n }\n );\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n// import { Constants, Filter, OptionsService, Product, ProductsService } from 'ng-easycommerce';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Filter } from '../../classes/filters/Filter';\nimport { Constants } from '../../core.consts';\nimport { FilterType } from '../../interfaces/filter';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { AuthService } from '../../services/auth.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n\n@Component({\n selector: 'app-collection-ec',\n templateUrl: './collection-ec.component.html',\n styleUrls: ['./collection-ec.component.scss']\n})\nexport class CollectionEcComponent extends ComponentHelper implements OnInit {\n\n public filters: Filter[] = [];\n public filters_top: Filter[];\n // public optionsFilters: ['all'];\n public products: Product[];\n public finished = false;\n protected suscripcion: Subscription;\n public loading = true;\n public breadcrumb: string[] = []\n public isCollection = true;\n public params: any;\n\n @Input() type;\n @Input() value;\n @Input() productsWithUniqueVariant: boolean = false;\n @Input() optionsFilters: FilterType[] = ['all'];\n\n constructor(public productsService: ProductsService,\n protected paramsSrv: ParametersService,\n protected activeRoute: ActivatedRoute,\n protected optionsService: OptionsService,\n public authService: AuthService,\n private analyticsService: AnalyticsService,\n public cartService: CartService,\n public consts: Constants) {\n super();\n this.paramsSrv.parameters.subscribe(param => this.params = param)\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n window.scroll(0, 0);\n this.products = [];\n this.ecOnInit()\n this.getProductsAndSubscribe();\n }\n getProductsAndSubscribe(): void {\n combineLatest([this.activeRoute.params, this.optionsService.ready, this.activeRoute.queryParams]).subscribe(([params, ready, queryParams]) => {\n if (ready.readyAll) {\n let cambio = false;\n this.products = [];\n if (!params['type'] || !params['value']) {\n this.productsService.getProductsForFilter({ latest: true, limit: 10 }, this.optionsFilters, queryParams.search);\n }\n else {\n this.productsService.getProductsForFilter({ type: params.type, value: params.value }, this.optionsFilters, queryParams.search);\n cambio = true;\n this.type = params['type'];\n this.value = params['value'];\n }\n try { this.suscripcion.unsubscribe(); } catch (e) { };\n this.suscripcion = this.productsService.products$.subscribe(\n res => {\n this.loading = false;\n if (res.length == 0) {\n this.products = [];\n this.finished = this.productsService.isFinished();\n } else {\n if (this.productsWithUniqueVariant) {\n if (cambio) {\n this.products = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n cambio = false;\n }\n else {\n res = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n this.products.push(...res)\n };\n } else {\n if (cambio) { this.products = res; cambio = false; }\n else this.products.push(...res);\n }\n }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: 'Collection', item_list_id: 'collection' })\n });\n this.productsService.filters$.subscribe(res => {\n this.breadcrumb = this.optionsService.getBreadcrumbByFilters(res);\n this.filters = this.getSpecificFilters(res, ['category', 'attributes', 'dynamics']);\n this.filters_top = this.getSpecificFilters(res, ['sort']);\n });\n this.productsService.finished().subscribe(res => this.finished = res);\n this.loading = false;\n }\n })\n }\n\n getSpecificFilters = (filters: Filter[], types: FilterType[]): Filter[] => {\n let result = [];\n types.forEach(type => {\n let result_filter = filters.find(filter => filter.type() == type);\n if (result_filter) result.push(result_filter);\n return result;\n });\n return result;\n }\n\n onScroll(): void {\n this.loading = true;\n if (!this.productsService.isWaiting() && !this.productsService.getNext()) {\n this.finished = true;\n this.loading = false;\n }\n }\n\n areProducts = () => this.products.length > 0;\n isWaiting = () => this.productsService.isWaiting();\n setFinished = () => this.finished = true;\n\n\n changeFilter = (e) => {\n if (!this.isCollection) {\n this.isCollection = true;\n }\n }\n\n addAllProductosToCart = (products = null) => {\n let items = [];\n (products || this.products).map(prod => prod.productWithUniqueVariant.map(p => items.push(p)))\n items = items.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem )\n items?.length && this.cartService.addAllToCart(items)\n }\n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: false , checkIfStock:true } \n } \n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { CartService } from '../../services/cart.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-coupon-ec',\n templateUrl: 'coupon-ec.component.html',\n styleUrls: ['coupon-ec.component.scss']\n})\nexport class CouponEcComponent extends ComponentHelper {\n\n public coupon_value = \"\";\n public aplied = false;\n public loading = false;\n\n constructor(public cartService: CartService, protected toastr: ToastService) { \n super();\n this.ecOnConstruct()\n }\n \n ngOnInit() {\n this.ecOnInit()\n }\n\n addCoupon = () => {\n this.validCoupon() && this.cartService.addCoupon(this.coupon_value).then(\n res => {\n res.error ? this.invalidCoupon() : this.applyCoupon();\n }\n )\n }\n\n invalidCoupon = () => {\n this.toastr.show('invalid-coupon');\n this.coupon_value = '';\n this.loading = false;\n }\n\n applyCoupon = () => {\n this.aplied = true;\n this.loading = false;\n }\n\n setLoading = () => this.loading = true;\n\n validCoupon = (): boolean => \n this.coupon_value && /^([A-Za-z\\-0-9]*)\\w+$/.test(this.coupon_value);\n}","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { FAQ } from '../../interfaces/faqs';\nimport { OptionsService } from '../../services/options.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-faqs-content-ec',\n templateUrl: 'faqs-content-ec.component.html',\n styleUrls: ['faqs-content-ec.component.scss']\n})\nexport class FaqsContentEcComponent extends ComponentHelper implements OnInit {\n\n public faqs : FAQ[];\n public actual_index;\n public empty_faqs = false;\n\n constructor(protected optionsService: OptionsService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.optionsService.getFAQ().toPromise().then(\n faqs => {\n console.log('LAS FAQS; ', faqs);\n if (faqs.length > 0) {\n this.faqs = faqs;\n this.actual_index = 0;\n } else {\n this.empty_faqs = true;\n }\n },\n error => {\n console.log(error);\n this.toastr.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(err => this.toastr.show('empty-faqs')); \n this.ecOnInit()\n\n }\n\n changeFAQ = (new_index) => this.actual_index = new_index;\n}","import { Component, Input, OnChanges, OnInit, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-ec',\n templateUrl: './filters-ec.component.html',\n styleUrls: ['./filters-ec.component.scss']\n})\nexport class FiltersEcComponent extends ComponentHelper implements OnInit {\n\n @Input() setSelected;\n @Input() filters;\n public expand: boolean = true;\n\n\n constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n close = (accordion_id) => {\n // this.consts.mobile()\n // ? this.document.getElementById(\"accordionExample\").classList.remove('show')\n // : this.document.getElementById(accordion_id).classList.remove('show');\n return true;\n };\n\n}\n","import { Component, Input, OnChanges, OnInit, Inject, EventEmitter, Output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-top-ec',\n templateUrl: './filters-top-ec.component.html',\n styleUrls: ['./filters-top-ec.component.scss']\n})\nexport class FiltersTopEcComponent extends ComponentHelper implements OnInit {\n\n // @Input() setSelected;\n // @Input() filters;\n\n // public expand: boolean = true;\n\n\n // constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n // super();\n // this.ecOnConstruct() \n // }\n\n // ngOnInit() {\n // this.expand = !this.consts.mobile()\n // this.ecOnInit()\n\n // }\n\n // ngOnChanges() {\n // }\n\n // setSelectedInternal = (filter, $event) => {\n // console.log('EL VALO RQUE VA A MANDAR: ', $event.target.value);\n // this.setSelected(filter, $event.target.value);\n // }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n @Input() setSelected;\n @Input() filters;\n @Input() full = true\n @Output() changeFilter = new EventEmitter();\n\n public expand: boolean = true;\n\n constructor(private consts: Constants, @Inject(DOCUMENT) private document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.full = !this.consts.mobile()\n this.ecOnInit()\n }\n\n ngOnChanges() {\n }\n\n mid = (filter, filterChild, value) => {\n // console.log(\"FILTER \", filter);\n // console.log(\"HIJO \", filterChild);\n // console.log(\"VALOR \", value);\n this.changeFilter.emit(value);\n return true\n }\n\n close = () => {\n //this.document.getElementById(\"filtros\").classList.remove('in');\n return true;\n };\n\n getDescripcion = (title) => {\n switch (title) {\n case 'most-expensive-first':\n return '+';\n case 'cheapest-first':\n return '-';\n case 'ascendancy':\n return 'Asc';\n case 'descendant':\n return 'Desc';\n default:\n return title;\n }\n }\n\n getStyles = (state) => {\n console.log(state);\n return (state) ? 'btn btn-secondary btn-sm active' : 'btn btn-secondary btn-sm'\n }\n\n setSeleccion = (values) => {\n //console.log('SELECIOTOTOT => ', values);\n let valores = values.split('@')\n let filter = this.filters.find(f => f.type() == valores[0]);\n let opChild = {}\n if (valores[1] == 'sub') {\n opChild = (filter.data.find(f => f.children.find(c => c.selected))).children.find(c => c.selected)\n } else {\n opChild = (filter.data.find(f => f.children.find(c => c.value == valores[2]))).children.find(c => c.value == valores[2])\n }\n this.setSelected(filter, opChild)\n }\n\n createValue = (filter, filterItem) => filter.type() + '@' + filterItem.type + '@' + filterItem.value\n\n}\n","import { Component, OnInit, Output } from '@angular/core';\nimport { EventEmitter } from 'events';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-footer-ec',\n templateUrl: 'footer-ec.component.html',\n styleUrls: ['footer-ec.component.scss']\n})\n\nexport class FooterEcComponent extends ComponentHelper implements OnInit {\n public menuItemsCategories: Menu[] = [];\n public menuItemsSections: Menu[] = [];\n public menuItemsAttributes: Menu[] = [];\n\n public sections = [];\n public categories = [];\n public attributes = [];\n public mediaUrl: string;\n public params: any = {};\n\n\n constructor(protected optionsService: OptionsService, public paramsService: ParametersService, protected consts: Constants) {\n super();\n this.optionsService.sections.subscribe(res => (res.length > 0) && this.updateMenuItem(res));\n this.optionsService.categories.subscribe(res => (res.length > 0) && this.updateCategories(res));\n this.optionsService.attributes.subscribe(res => (res.length > 0) && this.updateAttributes(res));\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.ecOnInit()\n\n }\n\n protected updateCategories = (categories) => {\n this.menuItemsCategories = this.optionsService.generateMenu(categories);\n this.menuItemsCategories = this.ecUpdateMenuItemCategories(this.menuItemsCategories)\n this.categories = this.menuItemsCategories\n }\n\n protected updateAttributes = (attributes) => {\n this.menuItemsAttributes = this.optionsService.generateMenu(attributes);\n this.menuItemsAttributes = this.ecUpdateMenuItemAttributes(this.menuItemsAttributes)\n this.attributes = this.menuItemsAttributes\n }\n\n protected updateMenuItem = (elements) => {\n this.menuItemsSections = this.optionsService.generateMenu(elements);\n this.menuItemsSections = this.ecUpdateMenuItemSection(this.menuItemsSections)\n this.sections = this.menuItemsSections;\n }\n\n hasParams = (params, searched) => params && params.find(param => param.code.toLowerCase().includes(searched));\n\n mobile = () => this.consts.mobile();\n\n public addChildren = (menuItems, code, item, stackPlace = 'end') => {\n (stackPlace == 'start')\n ? menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.unshift(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n : menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.push(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n }\n\n public ecUpdateMenuItemSection = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemCategories = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemAttributes = (menuItems) => {\n return menuItems\n }\n}","import { Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Router, Event, NavigationStart } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { Constants } from '../../core.consts';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { AuthService } from '../../services/auth.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { TranslateService } from '@ngx-translate/core';\ndeclare var $ : any\n\n@Component({\n selector: 'app-header-ec',\n templateUrl: './header-ec.component.html',\n styleUrls: ['./header-ec.component.scss']\n})\n\nexport class HeaderEcComponent extends ComponentHelper implements OnInit {\n \n transparent: boolean;\n mediaMenu: boolean;\n\n //og elden\n public menuItems: Menu[] = [];\n public menuSections: any[] = [];\n\n public attributes: Menu[] = [];\n public categories: Menu[] = [];\n public envetUrlTransparent = [\"/home\", \"/\"];\n public searchValue: string;\n public params: any = {};\n public toggled = false;\n\n @ViewChild(\"menu\") menu_button: ElementRef;\n\n constructor(\n public router: Router,\n protected consts: Constants,\n public cartService: CartService,\n protected optionsService: OptionsService,\n public paramsService: ParametersService,\n public productsService: ProductsService,\n public authService: AuthService,\n public translate: TranslateService,\n protected renderer: Renderer2) {\n super();\n this.envetUrlTransparent = this.changeUrlTransparent(this.envetUrlTransparent)\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n this.changeUrlNavigation(url)\n this.envetUrlTransparent.find(evUrl => evUrl === url) != undefined \n ? this.transparent = true\n : this.transparent = false\n }\n });\n // menu\n this.optionsService.categories.pipe(filter(cat => cat.length > 0)).subscribe(res => {\n this.updateMenuItem('categories', res)\n this.subscribeCategories(res)\n });\n this.optionsService.attributes.pipe(filter(atr => atr.length > 0)).subscribe(res => {\n this.updateMenuItem('attributes', res)\n this.subscribeAttributes(res)\n });\n this.ecOnConstruct()\n }\n\n \n\n\n ngOnInit(): void {\n this.paramsService.parameters.subscribe(res => this.params = res);\n const mediaQuery = window.matchMedia('(max-width: 992px)');\n this.mediaMenu = mediaQuery.matches;\n this.ecOnInit()\n }\n\n protected updateMenuItem = (title, elements) => {\n const index = this.menuItems.findIndex(element => element.title == title);\n if (index != null && index >= 0) {\n this.menuItems[index].children = this.optionsService.generateMenu(elements);\n } else {\n if (title == 'attributes') {\n this.attributes.push(...this.optionsService.generateMenu(elements))\n this.attributes = this.updateMenuItemLastCreated(this.attributes);\n }\n if (title == 'categories') {\n this.categories.push(...this.optionsService.generateMenu(elements))\n this.categories = this.updateMenuItemLastCreated(this.categories);\n } \n }\n }\n\n nagivate = (url: string) => this.router.navigateByUrl(`/${url}`);\n \n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('home');\n }\n\n setSearchValue = (event) => {\n event.key == 'Enter' && this.getCollectionSearch()\n this.searchValue = event.target.value;\n }\n\n getCollectionSearch = () => this.router.navigateByUrl('/collection?search=' + this.searchValue);\n \n\n toogleToolbar = () => {\n console.log('LLAMA AL TOOGLE')\n if (this.menu_button.nativeElement.classList.contains('d-none')) {\n this.renderer.removeClass(this.menu_button, 'd-none');\n this.renderer.addClass(this.menu_button, 'active-mobile');\n } else {\n this.renderer.addClass(this.menu_button, 'd-none');\n this.renderer.removeClass(this.menu_button, 'active-mobile');\n }\n }\n\n changeLanguage = (lang) => {\n this.consts.setLocale(lang)\n window.location.reload()\n } \n\n changeUrlTransparent = (urlTransparent = []) => urlTransparent\n\n subscribeAttributes = (arrayAttributes: Array<any>) => {\n \n }\n\n subscribeCategories = (arrayCategories: Array<any>) => {\n \n }\n\n updateMenuItemLastCreated = (arrayMenu: Menu[]) => arrayMenu\n\n changeUrlNavigation = (url: string) => { }\n \n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n\n@Component({\n selector: 'app-home-ec',\n templateUrl: './home-ec.component.html',\n styleUrls: ['./home-ec.component.scss']\n})\nexport class HomeEcComponent extends ComponentHelper implements OnInit {\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.blocksService.getBlocks('home');\n this.ecOnInit()\n\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n noNewsletter = (block) => !block.code.includes('newsletter');\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\"\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { UserRoleType } from \"../../classes/user-role-type\";\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from \"../../utils/toast.service\";\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-login-ec',\n templateUrl: './login-ec.component.html',\n styleUrls: ['./login-ec.component.scss']\n})\nexport class LoginEcComponent extends ComponentHelper implements OnInit {\n\n @Input() redirect = true;\n @Input() title = 'login';\n @Input() buyButton = false;\n @Input() withRoles: UserRoleType[] = []\n @Output() ready = new EventEmitter();\n @Output() loggedIn = new EventEmitter();\n\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService,\n protected toastrService: ToastService,\n protected formBuilder: FormBuilder,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n\n ngOnInit() {\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.ecOnInit()\n\n }\n\n redirectHome = () => {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl('/home')\n }\n\n nagivate(url: string) {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl(`/${url}`);\n }\n\n\n login = ($event) => {\n $event.preventDefault();\n this.loading = true;\n this.authService.login(this.loginForm.value, this.withRoles).toPromise().then(\n res => {\n $('#collapse_login5').collapse('hide');\n if (res == 'ok') {\n localStorage.setItem('mail', this.loginForm.value.username);\n $('#collapse_login5').collapse('hide');\n if (this.redirect) {\n this.redirectHome()\n } else {\n this.loggedIn.emit('true')\n this.ready.emit(this.loginForm.value.username)\n }\n }\n else {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n $('#collapse_login5').collapse('hide');\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, partition } from 'rxjs';\nimport { Product } from '../../interfaces/product';\nimport { ProductsService } from './products.service';\nimport { CartService } from '../cart.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport _ from \"lodash\";\nimport { AnalyticsService } from '../analytics.service';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\n\n@Injectable()\nexport class ProductDetailService {\n\n private productSubject = new BehaviorSubject<Product>({});\n private optionsSubject = new BehaviorSubject<any>({});\n private asociatedDataSubject = new BehaviorSubject<any>({ price: '', stock: 0, picture: '' });\n\n private variants = []\n\n public product$ = this.productSubject.asObservable();\n public options$ = this.optionsSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n\n constructor(\n private productsService: ProductsService, private cartService: CartService, private toastrService: ToastService,\n private constants: Constants, public analyticsService: AnalyticsService,) {\n }\n\n /**\n * @param code Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * \n * Carga el producto solicitado asyncronicamente sin respuesta \n */\n loadProduct = (code, variant: boolean = false) =>\n this.productsService.getSpecificProduct(code, variant).toPromise().then(\n res => variant ? this.initialize(res, code) : this.initialize(res),\n err => this.productSubject.next(null)\n )\n\n /**\n * @param product_id Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * @async\n * \n * A diferencia del metodo loadProduct, este retorna un valor cuando termina \n */\n getProduct = async (product_id, variant: boolean = false) => {\n let result = await this.productsService.getSpecificProduct(product_id, variant).toPromise();\n if (!result || result.error) this.productSubject.next(null);\n else variant ? this.initialize(result, product_id) : this.initialize(result);\n return true;\n }\n\n private initialize = (product, variant_code?) => {\n this.productSubject.next(product);\n this.optionsSubject.next(this.getOptions())\n variant_code ? this.updateVariants(variant_code) : this.updateVariants();\n this.variants.length && this.generateAsociatedDataFromVariants();\n //this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n // variant_code && this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n }\n\n setProduct = (product) => this.isProductValid(product) && this.initialize(product);\n\n isReady = () => this.variants.length == 1;\n\n setOption = (option_code, option_value) => {\n let options = this.optionsSubject.value;\n let option = options.find(element => element.code == option_code).values.find(value => value.name == option_value);\n option.selected = !option.selected;\n options.find(element => element.code == option_code).values.forEach(\n value => { if (value.name != option.name) value.selected = false }\n );\n this.optionsSubject.next(options);\n this.updateVariants();\n this.generateAsociatedDataFromVariants();\n }\n\n changePicture = (picture) => {\n let data = this.asociatedDataSubject.value;\n data.picture = picture;\n this.asociatedDataSubject.next(data);\n }\n\n handleError = (error) => {\n // Whathever we need to do with error\n }\n\n addToCart(quantity) {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n this.toastrService.show('cant-buy');\n return;\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n this.variants.length == 0 && this.toastrService.show('no-variants');\n (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) && this.toastrService.show('variants-left');\n (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) && this.toastrService.show('out-of-stock');\n return;\n }\n if (!this.validateQuantity(quantity)) return;\n this.cartService.addToCart(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n };\n\n\n\n addToCartPromise = async (quantity) => {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n return { error: true, message: 'cant-buy' };\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n if (this.variants.length == 0) return { error: true, message: 'no-variants' };\n else if (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) return { error: true, message: 'variants-left' };\n else if (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) return { error: true, message: 'out-of-stock' };\n }\n if (!this.validateQuantity(quantity)) return;\n let result = await this.cartService.addToCartPromise(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n return (result && !(result.error));\n };\n\n private getOptions = (product_received?: Product) => {\n let product = product_received || this.productSubject.value;\n let options = [];\n product.options.forEach(element => {\n options.push(this.toOption(element));\n })\n return options;\n }\n\n private toOption = (preoption) => {\n return {\n name: preoption.label,\n code: preoption.code,\n type: preoption.type,\n values: preoption.values.map(value => ({ name: value.code, description: value.name, selected: false }))\n }\n }\n\n private makeAffordableProduct(product_selected: Product) {\n product_selected.price = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.saleprice = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.options = {};\n this.variants[0].options.forEach(option => product_selected.options = { ...product_selected.options, ...option })\n return product_selected;\n }\n\n private updateVariants = (code?) => {\n let variants = this.productSubject.value.variants;\n if (!code) {\n this.optionsSubject.value.forEach(option => {\n option.values.forEach(value => {\n if (value.selected) {\n variants = variants.filter(variant => {\n return variant.options.some(variant_option => {\n return (option.code in variant_option && variant_option[option.code] == value.name);\n })\n })\n }\n })\n })\n } else {\n variants = variants.filter(variant => variant.code == code);\n }\n this.variants = variants;\n code && this.updateOptions();\n }\n\n private updateOptions = () => {\n let { options } = this.variants.length && this.variants[0];\n options && options.forEach(option => Object.keys(option).forEach(key => this.setOption(key, option[key])))\n }\n\n private generateAsociatedDataFromVariants = () => {\n let asociated: any = {};\n if (this.isReady()) {\n asociated.stock = this.variants[0].stock\n asociated.price = this.variants[0].price.toString()\n asociated.saleprice = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n asociated.discount = this.variants[0]?.discount || undefined;\n // asociated.price = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n // asociated.saleprice = this.variants[0].price.toString()\n } else {\n asociated.price = this.cratePrice()\n asociated.saleprice = this.crateSalePrice()\n asociated.stock = (this.variants.map(variant => variant.stock)).reduce((a, b) => a + b)\n asociated.discount = this.crateDiscount()\n }\n\n ('images' in this.variants[0] && this.variants[0].images.length > 0)\n ? asociated.picture = this.variants[0].images[0]\n : asociated.picture = (this.asociatedDataSubject.value.picture || this.productSubject.value.picturesdefault[0]);\n\n\n asociated.maximumAmount = this.variants[0]?.maximumAmount || 0\n asociated.minimumAmount = this.variants[0]?.minimumAmount || 0\n\n asociated.maximumItemsQuantity = this.variants[0]?.stock > 0 && 'maximumItemsQuantity' in this.variants[0] ? this.variants[0]?.maximumItemsQuantity : this.variants[0]?.stock\n asociated.minimumItemsQuantity = this.variants[0]?.stock > 0 && 'minimumItemsQuantity' in this.variants[0] && this.variants[0]?.minimumItemsQuantity > 0 ? this.variants[0]?.minimumItemsQuantity : 1\n\n asociated.finalConsumer = {\n finalConsumerPrice: this.variants[0]?.final_consumer_price,\n originalFinalConsumerPrice: this.variants[0]?.original_final_consumer_price,\n }\n\n asociated.taxes = {\n taxIncluded: this.variants[0]?.taxIncluded,\n taxCategory: this.variants[0]?.taxCategory,\n }\n\n this.asociatedDataSubject.next(asociated);\n }\n\n private crateDiscount = () => {\n try {\n let all_discount = '';\n this.variants.forEach(variant => {\n variant.discount && (all_discount = all_discount + ', ' + variant.discount);\n });\n if (all_discount == '') {\n return undefined\n }\n return all_discount\n } catch (error) {\n return undefined\n }\n }\n\n private cratePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n all_prices.push(variant.price);\n });\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private crateSalePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n variant.saleprice && all_prices.push(variant.saleprice);\n });\n if (!all_prices.length) {\n return undefined\n }\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private inRange = (quantity, min, max) => ((quantity - min) * (quantity - max) <= 0)\n\n private validateQuantity = (quantity: number) => {\n const actualQuantity = this.cartService.getCountFromItemInCart(this.variants[0].code);\n const asociatedData = this.asociatedDataSubject.value;\n console.log('La cantidad que llego: ', quantity, ' y la cantidad actual: ', actualQuantity);\n if ((actualQuantity + quantity) > asociatedData.maximumItemsQuantity) {\n this.toastrService.show('maximum-items-quantity', { quantity: asociatedData.maximumItemsQuantity })\n return false;\n }\n if ((actualQuantity + quantity) < asociatedData.minimumItemsQuantity) {\n this.toastrService.show('minimum-items-quantity', { quantity: asociatedData.minimumItemsQuantity })\n return false;\n }\n return true\n }\n\n // Cuando haya modelos de respuesta, validamos que no se intente cargar un producto incompleto\n private isProductValid = (product: Product) => true;\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * \n * @description Retorna una lista filtrada de las variantes que estan seleccionadas\n */\n private getVariantsSelected(options: any, optionsException: Array<any>): Array<Object> {\n\n let variantsSelected = [];\n options.forEach(v => {\n if (v.values && v.values.length) {\n v.values.forEach(val => {\n if (val.selected && !optionsException.find(op => op.toUpperCase() == v.code.toUpperCase())) {\n variantsSelected[v.code] = val.name;\n }\n })\n }\n });\n\n return variantsSelected;\n\n }\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * @param variants Todas las variantes disponibles del producto\n * \n * @description retorna todas las variantes disponibles a seleccion y su stock\n */\n public getVariantsAvailable(options: any, variants: any, optionsException: Array<any>): any {\n\n let variantsSelected = this.getVariantsSelected(options, optionsException);\n\n let variantsAvailable = [];\n\n variants.map(v => {\n\n let aux = {};\n if (v.options && v.options.length) {\n v.options.map(op => {\n Object.assign(aux, op, { stock: v.stock });\n })\n }\n variantsAvailable.push(aux);\n })\n return variantsAvailable.filter(va => this.constants.containsAll({ ...variantsSelected }, va))\n }\n\n\n /**\n * \n * @param options Array de variantes y sus valores\n * @param code Codigo de la variante a buscar\n * @param name nombre de la variante a buscar\n * @param variants variantes del producto\n * \n * @description busca en la lista de variantes disponibles si hay de ese codigo, ese nombre y con stock \n */\n public existVariantAndHasStock(options, code, name, variants, optionsException = []): boolean {\n\n return this.getVariantsAvailable(options, variants, optionsException).find(va =>\n va.hasOwnProperty(code) && va[code] === name && va.stock > 0)\n }\n\n /**\n * \n * @param product producto el cual se quiere desdoblar por variantes por una opción.\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\n * @returns arreglo con el producto desdoblado por la variante solicitada.\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \n */\n getProductWithUniqueVariant = (product, withOption?: ParamsProductsWithUniqueVariant) => {\n return this.productsService.getProductsWithUniqueVariant([product], withOption)\n }\n\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ToastService } from '../../utils/toast.service';\n\n\n@Component({\n selector: 'app-product-detail-ec',\n templateUrl: './product-detail-ec.component.html',\n styleUrls: ['./product-detail-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductDetailEcComponent extends ComponentHelper implements OnInit {\n\n public product: any;\n public mediaUrl;\n public show = false;\n public quantity = 1;\n public breadcrumb = [];\n public carousel: any;\n public code = null;\n public focusImage: string = null\n public owlOptions = {}\n \n\n @ViewChild('contact') contact: ElementRef;\n\n constructor(\n public productService: ProductDetailService,\n public consts: Constants,\n protected activedRoute: ActivatedRoute,\n public cartService: CartService,\n public optionsService: OptionsService,\n public productsService: ProductsService,\n public analyticsService: AnalyticsService,\n public router: Router,\n protected toastrService: ToastService) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.activedRoute.params.subscribe(queryParams => {\n let variant: any = (this.activedRoute.snapshot.queryParamMap.get('variant'));\n let code = queryParams.id;\n this.productService.loadProduct(code, variant);\n this.code = queryParams.id\n })\n this.productService.product$.subscribe(res => {\n this.product = res;\n window.scroll(0, 0);\n this.breadcrumb = this.optionsService.getBreadcrumb(this.product.category);\n });\n this.productService.product$.pipe(filter(data => data && data.id && data.id != 0)).subscribe(\n (productParam) => {\n this.analyticsService.callEvent('view_item', { ...productParam, currency: this.consts.currency.code })\n this.changeImgFocus(productParam.picturesdefault[0])}\n )\n this.ecOnConstruct()\n\n }\n\n ngOnInit(): void {\n this.ecOnInit()\n }\n\n addToCart = () => {\n this.quantity > 0 && this.productService.addToCart(this.quantity);\n }\n\n addAllProductosToCart = () => {\n let items = this.product.productWithUniqueVariant?.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem)\n items?.length && this.cartService.addAllToCart(items)\n }\n\n scroll() {\n let el = this.contact.nativeElement as HTMLElement;\n el.scrollIntoView();\n }\n\n saveRef = (carousel) => {\n this.carousel = carousel;\n }\n\n plus = (stock) => this.quantity < stock ? this.quantity = this.quantity + 1 : this.toastrService.show('out-of-stock-actually');\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n showContact = () => this.show = true;\n hideContact = () => this.show = false;\n\n thereIsMoreInfo = (product: any) => {\n let result;\n if (product?.special_mark && product?.special_mark.length) {\n result = product?.special_mark?.find(special_mark => special_mark.type == 'more_info');\n }\n return result;\n }\n\n changeImgFocus = (img) => {\n this.focusImage = img\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AuthService } from '../../services/auth.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\n\n@Component({\n selector: 'app-product-ec',\n templateUrl: './product-ec.component.html',\n styleUrls: ['./product-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductEcComponent extends ComponentHelper implements OnInit {\n\n public quantity = 1;\n public stock = 0\n public data = null\n\n\n constructor(public consts: Constants, public router: Router,public productService: ProductDetailService,public authService: AuthService,) {\n super();\n this.ecOnConstruct()\n }\n @Input() product: any;\n\n ngOnInit(): void {\n this.productService.setProduct(this.product)\n this.productService.asociatedData$.subscribe(res => { this.data = res; this.stock = res.stock })\n this.ecOnInit()\n }\n\n canBuy = () => false;\n\n ngOnChanges() {\n }\n\n buyOrRedirect = (variant = false) => {\n let idredirect = variant && this.product.variants.find(v => v.stock > 0)?.code\n if (!idredirect) { idredirect = this.product.id; variant = false }\n else { if (idredirect.includes(\"/\")) {idredirect = this.product.id ; variant = false} }\n this.router.navigateByUrl(`/product/${idredirect}${variant ? '?variant=true':''}`)\n }\n\n plus = () => this.quantity = this.quantity + 1;\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n addToCart = () => {\n this.productService.addToCart(+this.quantity)\n }\n\n getBrandName = product => {\n if (product && product.attributes)\n return product.attributes\n .filter(attribute => attribute.code === 'marca')\n .map(attribute => attribute.children[0].name)\n }\n}\n","import { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n@Component({\n selector: 'app-related-products-ec',\n templateUrl: './related-products-ec.component.html',\n styleUrls: ['./related-products-ec.component.scss']\n})\nexport class RelatedProductsEcComponent extends ComponentHelper implements OnInit {\n\n public relatedProducts = [];\n @Input() product_id;\n public name = null;\n\n constructor(protected productsService: ProductsService,\n private analyticsService: AnalyticsService,\n public consts: Constants,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.load(this.product_id)\n this.ecOnInit()\n }\n\n load(product_id) {\n this.productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(\n res => {\n this.relatedProducts = res\n res.map(products => this.analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.title?.toLowerCase()?.replace(' ', '-') || 'related-products' }))\n },\n //res => res.items ? this.products = res.items : null\n // err => this.toastrService.show('unable-to-fetch-products')\n )\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.load(changes.product_id.currentValue)\n //this.doSomething(changes.categoryId.currentValue);\n // You can also use categoryId.previousValue and \n // categoryId.firstChange for comparing old and new values\n\n }\n\n\n\n public customOptions: any = {\n loop: true,\n dots: false,\n navSpeed: 950,\n margin: 0,\n navText: ['', ''],\n nav: true,\n responsive: {\n 0: {\n items: 1,\n nav: true\n },\n 600: {\n items: 3,\n nav: true\n },\n 900: {\n items: 4,\n nav: true,\n }\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { OptionsService } from '../../services/options.service';\n\n@Component({\n selector: 'app-section-container-ec',\n templateUrl: './section-container-ec.component.html',\n styleUrls: ['./section-container-ec.component.scss']\n})\nexport class SectionContainerEcComponent extends ComponentHelper implements OnInit {\n\n public content_html: SafeHtml = \"<p>Sin información</p>\";\n public loadSection: boolean = false;\n @Input() sanitizeHtml: boolean = false\n @Input() name = null;\n\n constructor(protected activatedRoute: ActivatedRoute, protected optionsService: OptionsService,\n protected toastrService: ToastrService, protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n if (this.name) {\n this.getSection(this.name)\n } else {\n this.activatedRoute.params.subscribe(\n params => {\n this.name = params.name;\n this.getSection(this.name)\n }\n );\n }\n this.ecOnInit()\n }\n\n getSection = (link: any) => {\n this.loadSection = false\n this.optionsService.getSectionContentByLink(link).toPromise().then(\n html => {\n if (html) this.content_html =\n this.sanitizeHtml\n ? html\n : this.sanitizer.bypassSecurityTrustHtml(html)\n this.loadSection = true\n }\n ,\n error => {\n console.log(error);\n this.loadSection = true\n this.content_html = \"<p>Sin información</p>\";\n this.toastrService.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(error => {\n this.content_html = \"<p>Sin información</p>\"\n this.loadSection = true\n });\n }\n}","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { StoresService } from '../../services/stores.service';\n\n@Component({\n selector: 'app-store-ec',\n templateUrl: 'stores-ec.component.html',\n styleUrls: ['stores-ec.component.scss']\n})\nexport class StoresEcComponent extends ComponentHelper {\n\n public filterStores = null\n public storesAll = null\n public exclusiveStores = null\n public imageMap = true\n public urlmap;\n public stores = [];\n public provinces = []\n\n constructor(public storesService: StoresService, public consts: Constants , protected sanitizer: DomSanitizer) {\n super();\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148')\n this.storesService.stores.pipe(filter(store => store && store.length > 0)).subscribe(stores => {\n this.storesAll = stores\n this.stores = stores\n this.exclusiveStores = stores.filter(store => store.exclusive )\n this.selectChange('')\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n updateMap(url:string) {\n url = url.includes ('embed') ? url : 'https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148'\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl(url)\n }\n\n /**\n * @description Obtiene todas la provincias que figuren en el arreglo\n * @param stores Arreglo de tiendas\n * @returns {Array} Arreglo de provincias\n */\n getProvices = (stores) => {\n let provincesOpt = []\n stores.forEach(store => {\n if (provincesOpt.find(s => s.code == store.province.code) == undefined) {\n provincesOpt.push(store.province)\n }\n });\n return provincesOpt\n }\n\n /**\n * @description Retorna un arreglo de objetos formado por las claves \n * \"province\"(contiene un objeto provincia) y\n * \"stores\" (contiene un arreglo de tiendas pertenecientes a la provincia)\n * @param stores Opcional, arreglo de tiendas a la que se le quiere aplicar la division por provincia\n * @returns {Array<{\"province\", \"stores\"}>}\n */\n getStoresByProvinces = (stores = this.stores) => {\n let storesByProvinces = []\n if(stores){\n let provinces = this.getProvices(stores)\n provinces.forEach( elem => {\n let aux = stores?.filter(store => store.province.code == elem.code)\n storesByProvinces.push({province:elem,stores:aux})\n })\n }\n return storesByProvinces\n } \n\n /**\n * @description Retorna las tiendas con/sin retiro en el local\n * @param stores Opcional, arreglo de tiendas \n * @param cond Opcional, Si es \"true\" obtiene las tiendas con retiro local caso contrario \"false\"\n * @returns {Array<Store>} Arreglo de Store\n */\n getPickupStores = (stores = this.stores, cond:Boolean = true) => stores && stores.filter(store => cond == store.pickupStore)\n\n /**\n * @description Metodo que devuelve las tiendas que NO son exclusivas.\n * @returns {Array<Store>} Arreglo de Store\n */\n getNonExclusiveStores = () => this.stores.filter(store => !store.exclusive )\n\n selectChange = (select) => {\n this.filterStores = select != '' && this.storesAll.filter(store => store.province.code == select) || this.storesAll\n return true\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-product-variants-ec',\n templateUrl: 'variants-ec.component.html',\n styleUrls: ['variants-ec.component.scss']\n})\nexport class VariantsEcComponent extends ComponentHelper {\n\n @Input() product;\n @Input('options') options$;\n @Input() setOption;\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n setSeleccion = (values) => {\n $('#op').attr('disabled', true); \n let valores = values.split(',')\n if (valores.length != 2) return\n console.log(values);\n console.log(valores);\n this.setOption(valores[0], valores[1])\n }\n\n view = (length, options) => {\n // console.log('LAS OPCIONES', options);\n return length > 1;\n }\n\n\n\n}","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport { take } from 'rxjs/operators';\nimport Fuse from 'fuse.js'\n\nexport type SellerDashboardUI =\n | 'HEADER_TAB'\n | 'GENERATE_BUDGET_BTN'\n | 'MANAGE_ORDERS_BTN'\n | 'SORT_SELECT'\n | 'SEARCH_FORM'\n | 'ORDER_COUNTER'\n\n@Component({\n selector: 'app-seller-dashboard-container',\n templateUrl: 'seller-dashboard-container-ec.component.html',\n styleUrls: ['seller-dashboard-container-ec.component.scss']\n})\nexport class SellerDashboardContainerEcComponent extends ComponentHelper implements OnInit {\n\n @Input() UIComponents: SellerDashboardUI[] = []\n \n public user = null\n public activeCustomer = null\n public sortValue = ''\n public searchInput = ''\n public customers = []\n public filteredCustomers = []\n private fuseOptions = {\n isCaseSensitive: false,\n shouldSort: false,\n tokenize: true,\n threshold: 0.2,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 0,\n keys: ['firstName', 'lastName', 'email', 'id']\n }\n private fuse = new Fuse(this.customers, this.fuseOptions)\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected constants: Constants, @Inject('env') protected env) {\n super()\n this.ecOnConstruct()\n }\n\n updateCustomers = () => {\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n\n this.filteredCustomers =\n this.searchInput\n ? this.fuse\n .search(this.searchInput)\n .map(customer => customer.item)\n : this.customers\n\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers(this.sortValue)\n }\n\n /**\n * @description Ordena la lista de clientes\n * @param value recibe una cadena que de estar formada de la forma \"tipoOrdenacion_atributoPorOrdenar\"\n * Ejemplo: \"asc_firstName\" o \"desc_id\" ...\n */\n sortCustomers = value => {\n \n this.sortValue = value\n \n let values = (value as string).split('_')\n let sortType = values[0]\n let attribute = values[1] \n\n const comparator =\n (sortType == 'asc')\n ? [-1, 1]\n : [1, -1]\n\n let typeValue\n if(this.filteredCustomers.length > 0){\n typeValue = typeof(this.filteredCustomers[0][attribute])\n }\n let sortFunction = typeValue == 'number' ? this.sortNumber : this.sortText\n \n this.filteredCustomers =\n this.sortValue\n ? this.filteredCustomers.sort( (aCustomer,otherCustomer) => sortFunction(aCustomer,otherCustomer,attribute,comparator))\n : this.filteredCustomers\n }\n\n private sortNumber = (aCustomer, otherCustomer, attribute, comparator) => aCustomer[attribute] < otherCustomer[attribute] ? comparator[0] : comparator[1]\n\n private sortText = (aCustomer, otherCustomer, attribute, comparator) => {\n return (aCustomer[attribute] == otherCustomer[attribute])\n ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]\n : String(aCustomer[attribute]).toLowerCase() < String(otherCustomer[attribute]).toLowerCase() ? comparator[0] : comparator[1]\n }\n\n changeCustomer = customer => {\n this.authService.setCustomer(customer)\n customer\n ? this.toastrService.show('start-impersonating', { customer: customer.firstName + ' ' + customer.lastName })\n : this.toastrService.show('stop-impersonating')\n }\n\n hasHeader = () =>\n this.hasUIComponent('HEADER_TAB') ||\n this.hasUIComponent('GENERATE_BUDGET_BTN') ||\n this.hasUIComponent('MANAGE_ORDERS_BTN') ||\n this.hasUIComponent('SORT_SELECT') ||\n this.hasUIComponent('SEARCH_FORM')\n\n navigateExternal = url => window.open(url)\n\n hasUIComponent = (UIComponent: SellerDashboardUI) => this.UIComponents.includes(UIComponent)\n\n ngOnInit() {\n this.authService.getUserProfile()\n .pipe(take(1))\n .subscribe(user => {\n this.user = user\n this.customers = user.customers\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers('desc_ordersNotApproved')\n })\n \n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-full-ec',\n templateUrl: 'loading-full-ec.component.html',\n styleUrls: ['loading-full-ec.component.scss']\n})\nexport class LoadingFullEcComponent extends ComponentHelper {\n\n @Input() hole_height = false;\n \n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-inline-ec',\n templateUrl: 'loading-inline-ec.component.html',\n styleUrls: ['loading-inline-ec.component.scss']\n})\nexport class LoadingInlineEcComponent extends ComponentHelper {\n\n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { CartService } from '../../../../services/cart.service';\nimport { ComponentHelper } from '../../../../classes/component-helper';\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: '[app-mp-credit-ec]',\n templateUrl: 'mpcredit-ec.component.html',\n styleUrls: ['mpcredit-ec.component.scss']\n})\nexport class MPCreditEcComponent extends ComponentHelper implements OnInit {\n\n @Input() public_key;\n @Input() total_amount;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n\n public installments = [];\n public installment;\n public installment_data;\n public issuers = [];\n public issuer_id;\n public merchant_account_id;\n public doSubmit = false;\n public payment_method = '';\n public require_issuer = false;\n public allready_payed = false;\n public payment_method_option_id;\n public payment_method_id;\n public processing_mode;\n public token;\n public email;\n public doc_number;\n public doc_type = \"DNI\";\n public bin;\n public code;\n public month;\n public year;\n public cardholder;\n\n protected finishApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.cart_token + '/process-payment';\n\n constructor(protected renderer: Renderer2, protected connection: ConnectionService,\n public consts: Constants, protected cartService: CartService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n //console.log('SHIPMENT DATA', this.user_data);\n var s = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(s, 'src', 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js');\n this.renderer.appendChild(document.body, s);\n setTimeout(() => {\n Mercadopago.setPublishableKey(this.public_key);\n }, 1000)\n this.ecOnInit()\n\n }\n\n expiryChange = (event) => {\n let fecha = (event.target.value).replace(/ /g, \"\");\n let fechaSplit = fecha.split('/')\n if (fechaSplit.length == 2) {\n this.month = fechaSplit[0]\n this.year = fechaSplit[1]\n }\n }\n\n cardNumberChange = (event) => {\n //console.log('TOMA EL ON CHANGE DE TARJETA');\n this.restartInstallments();\n this.guessPaymentMethod(event);\n }\n\n verifyValidate = (data) => {\n // FALTA SACAR EL PAYMENT METOD OPTTION ID\n let post_data = {\n token: data.id,\n issuer_id: this.issuer_id,\n installments: this.installment,\n merchant_account_id: this.merchant_account_id,\n payment_method_option_id: this.payment_method_option_id,\n payment_method_id: this.payment_method_id,\n processing_mode: this.processing_mode,\n email: this.email,\n document_type: this.doc_type,\n document_number: this.doc_number,\n };\n //console.log('LA DATA QUE VA A MANDAR: ', post_data);\n this.connection.post(this.finishApi(), post_data).toPromise().then(this.processResponse, this.processError)\n }\n\n // Obtener método de pago de la tarjeta\n\n guessPaymentMethod = (event) => {\n //console.log('SE LLAMA AL GUESS PAYMENT');\n let cardnumber = (event.target.value).replace(/ /g, \"\");\n this.setPaymentMethod.bind(this);\n if (cardnumber.length >= 6) {\n let bin = cardnumber.substring(0, 6);\n this.getPaymentMethod(bin);\n }\n };\n\n getPaymentMethod = (bin) => {\n let data_to_send = {\n public_key: this.public_key,\n marketplace: 'NONE',\n status: 'active',\n js_version: '1.3.1',\n bins: bin,\n referer: 'http://enzoshoes.easycommercetech.com'\n }\n\n this.connection.getOutsiderWithParams('https://api.mercadopago.com/v1/payment_methods/search', data_to_send).toPromise().then((res) => {\n //console.log('LA RESPUESTA DEL SEARCH PAYMENT METHOD: ', res);\n if (res && res.results && res.results.length) {\n const payment_data = res.results.find(result => result.processing_mode == \"gateway\") || res.results[0];\n if (payment_data.payment_type_id != \"credit_card\") {\n this.toastr.show('Debe ingresar información de una tarjeta de credito');\n return;\n }\n this.payment_method = payment_data.id;\n this.issuer_id = payment_data.issuer.id;\n payment_data.payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: ('Cuotas: ' + payerCost.installments + ' - Total: ' + this.calculateTotal(payerCost)), value: payerCost.installments });\n });\n this.installment_data = payment_data;\n } else {\n this.toastr.show('El número de tarjeta ingresado no es valido');\n }\n }).catch(err => this.toastr.show('Hubo un error al obtener la información de la tarjeta. Verifique que los datos sean correctos.'));\n }\n\n setPaymentMethod = (status, response) => {\n //console.log('SE LLAMA AL SET PAYMENT', response);\n let paymentMethod = response[0];\n this.payment_method = paymentMethod.id;\n this.getIssuers.bind(this);\n this.getInstallments.bind(this);\n if (paymentMethod.additional_info_needed.includes(\"issuer_id\")) {\n this.getIssuers(paymentMethod.id);\n } else {\n // this.issuer_id = response.issuer\n this.getInstallments(\n paymentMethod.id,\n this.total_amount\n );\n }\n }\n\n // Obtener banco emisor\n\n getIssuers = (paymentMethodId) => {\n this.restartInstallments();\n this.require_issuer = true;\n //console.log('SE LLAMA AL GET ISSUER');\n this.setIssuers.bind(this);\n Mercadopago.getIssuers(\n paymentMethodId,\n this.setIssuers\n );\n }\n\n setIssuers = (status, response) => {\n //console.log('SE LLAMA AL SET ISSUER', response);\n this.getInstallments.bind(this);\n if (status == 200) {\n response.forEach(issuer => {\n this.issuers.push({ name: issuer.name, value: issuer.value });\n });\n } else {\n this.toastr.show('Error al obtener proveedores disponibles');\n }\n }\n\n // UTILS\n\n restartInstallments = () => {\n this.installments = [];\n this.installment_data = null;\n this.merchant_account_id = null;\n this.payment_method_option_id = null;\n this.issuer_id = null;\n this.payment_method_id = null;\n }\n\n selectIssuer = (value) => {\n this.issuer_id = value;\n this.getInstallments(this.payment_method, this.total_amount, this.issuer_id);\n }\n\n selectInstallment = (value) => {\n const cost = this.installments.find(installment_cost => installment_cost.value == value);\n this.installment = cost.value;\n this.merchant_account_id = this.installment_data.merchant_account_id;\n this.payment_method_option_id = cost.payment_method_option_id || (this.installment_data.agreements && this.installment_data.agreements[0].merchant_accounts[0].payment_method_option_id);\n this.issuer_id = this.installment_data.issuer.id;\n this.payment_method_id = this.installment_data.payment_method_id || this.installment_data.id;\n this.processing_mode = this.installment_data.processing_mode;\n\n //console.log('COMO QUEDAN: ', this.merchant_account_id, this.payment_method_option_id, this.issuer_id, this.payment_method_id, this.installment);\n // this.payme\n }\n\n // Obtener cantidad de cuotas\n\n getInstallments = (paymentMethodId?, transactionAmount?, issuerId?) => {\n let payment = paymentMethodId || this.payment_method;\n let amount = transactionAmount || this.total_amount;\n //console.log('SE LLAMA AL GET INSTALLMENTS');\n this.setInstallments.bind(this);\n let data = {\n \"payment_method_id\": payment,\n \"bin\": this.bin.replace(/ /g, \"\"),\n \"amount\": parseFloat(amount),\n \"issuer_id\": issuerId ? parseInt(issuerId) : undefined\n };\n //console.log('LO QUE VA A MANDAR AL GET INSTALLMENTS');\n Mercadopago.getInstallments(data, this.setInstallments);\n }\n\n setInstallments = (status, response) => {\n //console.log('LA RESPUESTA DEL GET INSTALLMENTS', response);\n if (status == 200 && response.length) {\n this.installments = [];\n response[0].payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: payerCost.recommended_message, value: payerCost.installments });\n });\n this.installment_data = response[0];\n } else {\n // alert(`installments method info error: ${response}`);\n this.toastr.show('Hubo un error al obtener las cuotas disponibles. Vuelva a intentarlo más tarde');\n }\n }\n\n // Crea el token de la tarjeta\n\n getCardToken = (event) => {\n //console.log('SE LLAMA AL GET CARD TOKEN');\n event.preventDefault();\n if (!this.doSubmit) {\n let $form = document.getElementById('paymentForm');\n Mercadopago.createToken.bind(this)($form, this.setCardTokenAndPay);\n return false;\n }\n };\n\n setCardTokenAndPay = (status, response) => {\n //console.log('SE LLAMA AL SET CARD TOKEN AND PAY');\n if (status == 200 || status == 201) {\n let form = document.getElementById('paymentForm');\n let card = document.createElement('input');\n card.setAttribute('name', 'token');\n card.setAttribute('type', 'hidden');\n card.setAttribute('value', response.id);\n form.appendChild(card);\n this.token = response.id;\n this.doSubmit = true;\n // form.submit();\n // TERMINAR\n this.verifyValidate(response);\n } else {\n //console.log('EL RESPONSE: ', response);\n this.toastr.show(this.parseErrorMessage(status));\n }\n };\n\n // UTILS\n\n isInvalid = () => {\n const result = (\n !this.issuer_id ||\n !this.payment_method_id ||\n !this.payment_method_option_id ||\n (this.processing_mode == 'gateway' && !this.merchant_account_id) ||\n !this.installment ||\n !this.email ||\n !this.doc_type ||\n !this.doc_number ||\n this.allready_payed ||\n !this.code ||\n !this.month ||\n !this.year ||\n !this.cardholder\n )\n return result;\n }\n\n calculateTotal = (cost) => {\n let result = this.total_amount + ((this.total_amount * cost.installment_rate) / 100);\n result = parseFloat(result).toFixed(2);\n return result;\n }\n\n processResponse = (response) => {\n if (response.status !== 'rejected') {\n //console.log('SE PUDO EFECTUAR LA COMPRA');\n this.ready.emit('true');\n return;\n }\n this.processError(response);\n }\n\n processError = (response) => {\n this.allready_payed = false;\n if (response.status_detail) {\n switch (response.status_detail) {\n case 'rejected': this.toastr.show('Revisa el número de tarjeta.'); break;\n case 'rejected': this.toastr.show('Revisa la fecha de vencimiento.'); break;\n case 'rejected': this.toastr.show('Revisa los datos.'); break;\n case 'rejected': this.toastr.show('Revisa el código de seguridad de la tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Debes autorizar ante payment_method_id el pago de amount.'); break;\n case 'rejected': this.toastr.show('Llama a payment_method_id para activar tu tarjeta o usa otro medio de pago. El teléfono está al dorso de tu tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.'); break;\n case 'rejected': this.toastr.show('Tu payment_method_id no tiene fondos suficientes.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesa pagos en installments cuotas.'); break;\n case 'rejected': this.toastr.show('Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesó el pago.'); break;\n }\n return;\n }\n this.toastr.show('Hubo un error al intentar realizar el pago. Vuelva a intentarlo más tarde');\n }\n\n parseErrorMessage = (status_code) => {\n switch (status_code) {\n case 205: return ('Ingresa el número de tu tarjeta.');\n case 208: return ('Elige un mes.');\n case 209: return ('Elige un año.');\n case 212: return ('Ingresa tu tipo de documento.');\n case 213: return ('Ingresa tu documento.');\n case 214: return ('Ingresa tu documento.');\n case 220: return ('Ingresa tu banco.');\n case 221: return ('Ingresa el nombre y apellido.');\n case 224: return ('Ingresa el código de seguridad.');\n case 316: return ('Ingresa un nombre válido.');\n case 322: return ('El tipo de documento es inválido.');\n case 323: return ('Revisa tu documento.');\n case 324: return ('El documento es inválido.');\n case 325: return ('El mes es inválido');\n case 326: return ('El año es inválido');\n default: return ('Verifique que los datos sean correctos.');\n }\n }\n\n getDescripcionCuota = (itemCuota) => {\n //console.log(itemCuota);\n return itemCuota.name\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { ProductsService } from '../../../services/products/products.service';\n\n@Component({\n selector: 'app-price-ec',\n templateUrl: 'price-ec.component.html',\n styleUrls: ['price-ec.component.scss']\n})\n\nexport class PriceEcComponent extends ComponentHelper implements OnInit {\n\n @Input() price;\n @Input() saleprice;\n @Input() priceSize: boolean = true\n @Input() classStrSpacing;\n\n constructor(public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-redsys-catch-ec',\n templateUrl: './redsys-catch-ec.component.html',\n styleUrls: ['./redsys-catch-ec.component.scss']\n})\nexport class RedsysCatchEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, public router: Router, public checkoutService: CheckoutService) {\n super();\n $(\"header\").hide();\n $(\"footer\").hide();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let state\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n state = queryRouter.state\n state && state == 'statuspayment' && (state = queryParams.status)\n console.log('PARAMETROS STATE -> ', state);\n switch (state) {\n case '200':\n state = 'success'\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'success':\n this.setStateInLocal('Su pago fue procesado con éxito.',state)\n break;\n case 'pending':\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'failure':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'cancel':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'ok':\n this.setStateInSesion('Su pago fue procesado con éxito.', state)\n break;\n case 'challenge':\n this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state)\n break;\n case 'error':\n this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state)\n break;\n case '0':\n state = 'failure'\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n default:\n break;\n }\n })\n this.ecOnInit()\n }\n\n\n setStateInLocal = (mensaje, state) => {\n this.message = mensaje\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n setStateInSesion = (mensaje, state) => {\n this.message = mensaje\n sessionStorage.setItem('state', state)\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { CartService } from '../../../services/cart.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-redsys-pro-ec',\n templateUrl: 'redsys-pro-ec.component.html',\n styleUrls: ['redsys-pro-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysProEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n @ViewChild('formDobleAuthContainer') protected formDobleAuth: ElementRef;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n protected intentoRequest: boolean = false\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected finishApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/process-payment';\n protected challengeApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/3ds-challenge';\n protected merchantOrder = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/ds-merchant-order';\n \n constructor(protected renderer: Renderer2, protected connection: ConnectionService, protected toastrService: ToastService,\n public consts: Constants, public cartService: CartService, protected toastr: ToastService, @Inject(DOCUMENT) protected document: Document,\n protected activedRoute: ActivatedRoute,protected modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('method', JSON.stringify(this.method))\n sessionStorage.setItem('user_data', JSON.stringify(this.user_data))\n sessionStorage.setItem('finishApi',this.finishApi())\n sessionStorage.setItem('challengeApi',this.challengeApi())\n sessionStorage.setItem('merchantOrder',this.merchantOrder())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state && state != 'challenge') {\n sessionStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-redsys-redirect-ec',\n templateUrl: 'redsys-redirect-ec.component.html',\n styleUrls: ['redsys-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state) {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-ceca-redirect-ec',\n templateUrl: 'ceca-redirect-ec.component.html',\n styleUrls: ['ceca-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CecaRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/cecabank/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n console.log(state);\n if (state) {\n localStorage.removeItem('state')\n if (state == 'success') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.modalRef.hide()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago')\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { OrdersService } from '../../../services/account/orders.service';\n// import { OwlOptions } from 'projects/ng-easycommerce/src/lib/ec-component/product-detail-ec/node_modules/projects/ng-easycommerce/src/lib/ec-component/home-ec/node_modules/ngx-owl-carousel-o';\n\n@Component({\n selector: 'app-orders-ec',\n templateUrl: 'orders-list-ec.component.html',\n styleUrls: ['orders-list-ec.component.scss']\n})\nexport class OrdersEcComponent extends ComponentHelper implements OnInit {\n\n public mediaUrl;\n public orders;\n public loading = true;\n public error;\n\n constructor(public ordersService: OrdersService, public router: Router, protected consts: Constants) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.updateOrders();\n this.ordersService.orders$.pipe(filter(or => or)).subscribe(\n orders => {\n this.orders = this.sortedByNewest(orders);\n this.loading = false\n },\n err => {\n this.loading = false\n this.error = 'orders-error';\n }\n )\n this.ecOnInit()\n\n }\n\n sortedByNewest = orders => orders && orders.length && orders.sort((anOrder, otherOrder) => anOrder.number > otherOrder.number ? -1 : 1)\n\n goToOrder = (order) => {\n this.ordersService.setSelectedOrder(order);\n this.router.navigateByUrl((`account/orders/${order.number}`))\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n optionsBox = {\n loop: true,\n autoplay: true,\n smartSpeed: 950,\n margin: 10,\n dots: false,\n dotsData: false,\n navText: [\"\", \"\"],\n responsive: {\n 0: {\n items: 1,\n },\n 600: {\n items: 1,\n },\n 1000: {\n items: 1,\n }\n }\n }\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { OrdersService } from '../../../services/account/orders.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-order-ec',\n templateUrl: 'order-ec.component.html',\n styleUrls: ['order-ec.component.scss']\n})\nexport class OrderEcComponent extends ComponentHelper implements OnInit {\n\n protected orderSubject = new BehaviorSubject<any>({});\n\n public order$ = this.orderSubject.asObservable();\n public order = null\n public loading = true;\n public error;\n @Input() numberOrder = null\n\n constructor(public ordersService: OrdersService, protected activedRoute: ActivatedRoute, public router: Router, public consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.selectedOrder$.subscribe(\n async res => {\n let order;\n if (this.numberOrder == null) {\n this.numberOrder = this.activedRoute.snapshot.params.number\n }\n if (res) order = res;\n else order = await this.ordersService.findOrder(this.numberOrder);\n order && this.orderSubject.next(order);\n !order && this.callError();\n this.order = order\n this.loading = false;\n }),\n err => {\n this.ordersService.error$.toPromise().then(res => this.error = res);\n this.loading = false;\n this.callError();\n }\n this.ecOnInit()\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n callError = () => {\n this.error = '?';\n this.router.navigateByUrl('account/orders');\n }\n\n volver = () => this.router.navigateByUrl('account/orders');\n\n}","import { Component, Input, OnInit, OnChanges } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-auth-ec',\n templateUrl: 'auth-ec.component.html',\n styleUrls: ['auth-ec.component.scss']\n})\nexport class AuthEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() complete = true;\n public data = {\n email: null,\n password: null,\n nombre: null,\n apellido: null,\n }\n @Input() redirect = true;\n public loginForm: FormGroup;\n public registerForm: FormGroup;\n public loading: Boolean = false;\n public register_loading: Boolean = false;\n public params: any = [];\n\n\n constructor(public authService: AuthService, protected toastr: ToastService,\n public paramsService: ParametersService,\n protected activatedRoute: ActivatedRoute,\n protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n\n this.activatedRoute.params.subscribe(\n params => {\n if (params?.data) {\n let resul = JSON.parse(atob(params.data))\n resul && this.authService.doLoginUser(resul)\n }\n }\n );\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n }\n\n setProp = (prop, event) => {\n this.data[prop] = event.target.value;\n }\n\n login = () => this.redirect && this.redirectHome();\n\n redirectHome = () => {\n setTimeout(() => this.router.navigateByUrl('/'), 1500);\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.router.navigateByUrl('home')\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}\n\n\n\n\n\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AnalyticsService } from '../../../services/analytics.service';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-register-form-ec',\n templateUrl: 'register-form-ec.component.html',\n styleUrls: ['register-form-ec.component.scss']\n})\nexport class RegisterFormEcComponent extends ComponentHelper implements OnInit {\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success: Boolean = false\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public registroUsuario: any = {\n firstName: '',\n lastName: '',\n email: '',\n plainPassword: '',\n plainPassword2: '',\n newsletter: false,\n terms: false,\n }\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public analyticsService: AnalyticsService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n this.ecOnInit()\n\n }\n\n setProp = (prop, event) => {\n this.registroUsuario[prop] = event.target.value;\n }\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.value.plainPassword != this.registerForm.value.plainPassword2) {\n this.toastr.show('Las contraseñas no coinciden');\n this.register_loading = false\n return;\n }\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.analyticsService.callEvent('sign_up', {\n firstName: this.registerForm.value.firstName,\n lastName: this.registerForm.value.lastName,\n email:this.registerForm.value.email\n })\n this.success =true\n this.ready.emit(true)\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { UserRoleType } from '../../../classes/user-role-type';\n\n@Component({\n selector: 'app-login-form-ec',\n templateUrl: 'login-form-ec.component.html',\n styleUrls: ['login-form-ec.component.scss']\n})\nexport class LoginFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Input() title = 'login';\n /* @Input() withRoles: UserRoleType[] = [UserRoleType.SELLER, UserRoleType.RETAILER, UserRoleType.WHOLESALER] */\n /* @Input() withRoles: UserRoleType[] = [] */\n @Output() ready = new EventEmitter();\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.redirect && this.authService.isAuthenticated() && this.redirectHome()\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n\n this.ecOnInit()\n }\n\n login = ($event, withRoles: UserRoleType[] = []) => {\n $event.preventDefault();\n this.loading = true;\n if (!this.loginForm.valid) {\n this.toastrService.show('Aún hay datos sin completar');\n return;\n }\n this.authService.login(this.loginForm.value, withRoles).toPromise().then(\n res => {\n if (res == 'ok') {\n if (this.redirect) {\n setTimeout(() => this.redirectHome(), 500);\n } else {\n this.ready.emit(this.loginForm.value.username);\n }\n }\n else {\n if (res == 'error') {\n /* Why would the USER care (or even know) about channels */\n /* this.toastrService.show('channel-permission-denied') */\n this.toastrService.show('invalid-credentials')\n this.loading = false;\n return\n }\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n redirectHome = () => {\n const resolverFunction = this.authService.getHomeResolver()\n resolverFunction\n ? resolverFunction()\n : this.router.navigateByUrl('/')\n }\n\n}","import { Component } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-forgot-password-ec',\n templateUrl: 'forgot-password-ec.component.html',\n styleUrls: ['forgot-password-ec.component.scss']\n})\nexport class ForgotPasswordEcComponent extends ComponentHelper {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n\n constructor(protected authService: AuthService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n recoverPassword = (event) => {\n event.preventDefault();\n if (!this.validEmail()) this.toastr.show('invalid-email');\n else {\n this.loading = true;\n this.authService.recoverPassword(this.email).toPromise()\n .then(this.processOk, this.processOk).catch(this.processOk);\n }\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('non-existent-email')\n : this.toastr.show(response.error);\n }\n\n validEmail = () => this.email != '' && this.email.includes('@');\n}","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\n\n@Component({\n selector: 'app-confirm-account-ec',\n templateUrl: 'confirm-account-ec.component.html',\n styleUrls: ['confirm-account-ec.component.scss']\n})\nexport class ConfirmAccountEcComponent extends ComponentHelper {\n\n public ok: Boolean = false;\n public error: Boolean = false;\n\n constructor(protected authService: AuthService, protected activedRoute: ActivatedRoute) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n const token = this.activedRoute.snapshot.queryParams.token;\n this.authService.confirmAccount(token).toPromise().then(this.onSuccess, this.onSuccess).catch(this.onSuccess) \n this.ecOnInit()\n\n }\n\n onSuccess = () => {\n this.ok = true;\n }\n\n onError = () => {\n this.error = true;\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-password-reset-ec',\n templateUrl: 'password-reset-ec.component.html',\n styleUrls: ['password-reset-ec.component.scss']\n})\nexport class PasswordResetEcComponent extends ComponentHelper implements OnInit {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n protected token;\n public formGroup: FormGroup;\n\n constructor(protected authService: AuthService, protected toastr: ToastService, protected activedRoute: ActivatedRoute, \n public router: Router, protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.token = this.activedRoute.snapshot.queryParams.token;\n !this.token && this.router.navigateByUrl('/');\n this.formGroup = this.formBuilder.group({\n first: ['', Validators.required],\n second: ['', Validators.required]\n })\n this.ecOnInit()\n\n }\n\n sendNewPassword = (event) => {\n event.preventDefault();\n if (this.invalidForm()) return;\n this.loading = true;\n this.authService.passwordReset(this.formGroup.value.first, this.token).toPromise()\n .then(this.processOk)\n .catch(this.processError);\n }\n\n invalidForm = () => {\n if (this.formGroup.valid) {\n const passwords = this.formGroup.value;\n if (passwords.first == passwords.second) return false;\n else this.toastr.show('password-doesnt-match');\n } else this.toastr.show('invalid-form');\n return true;\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('operation-error')\n : this.toastr.show(response.error);\n }\n\n sendToLogin = () => this.router.navigateByUrl('/auth/login');\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { BehaviorSubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { AuthService } from '../../../services/auth.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-register-wholesaler-form-ec',\n templateUrl: 'register-wholesaler-form-ec.component.html',\n styleUrls: ['register-wholesaler-form-ec.component.scss']\n})\nexport class RegisterWholesalerFormEcComponent extends ComponentHelper implements OnInit {\n\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected documentTypesSubject = new BehaviorSubject<any[]>([]);\n\n public provinces$ = this.provincesSubject.asObservable();\n public countries$ = this.countriesSubject.asObservable();\n public documentTypes$ = this.documentTypesSubject.asObservable();\n\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success : Boolean = false;\n public requestTerms = false;\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public params: any = {};\n\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public consts: Constants,\n public paramsService: ParametersService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.registerForm = this.formBuilder.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n documentType: [null, [Validators.required]],\n documentNumber: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', []],\n countryCode: [null, Validators.required],\n street: [null, [Validators.maxLength(50)]],\n city: ['', Validators.required],\n postcode: ['', Validators.required],\n provinceName: ['', Validators.required],\n provinceCode: [null, Validators.required],\n companyName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n gender: [null, []],\n birthday: [null, [Validators.maxLength(11)]],\n taxIdentification: ['', Validators.required],\n comments: ['', []],\n contactFirstName: ['', []],\n contactLastName: ['', []],\n contactCompanyPosition: ['', []],\n contactEmail: ['', []],\n contactDocumentType: ['', []],\n contactDocumentNumber: ['', []],\n subscribedToNewsletter: [false],\n terms: [true, Validators.required],\n });\n this.authService.getCountriesData().then(res => {\n this.countriesSubject.next(res);\n let documentTypes = []\n res.map(paises => {\n this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase()) && (documentTypes = paises.documentTypes || [])\n });\n this.documentTypesSubject.next(documentTypes);\n });\n this.ecOnInit()\n }\n\n onCountrySelected = (value) => {\n $('#selectOpPais').attr('disabled', true);\n this.registerForm.controls['countryCode'].setValue(value);\n this.registerForm.controls['provinceCode'].setValue('');\n value != '' && this.provincesSubject.next(this.countriesSubject.value.find(country => country.code == value).provinces);\n }\n\n onProvincesSelected = (value) => {\n $('#selectOpProvincia').attr('disabled', true);\n this.registerForm.controls['provinceName'].setValue(this.provincesSubject.value.find(province => province.code == value).name);\n }\n\n onGenderSelected = (value) => {\n $('#selectOpSexo').attr('disabled', true);\n }\n\n onDocumentTypeSelected = (value) => {\n $('#selectOpDocumentType').attr('disabled', true);\n }\n\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUpWholesaler(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.success = true;\n this.ready.emit(true);\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Product } from '../../interfaces/product';\nimport { ParametersService } from '../../services/parameters.service';\n\n\n\n@Component({\n selector: 'app-share-block-ec',\n templateUrl: './share-block-ec.component.html',\n styleUrls: ['./share-block-ec.component.scss'],\n})\nexport class ShareBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() product: Product\n\n public url = ''\n public mediaimg = ''\n public description = ''\n public params: any = {}\n\n constructor(\n public consts: Constants, public paramsService: ParametersService, protected renderer: Renderer2, private meta: Meta, private title: Title) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.url = window.location.href\n this.mediaimg = this.product.picturesdefault && this.product.picturesdefault[0]\n this.description = this.product.name\n if (this.description) {\n this.meta.addTags(\n [\n {\n name: \"description\",\n content: this.description\n },\n {\n property: \"og:site_name\",\n content: this.title.getTitle()\n }\n ,\n {\n property: \"og:url\",\n content: this.url\n }\n ,\n {\n property: \"og:title\",\n content: this.description\n }\n ,\n {\n property: \"og:type\",\n content: 'product'\n }\n ,\n {\n property: \"og:price:amount\",\n content: this.product.price\n }\n ,\n {\n property: \"og:price:currency\",\n content: this.consts.currency.code\n }\n ,\n {\n property: \"og:image\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"og:image:secure_url\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"witter:site\",\n content: '@'\n }\n ,\n {\n property: \"twitter:card\",\n content: 'summary_large_image'\n }\n ,\n {\n property: \"twitter:title\",\n content: this.description\n }\n ,\n {\n property: \"twitter:description\",\n content: this.description\n }\n \n ], true);\n }\n this.paramsService.parameters.subscribe(res =>{ \n this.params = res != null ? res?.filter( elem => elem.code.includes('share')) : []\n });\n\n this.ecOnInit()\n }\n\n toShareFacebook = () => {\n //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`\n return `https://www.facebook.com/share.php?u=${this.url}`\n }\n\n toShareTwitter = () => {\n //return `https://twitter.com/share?text=${encodeURIComponent(this.description)};url=${encodeURIComponent(this.url)}`\n return `https://twitter.com/share?text=${this.description}&url=${this.url}`\n }\n\n toSharePinterest = () => {\n //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`\n return `https://pinterest.com/pin/create/button/?url=${this.url}&media=${this.consts.mediaUrl()+this.mediaimg}&description=${this.description}`\n }\n\n toShareWhatsapp = (wsp) => {\n return `https://wa.me/${wsp.value}?text=Me%20interesa%20este%20producto.%20${this.url}`\n }\n\n toShareEmail = (mail) => {\n return `mailto:${mail.value}?subject=Consulta%20sobre%20el%20producto:%20${this.description}&body=Artículo:%20${this.url}`\n }\n\n createMetadata = () => {\n\n // <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.\">\n // <meta property=\"og:site_name\" content=\"MYC HOME LINENS\">\n // <meta property=\"og:url\" content=\"https://myc-homelinens.com/products/cojin-algodon-joy-azul\">\n \n // <meta property=\"og:title\" content=\"COJÍN JOY - AZUL\">\n // <meta property=\"og:type\" content=\"product\">\n // <meta property=\"og: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.\">\n // <meta property=\"og:price:amount\" content=\"20,20\">\n // <meta property=\"og:price:currency\" content=\"EUR\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta name=\"twitter:site\" content=\"@\">\n // <meta name=\"twitter:card\" content=\"summary_large_image\">\n // <meta name=\"twitter:title\" content=\"COJÍN JOY - AZUL\">\n // <meta name=\"twitter: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.\">\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-detail-checkout-block-ec',\n templateUrl: './detail-checkout-block-ec.component.html',\n styleUrls: ['./detail-checkout-block-ec.component.scss'],\n})\nexport class DetailCheckoutBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() asociatedData\n public data = null\n\n constructor(public checkoutService: CheckoutService,) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.asociatedData && (this.data = this.asociatedData) ||\n this.checkoutService.asociatedData$.subscribe(data => this.data = data)\n this.ecOnInit()\n }\n\n getIcon = (data_item: CheckoutData) => {\n\n switch (data_item.type) {\n case 'coupon': return 'fas fa-ticket-alt fa-3x';\n case 'discount': return 'fas fa-tags fa-3x';\n case 'shipment': return 'fas fa-shipping-fast fa-3x';\n case 'subtotal': return 'fas fa-boxes fa-3x';\n case 'taxes': return 'fas fa-file-invoice-dollar fa-3x';\n case 'total': return 'fas fa-shopping-basket fa-3x';\n default: return 'fas fa-tags fa-3x';\n }\n }\n // case 'coupon': return 'assets/images/iconosdetailcheckout/ticket-alt.svg';\n // case 'discount': return 'assets/images/iconosdetailcheckout/tags.svg';\n // case 'shipment': return 'assets/images/iconosdetailcheckout/shipping-fast.svg';\n // case 'subtotal': return 'assets/images/iconosdetailcheckout/boxes.svg';\n // case 'taxes': return 'assets/images/iconosdetailcheckout/file-invoice-dollar.svg';\n // case 'total': return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n // default: return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n}\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'ec-checkout-error',\n templateUrl: 'checkout-error-ec.component.html',\n styleUrls: ['checkout-error-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CheckoutErrorComponent extends ComponentHelper implements OnInit {\n\n public error: BodyError;\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n @Input() urlRedireccion = '/cart'\n subs: Subscription;\n subsModal: Subscription;\n\n constructor(\n public checkoutErrorService: ErrorHandlerService,\n public checkoutService: CheckoutService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n console.log('Componente manejo de errores inicializando')\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n setTimeout(() => {\n this.navigateByUrl()\n }, 3000);\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl(this.urlRedireccion)\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n }else{\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-lg ', keyboard: false, backdrop: 'static', animated: true })\n }\n );\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n this.navigateByUrl()\n })\n }\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../../classes/component-helper\";\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { CartService } from '../../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mp-redirect-ec',\n templateUrl: 'mp-redirect-ec.component.html',\n styleUrls: ['mp-redirect-ec.component.scss'],\n})\nexport class MpRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getPreference()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con mercado pago')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getPreference = () =>\n this.paymentServiceInst.getPreference(this.allData).then(\n res => {\n this.preference = res;\n this.url = this.preference.init_point\n this.renderMP(this.preference);\n },\n err => this.setError('operation-error')\n );\n\n setError = (message) => {\n //this.error = message;\n }\n\n renderMP = (preference) => {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== 'https://www.mercadopago.com.ar' || !event.data.type) {\n return;\n }\n let dataType = event.data.type;\n if (dataType === 'submit') {\n const paymentData = event.data.value;\n return;\n }\n });\n }\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-redsys-redirect-out-ec',\n templateUrl: 'redsys-redirect-out-ec.component.html',\n styleUrls: ['redsys-redirect-out-ec.component.scss'],\n})\nexport class RedSysRedirectOutEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.url = \"../../../assets/redsysFrameRedirectOutBase.html\"\n }, 1000);\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure' || state == 'error') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con redsys')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n\n setError = (message) => {\n \n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Subscription } from 'rxjs';\ndeclare var paypal;\ndeclare var PAYPAL_CLIENT: any;\ndeclare var PAYPAL_SECRET: any;\ndeclare var PAYPAL_ORDER_API: any;\n\n@Component({\n selector: 'app-paypal-express-ec',\n templateUrl: 'paypal-express-ec.component.html',\n styleUrls: ['paypal-express-ec.component.scss'],\n})\nexport class PaypalExpressEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n @ViewChild('paypal', { static: true }) paypalElement: ElementRef;\n\n public getUrlNotification = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/paypal/redirect/notification';\n\n producto = {\n descripcion: 'producto en venta',\n precio: 10,\n img: 'imagen de tu producto'\n }\n title = 'angular-paypal-payment';\n\n public loading = false;\n public cart = null;\n public tried = 10;\n public subsCart: Subscription;\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute) {\n super();\n\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.setVariables()\n this.subsCart = this.cartService.cart.subscribe(cart => {\n this.cart = cart\n console.log(this.cart);\n let scriptSdk = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptSdk, 'src', 'https://www.paypal.com/sdk/js?client-id=' + this.method.config.public_client_id + '&currency=' + this.cart?.currency || 'USD');\n this.renderer.appendChild(document.body, scriptSdk);\n this.renderPayPal()\n })\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subsCart.unsubscribe()\n }\n\n ngOnChanges() {\n }\n\n renderPayPal = () => {\n if (this.tried == 0) {\n return\n }else{\n this.tried--\n }\n setTimeout(() => {\n try {\n if ((typeof paypal !== 'undefined') && paypal != undefined && paypal != null) {\n paypal\n .Buttons({\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [\n {\n amount: {\n currency_code: this.cart?.currency || 'USD',\n value: this.total_amount || this.cart?.totals?.total\n }\n }\n ]\n })\n },\n onApprove: async (data, actions) => {\n const order = await actions.order.capture();\n order.purchase_units[0]['reference_id'] = this.cart.tokenValue\n console.log(order);\n this.connection.postOutsider(this.getUrlNotification(), order).toPromise().then(res => {\n this.ready.emit(true)\n console.log('ok');\n }).catch(res => {\n this.processError('')\n console.log('error');\n })\n },\n onError: err => {\n console.log(err);\n this.processError('')\n }\n })\n .render(this.paypalElement.nativeElement);\n this.loading = false;\n } else {\n console.log('Entro al else');\n this.renderPayPal();\n }\n } catch (error) {\n console.log('Entro al catch');\n this.renderPayPal();\n }\n }, 1000);\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setVariables = () => {\n // setTimeout(() => {\n // if (typeof PAYPAL_CLIENT !== 'undefined'\n // && typeof PAYPAL_SECRET !== 'undefined'\n // && typeof PAYPAL_ORDER_API !== 'undefined') {\n // PAYPAL_CLIENT = this.method.config.public_client_id;\n // PAYPAL_SECRET = this.method.config.public_client_secret;\n // PAYPAL_ORDER_API = 'https://api-m.paypal.com/v2/checkout/orders/';\n // } else {\n // console.log('no entro al if');\n // this.setVariables()\n // }\n // }, 2000);\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mobbex-ec',\n templateUrl: 'mobbex-ec.component.html',\n styleUrls: ['mobbex-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class MobbexEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataMobbex;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutMobbex()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con mobbex')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n \n } \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutMobbex = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutMobbex(this.allData).then(\n res => {\n this.dataMobbex = res;\n this.url = res?.data?.url && this.sanitizer.bypassSecurityTrustResourceUrl(res?.data?.url)\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-bancard-ec',\n templateUrl: 'bancard-ec.component.html',\n styleUrls: ['bancard-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class BancardEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataBancard;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con bancard')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && this.sanitizer.bypassSecurityTrustResourceUrl(res?.iframe_link)\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.dataBancard?.process_id && localStorage.setItem('dataRedirect', this.dataBancard.process_id )\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-bancard-redirect-ec',\n templateUrl: 'bancard-redirect-ec.component.html',\n styleUrls: ['bancard-redirect-ec.component.scss'],\n})\nexport class BancardRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n protected dataBancard;\n\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.ventana?.close()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 4000); \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setError = (message) => {\n \n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && res?.iframe_link\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { BodyError } from '../../../interfaces/checkout/checkout-error';\nimport { AuthService } from '../../../services/auth.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'select-channel-ec',\n templateUrl: 'select-channel-ec.component.html',\n styleUrls: ['select-channel-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class SelectChannelEcComponent extends ComponentHelper implements OnInit {\n\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n subs: Subscription;\n subsModal: Subscription;\n public channels = []\n\n constructor(\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n this.subs = this.authService.channelsUser.pipe(filter(res => res != null && res.length > 0)).subscribe(\n res => {\n this.channels = res.map(item => {\n return { ...(item as object), selected: false }\n })\n this.initializeTemplate()\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl('')\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n } else {\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-sm modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true })\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n })\n }\n }\n\n setSelect = (chanelSelect: any) => {\n this.channels.map(chanel => chanel.selected = chanel.code == chanelSelect.code)\n }\n\n setChannel = () => {\n if (this.channels.find(chanel => chanel.selected)) {\n this.authService.channelAccess(this.channels.find(chanel => chanel.selected))\n this.bsModalRef.hide()\n }\n }\n\n\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-cart-load-ec',\n templateUrl: './cart-load-ec.component.html',\n styleUrls: ['./cart-load-ec.component.scss']\n})\nexport class CartLoadEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, \n public router: Router, \n public checkoutService: CheckoutService, \n public cartService: CartService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let token\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n token = queryRouter.token\n console.log('PARAMETROS token -> ', token);\n this.cartService.loadCartByToken(token).then(res => {\n this.router.navigateByUrl('/cart')\n })\n })\n this.ecOnInit()\n }\n\n}\n","import { ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: '[app-magnizoom-ec]',\n templateUrl: './magnizoom.component.html',\n styleUrls: ['./magnizoom.component.scss']\n})\nexport class MagnizoomComponent implements OnInit {\n\n private imageSrc:string\n @Input() set ImageSrc(value) { \n this.imageSrc = value; \n this.loadImage(this.imageSrc); \n }\n @Input() zoomMode: 'LENS' | 'COVER' = 'COVER';\n @Input() minZoomFactor = 1.2;\n @Input() maxZoomFactor = 3;\n\n @Input() imageStyle: { [x: string]: any; };\n @Input() imageClass: any;\n\n @ViewChild('mainCanvas', { static: true }) mainCanvasRef: ElementRef;\n\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n image: HTMLImageElement;\n\n mousePosition: Point2D = null;\n lensSize: Size2D = { width: 400, height: 300 };\n zoomFactor = 2;\n\n get canvasWidth() { return this.image && this.image.width || 800; }\n get canvasHeight() { return this.image && this.image.height || 600; }\n\n constructor() { }\n \n ngOnInit() {\n this.initContext();\n this.loadImage(this.imageSrc);\n }\n\n initContext() {\n \n this.canvas = (this.mainCanvasRef.nativeElement as HTMLCanvasElement);\n this.context = this.canvas.getContext('2d');\n }\n\n loadImage(src: string) {\n \n this.image = new Image();\n this.image.onload = () => {\n this.lensSize = { width: this.image.width / 2, height: this.image.height / 2 };\n setTimeout(() => this.render());\n };\n this.image.src = src;\n }\n\n render() {\n this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight); // clear canvas\n this.context.lineWidth = 1; // border width\n this.context.drawImage(this.image, 0, 0); // bg image\n\n if (this.mousePosition) {\n switch (this.zoomMode) {\n case 'LENS': this.renderLensMode(); break;\n case 'COVER': this.renderCoverMode(); break;\n }\n }\n }\n\n renderLensMode() {\n this.context.lineWidth = 5; // border width\n const zoomRect = this.getZoomRect();\n this.context.fillRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // bg (clear)\n const clippingRect = this.getClippingRect();\n // zoom image\n this.context.drawImage(\n this.image,\n clippingRect.x, clippingRect.y, clippingRect.w, clippingRect.h,\n zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h\n );\n this.context.strokeRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // border\n }\n\n renderCoverMode() {\n const covertRect = this.getCoverRect();\n this.context.drawImage(\n this.image,\n covertRect.x, covertRect.y, covertRect.w, covertRect.h,\n 0, 0, this.canvasWidth, this.canvasHeight\n ); // cover image\n }\n\n getZoomRect() {\n const w = this.lensSize.width;\n const h = this.lensSize.height;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getClippingRect() {\n const w = this.lensSize.width / this.zoomFactor;\n const h = this.lensSize.height / this.zoomFactor;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getCoverRect() {\n const w = this.canvasWidth / this.zoomFactor;\n const h = this.canvasHeight / this.zoomFactor;\n // const x = this.mousePosition.x - (w / 2);\n // const y = this.mousePosition.y - (h / 2);\n const x = this.mousePosition.x - this.mousePosition.x / this.zoomFactor;\n const y = this.mousePosition.y - this.mousePosition.y / this.zoomFactor;\n return this.clampRect(x, y, w, h);\n }\n\n clampRect(x: number, y: number, w: number, h: number) {\n if (x <= 0) { x = 0; }\n if (x + w >= this.canvasWidth) { x = this.canvasWidth - w; }\n if (y < 0) { y = 0; }\n if (y + h >= this.canvasHeight) { y = this.canvasHeight - h; }\n return { x, y, w, h };\n }\n\n calculateMousePosition(clientX: number, clientY: number) {\n const boundingRect = this.canvas.getBoundingClientRect();\n const viewToModelX = this.canvasWidth / boundingRect.width;\n const viewToModelY = this.canvasHeight / boundingRect.height;\n const x = (clientX - boundingRect.left) * viewToModelX;\n const y = (clientY - boundingRect.top) * viewToModelY;\n this.mousePosition = { x, y };\n }\n\n onMouseLeave(event: MouseEvent) {\n this.mousePosition = null;\n this.render();\n }\n\n onMouseEnterOrMove(event: MouseEvent) {\n this.calculateMousePosition(event.clientX, event.clientY);\n this.render();\n }\n\n onMouseScroll(event: WheelEvent) {\n let newZoomFactor = this.zoomFactor;\n newZoomFactor -= event.deltaY / 1000;\n if (newZoomFactor < this.minZoomFactor) { newZoomFactor = this.minZoomFactor; }\n if (newZoomFactor > this.maxZoomFactor) { newZoomFactor = this.maxZoomFactor; }\n if (this.zoomFactor !== newZoomFactor) {\n this.zoomFactor = newZoomFactor;\n this.render();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-multiple-items-to-cart-ec',\n templateUrl: 'multiple-items-to-cart-ec.component.html',\n styleUrls: ['multiple-items-to-cart-ec.component.scss']\n})\nexport class MultipleItemsToCartEcComponent extends ComponentHelper {\n\n @Input() product: Product;\n @Input() objectWithVariant: ParamsProductsWithUniqueVariant;\n @Output() totalCostItems = new EventEmitter()\n @Output() totalItems = new EventEmitter()\n\n public total = 0\n public countItems = 0\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.product.productWithUniqueVariant = this.productService?.getProductWithUniqueVariant(this.product, this.getObjectParamsWithVariant())\n this.ecOnInit()\n }\n\n optionsProductForVariant = () => this.product.productWithUniqueVariant\n\n setQuantity = (value, product: Product) => {\n \n let quantity = Number(value) > product.currentOption.stock ? product.currentOption.stock : Number(value)\n product.productToCartItem = {\n productCode: product.currentOption.productCode,\n variantCode: product.currentOption.variantCode,\n quantity: quantity,\n finalPrice: product.currentOption.finalPrice,\n totalCost: quantity * product.currentOption.finalPrice,\n }\n\n this.total = 0\n this.countItems = 0\n this.product.productWithUniqueVariant.filter(prod => prod.productToCartItem).map(\n prod => {\n this.total += prod.productToCartItem.totalCost\n this.countItems += prod.productToCartItem.quantity\n }\n )\n this.totalCostItems.emit(this.total.toString())\n this.totalItems.emit(this.countItems.toString())\n\n }\n\n condition = (value, product: Product) : boolean => {\n if (Number(value) >= product.currentOption.stock) {\n return false\n }\n return true\n }\n\n allWithoutTracking = () => this.optionsProductForVariant().some( item => item.currentOption?.stock != 9999)\n\n private getObjectParamsWithVariant = (): ParamsProductsWithUniqueVariant => {\n return this.objectWithVariant || this.getObjectWithVariant()\n } \n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: true , checkIfStock: false }\n } \n\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { RecaptchaSettings } from 'ng-recaptcha/recaptcha/recaptcha-settings';\nimport { BehaviorSubject} from 'rxjs';\nimport { map, filter, concatMap} from 'rxjs/operators';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\n//import * from '../assets/ec-i18n'\n@Injectable({\n providedIn: 'root'\n})\nexport class CaptchaService {\n \n private captchaSubject: BehaviorSubject<RecaptchaSettings> = new BehaviorSubject({siteKey:''})\n public captcha = this.captchaSubject.asObservable()\n \n private urlBaseFormat:string\n private testing:string = \"easycommercetech\"\n private productionEnvironment:Boolean = false;\n \n private recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';\n private recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';\n private recaptchaSitesUrlProd = './assets/recaptcha/recaptcha-sites-prod.json'\n\n private RECAPTCHA_SITE_KEYS \n private RECAPTCHA_SITES \n /**\n * @description Carga las configuraciones iniciales\n * @param consts Constantes del core\n * @param connection Servicio para realizar las peticiones HTTP al backend\n * @param http Servicio utilizado para obtener archivos estaticos contenidos dentro de la aplicación\n */\n constructor(private consts: Constants,\n private connection: ConnectionService,\n private http:HttpClient) {\n /**\n * @description Carga la direccion de la pagina actual que sera utilizada como clave para obtener\n * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.\n */\n this.urlBaseFormat = this.formatUrl(location.href)\n this.productionEnvironment = this.isProd()\n this.initializer()\n }\n /**\n * \n * @returns {string} path que contiene la direccion del endpoint referido al captcha\n */\n private captchaApi = () => 'shop-api/channels';\n \n /**\n * @description Devuelve true si la url es de produccion, false en caso contrario. \n * @returns {Boolean}\n */\n private isProd = () => !this.urlBaseFormat.includes(this.testing)\n\n /**\n * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores\n * de los Json estaticos, para posteriormente obtener la \"siteKey\"(clave del captcha) en caso\n * de que no venga desde el backend. \n */\n private initializer = () => {\n this.getRecaptchaSites().pipe(\n //filter( e => e[this.urlBaseFormat+'ee'] ),\n map(res => this.RECAPTCHA_SITES = res),\n concatMap(e => this.getRecaptchaSiteKeys().pipe(\n map(res => this.RECAPTCHA_SITE_KEYS = res)))).subscribe(\n e => this.getSiteKey())\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las claves captcha\n */\n private getRecaptchaSiteKeys = () => {\n return this.http.get<any[]>(this.recaptchaSiteKeysUrl)\n }\n\n /**\n * @description Se obtiene los datos segun el entorno en que se ejecute\n * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios\n */\n private getRecaptchaSites = () => this.productionEnvironment ? this.http.get<any[]>(this.recaptchaSitesUrlProd) : this.http.get<any[]>(this.recaptchaSitesUrl)\n\n /**\n * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,\n * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con\n * los datos generados.\n */\n private getSiteKey = () => {\n this.connection.get(this.captchaApi()).toPromise().then(\n res => { console.log(res); this.captchaSubject.next({ siteKey: res.siteKey ? res.siteKey : this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) },\n err => { console.log('ERROR 1', err); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITES[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) }\n ).catch(err => { console.log('ERROR 2 ', err, ' Base url:', this.consts.getUrlBase()); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) })\n //console.log(this.captcha)\n }\n\n /**\n * \n * @returns {string} Clave del captcha.\n */\n public getKey = () => {\n return this.captcha.pipe(map((elem) => elem?.siteKey));\n }\n\n /**\n * @description Recibe una url y se encarga de quitarle \"http\", \"/\" y las demas rutas, para devolver la url\n * del sitio con una formato limpio. Ejemplo \"https://ejemplo.com.ar/ruta1/ruta2/\" a \"ejemplo.com.ar\" \n * @param {string} url url que sera formateada \n * @returns {string} url formateada\n */\n private formatUrl = (url:string) => url.split(\"/\").filter(e => e != \"/\").filter(e => !e.includes(\"http\")).filter(e => e.length).slice(0,1).pop()\n\n}","import { ElementRef, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { CaptchaService } from '../../../services/captcha.service';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: 're-captcha-ec',\n templateUrl: './re-captcha-ec.component.html',\n styleUrls: ['./re-captcha-ec.component.scss']\n})\nexport class RecaptchaEcComponent implements OnInit {\n \n /**\n * @param form recibe el formulario que contiene al captcha.\n * @param siteKey recibe un string con la clave para el captcha\n */\n @Input() form: any;\n @Input() siteKey: string;\n public captcha:any;\n constructor(public captchaService: CaptchaService){ \n }\n\n ngOnInit(): void {\n // throw new Error('Method not implemented.');\n this.captchaService.captcha.subscribe( res => {\n this.captcha = res;\n this.updateKey()} )\n }\n\n /**\n * @description Carga el campo captcha del formulario pasado con la respuesta luego de completar el captcha.\n * @param {string} captchaResponse obtiene la respuesta que genero el captcha.\n */\n resolved(captchaResponse: string) {\n this.form.catpcha = captchaResponse;\n }\n /**\n * @description Actualiza la clave si está es pasada por parametro en la variable siteKey \n * @returns {null}\n */\n updateKey = () => this.siteKey ? this.captcha.siteKey = this.siteKey : null\n\n \n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-decidir-ec',\n templateUrl: 'decidir-ec.component.html',\n styleUrls: ['decidir-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DecidirEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataDecidir;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutDecidir()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n localStorage.setItem('dataDecidir', JSON.stringify(this.method))\n console.log('dataaaaa', this.method);\n this.modalRef = this.modalService.show(template, { class: 'modal-xl modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n localStorage.removeItem('dataRedirect')\n localStorage.removeItem('dataDecidir')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con Decidir')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n this.clearStorageState()\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutDecidir = () => {\n this.loading = true\n this.dataDecidir = this.method;\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html')\n this.loading = false\n }\n\n resizeIframe = (obj) => {\n obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';\n obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';\n }\n\n}\n\n","// //Component base\n\nimport { AccountEcComponent } from \"./account-ec/account-ec.component\";\nimport { BlockBannerBoxesEcComponent } from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nimport { BlockBannerFullEcComponent } from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nimport { BlockFormContactEcComponent } from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nimport { BlockHtmlEcComponent } from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nimport { ContactFormNewsEcComponent } from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nimport { BlockProductsEcComponent } from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nimport { BlocksEcComponent } from \"./blocks-ec/blocks-ec.component\";\nimport { CartEcComponent } from \"./cart-ec/cart-ec.component\";\nimport { CheckoutEcComponent } from \"./checkout-ec/checkout-ec.component\";\nimport { DataFormEcComponent } from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nimport { PaymentEcComponent } from \"./checkout-ec/payment-ec/payment-ec.component\";\nimport { ShipmentEcComponent } from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nimport { SuccessEcComponent } from \"./checkout-ec/success-ec/success-ec.component\";\nimport { CollectionEcComponent } from \"./collection-ec/collection-ec.component\";\nimport { CouponEcComponent } from \"./coupon-ec/coupon-ec.component\";\nimport { FaqsContentEcComponent } from \"./faqs-content-ec/faqs-content-ec.component\";\nimport { FiltersEcComponent } from \"./filters-ec/filters-ec.component\";\nimport { FiltersTopEcComponent } from \"./filters-top-ec/filters-top-ec.component\";\nimport { FooterEcComponent } from \"./footer-ec/footer-ec.component\";\nimport { HeaderEcComponent } from \"./header-ec/header-ec.component\";\nimport { HomeEcComponent } from \"./home-ec/home-ec.component\";\nimport { LoginEcComponent } from \"./login-ec/login-ec.component\";\nimport { ProductDetailEcComponent } from \"./product-detail-ec/product-detail-ec.component\";\nimport { ProductEcComponent } from \"./product-ec/product-ec.component\";\nimport { RelatedProductsEcComponent } from \"./related-products-ec/related-products-ec.component\";\nimport { SectionContainerEcComponent } from \"./section-container-ec/section-container-ec.component\";\nimport { StoresEcComponent } from \"./stores-ec/stores-ec.component\";\nimport { VariantsEcComponent } from \"./variants-ec/variants-ec.component\";\nimport { SellerDashboardContainerEcComponent } from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nimport { LoadingFullEcComponent } from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nimport { LoadingInlineEcComponent } from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nimport { MPCreditEcComponent } from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nimport { PriceEcComponent } from \"./widgets-ec/price-ec/price-ec.component\";\nimport { RedsysCatchEcComponent } from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nimport { RedSysProEcComponent } from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nimport { RedSysRedirectEcComponent } from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nimport { CecaRedirectEcComponent } from \"./widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nimport { OrdersEcComponent } from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nimport { OrderEcComponent } from \"./account-ec/order-ec/order-ec.component\";\nimport { AuthEcComponent } from \"./auth-ec/auth-ec.component\";\nimport { RegisterFormEcComponent } from \"./auth-ec/register-form-ec/register-form-ec.component\";\nimport { LoginFormEcComponent } from \"./auth-ec/login-form-ec/login-form-ec.component\";\nimport { ForgotPasswordEcComponent } from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nimport { ConfirmAccountEcComponent } from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nimport { PasswordResetEcComponent } from \"./password-reset-ec/password-reset-ec.component\";\nimport { RegisterWholesalerFormEcComponent } from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nimport { ShareBlockEcComponent } from \"./share-block-ec/share-block-ec.component\";\nimport { DetailCheckoutBlockEcComponent } from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nimport { CheckoutErrorComponent } from \"./checkout-error-ec/checkout-error-ec.component\";\nimport { MpRedirectEcComponent } from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nimport { RedSysRedirectOutEcComponent } from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nimport { PaypalExpressEcComponent } from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nimport { MobbexEcComponent } from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nimport { BancardEcComponent } from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nimport { BancardRedirectEcComponent } from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nimport { SelectChannelEcComponent } from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nimport { CartLoadEcComponent } from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nimport { MagnizoomComponent } from \"./widgets-ec/zoom-ec/magnizoom.component\";\nimport { MultipleItemsToCartEcComponent } from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nimport { RecaptchaEcComponent } from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nimport { DecidirEcComponent } from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n\n\nexport const components: any[] = [\n BlockBannerBoxesEcComponent,\n BlockBannerFullEcComponent,\n BlockFormContactEcComponent,\n BlockHtmlEcComponent,\n ContactFormNewsEcComponent,\n BlockProductsEcComponent,\n BlocksEcComponent,\n\n CartEcComponent,\n\n DataFormEcComponent,\n PaymentEcComponent,\n ShipmentEcComponent,\n SuccessEcComponent,\n CheckoutEcComponent,\n \n CollectionEcComponent,\n CouponEcComponent,\n FaqsContentEcComponent,\n FiltersEcComponent,\n FiltersTopEcComponent,\n FooterEcComponent,\n HeaderEcComponent,\n LoginEcComponent,\n ProductEcComponent,\n RelatedProductsEcComponent,\n SectionContainerEcComponent,\n StoresEcComponent,\n VariantsEcComponent,\n SellerDashboardContainerEcComponent,\n \n LoadingInlineEcComponent,\n LoadingFullEcComponent,\n MPCreditEcComponent,\n PriceEcComponent,\n RedsysCatchEcComponent,\n RedSysProEcComponent,\n RedSysRedirectEcComponent,\n HomeEcComponent,\n ProductDetailEcComponent,\n AccountEcComponent,\n OrdersEcComponent,\n OrderEcComponent,\n AuthEcComponent,\n RegisterFormEcComponent,\n LoginFormEcComponent,\n SelectChannelEcComponent,\n ForgotPasswordEcComponent,\n ConfirmAccountEcComponent,\n PasswordResetEcComponent,\n CecaRedirectEcComponent,\n\n RegisterWholesalerFormEcComponent,\n\n ShareBlockEcComponent,\n DetailCheckoutBlockEcComponent,\n\n CheckoutErrorComponent,\n MpRedirectEcComponent,\n RedSysRedirectOutEcComponent,\n PaypalExpressEcComponent,\n\n MobbexEcComponent,\n BancardEcComponent,\n BancardRedirectEcComponent,\n DecidirEcComponent,\n\n CartLoadEcComponent,\n MultipleItemsToCartEcComponent,\n\n MagnizoomComponent,\n RecaptchaEcComponent\n];\n\n\nexport * from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./blocks-ec/blocks-ec.component\";\nexport * from \"./cart-ec/cart-ec.component\";\nexport * from \"./checkout-ec/checkout-ec.component\";\nexport * from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./checkout-ec/success-ec/success-ec.component\";\nexport * from \"./collection-ec/collection-ec.component\";\nexport * from \"./coupon-ec/coupon-ec.component\";\nexport * from \"./faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./filters-ec/filters-ec.component\";\nexport * from \"./filters-top-ec/filters-top-ec.component\";\nexport * from \"./footer-ec/footer-ec.component\";\nexport * from \"./header-ec/header-ec.component\";\nexport * from \"./login-ec/login-ec.component\";\nexport * from \"./product-ec/product-ec.component\";\nexport * from \"./related-products-ec/related-products-ec.component\";\nexport * from \"./section-container-ec/section-container-ec.component\";\nexport * from \"./stores-ec/stores-ec.component\";\nexport * from \"./variants-ec/variants-ec.component\";\nexport * from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nexport * from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./widgets-ec/price-ec/price-ec.component\";\nexport * from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./home-ec/home-ec.component\";\nexport * from \"./product-detail-ec/product-detail-ec.component\";\nexport * from \"./account-ec/account-ec.component\";\nexport * from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./account-ec/order-ec/order-ec.component\";\nexport * from \"./auth-ec/auth-ec.component\";\nexport * from \"./auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./password-reset-ec/password-reset-ec.component\";\nexport * from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./share-block-ec/share-block-ec.component\";\nexport * from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from './widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component';\nexport * from \"./checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./widgets-ec/zoom-ec/magnizoom.component\";\nexport * from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nexport * from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { BlocksService } from \"../services/blocks/blocks.service\";\nimport { Router } from \"@angular/router\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecAddActionRedirect]\",\n})\nexport class AddActionRedirectDirective implements OnChanges, OnInit, OnDestroy {\n private banner: any;\n private classStr: \"\";\n private redirectUrl = ''\n private linstenEvent = null\n private transparent = true\n\n @Input()\n set ecAddActionRedirect(value: any) {\n this.banner = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set isTransparent(value: boolean) {\n this.transparent = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private blocksService: BlocksService,\n private router: Router,\n ) { }\n\n ngOnInit() { }\n\n\n ngOnChanges(changes: SimpleChanges) {\n this.transparent && this.renderer.setStyle(this.elementRef.nativeElement, 'color', 'transparent')\n this.renderer.setAttribute(this.elementRef.nativeElement, \"role\", \"button\")\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(this.elementRef.nativeElement, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n this.redirectUrl = this.banner.url ? this.banner.url : this.blocksService.formUrl(this.banner)\n this.banner.url ?\n this.renderer.setProperty(this.elementRef.nativeElement, \"href\", this.banner.url)\n :\n this.linstenEvent = this.renderer.listen(this.elementRef.nativeElement, 'click', this.redirectFromUrl)\n }\n\n redirectFromUrl = (evt) => {\n this.router.navigateByUrl(this.redirectUrl)\n }\n\n ngOnDestroy() {\n this.linstenEvent && this.linstenEvent()\n }\n}\n","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { Product } from '../interfaces/product';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecProductStock]\"\n})\nexport class ProductStockDirective {\n\n private productDirective: Product = null;\n\n @Input()\n ecProductStockElse: TemplateRef<any>\n\n @Input()\n set ecProductStock(product: Product) {\n this.productDirective = product\n this.viewContainer.clear();\n if (this.validateStock()) {\n if (this.ecProductStockElse) {\n this.viewContainer.createEmbeddedView(this.ecProductStockElse);\n }else{\n console.error('falta definir el template de agotado');\n }\n } else {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef, ) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n\n validateStock = () => {\n if (this.productDirective.special_mark == undefined || this.productDirective.variants == undefined) {\n setTimeout(() => {\n return this.validateStock()\n }, 1000);\n } else {\n return this.checkValuesForStock()\n }\n }\n\n checkValuesForStock = () => {\n let existMark = false\n this.productDirective.special_mark.forEach(special_mark => {\n switch (special_mark.type) {\n case 'out_of_stock': existMark = true; break;\n }\n })\n if (!existMark) {\n existMark = this.productDirective.variants.find(v => v.stock > 0) == undefined\n }\n return existMark\n }\n}","import {\n Directive,\n OnInit,\n ViewContainerRef,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecProductOff]\",\n})\nexport class ProductOffDirective implements OnChanges, OnInit, OnDestroy {\n\n private product: any;\n private classStr: \"\";\n private customMessageStr = \"{discount}% OFF\";\n\n @Input()\n set ecProductOff(value: any) {\n this.product = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set customMessage(value: string) {\n this.customMessageStr = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit() { }\n hasDiscount = (product) => {\n\n if (!product.saleprice) {\n return null\n }\n if (product.price?.toString().includes(\"-\") && product.saleprice?.toString().includes(\"-\")) {\n let prices = product.price?.toString().split('-')\n let saleprices = product.saleprice?.toString().split('-')\n let saleBf = this.generateDiscount(prices[1]?.trim(), saleprices[1]?.trim())\n let saleLt = this.generateDiscount(prices[0]?.trim(), saleprices[0]?.trim())\n if (!saleBf && !saleLt) {\n return null\n }\n if (saleBf && saleLt && saleBf == saleLt) {\n return `${saleBf}`\n }\n if (saleBf && !saleLt) {\n return `${saleBf}`\n }\n if (!saleBf && saleLt) {\n return `${saleLt}`\n }\n return `${saleBf} - ${saleLt}`\n }else{\n if (parseInt(product.price) > parseInt(product.saleprice)) {\n return this.generateDiscount(product.price, product.saleprice)\n }\n }\n // console.log(product.price?.toString().includes(\"-\"));\n // console.log(product.saleprice?.toString().includes(\"-\"));\n // console.log(' PRECIO ', product.price);\n // console.log(' SALE ', product.saleprice);\n \n // if (\n // !product.price.toString().includes(\"-\") &&\n // product.saleprice &&\n // parseInt(product.price) > parseInt(product.saleprice)\n // ) {\n // let result =\n // ((parseInt(product.price) - parseInt(product.saleprice)) /\n // parseInt(product.price)) *\n // 100;\n // if (Number.isNaN(result)) {\n // return null;\n // } else return Math.floor(result);\n // }\n // return null;\n };\n\n\n generateDiscount = (price, saleprice) => {\n \n if (parseFloat(price) > parseFloat(saleprice) ) {\n let result =\n ((parseFloat(price) - parseFloat(saleprice)) /\n parseFloat(price)) *\n 100;\n if (Number.isNaN(result)) {\n return null;\n } else return Math.round(result)//Math.floor(result);\n }\n return null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.product.price) {\n let discount = this.hasDiscount(this.product);\n this.elementRef.nativeElement.childNodes.forEach(node => {\n this.renderer.removeChild(this.elementRef.nativeElement, node)\n })\n if (discount) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.createImage(discount));\n } \n // else {\n // this.renderer.removeChild(this.elementRef.nativeElement.parentElement, this.elementRef.nativeElement);\n // }\n }\n }\n\n createImage = (discount) => {\n let popover = this.renderer.createElement(\"a\");\n this.customMessageStr = this.customMessageStr.replace('{discount}',discount)\n this.renderer.setProperty(popover, \"innerHTML\", this.customMessageStr);\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(popover, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n return popover;\n };\n\n ngOnDestroy() { }\n}\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, OnDestroy, Input, ElementRef, Renderer2, Inject, OnChanges, SimpleChanges } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Product } from '../interfaces/product';\nimport { Constants } from '../core.consts';\n\n\n@Directive({\n selector: '[ecProductMiniStandard]'\n})\nexport class ProductMiniStandardDirective implements OnChanges, OnInit, OnDestroy {\n\n private special_marks: any[];\n private product: Product;\n private idConteiner = null\n @Input()\n set ecProductMiniStandard(productParam: Product) {\n this.special_marks = productParam.special_mark\n this.product = productParam\n this.idConteiner = `container-img-marks-standard-${this.product.id}`\n }\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private renderer: Renderer2,\n private constants: Constants,\n ) { }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n (this.special_marks && this.special_marks.length)\n &&\n (this.special_marks.filter(special_mark => special_mark.type.includes('standard')))\n .map(special_mark => this.setMarkStandar(special_mark));\n }\n\n ngOnDestroy() { }\n\n setMarkStandar = (special_mark) => {\n let containerImg = document.getElementById(this.idConteiner);\n if (!containerImg) {\n let containerImg = this.renderer.createElement('div');\n this.renderer.setAttribute(containerImg, 'id', this.idConteiner);\n this.renderer.addClass(containerImg, 'container-img-marks-standard');\n this.renderer.appendChild(this.elementRef.nativeElement, containerImg);\n }\n this.renderer.appendChild(document.getElementById(this.idConteiner), this.createImage(special_mark));\n }\n\n createImage = (data) => {\n let image = (data.images && data.images.length) && data.images[0];\n if (!image) return null;\n let image_view = this.renderer.createElement('img');\n this.renderer.setAttribute(image_view, 'src', this.constants.mediaUrl() + image);\n return image_view;\n }\n\n}","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { User } from '../classes/user';\nimport { Product } from '../interfaces/product';\nimport { AuthService } from '../services/auth.service';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecAuthWholesaler]\"\n})\nexport class AuthWholesalerDirective {\n\n public auth: boolean = true\n public user: User = null\n private productDirective: Product = null;\n\n\n @Input()\n ecAuthWholesalerElse: TemplateRef<any>\n\n @Input()\n set ecAuthWholesaler(authparams) {\n this.auth = authparams\n if (this.auth) {\n this.authService.userAuth.subscribe(user => {\n this.viewContainer.clear();\n this.user = user\n this.viewContainer.createEmbeddedView(\n user?.isWholesaler() ? this.templateRef : this.ecAuthWholesalerElse\n )\n })\n }else{\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView( this.templateRef )\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private authService: AuthService,) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n}","//Directives base\n\n// import { ProductButtonBaseDirective } from './product-button-base.directive';\n// import { ProductContactBaseDirective } from './product-contact-base.directive';\n// import { ProductMiniBaseDirective } from './product-mini-base.directive';\n// import { ProductOffDetailBaseDirective } from './product-off-detail-base.directive';\n// import { ProductPriceBaseDirective } from './product-price-base.directive';\n\n\nimport { AddActionRedirectDirective } from './add-action-redirect.directive';\nimport { ProductStockDirective } from './product-stock.directive';\nimport { ProductOffDirective } from './product-off.directive';\nimport { ProductMiniStandardDirective } from './product-mini-standard.directive';\nimport { AuthWholesalerDirective } from './auth-wholesaler.directive';\n\nexport const directives: any[] = [\n // ProductButtonBaseDirective,\n // ProductContactBaseDirective,\n // ProductMiniBaseDirective,\n // ProductOffDetailBaseDirective,\n // ProductPriceBaseDirective,\n\n ProductMiniStandardDirective,\n ProductOffDirective,\n AddActionRedirectDirective,\n ProductStockDirective,\n AuthWholesalerDirective,\n];\n\n// export * from './product-button-base.directive';\n// export * from './product-contact-base.directive';\n// export * from './product-mini-base.directive';\n// export * from './product-off-detail-base.directive';\n// export * from './product-price-base.directive';\n\nexport * from './product-mini-standard.directive';\nexport * from './product-stock.directive';\nexport * from './product-off.directive';\nexport * from './auth-wholesaler.directive';\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { Constants } from '../core.consts';\nimport { ProductsService } from '../services/products/products.service';\n\n@Pipe({\n name: 'ecCurrencySymbol',\n})\nexport class ecCurrencySymbolPipe implements PipeTransform {\n \n\n constructor(public productsService: ProductsService, private currencyPipe: CurrencyPipe, public consts: Constants) { }\n\n transform(\n value: number\n ): string {\n const formatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'USD' });\n return value && this.changeSymbolTransform(formatter.format(value)?.toString()) || ''\n //return value && this.changeSymbolTransform(this.currencyPipe.transform(value,'USD').toString()) || ''\n }\n\n changeSymbolTransform = (valor) => {\n try {\n return this.positionSymbol(this.checkingWithoutDecimals(this.clearSymbol(valor)))\n } catch (error) {\n console.error('Errores en custom pipe -> ',error);\n return valor\n }\n }\n\n clearSymbol = (value) => value.replace('$', '')\n\n positionSymbol = (value) => this.consts?.currency.position.toUpperCase() == 'L' ? `${this.consts?.currency.symbol} ${value?.trim()}` : `${value?.trim()} ${this.consts?.currency.symbol}`\n\n checkingWithoutDecimals = (value) => {\n if (this.consts?.currency.withoutDecimals) {\n let val = value?.split(',')\n return val[1]?.trim() == \"00\" && value.trim().slice(0, value.trim().length - 3) || value\n }\n return value\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerHtml'\n})\nexport class EcSanitizerHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerUrl'\n})\nexport class EcSanitizerUrlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n\n}\n","//Pipes base\n\nimport { ecCurrencySymbolPipe } from \"./ec-currency-symbol.pipe\";\nimport { EcSanitizerHtmlPipe } from \"./ec-sanitizer-html.pipe\";\nimport { EcSanitizerUrlPipe } from \"./ec-sanitizer-url.pipe\";\n\n\nexport const pipes: any[] = [\n ecCurrencySymbolPipe,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe\n];\n\nexport * from \"./ec-currency-symbol.pipe\";\nexport * from \"./ec-sanitizer-html.pipe\";\nexport * from \"./ec-sanitizer-url.pipe\";\n","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OrderByPipe } from './pipes/order-by.pipe';\nimport { RouterModule } from '@angular/router';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { ToastrModule } from 'ngx-toastr';\nimport { WINDOW_PROVIDERS } from './services/windows.service';\nimport { ProductsService } from './services/products/products.service';\nimport { BannerService } from './services/banner.service';\nimport { CartService } from './services/cart.service';\nimport { OrdersService } from './services/account/orders.service';\nimport { PaginationService } from './interfaces/paginate';\nimport { ConnectionService } from './api/connection.service';\nimport { AuthService } from './services/auth.service';\nimport { OptionsService } from './services/options.service';\nimport { ShipmentService } from './services/checkout/shipment.service';\nimport { CheckoutService } from './services/checkout/checkout.service';\nimport { OptionsOfProductListDataReceiverService } from './utils/options-of-product-list-data.service';\nimport { DataformService } from './services/dataform.service';\nimport { BlocksService } from './services/blocks/blocks.service';\nimport { UtilsService } from './utils/utils.service';\nimport { ShipmentDataTransformer } from './utils/shipment-transformer.service';\nimport { PaymentUtils } from './utils/payment-utils.service';\nimport { ToastService } from './utils/toast.service';\nimport { Constants } from './core.consts';\nimport { AuthGuardService } from './guards/auth-guard.service';\nimport { AbleBuyerGuardService } from './guards/able-buyer-guard.service';\nimport { UserRoleGuardService } from './guards/user-role-guard.service';\nimport { LoggedInGuard } from './guards/loggedin-guard.service';\nimport { CheckoutReadyGuard } from './guards/checkout-ready.service';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { CustomerInterceptor } from './interceptors/customer.interceptor';\nimport { StoresService } from './services/stores.service';\nimport { AddressingService } from './services/checkout/addressing.service';\nimport * as fromComponentsBase from './ec-component/index';\nimport * as fromDirectiveBase from './ec-directive/index';\nimport * as fromPipeBase from './ec-pipe/index';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RecaptchaModule, RecaptchaFormsModule, RECAPTCHA_SETTINGS, RecaptchaSettings, RECAPTCHA_LANGUAGE } from 'ng-recaptcha';\nimport { OrderUtilityService } from './utils/order-util.service';\nimport { FacebookPixelService } from './utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from './utils/analytics/google-analytics.service';\nimport { CardModule } from 'ngx-card';\nimport { AnalyticsService } from './services/analytics.service';\nimport { GTMService } from './utils/analytics/gtm.service';\nimport { ChannelConfigService } from './services/channel-config.service';\nimport { BlocksRepositoryService } from './services/blocks/blocks-repository.service';\nimport { ErrorHandlerService } from './services/checkout/error-handler.service';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { EcSanitizerHtmlPipe } from './ec-pipe/ec-sanitizer-html.pipe';\nimport { EcSanitizerUrlPipe } from './ec-pipe/ec-sanitizer-url.pipe';\nimport { CaptchaService } from './services/captcha.service';\nimport { DopplerService } from './utils/analytics/doppler.service';\n\n@NgModule({\n exports: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n ],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n HttpClientModule,\n InfiniteScrollModule,\n ToastrModule,\n FormsModule,\n ReactiveFormsModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n CardModule,\n ModalModule\n ],\n declarations: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe,\n ],\n providers: [\n\n ]\n})\nexport class NgEasycommerceModule {\n public static forRoot(environment: any): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: [\n Constants,\n {\n provide: 'env', // you can also use InjectionToken\n useValue: environment\n },\n WINDOW_PROVIDERS,\n ProductsService,\n BannerService,\n CartService,\n OrdersService,\n PaginationService,\n ConnectionService,\n AuthService,\n OptionsService,\n ShipmentService,\n CheckoutService,\n OptionsOfProductListDataReceiverService,\n DataformService,\n BlocksService,\n StoresService,\n AnalyticsService,\n // Utils\n Constants,\n UtilsService,\n ShipmentDataTransformer,\n PaymentUtils,\n OptionsOfProductListDataReceiverService,\n ToastService,\n AddressingService,\n FacebookPixelService,\n GoogleAnalyticsService,\n GTMService,\n DopplerService,\n // Guards\n AuthGuardService,\n AbleBuyerGuardService,\n UserRoleGuardService,\n LoggedInGuard,\n CheckoutReadyGuard,\n OrderUtilityService,\n fromPipeBase.pipes,\n CurrencyPipe,\n ChannelConfigService,\n BlocksRepositoryService,\n ErrorHandlerService,\n CaptchaService,\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: '6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3' } as RecaptchaSettings,\n },\n // Others\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CustomerInterceptor,\n multi: true\n }\n ]\n };\n }\n\n public static forChild(): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: []\n };\n }\n}","import { Injectable } from '@angular/core';\r\nimport { Constants } from '../core.consts';\r\nimport { CartService } from './cart.service';\r\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ConnectionService } from '../api/connection.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GiftCardService {\r\n\r\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\r\n\r\n private baseUrl = this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/';\r\n private couponApi = () => this.baseUrl + 'carts/' + this.cartService.getCartToken() + '/coupon';\r\n\r\n public state = this.stateSubject.asObservable();\r\n\r\n constructor(private consts: Constants, private cartService: CartService, private connection: ConnectionService) { }\r\n\r\n setCoupon = (coupon) => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.put(this.couponApi(), { coupon }).subscribe(\r\n res => this.handleResponse(res, coupon)\r\n )\r\n }\r\n\r\n removeCoupon = () => this.stateSubject.getValue().data.coupon && this.deleteCoupon();\r\n\r\n deleteCoupon = () => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.delete(this.couponApi());\r\n }\r\n\r\n handleResponse = (response, coupon) => {\r\n response.code ?\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: false,\r\n data: { message: response.message, discount: '' }\r\n }) :\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: true,\r\n data: { message: 'coupon-ready', discount: 'APPLIED DISCOUNT', coupon }\r\n });\r\n }\r\n\r\n avoidCoupon = () => {\r\n this.stateSubject.next({ doing: false, ok: true, data: { discount: null, message: 'avoided', coupon: null } })\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { Product } from '../interfaces/product';\nimport { BehaviorSubject, Observable, Subscriber } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\n// Get product from Localstorage\nlet products = JSON.parse(localStorage.getItem(\"wishlistItem\")) || [];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WishlistService {\n \n // wishlist array\n public wishlistProducts: BehaviorSubject<Product[]> = new BehaviorSubject([]);\n public observer : Subscriber<{}>;\n\n // Initialize \n constructor(private toastrService: ToastrService) { \n this.wishlistProducts.subscribe(products => products = products);\n }\n\n // Get wishlist Products\n public getProducts(): Observable<Product[]> {\n const itemsStream = new Observable(observer => {\n observer.next(products);\n observer.complete();\n });\n return <Observable<Product[]>>itemsStream;\n }\n\n // If item is aleready added In wishlist\n public hasProduct(product: Product): boolean {\n const item = products.find(item => item.id === product.id);\n return item !== undefined;\n }\n\n // Add to wishlist\n public addToWishlist(product: Product): Product | boolean {\n var item: Product | boolean = false;\n if (this.hasProduct(product)) {\n item = products.filter(item => item.id === product.id)[0];\n const index = products.indexOf(item);\n } else {\n products.push(product);\n }\n this.toastrService.success('This product added to Wishlist.'); // toasr services\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n return item;\n }\n\n // Removed Product\n public removeFromWishlist(product: Product) {\n if (product === undefined) { return; }\n const index = products.indexOf(product);\n products.splice(index, 1);\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n }\n \n\n}\n","import {Inject, Injectable, OnInit} from '@angular/core';\nimport {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';\nimport {Constants} from '../core.consts';\n\n@Injectable()\nexport class StandardReuseStrategy implements RouteReuseStrategy {\n\n private routes : string[] = [];\n private storedRoutes = new Map<string, DetachedRouteHandle>();\n\n constructor(@Inject('env')private env) {}\n\n shouldDetach(route : ActivatedRouteSnapshot): boolean {\n this.routes = (this.routes.length && this.routes) || (this.env.routes || []);\n let result = route.data.key && this.routes.includes(route.data.key);\n return result;\n }\n\n store(route : ActivatedRouteSnapshot, handle : DetachedRouteHandle): void {\n this.storedRoutes.set(route.data.key, handle);\n }\n\n shouldAttach(route : ActivatedRouteSnapshot): boolean {\n return !!this.storedRoutes.get(route.data.key);\n }\n\n retrieve(route : ActivatedRouteSnapshot): DetachedRouteHandle {\n return this.storedRoutes.get(route.data.key);\n }\n\n shouldReuseRoute(future : ActivatedRouteSnapshot, curr : ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n","/*\n * Public API Surface of ng-easycommerce\n */\n\nexport * from './lib/ng-easycommerce.module';\n\n// Classes\nexport * from './lib/classes/user';\nexport * from './lib/classes/checkout/step';\nexport * from './lib/classes/checkout-process-state';\nexport * from './lib/classes/filters/AttributesFilter';\nexport * from './lib/classes/filters/CategoryFilter';\nexport * from './lib/classes/filters/DinamycsFilter';\nexport * from './lib/classes/filters/Filter';\nexport * from './lib/classes/filters/SortFilter';\n\n// Servicios\nexport * from './lib/services/auth.service';\nexport * from './lib/services/banner.service';\nexport * from './lib/services/cart.service';\nexport * from './lib/services/blocks/blocks.service';\nexport * from './lib/services/dataform.service';\nexport * from './lib/services/gift-card.service';\nexport * from './lib/services/options.service';\nexport * from './lib/services/account/orders.service';\nexport * from './lib/services/pagination.service';\nexport * from './lib/services/parameters.service';\nexport * from './lib/services/windows.service';\nexport * from './lib/services/wishlist.service';\nexport * from './lib/services/checkout/checkout.service';\nexport * from './lib/services/checkout/shipment.service';\nexport * from './lib/services/checkout/addressing.service';\nexport * from './lib/services/checkout/payment.service';\nexport * from './lib/services/stores.service';\nexport * from './lib/services/products/product-detail.service';\nexport * from './lib/services/products/products.service';\nexport * from './lib/services/analytics.service';\nexport * from './lib/services/channel-config.service';\nexport * from './lib/services/captcha.service';\n\n// Interfaces\nexport * from './lib/interfaces/block';\nexport * from './lib/interfaces/cart-item';\nexport * from './lib/interfaces/core.interfaces';\nexport * from './lib/interfaces/filter';\nexport * from './lib/interfaces/coupon';\nexport * from './lib/interfaces/deserializable';\nexport * from './lib/interfaces/navbar-items';\nexport * from './lib/interfaces/paginate';\nexport * from './lib/interfaces/parameters';\nexport * from './lib/interfaces/product';\nexport * from './lib/interfaces/step';\nexport * from './lib/interfaces/selection';\nexport * from './lib/interfaces/checkout-data';\nexport * from './lib/interfaces/faqs';\nexport * from './lib/interfaces/store';\nexport * from './lib/interfaces/choose-options/options-of-product-list';\nexport * from './lib/interfaces/choose-options/filter-option';\n\nexport * from './lib/api/connection.service';\n\n// Guards\nexport * from './lib/guards/auth-guard.service';\nexport * from './lib/guards/able-buyer-guard.service';\nexport * from './lib/guards/user-role-guard.service';\nexport * from './lib/guards/checkout-ready.service';\nexport * from './lib/guards/loggedin-guard.service';\n\n// Interceptors\nexport * from './lib/interceptors/auth.interceptor';\n\n// Pipes\n// export * from './lib/pipes/order-by.pipe';\n\n// Utils\nexport * from './lib/utils/toast.service';\nexport * from './lib/utils/utils.service';\n\nexport * from './lib/core.consts';\n\n// Strategy\nexport * from './lib/strategies/standard.strategy';\n\n// Component Base\nexport * from \"./lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/blocks-ec.component\";\nexport * from \"./lib/ec-component/cart-ec/cart-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/checkout-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/success-ec/success-ec.component\";\nexport * from \"./lib/ec-component/collection-ec/collection-ec.component\";\nexport * from \"./lib/ec-component/coupon-ec/coupon-ec.component\";\nexport * from \"./lib/ec-component/faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./lib/ec-component/filters-ec/filters-ec.component\";\nexport * from \"./lib/ec-component/filters-top-ec/filters-top-ec.component\";\nexport * from \"./lib/ec-component/footer-ec/footer-ec.component\";\nexport * from \"./lib/ec-component/header-ec/header-ec.component\";\nexport * from \"./lib/ec-component/login-ec/login-ec.component\";\nexport * from \"./lib/ec-component/product-ec/product-ec.component\";\nexport * from \"./lib/ec-component/related-products-ec/related-products-ec.component\";\nexport * from \"./lib/ec-component/section-container-ec/section-container-ec.component\";\nexport * from \"./lib/ec-component/stores-ec/stores-ec.component\";\nexport * from \"./lib/ec-component/variants-ec/variants-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/price-ec/price-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./lib/ec-component/home-ec/home-ec.component\";\nexport * from \"./lib/ec-component/product-detail-ec/product-detail-ec.component\";\nexport * from \"./lib/ec-component/account-ec/account-ec.component\";\nexport * from \"./lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./lib/ec-component/account-ec/order-ec/order-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/auth-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./lib/ec-component/password-reset-ec/password-reset-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./lib/ec-component/share-block-ec/share-block-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nexport * from \"./lib/ec-component/checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component\";\n\n\n// Directive base\n// export * from './lib/ec-directive/product-button-ec.directive'\n// export * from './lib/ec-directive/product-contact-ec.directive'\n// export * from './lib/ec-directive/product-mini-ec.directive'\n// export * from './lib/ec-directive/product-off-detail-ec.directive'\n// export * from './lib/ec-directive/product-price-ec.directive'\n\nexport * from './lib/ec-directive/product-mini-standard.directive'\nexport * from './lib/ec-directive/add-action-redirect.directive';\nexport * from './lib/ec-directive/product-stock.directive';\nexport * from './lib/ec-directive/auth-wholesaler.directive';\n\n\n//Pipes base\nexport * from './lib/ec-pipe/ec-currency-symbol.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-html.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-url.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {StepService as ɵn} from './lib/classes/checkout/step-service';\nexport {ComponentHelper as ɵf} from './lib/classes/component-helper';\nexport {components as ɵb} from './lib/ec-component/index';\nexport {SellerDashboardContainerEcComponent as ɵc} from './lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component';\nexport {RecaptchaEcComponent as ɵe} from './lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component';\nexport {MagnizoomComponent as ɵd} from './lib/ec-component/widgets-ec/zoom-ec/magnizoom.component';\nexport {directives as ɵq} from './lib/ec-directive/index';\nexport {ProductOffDirective as ɵr} from './lib/ec-directive/product-off.directive';\nexport {pipes as ɵs} from './lib/ec-pipe/index';\nexport {CustomerInterceptor as ɵv} from './lib/interceptors/customer.interceptor';\nexport {OrderByPipe as ɵa} from './lib/pipes/order-by.pipe';\nexport {BlocksRepositoryService as ɵg} from './lib/services/blocks/blocks-repository.service';\nexport {ErrorHandlerService as ɵo} from './lib/services/checkout/error-handler.service';\nexport {DopplerService as ɵl} from './lib/utils/analytics/doppler.service';\nexport {FacebookPixelService as ɵh} from './lib/utils/analytics/facebook-pixel.service';\nexport {GoogleAnalyticsService as ɵi} from './lib/utils/analytics/google-analytics.service';\nexport {GTMService as ɵj} from './lib/utils/analytics/gtm.service';\nexport {MetricoolPixelService as ɵk} from './lib/utils/analytics/metricool-pixel.service';\nexport {OptionsOfProductListDataReceiverService as ɵt} from './lib/utils/options-of-product-list-data.service';\nexport {OrderUtilityService as ɵm} from './lib/utils/order-util.service';\nexport {PaymentUtils as ɵu} from './lib/utils/payment-utils.service';\nexport {ShipmentDataTransformer as ɵp} from './lib/utils/shipment-transformer.service';"],"names":["__param","__decorate","ParamsContext","fromPipeBase.pipes","fromComponentsBase.components","fromDirectiveBase.directives","products"],"mappings":"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"}