ng-easycommerce 0.0.415 → 0.0.418

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 (39) hide show
  1. package/README.md +17 -0
  2. package/assets/decidirFormEc.html +4 -35
  3. package/assets/ec-i18n/en.json +2 -1
  4. package/assets/ec-i18n/es.json +2 -1
  5. package/bundles/ng-easycommerce.umd.js +41 -31
  6. package/bundles/ng-easycommerce.umd.js.map +1 -1
  7. package/bundles/ng-easycommerce.umd.min.js +1 -1
  8. package/bundles/ng-easycommerce.umd.min.js.map +1 -1
  9. package/esm2015/lib/core.consts.js +4 -3
  10. package/esm2015/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.js +1 -3
  11. package/esm2015/lib/ec-component/login-ec/login-ec.component.js +1 -3
  12. package/esm2015/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +2 -2
  13. package/esm2015/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.js +15 -4
  14. package/esm2015/lib/interceptors/auth.interceptor.js +3 -3
  15. package/esm2015/lib/interceptors/customer.interceptor.js +4 -4
  16. package/esm2015/lib/services/channel-config.service.js +5 -7
  17. package/esm2015/lib/services/checkout/addressing.service.js +4 -5
  18. package/esm2015/lib/services/checkout/checkout.service.js +10 -8
  19. package/esm2015/lib/services/checkout/error-handler.service.js +4 -1
  20. package/esm5/lib/core.consts.js +3 -2
  21. package/esm5/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.js +1 -3
  22. package/esm5/lib/ec-component/login-ec/login-ec.component.js +1 -3
  23. package/esm5/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +2 -2
  24. package/esm5/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.js +16 -4
  25. package/esm5/lib/interceptors/auth.interceptor.js +3 -3
  26. package/esm5/lib/interceptors/customer.interceptor.js +4 -4
  27. package/esm5/lib/services/channel-config.service.js +5 -7
  28. package/esm5/lib/services/checkout/addressing.service.js +4 -5
  29. package/esm5/lib/services/checkout/checkout.service.js +10 -8
  30. package/esm5/lib/services/checkout/error-handler.service.js +4 -1
  31. package/fesm2015/ng-easycommerce.js +41 -32
  32. package/fesm2015/ng-easycommerce.js.map +1 -1
  33. package/fesm5/ng-easycommerce.js +41 -31
  34. package/fesm5/ng-easycommerce.js.map +1 -1
  35. package/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.d.ts +5 -1
  36. package/lib/services/checkout/addressing.service.d.ts +3 -3
  37. package/lib/services/checkout/checkout.service.d.ts +2 -2
  38. package/ng-easycommerce.metadata.json +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ng-easycommerce.umd.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"],"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"],"names":["Pipe","InjectionToken","Injectable","isPlatformBrowser","PLATFORM_ID","ReplaySubject","Constants","TranslateService","Router","Inject","take","of","HttpHeaders","HttpParams","HttpClient","BehaviorSubject","__extends","map","catchError","RendererFactory2","DOCUMENT","__param","router","filter","NavigationEnd","ToastrService","Injector","combineLatest","CheckoutService","Validators","AddressingService","ChannelConfigService","mapTo","AuthService","Observable","CartService","OrdersService","StoresService","FilterOptionTypes","FormBuilder","AuthGuardService","AbleBuyerGuardService","UserRoleGuardService","LoggedInGuard","CheckoutReadyGuard","throwError","ParametersService","Component","__decorate","Input","DomSanitizer","BsModalService","Renderer2","ViewChild","__values","ActivatedRoute","EventEmitter","Output","NavigationStart","Meta","Title","concatMap","CaptchaService","ElementRef","Directive","TemplateRef","ViewContainerRef","CurrencyPipe","fromPipeBase.pipes","RECAPTCHA_SETTINGS","HTTP_INTERCEPTORS","NgModule","fromComponentsBase.components","fromDirectiveBase.directives","CommonModule","RouterModule","TranslateModule","HttpClientModule","InfiniteScrollModule","ToastrModule","FormsModule","ReactiveFormsModule","RecaptchaFormsModule","RecaptchaModule","CardModule","ModalModule","GiftCardService","products","WishlistService"],"mappings":"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"}
1
+ {"version":3,"file":"ng-easycommerce.umd.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"],"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\n public modifyChannelConfig = 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 if (channelConfig.currency || channelConfig.baseCurrency)\n this.setCurrency(channelConfig.currency || channelConfig.baseCurrency)\n\n return channelConfig;\n }\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 case 'user_disabled': this.otherErrors(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 errorHandler: 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.errorHandler.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n if (res.code == 'out_of_stock' || res.code == 'items_with_product_or_product_variant_not_enabled') {\n this.toastrService.show('redirect-cart')\n setTimeout(() => {\n this.router.navigateByUrl('/cart')\n }, 3000);\n }\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 typeSelectAddress = '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: typeSelectAddress = 'LOAD_ADDRESS_AND_SELECTION';\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 setTypeSelectAddress = (type: typeSelectAddress) => {\n this.modeSelectAddress = type && type || 'LOAD_ADDRESS_AND_SELECTION'\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.changeChannel(res) },\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 this.consts.modifyChannelConfig({\n channel: channelObj.code,\n locale: channelObj.defaultLocale.code,\n currency: channelObj.baseCurrency\n })\n this.injector.get(AddressingService).setTypeSelectAddress(channelObj.headquarterSelectionOnly || 'LOAD_ADDRESS_AND_SELECTION')\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 === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450 || err.status === 401) {\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 === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450 || err.status === 401) {\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 { filter } from \"rxjs/operators\";\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 ) {\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 }\n },\n err => {\n $('#collapse_login5').collapse('hide');\n this.loading = false;\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';\nimport { filter } from 'rxjs/operators';\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\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected formBuilder: FormBuilder, public router: Router\n ) {\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 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\n }\n },\n err => {\n this.loading = false;\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';\nimport { ParametersService } from '../../../services/parameters.service';\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 paramsMensaje = ''\n public ventana\n public params\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 public paramsService: ParametersService\n ) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutDecidir()\n this.paramsService.parameters.subscribe(res => {\n this.params = res\n this.paramsMensaje = this.hasParams(res,'partially_authorized_decidir') || 'Se está procesando el pago con tarjeta.'\n });\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 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 == 'partially_authorized') {\n this.ready.emit(true)\n this.processError(this.paramsMensaje)\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"],"names":["Pipe","InjectionToken","Injectable","isPlatformBrowser","PLATFORM_ID","ReplaySubject","Constants","TranslateService","Router","Inject","take","of","HttpHeaders","HttpParams","HttpClient","BehaviorSubject","__extends","map","catchError","RendererFactory2","DOCUMENT","__param","router","filter","NavigationEnd","ToastrService","Injector","combineLatest","CheckoutService","Validators","AddressingService","ChannelConfigService","mapTo","AuthService","Observable","CartService","OrdersService","StoresService","FilterOptionTypes","FormBuilder","AuthGuardService","AbleBuyerGuardService","UserRoleGuardService","LoggedInGuard","CheckoutReadyGuard","throwError","ParametersService","Component","__decorate","Input","DomSanitizer","BsModalService","Renderer2","ViewChild","__values","ActivatedRoute","EventEmitter","Output","NavigationStart","Meta","Title","concatMap","CaptchaService","ElementRef","Directive","TemplateRef","ViewContainerRef","CurrencyPipe","fromPipeBase.pipes","RECAPTCHA_SETTINGS","HTTP_INTERCEPTORS","NgModule","fromComponentsBase.components","fromDirectiveBase.directives","CommonModule","RouterModule","TranslateModule","HttpClientModule","InfiniteScrollModule","ToastrModule","FormsModule","ReactiveFormsModule","RecaptchaFormsModule","RecaptchaModule","CardModule","ModalModule","GiftCardService","products","WishlistService"],"mappings":"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"}