ng-easycommerce 0.0.412 → 0.0.415
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/assets/ec-i18n/en.json +4 -2
- package/assets/ec-i18n/es.json +4 -2
- package/assets/recaptcha/recaptcha-site-keys.json +2 -2
- package/assets/recaptcha/recaptcha-sites-prod.json +36 -0
- package/assets/recaptcha/recaptcha-sites.json +18 -18
- package/bundles/ng-easycommerce.umd.js +97 -17
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +25 -9
- package/esm2015/lib/ec-component/share-block-ec/share-block-ec.component.js +17 -3
- package/esm2015/lib/ec-component/stores-ec/stores-ec.component.js +39 -1
- package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
- package/esm2015/lib/interfaces/store.js +1 -1
- package/esm2015/lib/services/captcha.service.js +12 -5
- package/esm2015/lib/services/cart.service.js +3 -3
- package/esm5/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +25 -9
- package/esm5/lib/ec-component/share-block-ec/share-block-ec.component.js +18 -3
- package/esm5/lib/ec-component/stores-ec/stores-ec.component.js +44 -1
- package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
- package/esm5/lib/interfaces/store.js +1 -1
- package/esm5/lib/services/captcha.service.js +12 -5
- package/esm5/lib/services/cart.service.js +3 -3
- package/fesm2015/ng-easycommerce.js +91 -17
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +97 -17
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.d.ts +7 -0
- package/lib/ec-component/share-block-ec/share-block-ec.component.d.ts +6 -1
- package/lib/ec-component/stores-ec/stores-ec.component.d.ts +26 -0
- package/lib/interfaces/store.d.ts +2 -0
- package/lib/services/captcha.service.d.ts +9 -1
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-easycommerce.js","sources":["ng://ng-easycommerce/lib/pipes/order-by.pipe.ts","ng://ng-easycommerce/lib/services/windows.service.ts","ng://ng-easycommerce/lib/core.consts.ts","ng://ng-easycommerce/lib/api/connection.service.ts","ng://ng-easycommerce/lib/services/pagination.service.ts","ng://ng-easycommerce/lib/classes/filters/Filter.ts","ng://ng-easycommerce/lib/classes/filters/CategoryFilter.ts","ng://ng-easycommerce/lib/services/options.service.ts","ng://ng-easycommerce/lib/classes/filters/AttributesFilter.ts","ng://ng-easycommerce/lib/classes/filters/DinamycsFilter.ts","ng://ng-easycommerce/lib/classes/filters/SortFilter.ts","ng://ng-easycommerce/lib/services/products/products.service.ts","ng://ng-easycommerce/lib/services/banner.service.ts","ng://ng-easycommerce/lib/classes/user.ts","ng://ng-easycommerce/lib/classes/checkout/step.ts","ng://ng-easycommerce/lib/utils/order-util.service.ts","ng://ng-easycommerce/lib/utils/analytics/doppler.service.ts","ng://ng-easycommerce/lib/utils/analytics/facebook-pixel.service.ts","ng://ng-easycommerce/lib/utils/analytics/google-analytics.service.ts","ng://ng-easycommerce/lib/utils/analytics/gtm.service.ts","ng://ng-easycommerce/lib/utils/analytics/metricool-pixel.service.ts","ng://ng-easycommerce/lib/services/analytics.service.ts","ng://ng-easycommerce/lib/services/checkout/error-handler.service.ts","ng://ng-easycommerce/lib/utils/toast.service.ts","ng://ng-easycommerce/lib/services/checkout/checkout.service.ts","ng://ng-easycommerce/lib/classes/checkout/step-service.ts","ng://ng-easycommerce/lib/services/checkout/addressing.service.ts","ng://ng-easycommerce/lib/services/channel-config.service.ts","ng://ng-easycommerce/lib/services/auth.service.ts","ng://ng-easycommerce/lib/services/cart.service.ts","ng://ng-easycommerce/lib/services/account/orders.service.ts","ng://ng-easycommerce/lib/utils/shipment-transformer.service.ts","ng://ng-easycommerce/lib/services/stores.service.ts","ng://ng-easycommerce/lib/services/checkout/shipment.service.ts","ng://ng-easycommerce/lib/interfaces/choose-options/filter-option.ts","ng://ng-easycommerce/lib/utils/options-of-product-list-data.service.ts","ng://ng-easycommerce/lib/services/dataform.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks-repository.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks.service.ts","ng://ng-easycommerce/lib/utils/utils.service.ts","ng://ng-easycommerce/lib/utils/payment-utils.service.ts","ng://ng-easycommerce/lib/guards/auth-guard.service.ts","ng://ng-easycommerce/lib/guards/able-buyer-guard.service.ts","ng://ng-easycommerce/lib/guards/user-role-guard.service.ts","ng://ng-easycommerce/lib/guards/loggedin-guard.service.ts","ng://ng-easycommerce/lib/guards/checkout-ready.service.ts","ng://ng-easycommerce/lib/interceptors/auth.interceptor.ts","ng://ng-easycommerce/lib/interceptors/customer.interceptor.ts","ng://ng-easycommerce/lib/classes/component-helper.ts","ng://ng-easycommerce/lib/services/parameters.service.ts","ng://ng-easycommerce/lib/ec-component/account-ec/account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/blocks-ec.component.ts","ng://ng-easycommerce/lib/ec-component/cart-ec/cart-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/checkout-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.ts","ng://ng-easycommerce/lib/services/checkout/payment.service.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/success-ec/success-ec.component.ts","ng://ng-easycommerce/lib/ec-component/collection-ec/collection-ec.component.ts","ng://ng-easycommerce/lib/ec-component/coupon-ec/coupon-ec.component.ts","ng://ng-easycommerce/lib/ec-component/faqs-content-ec/faqs-content-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-ec/filters-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-top-ec/filters-top-ec.component.ts","ng://ng-easycommerce/lib/ec-component/footer-ec/footer-ec.component.ts","ng://ng-easycommerce/lib/ec-component/header-ec/header-ec.component.ts","ng://ng-easycommerce/lib/ec-component/home-ec/home-ec.component.ts","ng://ng-easycommerce/lib/ec-component/login-ec/login-ec.component.ts","ng://ng-easycommerce/lib/services/products/product-detail.service.ts","ng://ng-easycommerce/lib/ec-component/product-detail-ec/product-detail-ec.component.ts","ng://ng-easycommerce/lib/ec-component/product-ec/product-ec.component.ts","ng://ng-easycommerce/lib/ec-component/related-products-ec/related-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/section-container-ec/section-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/stores-ec/stores-ec.component.ts","ng://ng-easycommerce/lib/ec-component/variants-ec/variants-ec.component.ts","ng://ng-easycommerce/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/price-ec/price-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/order-ec/order-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/auth-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-form-ec/register-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/password-reset-ec/password-reset-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/share-block-ec/share-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-error-ec/checkout-error-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/zoom-ec/magnizoom.component.ts","ng://ng-easycommerce/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.ts","ng://ng-easycommerce/lib/services/captcha.service.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.ts","ng://ng-easycommerce/lib/ec-component/index.ts","ng://ng-easycommerce/lib/ec-directive/add-action-redirect.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-stock.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-off.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-mini-standard.directive.ts","ng://ng-easycommerce/lib/ec-directive/auth-wholesaler.directive.ts","ng://ng-easycommerce/lib/ec-directive/index.ts","ng://ng-easycommerce/lib/ec-pipe/ec-currency-symbol.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-html.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-url.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/index.ts","ng://ng-easycommerce/lib/ng-easycommerce.module.ts","ng://ng-easycommerce/lib/services/gift-card.service.ts","ng://ng-easycommerce/lib/services/wishlist.service.ts","ng://ng-easycommerce/lib/strategies/standard.strategy.ts","ng://ng-easycommerce/public-api.ts","ng://ng-easycommerce/ng-easycommerce.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'orderBy'\n})\nexport class OrderByPipe implements PipeTransform {\n\n transform(array, val = 'desc'){\n \n if (!val || val.trim() == \"\"){\n return array;\n } \n\n //ascending\n if (val == 'asc'){\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item1['id'], item2['id']);\n });\n } else if(val == 'desc'){ // desc\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item2['id'], item1['id']);\n });\n } else if(val == 'a-z') { // a-z\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] < b['name'] ){\n return -1;\n } else if ( a['name'] > b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'z-a') { // z-a\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] > b['name'] ){\n return -1;\n } else if ( a['name'] < b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'low') { // low to high\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] < b['price'] ){\n return -1;\n } else if ( a['price'] > b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'high') { // high to low\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] > b['price'] ){\n return -1;\n } else if ( a['price'] < b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n }\n\n }\n\n orderByComparator(a:any, b:any):number{\n\n if((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))){\n //Isn't a number so lowercase the string to properly compare\n if(a.toLowerCase() < b.toLowerCase()) return -1;\n if(a.toLowerCase() > b.toLowerCase()) return 1;\n }\n else{\n //Parse strings as numbers to compare properly\n if(parseFloat(a) < parseFloat(b)) return -1;\n if(parseFloat(a) > parseFloat(b)) return 1;\n }\n\n return 0; //equal each other\n }\n\n}\n","import { isPlatformBrowser } from \"@angular/common\";\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/* Create a new injection token for injecting the window into a component. */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/* Define abstract class for obtaining reference to the global window object. */\r\nexport abstract class WindowRef {\r\n\r\n get nativeWindow(): Window | Object {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n}\r\n\r\n/* Define class that implements the abstract class and returns the native window object. */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get nativeWindow(): Window | Object {\r\n return window;\r\n }\r\n\r\n}\r\n\r\n/* Create an factory function that returns the native window object. */\r\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n return new Object();\r\n}\r\n\r\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\r\nexport const browserWindowProvider: ClassProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n\r\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\r\nexport const windowProvider: FactoryProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [ WindowRef, PLATFORM_ID ]\r\n};\r\n\r\n/* Create an array of providers. */\r\nexport const WINDOW_PROVIDERS = [\r\n browserWindowProvider,\r\n windowProvider\r\n];","\nimport { Injectable, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from './api/connection.service';\nimport { CurrencyConfig } from './interfaces/currencyConfig';\ntype currencyType = 'EUR' | 'ARG' | 'USD' | 'PYG' | 'PEN' | 'CUSTOM';\ntype positionType = 'L' | 'R';\ntype channelTypes = 'b2b' | 'b2b2c' | 'b2c';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Constants {\n\n constructor(public translate: TranslateService, private router: Router, @Inject('env') private env) { }\n\n private readonly LOCALE = 'LOCALE';\n private readonly CHANNEL = 'CHANNEL';\n\n private channelConfigSubject = new ReplaySubject<any>();\n public channelConfig$ = this.channelConfigSubject.asObservable();\n\n private channelConfigAPI = (channel) => '/shop-api/' + channel + 'channel';\n\n private browserWindow: object = window || {};\n private browserWindowEnv: object = this.browserWindow['__env'] || {};\n\n // private urlBase: string = 'http://testing.backend.easycommercetech.com/';\n private urlBase: string = this.browserWindowEnv['apiUrl'] ? this.browserWindowEnv['apiUrl'] : (this.env.apiUrl || 'http://backend.easycommerce.devp/');\n private urlAssets: string = this.browserWindowEnv['urlAssets'] ? this.browserWindowEnv['urlAssets'] : (this.env.urlAssets || this.urlBase);\n private urlFrontend: string = this.browserWindowEnv['urlFrontend'] ? this.browserWindowEnv['urlFrontend'] : (this.env.urlFrontend || 'https://elden.easycommercetech.com/');\n private locale: string = localStorage.getItem(this.LOCALE) ? localStorage.getItem(this.LOCALE) : this.browserWindowEnv['locale'] ? this.browserWindowEnv['locale'] : (this.env.locale || 'es_AR');\n private channel: string = localStorage.getItem(this.CHANNEL) ? localStorage.getItem(this.CHANNEL) : this.browserWindowEnv['channel'] ? this.browserWindowEnv['channel'] : (this.env.channel || 'minorista')\n private blocksCacheTime: string = this.browserWindowEnv['blocksCacheTime'] ? this.browserWindowEnv['blocksCacheTime'] : (this.env.blocksCacheTime || null);\n\n private modalConfig = { title: 'Example', class: 'modal-xl modal-dialog-centered', keyboard: false };\n setModalConfig = (config: any) => this.modalConfig = config;\n getModalConfig = () => this.modalConfig;\n\n private version: string = 'v1';\n\n private routes = [/^home$/g, /^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g, /^contact$/g];\n\n /* Get rid of this ASAP! */\n private masterChannel = null\n\n public getMasterChannel = () => {\n if (!this.masterChannel) this.masterChannel = localStorage.getItem('MASTER_CHANNEL')\n return this.masterChannel\n }\n\n public setMasterChannel = channel => {\n this.masterChannel = channel\n localStorage.setItem('MASTER_CHANNEL', channel)\n }\n\n private isProduction = () => this.browserWindowEnv['production'] ? this.browserWindowEnv['production'] : (this.env.production || false);\n\n setUrlBase = (url) => this.urlBase = url;\n setUrlAssets = (url) => this.urlAssets = url;\n\n /**\n * @param next Function to execute\n * @param params That function needs\n *\n * Execute the function passed as params, if the frontend is in production mode\n */\n onlyIfProduction = (next, params) => this.isProduction() && next(params);\n\n mediaUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"image/\";\n mediaBannerUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"banner-image/\";\n mediaStoreUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"store-image/\";\n\n getProductsListRoute = () => 'collection/';\n\n getSectionsRoute = () => 'section/';\n\n getUrlBase = () => this.urlBase;\n getUrlFrontend = () => this.urlFrontend;\n\n getBlocksCacheTime = (): number => this.blocksCacheTime && parseInt(this.blocksCacheTime);\n\n // getLocale = () => this.locale;\n // setLocale = (locale) => this.locale = locale;\n\n getLocale = () => {\n if (localStorage.getItem(this.LOCALE)) {\n this.locale = localStorage.getItem(this.LOCALE)\n }\n return this.locale\n }\n\n getLocaleTranslate = () => {\n return this.getLocale().split('_')[0]\n }\n\n public setLocale = locale => {\n localStorage.setItem(this.LOCALE, locale)\n this.translate.use(locale.split('_')[0])\n this.locale = locale\n }\n\n getChannel = () => {\n if (localStorage.getItem(this.CHANNEL)) {\n this.channel = localStorage.getItem(this.CHANNEL)\n }\n return this.channel\n }\n\n public setChannel = channel => {\n localStorage.setItem(this.CHANNEL, channel)\n this.channel = channel\n }\n\n getVersion = () => this.version;\n\n loginExtraData = () => {\n return {\n client_id: 'demo_client',\n client_secret: 'secret_demo_client',\n grant_type: 'password'\n }\n }\n\n isCollection = (path) => (/^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g).test(path);\n\n /**\n * Utilities\n */\n\n mobile = () => window.innerWidth < 750;\n\n strictTypeChannel = () => this.env.strictTypeChannel || 'b2b2c';\n\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total;\n\n /**\n * Elementos para manejo de lista de rutas reutilizables\n */\n\n addRouteToReuse = (route: RegExp) => route && this.routes.push(route);\n\n removeRouteToReuse = (route: RegExp) => {\n const index = this.routes.indexOf(route);\n if (index > -1) {\n this.routes.splice(index, 1);\n }\n }\n\n getRoutesToReuse = (): RegExp[] => this.routes;\n\n\n\n /**\n * @public ejemplo de uso <img *ngFor=\"let item of consts.getRatingStar(product.rating,'assets/images/star.png','assets/images/notStar.png')\" [src]=\"item\">\n * @description funcion que dado un valor entre 1 .. 5, y star: notStar: \n * (deben ser el path del archivo local a la implementacion).\n * retorna un arreglo con con la valoracion correspondiente. \n */\n getRatingStar = (rating: any, star: String, notStar: String) => {\n try {\n let urlStar = [];\n let cantStar = Number(rating) || 0;\n for (let index = 0; index < 5; index++) {\n urlStar.push(\n cantStar > 0\n ? star\n : notStar\n );\n cantStar--;\n }\n return urlStar;\n } catch (error) {\n console.error(\"getRatingStar produjo un error -> \", error);\n }\n\n };\n\n /**\n * @public ejemplo de uso (keypress)=\"inputValidationByExpressions($event,'[0-9]{1,9}')\" en el DOM.\n * @description funcion que dado un manejandor de evento, y una expresion regular esta es \n * evaluada sobre los valores que el manejador de eventos nos envia. \n * En el caso en el que se envie el parametro 'condition' este puede ser para \n * anular el evento como condicion adicional a la evaluacion de la entrada.\n */\n inputValidationByExpressions = (e, patron, condition = null ) => {\n try {\n let tecla = (document) ? e.keyCode : e.which;\n if (tecla == 8) return true;\n let patronReg = new RegExp(patron)\n let tecla_final = String.fromCharCode(tecla);\n if (condition != null) {\n return patronReg.test(tecla_final) && condition;\n }\n return patronReg.test(tecla_final)\n } catch (error) {\n console.error(\"inputValidationByExpressions produjo un error -> \", error);\n }\n }\n\n\n /**\n * \n * @param needles (agujas) object con claves valor a filtrar\n * @param haystack (pajar) objecto en el que buscar\n * \n * @description funcion que busca en el haystack (pajar) todos los objetos que contentan \n * todas las claves de los needles(agujas) que contengan el mismo valor\n */\n containsAll(needles: object, haystack: object): boolean {\n let result: boolean = true;\n\n if (!!needles && !!haystack) {\n Object.entries(needles).forEach(value => {\n if (!(haystack.hasOwnProperty(value[0]) && haystack[value[0]] == value[1])) result = false\n })\n }\n return result;\n }\n\n /**\n * Propiedad que se utiliza para tomar como configuración para el tipo de moneda que se utiliza en el sitio. \n * Estos valores son utilizados para el pipe currencyPrice\n */\n public currency: CurrencyConfig = {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n }\n\n /**\n * \n * @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar. \n * Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.\n * @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,\n * todas las key son opcionales y por defecto se toman los valores del ejemplo. \n * @returns se retorna la configuración que se seteo a la propiedad currency del servicio.\n */\n public setCurrency = (currencyTypeFind: currencyType, customType?: CurrencyConfig) => {\n let currencyTypeCofig: CurrencyConfig[] = [\n {\n code: 'EUR',\n symbol: '€',\n position: 'R',\n withoutDecimals: false\n\n },\n {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'USD',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PYG',\n symbol: 'Gs.',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PEN',\n symbol: 'S/',\n position: 'L',\n withoutDecimals: false\n }\n ]\n this.currency = currencyTypeCofig.find(ct => ct.code == currencyTypeFind.toUpperCase()) || this.currency\n customType && (this.currency = { ...this.currency, ...customType })\n return this.currency;\n };\n\n\n /**\n * devuelve true si existe el elemento \"search\" en el array de parametros \"params\"\n * \n * @param params Array de parametros entre los que buscar\n * @param searched Elemento que buscar\n * @param prefix prefijo del string a buscar (ejemplo: \"link_\")\n * @param suffix sufijo del string a buscar (ejemplo: \"link_\")\n * @param casesensitive determina si se evalua con sensibilidad entre mayuscula y minuscula\n * @returns retorna true o false si se encontro o no el parametro en el array\n */\n public hasParams(\n params,\n searched,\n prefix = '',\n suffix = '',\n casesensitive = false): boolean {\n\n\n return casesensitive ? params.find(param => (param.code).toLowerCase() == (prefix + searched + suffix).toLowerCase() || (param.code).toLowerCase() == (searched).toLowerCase())\n : params.find(param => param.code == (prefix + searched + suffix) || param.code == searched)\n\n };\n modifyChannelConfig = (channelConfig) => {\n console.log(\"Channel config: \", channelConfig)\n if (channelConfig.channel || channelConfig.code)\n this.setChannel(channelConfig.channel || channelConfig.code)\n\n if (channelConfig.locale || channelConfig.locales.code)\n this.setLocale(channelConfig.locale || channelConfig.locales.code)\n\n return channelConfig;\n }\n}\n\n","import { Injectable, OnInit } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilterOption, FilterOptionTypes, FilterOptionValue } from '../interfaces/choose-options/filter-option';\nimport { take } from 'rxjs/operators';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class ConnectionService {\n\n private url;\n\n constructor(private http: HttpClient, private translate: TranslateService,\n private consts: Constants) {\n this.url = this.consts.getUrlBase();\n }\n\n /** POST */\n post(api: string, data?): Observable<any> {\n return this.http.post<any>(this.url + api, data || {}).pipe(take(1));\n }\n\n postOutsider(api: string, data): Observable<any> {\n return this.http.post<any>(api, data).pipe(take(1));\n }\n\n /** GET */\n get(api: string, data?): Observable<any> {\n return this.http.get<any>(this.formUrl(api), { params: { ...data } }).catch(err => of(null)).pipe(take(1));\n }\n\n getOutsider(api: string): Observable<any> {\n return this.http.get<any>(api).pipe(take(1));\n }\n\n getErrorNotHandler(api: string): Observable<any> {\n return this.http.get<any>(this.url + api).pipe(take(1));\n }\n\n getOutsiderWithParams(api: string, data: any): Observable<any> {\n return this.http.get<any>(api, { params: { ...data }});\n }\n\n getHTML(api: string): Observable<any> {\n let httpHeaders = new HttpHeaders({ Accept: 'text/plain, text/html' });\n return this.http.get(this.url + api, { responseType: 'text', headers: httpHeaders }).pipe(take(1));\n }\n\n getWithLimit(api: string, limit: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n getPaginated(api: string, limit: string, page: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n params = params.append('page', page);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n /** PUT */\n put(api: string, data): Observable<any> {\n return this.http.put<any>(this.url + api, data).pipe(take(1));\n }\n\n /** DELETE */\n delete(api: string): Observable<any> {\n return this.http.delete<any>(this.url + api).pipe(take(1));\n }\n\n formUrl = (api) => {\n return window.location.protocol == 'https:' && !this.url.includes('https') ? (this.url.replace('http', 'https')) + api : this.url + api;\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { Product } from '../interfaces/product';\n\n@Injectable()\nexport class PaginationService {\n\n private api: string;\n private limit;\n private params;\n private nextSubject : BehaviorSubject<Product[]> = new BehaviorSubject([]);\n private finishedSubject : BehaviorSubject<boolean> = new BehaviorSubject(false);\n private finished;\n public total= 0;\n \n public waiting = false;\n \n public next = this.nextSubject.asObservable();\n public finished$ = this.finishedSubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) { }\n\n initialize(api, limit?, initialValues?) {\n this.api = api;\n this.limit = limit || this.limit || 10;\n this.finished = false;\n this.nextSubject.next([]);\n }\n\n getNext(next?) : boolean{\n this.waiting = true;\n this.api = this.api.replace('%20', ' '); //-\n let nextProducts = !this.api.includes('page=') \n ? this.connection.get(this.api, { limit: this.limit, page: 1 }) \n : this.connection.get(this.api);\n !this.finished && nextProducts.subscribe(\n response => {\n response.links ? this.updatePageData(response) : this.finalize(response)\n next && next(response);\n }\n )\n return true;\n }\n\n private updatePageData = (response) => {\n this.api = this.cleanRoute(response.links.next);\n this.finished = response.page == response.pages;\n this.total = response.total;\n this.finishedSubject.next((response.page == response.pages))\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n private finalize = (response) => {\n this.finished = true;\n this.finishedSubject.next(true);\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n cleanRoute = (route: string) => route.slice(1);\n\n getPage(totalItems: number, currentPage: number = 1, pageSize: number = 8) { }\n\n isFinished = () => this.finished;\n}\n","import { IFilter, FilterElement, FilterType } from \"../../interfaces/filter\";\n\nexport class Filter implements IFilter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = false;\n type = (): FilterType => null;\n getContent = (): FilterElement[] => null;\n toUrlParams = (): string => null;\n setContent = (options): void => null;\n\n setSelected = (element, value?) => {\n !this.multi && this.cleanFilter(this.data, element);\n this.setSelectedValue(element, value);\n }\n\n cleanFilter = (data, element_to_change) => {\n element_to_change && data.forEach(element => {\n element_to_change != element ? element.selected = false : null;\n (element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);\n })\n }\n\n reset = (children?) => {\n let data = children || this.data;\n data.forEach(element => {\n element.selected = false;\n (element.children && element.children.length > 0) && this.reset(element.children);\n })\n }\n\n setSelectedValue = (element, value?, sublist?, multi?) => {\n let elements = sublist || this.data;\n let index = elements.findIndex(subelement => {\n return (element.code || element) == subelement.code;\n });\n if (index >= 0) {\n elements[index].selected = elements[index].selected ? false : true;\n !multi && elements.forEach((child, i) => {\n if (i != index) child.selected = false;\n });\n return {\n elements,\n founded: true\n };\n } else {\n elements.some(elem => elem.type == 'sub') && elements.some(\n filter => {\n let founded = false;\n if (filter.type == 'sub') {\n const result = this.setSelectedValue(element, value, filter.children, filter.multi);\n if (result && result.founded) {\n filter.children = result.elements;\n founded = true;\n }\n }\n return founded;\n }\n )\n }\n };\n\n getSelectedList = (): any => this.findSelected(this.data, []);\n\n findSelected = (elements: any[], result) => {\n let element = elements.find(elem => elem.selected);\n if (element) {\n result.push(element.code);\n return result;\n }\n elements.forEach(elem => {\n if (elem.children && elem.children.length) {\n let new_result = this.findSelected(elem.children, result);\n if (new_result) result = new_result;\n }\n })\n return result;\n }\n}\n\n","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class CategoryFilter extends Filter {\n\n data: FilterElement[] = [];\n private raw_data;\n multi = false;\n\n constructor(private categories$: Observable<any>, formatter, initial_value?) {\n super();\n this.categories$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n type = (): FilterType => 'category';\n\n setContent = (categories, original?, initial_value?) => {\n categories.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = categories;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '', sublist?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub' && !element.selected) {\n const result = this.toUrlParams('', element.children);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if (element.selected) {\n if (actual_url == '') actual_url = '&category=' + element.value;\n else actual_url = element.value;\n }\n })\n return actual_url;\n };\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { BehaviorSubject, of, Observable } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { AuthService } from './auth.service';\nimport { take, map, catchError } from 'rxjs/operators';\nimport { FAQ } from '../interfaces/faqs';\nimport { Filter } from '../classes/filters/Filter';\n\n@Injectable()\nexport class OptionsService {\n\n private categoriesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private attributesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private sectionsSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private readySubject: BehaviorSubject<any> = new BehaviorSubject({ options: { categories: false, attributes: false, sections: false }, readyAll: false });\n private data = [];\n\n\n public categories = this.categoriesSubject.asObservable();\n public attributes = this.attributesSubject.asObservable();\n public sections = this.sectionsSubject.asObservable();\n public ready = this.readySubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) {\n this.getAllData();\n // this.authService.loggedIn.subscribe(res => res && this.getAllData());\n }\n\n private getAllData = () => {\n this.getCategories();\n this.getAttributes();\n this.getSections();\n }\n\n private async getCategories() {\n await this.connection.get(this.taxonsApi()).pipe(take(1),\n map(response => this.appendPaths(true, response)))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.categoriesSubject.next(response)\n }\n ).catch(() => this.categoriesSubject.next([]))\n this.optionLoaded('categories');\n }\n\n private async getAttributes() {\n await this.connection.get(this.attributesApi()).pipe(\n map(response => this.appendPaths(false, (response.items || response))))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.attributesSubject.next(this.addAttributesSlug(response));\n }\n ).catch(() => this.attributesSubject.next([]))\n this.optionLoaded('attributes');\n }\n\n private appendPaths(isCategory, response) {\n let result = response.map(subelement => {\n if (!subelement.children || subelement.children.length == 0) {\n subelement.children = [];\n subelement.path = isCategory ? this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name))\n : this.constants.getProductsListRoute() + 'attributes/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name));\n } else if (subelement.children) {\n subelement.slug = subelement.slug || this.slugify(subelement.name);\n subelement.children = this.appendPaths(isCategory, subelement.children);\n }\n isCategory ? subelement.path = this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name)) : null;\n return subelement;\n });\n return result;\n }\n\n private async getSections() {\n await this.connection.get(this.sectionsApi()).toPromise().then(\n response => {\n let sections = response.filter(item => item.code != 'home');\n sections = sections.map(section => this.appendSection(section));\n this.sectionsSubject.next(sections);\n }\n ).catch(() => this.categoriesSubject.next([]));\n this.optionLoaded('sections');\n }\n\n private appendSection(section) {\n let data: any = {};\n if (section.pages?.length) {\n data.type = 'sub';\n data.children = section.pages.map(page => {\n return {\n code: page.code,\n name: page.name,\n type: 'link',\n path: this.constants.getSectionsRoute() + page.code,\n // path: this.constants.getSectionsRoute() + page.slug,\n }\n });\n data.title = section.name;\n data.name = section.name;\n data.path = this.constants.getSectionsRoute() + section.code;\n data.code = section.code;\n } else {\n data.code = section.code;\n data.title = section.name;\n data.type = 'link';\n data.children = [];\n data.path = this.constants.getSectionsRoute() + section.code;\n }\n return data;\n }\n\n public getSectionContentByLink = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n catchError(e => of(false))\n );\n\n public getSectionContentByLinkAsPromise = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n ).toPromise().catch(e => null);\n\n public getFAQ = () => {\n return this.connection.get(this.faqsApi()).pipe(map(response => {\n let result: FAQ[] = [];\n response.forEach(response_faq => {\n let faqs: FAQ = {\n code: response_faq.code,\n position: response_faq.position,\n title: response_faq.translations[this.constants.getLocale()].topic,\n questions: response_faq.frequentlyAskedQuestions.map(asked_question => ({\n code: asked_question.code,\n position: asked_question.position,\n question: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].question : '',\n answer: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].answer : '',\n }))\n };\n result.push(faqs);\n })\n return result;\n }));\n }\n\n private optionLoaded(key) {\n const allReady = (options) => Object.keys(options).every(option_key => state.options[option_key]);\n let state = this.readySubject.value;\n state.options[key] = true;\n this.readySubject.next({ options: state.options, readyAll: allReady(state.options) })\n }\n\n private isSubElement = (array, code) => {\n let element = array.find(element => element.code == code);\n return (element && element.code) || (array.children && this.isSubElement(array.chidren, code));\n }\n\n private findCode = (slug, elements) => {\n let element = elements.find(elem => elem.slug == slug);\n if (element) return element.code;\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n element = this.findCode(slug, elem.children);\n }\n return element || false;\n });\n return element;\n }\n\n getCodeBySlug = (slug) => {\n let code = this.findCode(slug, this.generateMenu(this.categoriesSubject.value));\n if (!code) code = this.findCode(slug, this.generateMenu(this.attributesSubject.value));\n return code || slug;\n }\n\n getHigher = (code) => {\n let higher_code;\n higher_code = this.data.find(element => !(element.code == code) && !this.isSubElement(element.children, code)).code;\n return higher_code || 'default';\n }\n\n /**\n * @private\n * APIS\n */\n\n private cmsBase = () => 'cms/' + this.constants.getLocale();\n private cmsChannel = () => 'cms/' + this.constants.getChannel();\n private shopApi = () => 'shop-api/' + this.constants.getChannel();\n\n private faqsApi = () => 'cms/' + this.constants.getChannel() + '/faq';\n // private sectionsApi = () => this.cmsBase() + '/sections/';\n private sectionsApi = () => this.cmsChannel() + '/sections/' + '?locale=' + this.constants.getLocale();\n private sectionByCodeApi = (code) => this.cmsBase() + '/pages/' + code;\n // private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private taxonsApi = () => this.shopApi() + '/taxons/' + '?locale=' + this.constants.getLocale();\n private attributesApi = () => this.shopApi() + '/attributes-list' + '?locale=' + this.constants.getLocale();\n\n /**\n * @public\n * UTILS\n */\n\n addAttributesSlug = (attributes) => attributes.map(\n attribute => { return { ...attribute, children: attribute.children.map(child => { return { ...child, slug: this.slugify(child.name) } }) } }\n );\n\n slugify = (text: string) => this.removeAccents(text.toLowerCase().replace(/ & /g, ' ').replace(/ /g, '-').replace(/\\//g, '-').replace(/ñ/g, 'n'));\n\n generateMenu = (elements) => {\n return elements.map(subelement => {\n let result;\n (subelement.children && subelement.children.length == 0) ? result = {\n ...subelement,\n title: subelement.name,\n path: subelement.path,\n type: 'link',\n }\n : result = {\n ...subelement,\n title: subelement.name,\n type: 'sub',\n path: subelement.path,\n children: (subelement.children ? this.generateMenu(subelement.children) : [])\n };\n return result;\n });\n }\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n\n getBreadcrumb = (code) => {\n if (!code) return null;\n let breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.categoriesSubject.value), []);\n if (!breadcrumb || !breadcrumb.length) breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.attributesSubject.value), []);\n return (breadcrumb && breadcrumb.length) && breadcrumb.reverse();\n }\n\n getBreadcrumbByFilters = (filters: Filter[]) => {\n let final_result = [];\n filters.forEach(filter => {\n let result = filter.getSelectedList();\n if (!result || !result.length) return;\n\n if (filter.type() == 'category') final_result.unshift(...this.generateBreadcrumb(result[0], filter.data, []).reverse());\n else result.forEach(\n code => {\n let breadcrumb = this.generateBreadcrumb(code, filter.data, [])\n breadcrumb.length && final_result.push(breadcrumb[0]);\n }\n );\n });\n\n return final_result;\n }\n\n private generateBreadcrumb = (code, elements, result) => {\n let element = elements.find(elem => elem.code == code);\n if (element) {\n result.push(element);\n }\n else {\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n const length = result.length;\n let new_result = this.generateBreadcrumb(code, elem.children, result);\n if (new_result.length > length) {\n result = new_result;\n result.push(elem);\n return true;\n }\n }\n return false;\n })\n }\n return result;\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { OptionsService } from \"../../services/options.service\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class AttributesFilter extends Filter {\n\n data: FilterElement[] = [];\n raw_data;\n multi = false;\n\n constructor(private attributes$: Observable<any>, formatter, initial_value?) {\n super();\n this.attributes$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n setContent = (attributes, original?, initial_value?) => {\n attributes.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = attributes;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n type = (): FilterType => 'attributes';\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&attributeCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&attributeCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&attributeCodes=', '');\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class DynamicsFilter extends Filter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = true;\n\n type = (): FilterType => 'dynamics';\n\n setContent = (options) => {\n options = options.map(option => option = this.createElement(option));\n this.data = options;\n }\n\n createElement = (option) => {\n option = {\n title: option.label, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map(value => {\n return {\n title: value.code,\n description: value.name,\n code: (option.code + ' ' + value.name),\n type: 'child',\n value: value.code,\n selected: false\n }\n })\n }\n return option;\n }\n\n holi = () => {\n\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&optionCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&optionCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&optionCodes=', '');\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class SortFilter extends Filter {\n\n data : FilterElement[] = [];\n multi = true;\n\n constructor() {\n super();\n this.setContent();\n }\n\n type = () : FilterType => 'sort';\n\n setContent = () => {\n this.data = [\n {\n title: 'price', type: 'sub', multi: false, code: 'price' ,shape: 'text', children: [\n { title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false },\n { title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false }\n ]\n },\n {\n title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [\n { title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false },\n { title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false }\n ]\n }\n ]\n }\n\n getContent = () : FilterElement[] => this.data;\n \n toUrlParams = (actual_url = '', sublist?, father?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub') {\n const result = this.toUrlParams(actual_url, element.children, element.title);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if(element.selected) {\n actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);\n }\n })\n return actual_url;\n };\n\n // UTILS\n\n translate = (value) => {\n switch(value) {\n case 'price': return 'price';\n case 'created-date': return 'createdAt';\n case 'alphabetical-order': return 'name';\n }\n }\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscriber } from 'rxjs';\r\nimport 'rxjs/add/operator/map';\r\nimport { ConnectionService } from '../../api/connection.service';\r\nimport { Constants } from '../../core.consts';\r\nimport { Product } from '../../interfaces/product';\r\nimport { FilterOptionValue, FilterOption } from '../../interfaces/choose-options/filter-option';\r\nimport { FilterType, FilterElement, DefaultFilter } from '../../interfaces/filter';\r\nimport { PaginationService } from '../pagination.service';\r\nimport { CategoryFilter } from '../../classes/filters/CategoryFilter';\r\nimport { OptionsService } from '../options.service';\r\nimport { AttributesFilter } from '../../classes/filters/AttributesFilter';\r\nimport { DynamicsFilter } from '../../classes/filters/DinamycsFilter';\r\nimport { SortFilter } from '../../classes/filters/SortFilter';\r\nimport { Filter } from '../../classes/filters/Filter';\r\nimport 'rxjs/add/operator/catch';\r\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\r\n\r\n\r\n// Get product from Localstorage\r\nlet products : any = {};\r\ntype order_type = 'asc' | 'desc';\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n\r\n /** ATTRIBUTES */\r\n private subscription;\r\n private productsSubject: BehaviorSubject<Product[]> = new BehaviorSubject([]);\r\n private filtersSubject: BehaviorSubject<Filter[]> = new BehaviorSubject([]);\r\n\r\n public currency = 'USD';\r\n public catalogMode: boolean = false;\r\n public products$ = this.productsSubject.asObservable();\r\n public filters$ = this.filtersSubject.asObservable();\r\n\r\n\r\n private search_value :String;\r\n\r\n /** APIS */\r\n\r\n latestProductsByCategoryApi = (category) => 'shop-api/' + this.constants.getChannel() + '/taxon-products/by-code/' + category;\r\n latestProductsApi = () => 'shop-api/' + this.constants.getChannel() + '/product-latest/';\r\n specificProductApi = (code, variant) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/' + (variant ? 'variant/' : '') + code + '?locale=' + this.constants.getLocale();\r\n productsBySpecialMarkApi = (specialmark) => 'shop-api/' + this.constants.getVersion() + '/' + this.constants.getChannel() + '/special-marks/' + specialmark + '/products/';\r\n relatedProductsApi = (key) => 'shop-api/' + this.constants.getChannel() + '/products/related/by-code/' + key + '?locale=' + this.constants.getLocale();\r\n productVariantApi = (code) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/variant/' + code;\r\n latestProductsByAttributeApi = (attribute) => 'shop-api/' + this.constants.getChannel() + '/products/by-attribute/' + attribute;\r\n productSearchApi = () => 'shop-api/' + this.constants.getChannel() + '/product-search/';\r\n cmsRelatedProductsApi = (page) => 'cms/' + this.constants.getLocale() + '/' + this.constants.getChannel() + '/page/' + page + '/product-related';\r\n productsFilterApi = (filters = '') => 'shop-api/' + this.constants.getChannel() + '/product-search/' + '?locale=' + this.constants.getLocale() + filters;\r\n\r\n constructor(private connection: ConnectionService, private constants: Constants, private pagination: PaginationService, private options: OptionsService) { }\r\n\r\n /** FUNCTIONS */\r\n\r\n getLatestProducts = (limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsApi()) :\r\n this.connection.getWithLimit(this.latestProductsApi(), limit);\r\n\r\n getLatestProductsByCategory = (category: string, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsByCategoryApi(category)) :\r\n this.connection.getWithLimit(this.latestProductsByCategoryApi(category), limit);\r\n\r\n getPaginated = (limit: string, page: string): Observable<any> =>\r\n this.connection.getPaginated(this.latestProductsApi(), limit, page);\r\n\r\n getSpecificProduct = (code: string, variant: boolean): Observable<any> =>\r\n this.connection.get(this.specificProductApi(code, variant));\r\n\r\n getProductsBySpecialMark = (specialmark, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.productsBySpecialMarkApi(specialmark)) :\r\n this.connection.getWithLimit(this.productsBySpecialMarkApi(specialmark), limit);\r\n\r\n getRelatedProducts = (key: string): Observable<any> =>\r\n this.connection.get(this.relatedProductsApi(key));\r\n\r\n getProductVariant = (code: string) =>\r\n this.connection.get(this.productVariantApi(code));\r\n\r\n getlatestProductsByAttribute = (attribute) =>\r\n this.connection.get(this.latestProductsByAttributeApi(attribute));\r\n\r\n getSearchedProducts = (content) => {\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.generateFinalApi(content), products?.limit || 8);\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n }\r\n\r\n getCMSRelatedProducts = (page) =>\r\n this.connection.get(this.cmsRelatedProductsApi(page)).catch((err) => of(null));\r\n\r\n getProductsSearched = (search_value, filters?: FilterType[]) => {\r\n this.getProductsForFilter(null, filters, search_value);\r\n }\r\n\r\n /**\r\n * @param products \r\n * @param filters \r\n * @param search_value \r\n * @param defaultFilters \r\n */\r\n getProductsForFilter = (products?: { type?: string, value?: string, limit?: number, latest?: boolean }, filters?: FilterType[], search_value?, defaultFilters?: DefaultFilter[]) => {\r\n this.productsSubject.next([]);\r\n search_value ? this.search_value = search_value : this.search_value = ''; \r\n filters && this.setFilters(products, filters, defaultFilters);\r\n this.pagination.initialize(this.generateFinalApi(search_value), products?.limit || 8);\r\n this.subscription && this.subscription.unsubscribe();\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n this.filtersSubject.value.some(filter => filter.type() == 'dynamics')\r\n ? this.pagination.getNext(this.updateDynamicFilters)\r\n : this.pagination.getNext();\r\n }\r\n\r\n setFilters = (products, filters: FilterType[], defaultFilters?: DefaultFilter[]) => {\r\n let final_filters: Filter[] = [];\r\n if (filters?.includes('all')) filters = ['attributes', 'category', 'dynamics', 'sort'];\r\n filters?.forEach(filter => final_filters.push(this.getFilterInstance(filter, products)));\r\n defaultFilters?.forEach(filterDefault => {\r\n let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);\r\n filter && filterDefault.codes.forEach(value => filter.setSelected(value));\r\n })\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getFilterInstance = (filter: string, products): Filter => {\r\n let instance: Filter;\r\n switch (filter) {\r\n case 'category': instance = new CategoryFilter(this.options.categories, this.options.generateMenu, (products.type == 'categories' && products.value)); break;\r\n case 'attributes': instance = new AttributesFilter(this.options.attributes, this.options.generateMenu, (products.type == 'attributes' && products.value)); break;\r\n case 'sort': instance = new SortFilter(); break;\r\n case 'dynamics': instance = new DynamicsFilter(); break;\r\n }\r\n return instance;\r\n }\r\n\r\n updateDynamicFilters = (request) => {\r\n if (!request.options) return;\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == 'dynamics');\r\n index && final_filters[index].setContent(request.options);\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getNext = (): boolean => !this.pagination.isFinished() && this.pagination.getNext();\r\n\r\n setFilterSelected = (filterObj: Filter, filterElem: FilterElement) => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == filterObj.type());\r\n final_filters[index].setSelected(filterElem, filterElem.value);\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n updateProductsForFilter = () => {\r\n this.pagination.waiting = true;\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.search_value ? this.generateFinalApi(this.search_value) : this.generateFinalApi() );\r\n this.pagination.getNext();\r\n // SI SE ACTUALIZARAN LOS FILTROS DINAMICOS EN EL FUTURO\r\n // let filtersObj = this.filtersSubject.value;\r\n // filtersObj.some(filter => filter.type() == 'dynamics') \r\n // ? this.pagination.getNext(this.updateDynamicFilters) \r\n // : this.pagination.getNext();\r\n }\r\n\r\n /**\r\n * \r\n * @param products Array. Lista de productos.\r\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\r\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\r\n * @returns arreglo con los productos desdoblados por la opción solicitada. \r\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \r\n * \r\n * @description Recibe una lista de productos y retorna los mismos productos tantas veces como variantes tenga. \r\n * cada producto retornado tendrá una única variante.\r\n */\r\n getProductsWithUniqueVariant = (products, withOption: ParamsProductsWithUniqueVariant = { type: 'color' , code: 'color' , defaultFirstOption:false , checkIfStock:true }) => {\r\n\r\n !withOption['code'] && withOption['type'] && (withOption['code'] = withOption['type']) || !withOption['code'] && (withOption['code'] = 'color')\r\n !withOption['type'] && withOption['code'] && (withOption['type'] = withOption['code']) || !withOption['type'] && (withOption['type'] = 'color')\r\n !withOption.hasOwnProperty('defaultFirstOption') && (withOption['defaultFirstOption'] = false)\r\n !withOption.hasOwnProperty('checkIfStock') && (withOption['checkIfStock'] = true)\r\n\r\n let productsUniqueVariant = [];\r\n products.forEach(product => {\r\n let variants = [...product?.variants];\r\n let option = product.options.find(opt => opt.type.toLowerCase() === withOption.type.toLowerCase());\r\n \r\n if (option) {\r\n option.values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type.toLowerCase() == withOption.type.toLowerCase()).values = [{ code: optionValue.code, name: optionValue.name}];\r\n //busco una variante con ese code para asignarle la lista de imagenes\r\n let variantAux = variants.find(\r\n variant => ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(withOption.code.toLowerCase()) || op.hasOwnProperty(withOption.code.toUpperCase())) \r\n && (op[withOption.code.toLowerCase()] || op[withOption.code.toUpperCase()]) === optionValue.code)\r\n \r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n if (withOption.defaultFirstOption && product.options?.length) {\r\n let firstOptions = product.options[0]\r\n product.options[0].values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type == firstOptions.type).values = [{ code: firstOptions.code, name: firstOptions.name }];\r\n let variantAux = variants.find(\r\n variant => {\r\n return ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(firstOptions.code.toLowerCase()) || op.hasOwnProperty(firstOptions.code.toUpperCase())) \r\n && (op[firstOptions.code.toLowerCase()] || op[firstOptions.code.toUpperCase()]) === optionValue.code)\r\n }\r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n productsUniqueVariant.push(product)\r\n }\r\n\r\n }\r\n })\r\n return productsUniqueVariant.length > 0 ? productsUniqueVariant : products;\r\n }\r\n\r\n productWithVariantValues = (product, variant, optionValue) => {\r\n product.picturesdefault = variant.images\r\n product.variant_id = variant.code; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.stock = variant.stock || 0; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.currentOption = {\r\n ...optionValue,\r\n productCode: product.id,\r\n variantCode: variant.code,\r\n stock: variant.stock || 0,\r\n finalPrice: variant.saleprice || variant.price || 0,\r\n }\r\n return product\r\n }\r\n\r\n\r\n cleanAllFilters = () => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n final_filters.forEach(filter => filter.reset());\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n /** UTILS AND FILTERING */\r\n\r\n isWaiting = () => this.pagination.waiting;\r\n isFinished = () => this.pagination.isFinished();\r\n\r\n generateFinalApi = (search_value?) => {\r\n let extra_params = '';\r\n this.filtersSubject.value.forEach(filter => {\r\n const extra = filter.toUrlParams();\r\n extra.split('=')[1] != '' ? extra_params += extra : null;\r\n })\r\n if (search_value) extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);\r\n return this.productsFilterApi(extra_params);\r\n }\r\n\r\n finished = (): Observable<boolean> => this.pagination.finished$;\r\n\r\n getTotal = () => this.pagination.total;\r\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { OptionsService } from './options.service';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class BannerService {\n\n private bannerSubject = new BehaviorSubject<any>({ banners: [], button_route: '' });\n private type;\n private code;\n\n public banner = this.bannerSubject.asObservable();\n\n bannersByTaxonApi = (taxon) => 'api/' + this.constants.getVersion() + '/banners/by-taxon/' + taxon;\n bannersByAttributeApi = (attribute) => 'api/' + this.constants.getVersion() + '/banners/by-attribute/' + attribute;\n\n constructor(private connection: ConnectionService, private constants: Constants, private optionsService: OptionsService) {\n // Get available methods of instance, and update this.methods\n }\n\n getBanner = (type, code) => {\n this.type = type;\n this.code = code;\n if (type && code) {\n if (type == 'taxon' || type == 'categories') {\n this.loadBannersByTaxon(code);\n } else {\n this.loadBannersByAtrribute(code);\n }\n }\n }\n\n getBannersByTaxon(taxon: string): Observable<any> {\n return this.connection.get(this.bannersByTaxonApi(taxon)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(taxon)))\n ));\n }\n\n getBannersByAttribute(attribute): Observable<any> {\n return this.connection.get(this.bannersByAttributeApi(attribute)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(attribute)))\n ));\n }\n\n loadBannersByTaxon(taxon) {\n this.getBannersByTaxon(taxon).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n loadBannersByAtrribute(attribute) {\n this.getBannersByAttribute(attribute).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n private procesateBanners(banners) {\n let final_banners = [];\n banners.forEach(banner => final_banners.push(banner.translations.filter(res => res['locale'] == this.constants.getLocale())[0]));\n let button_route = '/collection/' + (this.type == 'taxon' ? 'categories' : 'attributes') + '/' + this.code;\n this.bannerSubject.next({ banners: final_banners, button_route });\n }\n\n getImage = (banner) => (this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getImageFull = (banner) =>\n this.constants.getUrlBase() + ((this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName);\n\n mobile = () => window.innerWidth < 750;\n\n\n}\n","import { Deserializable } from '../interfaces/deserializable';\n\nexport class User implements Deserializable {\n\n private readonly USER = 'USER';\n public type = 'loguedin';\n public config = {};\n public client_id = 'demo_client';\n public client_secret = 'secret_demo_client';\n public grant_type = 'password';\n public email = '';\n public username = '';\n public password = '';\n public first_name = '';\n public last_name = '';\n public address = { country: '', city: '', state: '', address: '', postcode: '' };\n public birthday = '';\n public gender = '';\n public phone_number = '';\n public suscribed_to_newsletter: boolean = true;\n public document_type? = '';\n public preferred_card? = '';\n public document_number? = '';\n public channels = []\n public customers = []\n public token = '';\n public typeUser? = null;\n\n initilized = res => {\n this.token = res.token\n this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'\n this.username = res.username\n this.email = res.username\n this.channels = res.channels || []\n this.customers = res.customers || []\n }\n\n isWholesaler = () => this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false\n\n isSeller = () => this.typeUser && this.typeUser == 'seller' || false\n\n isRetailCustomer = () => this.typeUser && this.typeUser == 'retail_customer' || false\n\n deserialize(input: any): this {\n return Object.assign(this, input);\n }\n\n jsonify() {\n return {\n client_id: this.client_id,\n client_secret: this.client_secret,\n grant_type: this.grant_type,\n username: this.username,\n email: this.email,\n password: this.password,\n token: this.token,\n typeUser: this.typeUser,\n channels: this.channels,\n customers: this.customers\n }\n }\n\n removePassword() {\n this.password = '';\n }\n\n needsAuth() {\n return this.type == 'loguedin';\n }\n\n toForm = () => {\n return {\n firstName: this.first_name,\n lastName: this.last_name,\n phoneNumber: this.phone_number,\n email: this.email,\n documentType: this.document_type,\n documentNumer: this.document_number,\n street: this.address.address,\n countryCode: this.address.country,\n city: this.address.city,\n provinceName: this.address.state,\n postcode: this.address.postcode\n }\n }\n\n persistInStorage = (key = this.USER) => {\n try {\n const json = this.jsonify()\n const str = JSON.stringify(json)\n localStorage.setItem(key, JSON.stringify(this.jsonify()))\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n loadFromStorage = (key = this.USER) => {\n if (localStorage.getItem(key)) {\n this.deserialize(JSON.parse(localStorage.getItem(key)));\n return true\n }\n return false\n }\n\n removeFromStorage = (key = this.USER) => {\n try {\n localStorage.removeItem(key);\n console.log('usuario removido');\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n public setChannels = (...channels) => this.channels = channels\n\n}","import { StepI, StepState, StepTypeI } from \"../../interfaces/step\";\n\nexport class Step implements StepI {\n\n public name;\n public priority;\n public type: StepTypeI;\n public data;\n public state: StepState = 'pending';\n\n constructor(name, priority) {\n this.name = name;\n this.priority = priority;\n }\n\n doing = () => {\n this.data = null;\n this.state = 'doing';\n };\n\n restart = () => {\n this.data = null;\n this.state = 'pending';\n }\n\n ready = (data) => {\n this.data = data;\n this.state = 'ready';\n }\n\n isPending = () => this.state == 'pending' || this.state == 'doing';\n\n isReady = () => this.state == 'ready' && this.data;\n}","import { Injectable } from '@angular/core';\nimport { CheckoutData, CheckoutDataType } from '../interfaces/checkout-data';\n\n@Injectable()\nexport class OrderUtilityService {\n\n constructor() { }\n\n /**\n * @param cart Objeto carrito o orden, indistintamente, ya que poseen el mismo formato\n * @param forCart Si la solicitud de promociones proviene del carrito, suprime el subtotal y el total\n * @description Devuelve un listado con todas las promociones que posee el carro/orden\n */\n getPromotions = (cart: any, forCart: boolean = false): CheckoutData[] => {\n if (cart.checkoutState && cart.checkoutState == \"completed\") return;\n let new_state: CheckoutData[] = [];\n let subtotal: CheckoutData = { type: 'subtotal', name: 'subtotal', amount: cart.totals.items };\n let total: CheckoutData = { type: 'total', name: 'total', amount: cart.totals.total };\n !forCart && new_state.push(subtotal);\n cart.cartDiscounts.forEach(cartDiscount => {\n cartDiscount.type = this.formatType(cartDiscount.type);\n new_state.push({\n type: cartDiscount.type,\n name: (cartDiscount.type != 'coupon') ? cartDiscount.name : 'coupon',\n amount: this.getAmount(cartDiscount, cart)\n });\n });\n !forCart && new_state.push(total);\n return new_state;\n }\n\n getAmount = (discount, cart): number => {\n if (discount.type != 'shipment') return discount.amount;\n return cart.totals.shipping;\n }\n\n formatType = (type: string): CheckoutDataType => {\n let result;\n switch (type) {\n case 'order_promotion': result = 'discount'; break;\n case 'order_shipping_promotion': result = 'shipment'; break;\n case 'order_coupon_promotion': result = 'coupon'; break;\n case 'order_unit_promotion': result = 'discount'; break;\n }\n !result && (result = type.includes('promotion') || type.includes('discount') ? 'discount' : type )\n return result || type;\n }\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class DopplerService {\n\n private isLoaded = false;\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixelSrc) => {\n this.isLoaded = true\n let scriptInsert = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptInsert, 'type', 'text/javascript');\n this.renderer.setAttribute(scriptInsert, 'async', 'async');\n this.renderer.setAttribute(scriptInsert, 'src', pixelSrc);\n this.renderer.appendChild(this.document.body, scriptInsert);\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { FacebookPixelData } from '../../interfaces/analytics/facebook-pixel/facebook-pixel-model';\n\ndeclare let fbq: Function;\n\n@Injectable()\nexport class FacebookPixelService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_id) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `!function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', ${pixel_id});`;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n this.enabled = true;\n setTimeout(() => this.callEvent('initialize'), 1000);\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && fbq('track', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'initialize': return 'PageView';\n case 'view_item': return 'ViewContent';\n case 'checkout_init': return 'InitiateCheckout';\n case 'payment_info': return 'AddPaymentInfo';\n case 'purchase': return 'Purchase';\n case 'add_to_cart': return 'AddToCart';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'initialize': return data;\n case 'view_item': return this.toViewContent(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n default: return data;\n }\n }\n \n callCustomEvent = (event_name, data: FacebookPixelData = {}) => {\n if (!this.enabled) return;\n fbq('trackCustom', event_name, data);\n }\n \n disable = () => this.enabled = false;\n\n private toViewContent = (data) => {\n let lastProduct = data?.name || 'not-product'\n return {\n content_type: 'product',\n content_name: lastProduct,\n content_ids: [data.variants[0]?.code],\n currency: data.currency || \"USD\",\n value: data.variants[0]?.saleprice || data.variants[0]?.price,\n //product_catalog_id: 'TEST'\n }\n }\n \n private toPurchase = (data) => {\n return { \n currency: data.currency || \"USD\",\n value: data.totals?.total || 0 ,\n content_type: 'product_group',\n contents: this.getContents(data),\n //product_catalog_id: 'TEST'\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n num_items: data.items?.length || 0,\n value: data.totals?.total || 0 ,\n }\n }\n\n private toPaymentInfo = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n }\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]?.product?.name || 'not-product'\n return {\n content_name: lastProduct,\n content_type: 'product',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n //product_catalog_id: 'TEST'\n\n }\n }\n\n private getContents = (data) => {\n return data.items.map(\n item => {\n return {\n id: item.product.variants[0]?.code,\n quantity: item.quantity\n }\n }\n )\n }\n\n private getContentIds = (data) => {\n return data.items.map(\n item => item.product.variants[0]?.code\n )\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { ProductsService } from '../../services/products/products.service';\n\ndeclare var gtag: Function;\ndeclare var dataLayer: any[];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleAnalyticsService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any,\n private router: Router, private productsService: ProductsService) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize(gtm_id: string) {\n const declaration = this.renderer.createElement('script');\n declaration.async = true;\n declaration.src = `https://www.googletagmanager.com/gtag/js?id=${gtm_id}`;\n const initialization = this.renderer.createElement('script');\n initialization.text = `window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '${gtm_id}')`;\n this.renderer.appendChild(this.document.head, initialization);\n this.renderer.appendChild(this.document.head, declaration);\n this.enabled = true;\n setTimeout(() => this.startListeningPageViews(gtm_id), 1000);\n }\n\n private startListeningPageViews = (gtm_id) => {\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n gtag('config', gtm_id, {\n 'page_path': event.urlAfterRedirects\n })\n })\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && gtag('event', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item';\n case 'view_item_list': return 'view_item_list';\n case 'checkout_init': return 'begin_checkout'; \n case 'shipping_info': return 'add_shipping_info';\n case 'add_payment_info': return 'add_payment_info';\n case 'purchase': return 'purchase';\n case 'add_to_cart': return 'add_to_cart';\n case 'remove_from_cart': return 'remove_from_cart';\n case 'sign_up': return 'sign_up';\n default: return null;\n //default: return event_name;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item': return this.toViewItem(data);\n case 'view_item_list': return this.toViewItemList(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'shipping_info': return this.toShippingInfo(data);\n case 'add_payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n case 'remove_from_cart': return this.toRemoveToCart(data);\n case 'sign_up': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n // console.log('toPurchese', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency,\n // shipping: data.totals.shipping,\n // tax: data.totals.taxes,\n // value: data.totals.total,\n // transaction_id: data.number,\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // }))\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n // console.log('toInitcheckout', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency || \"USD\",\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // })),\n // value: data.totals?.total || 0,\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity:lastProduct.quantity,...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n // console.log('addtocart', {\n // data,\n // currency: data.currency || \"USD\",\n // items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n // value: lastProduct.total || 0,\n // });\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n // console.log('view ', {\n // currency: product.currency,\n // items: [this.toItem(product)],\n // value: product.variants[0]?.saleprice || product.variants[0]?.price,\n // });\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n // console.log('toViewItemList ', {\n // items: data.products.map(product => this.toItem(product)),\n // item_list_name: data.item_list_name || 'Collection',\n // item_list_id: data.item_list_id || 'collection'\n // });\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n // console.log('remove_from_cart ', {\n // currency: product.currency || \"USD\",\n // items: [this.toItem({ quantity: product.quantity, ...productParam })],\n // value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n // });\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}","import {Inject, Injectable, Optional} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport {GoogleTagManagerConfig} from '../../interfaces/analytics/gtm-config';\n\n@Injectable({providedIn: 'root'})\nexport class GTMService {\n private isLoaded = false;\n private enabled = false;\n\n\n private config : GoogleTagManagerConfig = { id: null };\n\n private browserGlobals = {\n windowRef(): any {\n return window;\n },\n documentRef(): any {\n return document;\n }\n };\n\n constructor(private router: Router) {}\n\n public getDataLayer(): any[]{\n const window = this.browserGlobals.windowRef();\n window.dataLayer = window.dataLayer || [];\n return window.dataLayer;\n }\n\n private pushOnDataLayer(obj : object): void {\n const dataLayer = this.getDataLayer();\n dataLayer.push(obj);\n }\n\n public addGtmToDom(): Promise < boolean > {\n return new Promise(\n (resolve, reject) => {\n if (this.isLoaded) {\n return resolve(this.isLoaded);\n }\n const doc = this.browserGlobals.documentRef();\n this.pushOnDataLayer({'gtm.start': new Date().getTime(), event: 'gtm.js'});\n\n const gtmScript = doc.createElement('script');\n gtmScript.id = 'GTMscript';\n gtmScript.async = true;\n gtmScript.src = this.applyGtmQueryParams(this.config.gtm_resource_path ? this.config.gtm_resource_path : 'https://www.googletagmanager.com/gtm.js');\n gtmScript.addEventListener('load', () => {\n return resolve(this.isLoaded = true);\n });\n gtmScript.addEventListener('error', () => {\n return reject(false);\n });\n doc.head.insertBefore(gtmScript, doc.head.firstChild);\n }\n );\n }\n\n public initialize = (config : GoogleTagManagerConfig) => {\n this.config = config || this.config;\n this.addGtmToDom().then(() => {\n this.router.events.forEach(item => {\n if (item instanceof NavigationEnd) {\n const gtmTag = {\n event: 'page',\n pageName: item.url\n };\n this.pushTag(gtmTag);\n }\n });\n })\n }\n\n public pushTag(item : object): Promise < void > {\n return new Promise<void>((resolve, reject) => {\n if (!this.isLoaded) {\n this.addGtmToDom().then(() => {\n this.pushOnDataLayer(item);\n return resolve();\n }).catch(() => reject());\n } else {\n this.pushOnDataLayer(item);\n return resolve();\n }\n });\n }\n\n private applyGtmQueryParams(url : string): string {\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n return(url + Object.keys(this.config).filter((k) => this.config[k]).map((k) => `${k}=${\n this.config[k]\n }`).join('&'));\n }\n\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.isLoaded) return;\n let event = this.translateEventName(event_name);\n event && this.pushTag({ 'event': this.translateEventName(event_name), data: this.evalEvent(event_name, data) })\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item_gtm';\n case 'view_item_list': return 'view_item_list_gtm';\n case 'checkout_init': return 'begin_checkout_gtm';\n case 'shipping_info': return 'add_shipping_info_gtm';\n case 'add_payment_info': return 'add_payment_info_gtm';\n case 'purchase': return 'purchase_gtm';\n case 'add_to_cart': return 'add_to_cart_gtm';\n case 'remove_from_cart': return 'remove_from_cart_gtm';\n case 'sign_up': return 'sign_up_gtm';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item_gtm': return this.toViewItem(data);\n case 'view_item_list_gtm': return this.toViewItemList(data);\n case 'checkout_init_gtm': return this.toCheckoutInit(data);\n case 'shipping_info_gtm': return this.toShippingInfo(data);\n case 'add_payment_info_gtm': return this.toPaymentInfo(data);\n case 'purchase_gtm': return this.toPurchase(data);\n case 'add_to_cart_gtm': return this.toAddToCart(data);\n case 'remove_from_cart_gtm': return this.toRemoveToCart(data);\n case 'sign_up_gtm': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n countItems: data.items?.length || 0,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MetricoolPixel } from \"../../interfaces/analytics/metricool-pixel\";\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class MetricoolPixelService {\n private isLoaded = false;\n\n\n\n private renderer: Renderer2;\n\n \n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_hash) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `\n function loadScript(a) {\n var b = document.getElementsByTagName(\"head\")[0], c = document.createElement(\"script\");\n c.type = \"text/javascript\",\n c.src = \"https://tracker.metricool.com/resources/be.js\",\n c.onreadystatechange = a,\n c.onload = a, b.appendChild(c)\n } loadScript(function () {\n beTracker.t({ hash: \"${pixel_hash}\" })\n });\n `;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { DopplerService } from '../utils/analytics/doppler.service';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { GTMService } from '../utils/analytics/gtm.service';\nimport { MetricoolPixelService } from '../utils/analytics/metricool-pixel.service';\n\n@Injectable()\nexport class AnalyticsService {\n\n private services: any[] = [];\n\n constructor(\n private facebookAnalitycs: FacebookPixelService,\n private googleAnalytics: GoogleAnalyticsService,\n private gtmAnalytics: GTMService,\n private metricoolAnalytics:MetricoolPixelService,\n private dopplerAnalytics:DopplerService) {\n this.services.push(this.facebookAnalitycs);\n this.services.push(this.googleAnalytics);\n this.services.push(this.gtmAnalytics);\n }\n\n initializeFacebook = (value) => {\n this.facebookAnalitycs.initialize(value);\n }\n\n initializeGoogle = (value) => {\n this.googleAnalytics.initialize(value);\n }\n\n initializeGTM = (value) => {\n this.gtmAnalytics.initialize({ id: value });\n }\n\n initializeMetricool = (value) => {\n this.metricoolAnalytics.initialize(value);\n }\n\n initializeDoppler = (value) => {\n this.dopplerAnalytics.initialize(value);\n }\n\n callEvent = (event_name: AnalyticEventKey, data: any = {}) => {\n this.services.forEach(service => {\n service.callEvent(event_name, data)\n });\n }\n}","import { Injectable, Injector } from '@angular/core';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AuthService } from '../auth.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandlerService {\n\n private errorSubject = new BehaviorSubject<BodyError>(null);\n public error$ = this.errorSubject.asObservable();\n\n constructor(private cartService: CartService,\n private toastrService: ToastrService,\n private injector: Injector,\n private consts: Constants) { }\n\n outOfStock = (error: BodyError) => {\n this.cartService.updateItemsOnError(error.content, error.code)\n this.otherErrors(error)\n }\n\n channeAccessPermissionDenied = (error: BodyError) => {\n this.injector.get(AuthService).logout()\n this.otherErrors(error)\n }\n\n otherErrors = (error: BodyError) => {\n error && error.message && this.errorSubject.next(error)\n this.toastrService.show(error.message,'', {closeButton:true,timeOut:6000})\n this.clearError()\n }\n\n clearError = () => {\n setTimeout(() => {\n this.errorSubject.next(null)\n }, 3000);\n }\n\n handlerErrorResponse = (error: BodyError) => {\n switch (error.code) {\n case 'out_of_stock': this.outOfStock(error); break;\n case 'items_with_product_or_product_variant_not_enabled': this.outOfStock(error); break;\n case 'channel_access_permission_denied': this.channeAccessPermissionDenied(error); break;\n default: this.otherErrors(error); break;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class ToastService {\n\n constructor(private translation: TranslateService, private toastrService: ToastrService) {}\n\n show = (message, interpolateParams: any = {}, title = '', configToastr: Partial<IndividualConfig> = { }) => {\n this.translation.get(message, interpolateParams).pipe(take(1)).subscribe(\n res => this.toastrService.show((res ? res : message), title, configToastr)\n );\n }\n}","import { Injectable, OnInit } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\nimport { StepI, StepTypeI } from '../../interfaces/step';\nimport { Step } from '../../classes/checkout/step';\nimport { CheckoutData, CheckoutDataType } from '../../interfaces/checkout-data';\nimport { OrderUtilityService } from '../../utils/order-util.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { AuthService } from '../auth.service';\nimport { User } from '../../classes/user';\nimport { ErrorHandlerService } from './error-handler.service';\nimport { filter, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ToastService } from '../../utils/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CheckoutService implements OnInit {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n putAddressApi = () => this.baseApi() + '/address';\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n completeApi = () => this.baseApi() + '/complete';\n persistShipmentApi = () => '';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getHasPurchaseConditions = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/has_purchase_conditions';\n\n private canCheckoutSubject = new ReplaySubject<boolean>();\n private onReadySubject = new BehaviorSubject<boolean>(false);\n\n private stateSubject = new BehaviorSubject<Step[]>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private orderSubject = new BehaviorSubject<any>(null);\n private asociatedDataSubject = new BehaviorSubject<CheckoutData[]>(null);\n private order: any;\n private checkout_data: any = {};\n public total;\n private cartLocal;\n private user: User;\n\n public order$ = this.orderSubject.asObservable();\n public state$ = this.stateSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public canCheckout$ = this.canCheckoutSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n public onReady$ = this.onReadySubject.asObservable();\n\n constructor(private connection: ConnectionService,\n private cartService: CartService,\n private consts: Constants,\n private toastrService: ToastService,\n private orderUtils: OrderUtilityService,\n private analyticsService: AnalyticsService,\n public authService: AuthService,\n private router: Router,\n private checkoutError: ErrorHandlerService) {\n\n combineLatest([this.cartService.cartItems, this.cartService.loading]).subscribe(([items, loading]) => {\n if (!loading && items.length > 0) {\n this.canCheckoutSubject.next(true)\n this.cartService.getTotalAmount().subscribe(res => {\n this.total = res;\n });\n }\n\n })\n this.cartService.cart.subscribe(cart => cart && (this.cartLocal = cart) && this.updateAsociatedData(cart));\n this.order$.subscribe(order => order && this.updateAsociatedData(order))\n this.authService.getUserProfile().subscribe(user => this.user = user)\n this.checkoutError.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.toastrService.show('redirect-cart')\n setTimeout(() => {\n this.router.navigateByUrl('/cart')\n }, 3000);\n }\n )\n }\n\n ngOnInit() {\n }\n\n updateOrder = (order) => order && this.orderSubject.next(order);\n\n getStepData = (step_name: StepTypeI) => {\n let step_result = this.stateSubject.getValue().find(step => step.name == step_name);\n return (step_result && step_result.data);\n }\n\n setSteps = (steps: StepI[], autohandle = true) => {\n let final_steps = [];\n steps.forEach((step, i) => final_steps.push(new Step(step.name, step.priority || (i + 1))));\n this.stateSubject.next(final_steps);\n this.connection.getErrorNotHandler(this.getHasPurchaseConditions()).toPromise().then(\n res => {\n this.analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total })\n }\n )\n }\n\n setStepReady = async (step_number, data, order?) => {\n await this.restartAllStepsFrom(step_number);\n setTimeout(() => {\n let steps = this.stateSubject.getValue();\n steps.find(step => step.priority == step_number).ready(data);\n this.stateSubject.next(steps);\n\n if (order) {\n this.orderSubject.next(order);\n this.total = order.totals.total;\n }\n\n this.isCheckoutReady() &&\n setTimeout(() => {\n this.onReadySubject.next(true);\n }, 500);\n }, 150);\n return true;\n }\n\n setStepDoing = async (step_number) => {\n let steps = this.stateSubject.getValue();\n steps = await this.restartAllStepsFrom(step_number, false, false);\n steps.find(step => step.priority == step_number).doing();\n this.stateSubject.next(steps);\n return true;\n }\n\n restartAllStepsFrom = (step_number, included = true, update = true) => {\n let steps = this.stateSubject.getValue();\n steps = steps.map((step) => {\n included\n ? (step.priority >= step_number) && step.restart()\n : (step.priority > step_number) && step.restart()\n return step;\n })\n update && this.stateSubject.next(steps);\n return steps;\n }\n\n isCheckoutReady = () => {\n let steps = this.stateSubject.value;\n const step_missing = steps.find(step => step.isPending());\n return !step_missing;\n }\n\n isStepReady = (step_name) => {\n return this.stateSubject.getValue().find(step => step.name == step_name).isReady()\n };\n\n setOrder = (order) => { this.order = order, this.orderSubject.next(order) };\n getOrder = () => this.order || this.orderSubject.value;\n\n private completeOrder = () => this.connection.put(this.completeApi(), { email: this.checkout_data.email, notes: this.checkout_data.notes || '' }).toPromise();\n\n complete = async () => {\n this.loadingSubject.next(true);\n let result = await this.completeOrder();\n if (result && result.error) {\n this.cartService.changeHaveToUpdate(false);\n this.loadingSubject.next(false);\n return ({ ok: false, require_login: true, message: 'not-completed' });\n }\n this.setOrder(result);\n this.analyticsService.callEvent('purchase', { ...result, currency: result.currency, value: result.total });\n this.cartService.clearAndResetCart();\n this.canCheckoutSubject.next(false);\n this.onReadySubject.next(false);\n this.loadingSubject.next(false);\n return ({ ok: true, require_login: false, message: '' });\n }\n\n updateAsociatedData = (cart: any) => {\n let result = this.orderUtils.getPromotions(cart);\n if (this.authService.getUserProfileAsUser()?.isWholesaler() && cart.totals.taxes != 0) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'taxes',\n name: 'taxes',\n amount: cart.totals.taxes\n }\n result.push(total);\n }\n let shipment = result?.find(promotion => promotion.type == \"shipment\");\n if (!shipment && cart.totals.shipping != 0) {\n\n if (result?.length && !result.find(item => item.type === \"shipment\")) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'shipment',\n name: 'shipment',\n amount: cart.totals.shipping\n }\n result.push(total);\n }\n }\n this.asociatedDataSubject.next(result);\n }\n\n restartCheckout = () => { }\n\n}","import { BodyError } from \"../../interfaces/checkout/checkout-error\";\nimport { CheckoutService } from \"../../services/checkout/checkout.service\";\n\nexport class StepService {\n\n public step_id;\n\n constructor(private checkout: CheckoutService) { }\n\n /** Persistir el id del paso para luego indicarle al CheckoutService quien le habla */\n initialize = (step_id) => {\n this.step_id = step_id;\n }\n\n /** Reinicia información en CheckoutService del paso */\n restartStep = () => this.checkout.setStepDoing(this.step_id);\n\n /**\n * Obtener información obtenida en el paso de datos asociados al usuario y a la facturación\n */\n getUserData = () => this.checkout.getStepData('address');\n\n /**\n * Obtener información obtenida en el paso de envío\n */\n getShipmentData = () => this.checkout.getStepData('shipment');\n\n /**\n * Obtener información obtenida en el paso de pago\n */\n getPaymentData = () => this.checkout.getStepData('payment');\n\n /**\n * \n * @param step_data Información obtenida en el paso\n * @param order Información de la orden que devolvió el backend al terminar el paso\n */\n setStepReady = async (step_data, order) => (await this.restartStep()) && this.checkout.setStepReady(this.step_id, step_data, order);\n\n /**\n * \n */\n //setError = (error: BodyError) => error && this.checkout.handleError(error);\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { Validators } from '@angular/forms';\n\ntype typeForms = 'EUR' | 'ARG';\ntype typeSelectAddres = 'ONLY_LOAD_ADDRESS' | 'ONLY_ADDRESS_SELECTION' | 'LOAD_ADDRESS_AND_SELECTION';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AddressingService extends StepService {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n countriesApi = () => 'shop-api/' + this.consts.getChannel() + '/countries';\n zonesApi = () => 'shop-api/' + this.consts.getChannel() + '/zones';\n provincesApi = () => 'shop-api/' + this.consts.getChannel() + '/provinces';\n putAddressApi = () => this.baseApi() + '/address';\n addressBookApi = () => 'shop-api/' + this.consts.getChannel() + '/address-book';\n headquarterApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() +'/headquarter';\n\n public typeForms: typeForms = 'ARG';\n public modeSelectAddress: typeSelectAddres = 'ONLY_LOAD_ADDRESS';\n public countriesList = [];\n public documentTypes = [];\n public provinceList = [];\n\n constructor(private connection: ConnectionService, private consts: Constants, private cartService: CartService, private checkoutService: CheckoutService,\n private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getAddressingData().then(res => {\n if (res) {\n this.documentTypes = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.documentTypes || []\n this.provinceList = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.provinces || []\n this.countriesList = res\n }\n })\n }\n\n ngOnInit() {\n\n }\n\n getAddressingData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res?._embedded?.items)).toPromise();\n\n getAddressBook = async () =>\n this.connection.get(this.addressBookApi()).pipe(map(res => res?.length && res.map(addres => { return addres && { ...addres, selected: addres.default } }) || null )).toPromise();\n \n setHeadquarter = (sede: any) => {\n return this.connection.put(this.headquarterApi(), sede.selected)\n .pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(sede, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n \n setAddress = (user_data: any) => {\n user_data.locale = this.consts.getLocale();\n return this.connection.put(this.putAddressApi(), user_data).pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(user_data, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n putAddressAndHandle = (user_data, next?, onError?) => {\n user_data.locale = this.consts.getLocale();\n let data = { shippingAddress: { ...user_data.data } };\n this.connection.put(this.putAddressApi(), data).toPromise().then(\n res => {\n this.setStepReady(user_data, res);\n this.analyticsService.callEvent('payment_info', res);\n next && next();\n },\n err => onError && onError(err)\n )\n }\n\n getTypeForm = () => {\n let formsTypeCofig = [\n {\n code: 'EUR',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n terms: [null, Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: false, values: this.documentTypes },\n documentNumber: { enabled: true, required: false, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: true, required: true, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n },\n {\n code: 'ARG',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: true, values: this.documentTypes},\n documentNumber: { enabled: true, required: true, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: false, required: false, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n }\n ]\n return formsTypeCofig.find(ct => ct.code == this.typeForms);\n }\n\n setTypeSelectAddres = (type: typeSelectAddres) => {\n console.log(\"Setting type: \", type)\n this.modeSelectAddress = type && type || 'ONLY_LOAD_ADDRESS'\n\n }\n\n setTypeForms = (type: typeForms) => {\n this.typeForms = type && type || 'ARG' \n }\n}","\nimport { Injectable, Inject, Injector } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from '../api/connection.service';\nimport { AddressingService } from './checkout/addressing.service';\nimport { Constants } from '../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChannelConfigService {\n\n constructor(private consts: Constants, @Inject('env') private env, private connection: ConnectionService, private injector: Injector) {\n this.getChannelConfig()\n this.getChannels()\n this.getLocales()\n }\n\n private channelConfigApi = () => 'shop-api/' + this.consts.getChannel() + '/channel'\n private localesApi = () => 'shop-api/' + this.consts.getChannel() + '/locales'\n private channelsApi = () => 'shop-api/channels'\n\n private channelConfigSubject = new ReplaySubject<any>()\n public channelConfig$ = this.channelConfigSubject.asObservable()\n\n private channelsSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public channels = this.channelsSubject.asObservable()\n\n private localesSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public locales = this.localesSubject.asObservable()\n\n public getChannelConfig = () => {\n this.connection.get(this.channelConfigApi()).toPromise().then(\n res => { this.channelConfigSubject.next(res), res && this.consts.setChannel(res.code) },\n err => this.channelConfigSubject.next({})\n ).catch(err => this.channelConfigSubject.next(null))\n }\n\n public getChannels = () => {\n this.connection.get(this.channelsApi()).toPromise()\n .then(res => this.channelsSubject.next(res))\n .catch(err => this.channelsSubject.next([]))\n }\n\n public getLocales = () => {\n this.connection.get(this.localesApi()).toPromise()\n .then(res => this.localesSubject.next(res.items))\n .catch(err => this.localesSubject.next([]))\n }\n\n public changeChannel = channelObj => {\n console.log(\"Channel: \", channelObj)\n this.consts.modifyChannelConfig({\n channel: channelObj.code,\n locale: channelObj.defaultLocale.code\n /* channeltype: channelObj.type */\n /* currency: channelObj.baseCurrency */\n })\n this.injector.get(AddressingService).setTypeSelectAddres(channelObj.headquarterSelectionOnly || null)\n }\n\n}\n\n","import { Injectable, Injector } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { User } from '../classes/user';\nimport 'rxjs/add/observable/of';\nimport { ToastrService } from 'ngx-toastr';\nimport { Constants } from '../core.consts';\nimport { map, mapTo, catchError, tap } from 'rxjs/operators';\nimport * as moment from \"moment\";\nimport { ChannelConfigService } from './channel-config.service';\nimport { take } from 'rxjs-compat/operator/take';\nimport { CartService } from './cart.service';\nimport { Router } from '@angular/router';\nimport { UserRoleType } from '../classes/user-role-type';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private readonly JWT_TOKEN = 'JWT_TOKEN'\n private readonly REFRESH_TOKEN = 'REFRESH_TOKEN'\n private readonly EXPIRATES_IN = 'EXPIRATES_IN'\n private readonly USER = 'USER'\n private readonly MAIL = 'mail'\n private readonly LOCALE = 'LOCALE'\n private readonly CHANNEL = 'CHANNEL'\n private readonly CUSTOMER = 'CUSTOMER'\n\n /* activeChannelSwitch? */\n private activeChannelChange: boolean = false\n private loggedInSubject = new BehaviorSubject<any>(false)\n private loggingInSubject = new BehaviorSubject<any>(false)\n private userInSubject = new BehaviorSubject<User>(null)\n private channelsUserSubject = new BehaviorSubject<any[]>([])\n /* private customerSubject = new BehaviorSubject<any>(null) */\n private user: User = null\n\n // APIS\n public tokenApi = () => 'shop-api/login_check';\n public registerApi = () => 'shop-api/' + this.constants.getChannel() + '/register';\n public registerWholesalerApi = () => 'shop-api/' + this.constants.getChannel() + '/register-wholesaler';\n public confirmAccountApi = (token) => 'shop-api/' + this.constants.getChannel() + '/verify-account?token=' + token;\n public resetPasswordApi = (token) => 'shop-api/' + this.constants.getChannel() + '/password-reset/' + token;\n public recoverPasswordApi = () => 'shop-api/' + this.constants.getChannel() + '/request-password-reset';\n public countriesApi = () => 'shop-api/' + this.constants.getChannel() + '/countries';\n\n // Atributos utiles\n public waiting = false;\n public loggedIn = this.loggedInSubject.asObservable()\n public loggingIn = this.loggingInSubject.asObservable()\n public userAuth = this.userInSubject.asObservable()\n public channelsUser = this.channelsUserSubject.asObservable()\n /* private customer = this.channelsUserSubject.asObservable() */\n private customer = null\n public channel = null\n public channels = []\n private homeResolver = null\n\n constructor(private connection: ConnectionService,\n private toastrService: ToastrService,\n private constants: Constants,\n private injector: Injector\n ) {\n this.isAuthenticated() && this.loggedInSubject.next(true)\n }\n\n /**\n * @desc Devuelve un observable\n * @param user Objeto que contiene username y password \n */\n login(user: { username: string, password: string }, withRoles: UserRoleType[] = []): Observable<any> {\n this.injector.get(ChannelConfigService).channelConfig$.subscribe(ch => this.channel = ch)\n this.injector.get(ChannelConfigService).channels.subscribe(ch => this.channels = ch)\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n let result = this.connection.post(this.tokenApi(), user).pipe(\n map(res => {\n if (this.channelAccessPermission({ ...user, ...res }) && this.isAllowedRole(withRoles, res.type)) {\n this.doLoginUser({ ...user, ...res })\n return 'ok'\n }\n return 'error'\n }),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n );\n return result\n }\n\n channelAccessPermission = (res) => {\n this.channelsUserSubject.next([])\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n /* if (UserRoleType.SELLER == res.type as UserRoleType) return true */\n\n /* No authorized channels */\n if (res.channels?.length == 0) {\n return false\n }\n /* Some authorized channel(s) including current channel */\n if (res.channels.find(userchannel => userchannel.code === this.channel.code)) {\n /* Multiple authorized channels including current channel */\n if (res.channels?.length > 1 && this.activeChannelChange)\n this.channelsUserSubject.next(res.channels)\n return true\n }\n /* One authorized channel not including current channel */\n if (res.channels?.length == 1 && this.activeChannelChange) {\n delete res.password\n this.channelAccess(res.channels[0], res)\n return true\n }\n /* Multiple authorized channels not including current channel */\n if (this.activeChannelChange) {\n this.channelsUserSubject.next(res.channels)\n return true\n }\n return false\n }\n\n channelAccess = (channel, user = null) => {\n if (window.location.hostname != channel.hostname) {\n let encoded = btoa(JSON.stringify(user != null ? user : this.user))\n window.location.replace(`${window.location.protocol}//${channel.hostname}/auth/redirect/${encoded}`)\n } else {\n this.constants.modifyChannelConfig(channel)\n window.location.reload()\n }\n }\n\n /**\n * @desc Devuelve una promesa\n * @param user Objeto que contiene username y password \n */\n doLogin = (user: { username: string, password: string }) => {\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n return this.connection.post(this.tokenApi(), user).pipe(\n map(res => this.doLoginUser(res)),\n mapTo('ok'),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n ).toPromise();\n }\n\n getUserProfile(): Observable<User> {\n return (this.user && Observable.of(this.user)) || this.getCurrentUser();\n }\n\n getUserProfileAsUser(): User {\n return this.user || this.getCurrentUserAsUser();\n }\n\n private getCurrentUserAsUser(): User {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n else if (this.user?.channels.find(userchannel => userchannel?.code === this.constants.getChannel())) {\n // this.user.channels?.length > 1 && this.channelsUserSubject.next(this.user.channels)\n return this.user;\n } else {\n this.logout()\n //window.location.reload()\n }\n return this.user;\n }\n\n private getCurrentUser(): Observable<User> {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n return Observable.of(this.user);\n }\n\n // private getCurrentUser(): Observable<User> {\n // return this.connection.get('getProfile').map(res => {\n // const user = new User();\n // this.user = user.deserialize(res.data);\n // return user;\n // });\n // }\n\n signUp = (data) => this.connection.post(this.registerApi(), data);\n\n isAuthenticated(): boolean {\n if (this.isTokenExpired()) {\n this.doLogoutUser()\n }\n this.getCurrentUserAsUser()\n this.userInSubject.next(this.user);\n return this.getToken() && !this.isTokenExpired() && this.user != null;\n }\n\n confirmAccount = (token: string) =>\n this.connection.get(this.confirmAccountApi(token));\n\n passwordReset = (new_password, token) => {\n const data = { password: { first: new_password, second: new_password } };\n return this.connection.put(this.resetPasswordApi(token), data);\n }\n\n recoverPassword = (email: string) =>\n this.connection.put(this.recoverPasswordApi(), { email });\n\n /* TOKEN */\n\n logout() {\n this.doLogoutUser();\n }\n\n refreshToken() {\n let data = { ...this.constants.loginExtraData(), refresh_token: this.getRefreshToken() }\n return this.connection.post(this.tokenApi(), data).pipe(map(\n res => this.doLoginUser(res)\n ))\n }\n\n getToken() {\n return localStorage.getItem(this.JWT_TOKEN);\n }\n\n isTokenExpired = () => {\n const fecha_expiracion = this.getExpiratesAt();\n const result = moment() >= moment(fecha_expiracion);\n return result;\n }\n\n getExpiratesAt = () => localStorage.getItem(this.EXPIRATES_IN);\n\n public doLoginUser(tokens) {\n this.user = new User()\n this.user.initilized(tokens)\n this.forceChannelsForSeller(tokens)\n this.user.persistInStorage()\n // localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'days').format());\n // localStorage.setItem(this.REFRESH_TOKEN, tokens.refresh_token);\n localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.REFRESH_TOKEN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.JWT_TOKEN, tokens.token);\n localStorage.setItem(this.MAIL, tokens.username);\n this.userInSubject.next(this.user);\n this.loggedInSubject.next(true);\n this.loggingInSubject.next(false);\n }\n\n public doLogoutUser() {\n this.user = null\n localStorage.removeItem(this.USER);\n localStorage.removeItem(this.EXPIRATES_IN);\n localStorage.removeItem(this.JWT_TOKEN);\n localStorage.removeItem(this.REFRESH_TOKEN);\n localStorage.removeItem('cart_token');\n localStorage.removeItem(this.MAIL);\n localStorage.removeItem(this.CHANNEL);\n localStorage.removeItem(this.LOCALE);\n localStorage.removeItem(this.CUSTOMER);\n localStorage.removeItem('MASTER_CHANNEL');\n this.loggedInSubject.next(false);\n this.userInSubject.next(this.user);\n this.channelsUserSubject.next([])\n }\n\n private getRefreshToken() {\n return localStorage.getItem(this.REFRESH_TOKEN);\n }\n\n hasToRefresh = () => this.getRefreshToken();\n\n signUpWholesaler = (data) => this.connection.post(this.registerWholesalerApi(), data);\n\n getCountriesData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res._embedded.items)).toPromise();\n\n public setActiveChannelChange = (activelyChangeChannelsOnLogin: boolean) => this.activeChannelChange = activelyChangeChannelsOnLogin\n\n private isAllowedRole = (allowedRoles: UserRoleType[], role: string) => {\n return allowedRoles.length\n ? allowedRoles.includes(role as UserRoleType)\n : true\n }\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n private forceChannelsForSeller = tokens => {\n if (UserRoleType.SELLER == tokens.type as UserRoleType)\n this.channels?.length\n ? this.user.setChannels(...this.channels)\n : this.user.setChannels(this.channel)\n }\n\n public setCustomer = customer => {\n /* this.customerSubject.next(customer) */\n this.customer = customer\n localStorage.setItem(this.CUSTOMER, JSON.stringify(customer))\n this.injector.get(CartService).clearAndResetCustomerCart()\n }\n\n /* public getCustomer = () => Observable.of(JSON.parse(localStorage.getItem(this.CUSTOMER))) */\n\n public getCustomer = () => {\n /* this.customerSubject.next(JSON.parse(localStorage.getItem(this.CUSTOMER)))\n return this.customer */\n return this.customer || JSON.parse(localStorage.getItem(this.CUSTOMER))\n }\n\n public setHomeResolver = resolverFunction => this.homeResolver = resolverFunction\n\n public getHomeResolver = () => this.homeResolver\n\n public isAbleToBuy = (): boolean => !this.getUserProfileAsUser()?.isSeller() || !!this.getCustomer()\n\n}","import { Injectable } from '@angular/core';\r\nimport { Product } from '../interfaces/product';\r\nimport { CartItem } from '../interfaces/cart-item';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConnectionService } from '../api/connection.service';\r\nimport { Constants } from '../core.consts';\r\nimport { AuthService } from './auth.service';\r\nimport { ToastService } from '../utils/toast.service';\r\nimport { CouponI } from '../interfaces/coupon';\r\nimport { OrderUtilityService } from '../utils/order-util.service';\r\nimport { CheckoutData } from '../interfaces/checkout-data';\r\nimport { CartAffordable } from '../interfaces/cart/cart-affordable';\r\nimport { ChannelConfigService } from './channel-config.service';\r\nimport { AnalyticsService } from '../../public-api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService {\r\n private cartItemsSubject: BehaviorSubject<CartItem[]> = new BehaviorSubject([]);\r\n private couponSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private cartSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private requestInProcess = new BehaviorSubject(false);\r\n private promotionsSubject: BehaviorSubject<CheckoutData[]> = new BehaviorSubject([]);\r\n\r\n private items = [];\r\n private count: number = 0;\r\n private locale = \"\";\r\n private logged_in = false;\r\n private have_to_update = true;\r\n public channelConfig: any = {};\r\n private cart_baseUrl = 'shop-api/' + this.consts.getChannel() + '/carts';\r\n\r\n public cartItemsApi = () => this.cart_baseUrl;\r\n public addItemApi = () => this.cart_baseUrl + '/' + this.cart_token + '/items';\r\n public addAllItemsApi = () => this.cart_baseUrl + '/' + this.cart_token + '/multiple-items';\r\n public updateItemQuantityApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public deleteItemApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public couponApi = () => this.cart_baseUrl + '/' + this.cart_token + '/coupon';\r\n\r\n public cart_token;\r\n public cartItems = this.cartItemsSubject.asObservable().pipe(map(items => this.switchPriceInCartItem(items)))\r\n public coupon = this.couponSubject.asObservable();\r\n public loading = this.requestInProcess.asObservable();\r\n public cart = this.cartSubject.asObservable();\r\n public promotions = this.promotionsSubject.asObservable();\r\n\r\n constructor(private connection: ConnectionService, private toastrService: ToastService, private consts: Constants,\r\n private authService: AuthService, private orderUtils: OrderUtilityService, private analyticsService: AnalyticsService,\r\n private channelConfigService: ChannelConfigService) {\r\n\r\n this.requestInProcess.next(true);\r\n this.items = JSON.parse(localStorage.getItem('cart')) || [];\r\n this.cart_token = localStorage.getItem('cart_token') || null;\r\n this.authService.loggedIn.subscribe(res => this.getCart());\r\n this.channelConfigService.channelConfig$.subscribe(res => this.channelConfig = res);\r\n }\r\n\r\n\r\n private getCart = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token && this.items.length >= 1) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByToken = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByCustomer = async () =>\r\n this.connection.post(this.cartItemsApi()).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n /**\r\n * @private\r\n * CART CRUD SERVER'S SYNCRONIZED\r\n */\r\n\r\n private initializeCart = (response) => {\r\n this.cart_token = response.tokenValue;\r\n localStorage.setItem('cart_token', this.cart_token);\r\n this.locale = response.locale;\r\n this.updateCartObj(response, false);\r\n this.updateCartItems(this.transformItems(response.items));\r\n this.requestInProcess.next(false);\r\n return true;\r\n }\r\n\r\n private switchPriceInCartItem = (items: CartItem[]) => {\r\n //return items;\r\n return items.map(\r\n item => {\r\n if (item.product) {\r\n item.product.price = item.product.variants[0].saleprice ? item.product.variants[0].saleprice : item.product.variants[0].price\r\n }\r\n return item\r\n }\r\n )\r\n }\r\n\r\n private stepCart = (res) => {\r\n res.items.length > 0 && res.items.forEach(\r\n item => !this.isItemInLocal(item.id) && this.deleteCartItem(item, false)\r\n );\r\n this.addAllToCart(\r\n this.items.filter(\r\n item => !res.items.some(external_item => external_item.id == item.item_id)\r\n )\r\n );\r\n }\r\n\r\n private updateCartItems = (items) => {\r\n this.items = items;\r\n this.count = items.length;\r\n this.cartItemsSubject.next(this.items);\r\n this.updateLocalCart();\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n private updateCartItemQuantity = (variant_id, quantity) => {\r\n this.items.find(item => item.variant_id == variant_id).quantity = quantity;\r\n this.cartItemsSubject.next(this.items);\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-updated');\r\n }\r\n\r\n private appendToCart = (cart) => {\r\n this.updateCartObj(cart);\r\n this.items = this.transformItems(cart.items);\r\n this.count = this.items.length;\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-added');\r\n this.cartItemsSubject.next(this.items);\r\n }\r\n\r\n private removeCartItem = (cart, product, toast = true) => {\r\n this.updateCartObj(cart, false);\r\n this.items.splice(this.items.findIndex(item => item.item_id == product.item_id), 1);\r\n this.cartItemsSubject.next(this.items);\r\n toast && this.requestInProcess.next(false);\r\n toast && this.toastrService.show('product-removed');\r\n this.updateLocalCart();\r\n // this.googleAnalytics.removeFromCart(product);\r\n this.analyticsService.callEvent('remove_from_cart', { ...product, currency: this.consts.currency.code })\r\n }\r\n\r\n private addIfAllreadyExists = (product, variant_id, quantityAdd = 1) =>\r\n this.items.find((item, index) => {\r\n if (item.product.id == product.id && item.variant_id == variant_id) {\r\n this.updateItemQuantity(item, this.findItem(product.id).quantity + quantityAdd);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n private updateLocalCart = () => {\r\n localStorage.setItem('cart', JSON.stringify(this.items));\r\n }\r\n\r\n private resetCart = (next?) => {\r\n this.items = [];\r\n this.cartSubject.next(null);\r\n this.cart_token = null;\r\n this.cartItemsSubject.next([]);\r\n this.count = 0;\r\n localStorage.setItem('cart', \"[]\");\r\n localStorage.removeItem('cart_token');\r\n next && next();\r\n }\r\n\r\n private updateCartObj = (cart, emitEvent = true): boolean => {\r\n this.cartSubject.next(cart);\r\n emitEvent && this.analyticsService.callEvent('add_to_cart', cart);\r\n this.promotionsSubject.next(this.orderUtils.getPromotions(cart, true));\r\n\r\n cart.couponCode\r\n ? this.formatCoupon(cart)\r\n : this.couponSubject.next(null);\r\n return true;\r\n }\r\n\r\n private isItemInLocal = (item_id) => this.items.some(item => item.item_id == item_id);\r\n\r\n /**\r\n * @public\r\n * CART CRUD\r\n */\r\n\r\n addToCart = (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n !added && this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id })\r\n .subscribe(\r\n res => this.appendToCart(res),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n addToCartPromise = async (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n if (!added) {\r\n let result = await (this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id }).toPromise());\r\n if (!result || result.error) this.handleError(result.error);\r\n else {\r\n this.appendToCart(result);\r\n return { error: false }\r\n }\r\n }\r\n return { error: true }\r\n }\r\n\r\n\r\n addAllToCart = (items: any[]) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n\r\n const params = { items: this.mergeItemsAddAllToCart(items) };\r\n\r\n this.connection.post(this.addAllItemsApi(), params)\r\n .toPromise().then(\r\n res => {\r\n this.updateCartObj(res.cart) && this.updateCartItems(this.transformItems(res.cart.items));\r\n res.cart_response.status == 'success' && this.toastrService.show('products-added');\r\n },\r\n err => {\r\n this.handleError(err);\r\n }\r\n ).catch(err => {\r\n this.handleError(err);\r\n });\r\n }\r\n\r\n mergeItemsAddAllToCart = (items: any[]) => {\r\n let paramsMerge = []\r\n this.items.forEach(item => {\r\n let itemInterno = items.find(itemParam => itemParam.variantCode == item.variant_id)\r\n paramsMerge.push(\r\n {\r\n productCode: item.product.id,\r\n variantCode: item.variant_id,\r\n quantity: itemInterno && itemInterno.quantity || item.quantity\r\n }\r\n )\r\n })\r\n\r\n items = items.filter(itemParam => !this.items.find(item => itemParam.variantCode == item.variant_id))\r\n\r\n return [...items, ...paramsMerge]\r\n }\r\n\r\n updateItemQuantity = (item: CartItem, quantity) => {\r\n if (this.validateQuantity(item, quantity)) {\r\n this.connection.put(this.updateItemQuantityApi(this.findItemByIdVariant(item.variant_id)), { 'quantity': Number(quantity) }).subscribe(\r\n res => this.updateCartObj(res) && this.updateCartItemQuantity(item.variant_id, Number(quantity)),\r\n err => this.handleError(err)\r\n )\r\n }\r\n }\r\n\r\n\r\n validateQuantity = (item: CartItem, quantity) => {\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) > item.product.variants[0].maximumItemsQuantity) {\r\n this.toastrService.show('maximum-items-quantity', { quantity: item.product.variants[0].maximumItemsQuantity })\r\n return false\r\n }\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) < item.product.variants[0].minimumItemsQuantity) {\r\n this.toastrService.show('minimum-items-quantity', { quantity: item.product.variants[0].minimumItemsQuantity })\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n calculateStockCounts = (item: CartItem, quantity) => {\r\n if (item.product.stock < item.quantity + quantity) {\r\n // this.toastrService.show('out-of-stock');\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n deleteCartItem = (item, toast = true) => {\r\n let id_buscado = this.findItemByIdVariant(item.variant_id)\r\n this.connection.delete(this.deleteItemApi(id_buscado)).subscribe(\r\n res => this.removeCartItem(res, item, toast),\r\n err => this.handleError(err)\r\n )\r\n }\r\n\r\n clearCart() {\r\n //solucion provisaoria\r\n let items = [...this.items]\r\n while (items && items.length > 0) {\r\n this.deleteCartItem(items.pop(), false)\r\n }\r\n //this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCart() {\r\n this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCustomerCart() {\r\n console.log(\"Clearing and reseting...\")\r\n this.resetCart(this.getCartByCustomer)\r\n }\r\n\r\n handleError = (error: { error: string }) => {\r\n this.toastrService.show('operation-error-param');\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n getCountFromItemInCart = (codeVariant): number => this.items.find(item => item.variant_id == codeVariant)?.quantity || 0;\r\n\r\n findItemByIdVariant = (variant_id) => this.items.find(item => item.variant_id == variant_id).item_id\r\n\r\n findItem = (product_id) => this.items.find(item => item.product.id == product_id);\r\n\r\n /** DATA FOR OTHER SERVICES */\r\n getCartToken = () => this.cart_token;\r\n\r\n getLocale = () => this.locale;\r\n\r\n getTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.total));\r\n\r\n getCountCartItems = (): Observable<number> =>\r\n this.cartItems.pipe(map((cartItems) => cartItems?.length));\r\n\r\n getTaxesAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.taxes > 0 ? cart?.totals?.taxes : 0));\r\n\r\n getSubTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.items));\r\n\r\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total\r\n\r\n getDiscount(): Observable<number> {\r\n return this.cartItems.pipe(map((product) => {\r\n let total = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.saleprice * curr.quantity;\r\n }, 0);\r\n let subtotal = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.price * curr.quantity;\r\n }, 0);\r\n return subtotal - total;\r\n }));\r\n }\r\n\r\n addCoupon = async (code): Promise<any> => {\r\n try {\r\n let result = await this.connection.put(this.couponApi(), { coupon: code }).toPromise();\r\n if (result.error || result.errors) return { error: true, message: 'invalid-coupon' };\r\n this.updateCartObj(result, false);\r\n return { error: false, message: 'ok' };\r\n } catch (e) {\r\n return { error: true, message: 'invalid-coupon' };\r\n }\r\n }\r\n\r\n removeCoupon = async () => this.connection.delete(this.couponApi()).pipe(map(res => this.updateCartObj(res, false))).toPromise();\r\n\r\n formatCoupon = (cart) => {\r\n let current_coupon = this.couponSubject.value;\r\n let coupon: CouponI = { code: cart.couponCode };\r\n try {\r\n const key = Object.keys(cart.cartDiscounts)[0];\r\n coupon = {\r\n ...coupon,\r\n amount: (cart.cartDiscounts && cart.cartDiscounts[key].amount.current) || 0,\r\n name: (cart.cartDiscounts && cart.cartDiscounts[key].name) || 'no-name'\r\n };\r\n } catch (e) { }\r\n (coupon != current_coupon) && this.couponSubject.next(coupon);\r\n }\r\n\r\n changeHaveToUpdate = (value) => this.have_to_update = value;\r\n\r\n readyForCheckout = (successCallback?: Function, errorCallback?: Function): CartAffordable => {\r\n let cart = this.cartSubject.value;\r\n let items = this.cartItemsSubject.value;\r\n let result: CartAffordable = { ok: true };\r\n if (items.length < this.channelConfig.minimumQuantityPurchaseItems) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-items' })\r\n }\r\n if (cart.totals.total < this.channelConfig.minimumPurchaseAmount) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-amount' })\r\n }\r\n if (successCallback || errorCallback) {\r\n result.ok\r\n ? successCallback && successCallback()\r\n : errorCallback && errorCallback();\r\n }\r\n return result;\r\n }\r\n\r\n updateItemsOnError = (itemsWithError: any[], code: string) => {\r\n // console.log(itemsWithError);\r\n // console.log(this.items);\r\n let itemsUpdated = this.items.map(item => {\r\n let itemWithError = itemsWithError.find(failedItem => item.item_id == failedItem.id);\r\n if (itemWithError) {\r\n item.failed = true;\r\n item.error = code;\r\n }\r\n return item;\r\n })\r\n // console.log(itemsUpdated);\r\n this.updateCartItems(itemsUpdated);\r\n }\r\n\r\n loadCartByToken = async (token: string) => {\r\n this.cart_token = token\r\n let result = await this.getCartByToken()\r\n return result\r\n }\r\n\r\n /**\r\n * UTILS\r\n */\r\n\r\n transformItems = (server_item) => server_item.map(\r\n item => {\r\n item = {\r\n product: item.product,\r\n variant_id: item.product.variants[0].code,\r\n quantity: item.quantity,\r\n item_id: item.id,\r\n total: item.total\r\n }\r\n // console.log(item.product.variants[0]);\r\n // console.log(item.product.variants[0].saleprice);\r\n // console.log(item.product.variants[0].price);\r\n // console.log(item.product.variants[0].saleprice > 0 ? item.product.variants[0].seleprice : item.product.variants[0].price);\r\n // setTimeout(() => {\r\n // item.product.price = item.total / item.quantity// ? item.product.variants[0].seleprice : item.product.variants[0].price;\r\n // }, 100);\r\n return item;\r\n }\r\n )\r\n \r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { ObservableError } from '../../interfaces/observable-error.interface';\nimport { Constants } from '../../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrdersService {\n\n private ordersSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n private errorSubject: BehaviorSubject<ObservableError> = new BehaviorSubject(null);\n private selectedOrderSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n\n public orders$ = this.ordersSubject.asObservable();\n public error$ = this.errorSubject.asObservable();\n public selectedOrder$ = this.selectedOrderSubject.asObservable();\n\n private loading = false;\n\n ordersListapi = () => `shop-api/${this.consts.getChannel()}/orders`;\n\n constructor(private connection: ConnectionService, private cartService: CartService, private router: Router, private consts: Constants) {\n // this.updateOrders();\n }\n\n updateOrders = () => {\n this.loading = true;\n this.connection.get(this.ordersListapi())\n .pipe(\n map(res => {\n let orders = this.mapOrdersAndAddInfo(res);\n return orders;\n })\n )\n .subscribe(\n response => {\n this.ordersSubject.next(response);\n this.loading = false;\n },\n err => {\n this.errorSubject.next({ message: 'unable-get-orders' });\n }\n )\n }\n\n mapOrdersAndAddInfo = (orders) =>\n orders.map(order => {\n order.total = order.payments.reduce((a, b) => a + b.price.current, 0);\n return order;\n })\n\n setSelectedOrder = (order: any) => this.selectedOrderSubject.next(order);\n\n findOrder = (order_number) =>\n this.ordersSubject.value ? this.getOrderByNumber(order_number) : this.waitUntilOrders(order_number, this.getOrderByNumber);\n\n getOrderByNumber = (order_number) => {\n // El dia de mañana, cuando vengan paginadas y haya que preguntarle al servidor, se cambia este metodo\n const orders = this.ordersSubject.value;\n let order = orders.find(order => order.number == order_number)\n return order;\n }\n\n waitUntilOrders = (order_number, next) => {\n this.orders$.toPromise().then(orders => {\n if (!orders) {\n if (!this.loading) this.updateOrders();\n this.waitUntilOrders(order_number, next);\n }\n this.getOrderByNumber(order_number);\n })\n }\n\n reBuy(order) {\n // this.cartService.clearCart();\n order.items.map(item => {\n this.cartService.addToCart(this.formatProduct(item.product, item.product.discount), item.quantity, item.variant_id);\n });\n this.router.navigateByUrl('/cart');\n }\n\n formatProduct(product, discount) {\n let percentaje = parseFloat('0.' + discount.toString()).toFixed(2);\n product.price = product.variants[0].price;\n product.saleprice = (product.price - (product.price * parseFloat(percentaje)));\n product.options = {};\n product.variants[0].options.forEach(option => product.options = { ...product.options, ...option });\n return product;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ShipmentDataTransformer {\n\n getData = (method, response) => {\n switch(method) {\n case 'andreani': return response;\n case 'oca': return response.newDataSet;\n }\n }\n\n getApi = (method) => {\n switch(method) {\n case 'andreani': return 'https://api.andreani.com/v1/sucursales';\n case 'oca': return 'http://webservice.oca.com.ar/oep_tracking/Oep_Track.asmx/GetCentrosImposicion';\n }\n }\n\n constructor() { }\n\n appendShipmentExtra = (contract, data) => {\n let result: any = {}\n switch(contract) {\n case 'domicilio': result = { ...data }; break;\n // case 'sucursal': result = { ...data, codigo_sucursal: data. }; break;\n // case 'local': result = { ...data, codigo_local: data. }\n }\n if (contract == 'domicilio') {\n result = { ...data }\n } else {\n result = { codigo_sucursal: data.id }\n }\n return data;\n }\n\n // Andreni\n getMethodDetail = (method, branch) => {\n let result = '';\n branch.direccion.componentesDeDireccion.forEach(component => result += (component.meta + ' ' + component.contenido + ' '));\n return result;\n }\n\n transformAndreani = (response) => {\n let result = []\n response.forEach(element => {\n let data: any = {};\n data.name = element.descripcion;\n data.label = element.descripcion;\n data.latitude = element.geocoordenadas && element.geocoordenadas.latitud;\n data.longitude = element.geocoordenadas && element.geocoordenadas.longitud;\n data.atencion = element.horarioDeAtencion;\n data.address = element.direccion.componentesDeDireccion.map(data => data.contenido).join(' ');\n data.info = 'Sucursal ' + data.name + ' - ' + data.address + ' - ' + data.atencion;\n result.push(data);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Store } from '../interfaces/store';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoresService {\n\n private storesSubject = new BehaviorSubject<Store[]>([]);\n public stores = this.storesSubject.asObservable();\n\n getAllStoresApi = () => 'shop-api/' + this.consts.getChannel() + '/stores';\n\n constructor(private connection: ConnectionService, private consts: Constants) {\n this.connection.get(this.getAllStoresApi()).toPromise().then(\n res => {\n res.length && this.storesSubject.next(res);\n !res.length && this.storesSubject.next(null);\n }\n )\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, Observable, Subscription } from 'rxjs';\nimport { take, tap, map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { CheckoutProcessState } from '../../classes/checkout-process-state';\nimport { ShipmentDataTransformer } from '../../utils/shipment-transformer.service';\nimport { ConnectionService } from '../../api/connection.service';\nimport { StoresService } from '../stores.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class ShipmentService extends StepService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n private methodsSubject = new BehaviorSubject<any>([]);\n private costsSubject = new BehaviorSubject<any>([]);\n private subscription: Subscription;\n\n public order;\n\n private baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n\n public state = this.stateSubject.asObservable();\n public methods = this.methodsSubject.asObservable();\n public costs = this.costsSubject.asObservable();\n\n\n public shipmentMethodsApi = () => this.baseApi() + '/shipping';\n\n public persistShipmentApi = () => 'shop-api/' + this.consts.getChannel() + '/andreani/' + this.cartService.getCartToken() + '/ship';\n public putShipmentApi = () => this.baseApi() + '/shipping/' + this.stateSubject.getValue().data.method;\n public putContractApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() + '/shipping-contract';\n public calculatedCostsApi = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/multiple-estimated-shipping-cost';\n\n constructor(private connection: ConnectionService, private transformer: ShipmentDataTransformer, private analyticsService: AnalyticsService,\n private consts: Constants, private cartService: CartService, private storesService: StoresService, private checkoutService: CheckoutService) {\n super(checkoutService);\n }\n\n getShipmentMethods = () => {\n // this.connection.get(this.shipmentMethodsApi()).toPromise().then(\n // res => this.methodsSubject.next(this.responseToList(res))\n // ).catch(err => this.methodsSubject.next([]))\n this.connection.getErrorNotHandler(this.shipmentMethodsApi()).toPromise().then(\n res => {\n this.methodsSubject.next(this.responseToList(res))\n },\n err => {\n this.methodsSubject.next([])\n }\n ).catch(err => {\n this.methodsSubject.next([])\n })\n }\n\n setMethod = async (method) => {\n this.costsSubject.next([]);\n this.stateSubject.next({ doing: true, ok: false, data: { method } });\n this.putShipment().then(\n async res => {\n this.checkoutService.updateAsociatedData(res);\n this.order = res;\n const costs = await this.getCalculatedCosts();\n this.modifyCostsResponse(costs, this.getUserData().shippingAddress.postcode, method);\n },\n err => {\n return new Promise((resolve,reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n private putShipment = () => this.connection.put(this.putShipmentApi(), { method: this.stateSubject.getValue().data.method }).toPromise();\n\n getCalculatedCosts = () => this.connection.get(this.calculatedCostsApi()).toPromise();\n\n setContract = async (contract: any) => {\n const data = { ...contract, ...this.otherParamsForContract(contract) };\n return await this.connection.put(this.putContractApi(), data)\n .toPromise().then(\n order => {\n this.analyticsService.callEvent('shipping_info', order);\n return this.setStepReady(data, order)},\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n ngOnDestroy() {\n this.subscription && this.subscription.unsubscribe();\n }\n\n // UTILS\n\n /**\n * @param response De api de solicitud de costos por metodo de envío seleccionado\n * @param post_code Indicado en el paso de Addressing (datos personales y de facturación)\n * @param method Metodo de envío seleccionado\n */\n modifyCostsResponse = async (response, post_code, method) => {\n response = response.multiplePrices;\n let branch_delivery = response.findIndex(submethod => submethod.name == 'branch_delivery');\n if (branch_delivery != -1) {\n response[branch_delivery].contracts = response[branch_delivery].contracts.map(contract => {\n let branch_property = contract.branch_property || {};\n let address_data = branch_property.address || {};\n return {\n contract: 'branch_delivery',\n name: contract.name,\n price: contract.price,\n ...address_data,\n ...branch_property,\n computed: (address_data.street || '') + ' N° ' + (address_data.number || '')\n };\n });\n this.costsSubject.next(response);\n }\n if (method == 'pickup_store') {\n let final_method_data = response;\n this.subscription = this.storesService.stores.subscribe(stores => {\n if (stores.length) {\n final_method_data.forEach(pickup_store => {\n pickup_store.contracts.forEach(contract => {\n const current_store = stores.find(store => store.code == contract.name);\n if (!current_store) contract.detail = 'Sin información';\n else contract.detail = current_store.name + ' - ' + current_store.address;\n return contract;\n })\n })\n this.costsSubject.next(final_method_data);\n }\n })\n } else {\n this.costsSubject.next(response);\n }\n }\n\n responseToList = (response) =>\n (response.shipments && response.shipments.length > 0) && Object.keys(response.shipments[0].methods).map(key => response.shipments[0].methods[key]);\n\n otherParamsForContract = (contract) => {\n return {\n shipping_method_contract:\n contract.shipping_method_contract\n ? contract.shipping_method_contract\n : contract.contract + '_' + contract.name,\n shipping_method_branch_code:\n contract.shipping_method_branch_code\n ? contract.shipping_method_branch_code\n : (contract.contract && contract.contract == \"branch_delivery\") ? contract.number : contract.name\n }\n }\n\n getBranchOffices = (method) => this.connection.getOutsider(this.transformer.getApi(method.toLowerCase())).toPromise();\n\n formatUnnecesaryDocument = (data) => {\n if (data.shippingAddress?.documentNumber?.length == 0) {\n data.shippingAddress.documentNumber = '00000000'\n }\n if (data.shippingAddress?.documentType?.length == 0) {\n data.shippingAddress.documentType = 'XXX'\n }\n if (data.billingAddress && data.billingAddress.documentNumber?.length == 0) {\n data.billingAddress.documentNumber = '00000000'\n }\n if (data.billingAddress && data.billingAddress.documentType?.length == 0) {\n data.billingAddress.documentType = 'XXX'\n }\n return data\n }\n}\n","export interface FilterOption {\n name: string;\n value: string;\n type: FilterOptionTypes;\n selectedOption: any;\n options: Array<FilterOptionValue>;\n}\n\nexport interface FilterOptionValue {\n name: string;\n value: any;\n selected: boolean;\n}\n\nexport enum FilterOptionTypes {\n oneSelect = 'one-select',\n multiSelect = 'multi-select'\n}","import { Injectable } from '@angular/core';\nimport { OptionsOfProductListInterface } from '../interfaces/choose-options/options-of-product-list';\nimport { FilterOptionTypes } from '../interfaces/choose-options/filter-option';\n\n@Injectable()\nexport class OptionsOfProductListDataReceiverService {\n constructor() { }\n\n getData(): OptionsOfProductListInterface {\n return {\n sortOptions: [\n {\n name: 'Alphabetical order',\n value: 'name',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Ascendancy',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Descendant',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Created date',\n value: 'createdAt',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Oldest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Newest first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Price',\n value: 'price',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Cheapest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Most expensive first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n ],\n filterOptions: [\n {\n name: 'Vigencia',\n value: 'enabled',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Habilitados',\n value: 'true',\n selected: false,\n },\n {\n name: 'Deshabilitados',\n value: 'false',\n selected: false,\n }\n ]\n }\n ],\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AuthService } from './auth.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\n\n@Injectable()\nexport class DataformService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n\n public state = this.stateSubject.asObservable();\n public checkoutForm : FormGroup;\n\n constructor(private fb: FormBuilder, private authService: AuthService) {\n this.checkoutForm = this.fb.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: ['', Validators.required],\n city: ['', Validators.required],\n provinceName: ['', Validators.required],\n postcode: ['', Validators.required]\n });\n\n this.authService.getUserProfile().subscribe(\n res => this.checkoutForm.patchValue(res.toForm())\n )\n }\n\n isValid = () => this.checkoutForm.valid;\n\n change = () => {\n this.checkoutForm.valid ? this.stateSubject.next({ doing: false, ok: true, data: this.checkoutForm.value }) \n : this.stateSubject.next({ doing: true, ok: false, data: null })\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\n\nexport interface BlockInfo {\n section: string,\n blocks: IBlock[]\n}\n\n@Injectable()\nexport class BlocksRepositoryService {\n\n private data: BlockInfo[] = [];\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n\n constructor(private consts: Constants, private connection: ConnectionService) {\n this.consts.getBlocksCacheTime() && setInterval(this.restartBlocks, this.consts.getBlocksCacheTime());\n }\n\n getBlocks = async (section) : Promise<IBlock[]> => this.hasSectionBlocks(section)?.blocks || this.connection.get(this.blocksAPI(section))\n .toPromise().then(\n res => this.appendBlock(res.items, section) && res.items,\n err => new Promise((resolve, reject) => reject()) // Va por callback error, el servicio define el valor a setear\n ).catch(err => new Promise((resolve,reject) => reject(new Error(null)))); //Queda pendiente ver como manejar el error de este lado\n\n hasSectionBlocks = (section) => this.data.find(block_info => block_info.section == section);\n\n appendBlock = (blocks : IBlock[], section) => {\n const new_block = { section, blocks };\n this.data.push(new_block);\n return true;\n }\n\n restartBlocks = () => this.data = [];\n}","import { Injectable } from '@angular/core';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BlocksRepositoryService } from './blocks-repository.service';\n\n\n/**\n * @description Servicio de manejo de Bloques. Cada sección posee N bloques asociados, ordenados por posición y con tu tipo y datos correspondientes\n * (chequear interfaz de IBlock)\n */\n@Injectable()\nexport class BlocksService {\n\n private blocksSubject = new BehaviorSubject<any[]>([]);\n\n public blocks = this.blocksSubject.asObservable();\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n contactFormResponseAPI = () => 'cms/' + this.consts.getLocale() + '/contact-form/response';\n\n constructor(private consts: Constants, private connection: ConnectionService,\n private blocksRepo: BlocksRepositoryService) { }\n\n getBlocks = (section) => {\n this.blocksRepo.getBlocks(section).then(\n res => this.blocksSubject.next(this.orderedAndModified(res)),\n err => this.blocksSubject.next(null)\n )\n }\n\n orderedAndModified = (result) => {\n let result_ordered = result.sort((a, b) => a.priority - b.priority);\n return (result_ordered.length ? result_ordered : null);\n }\n\n getBlockByCode = (code) =>\n this.blocksSubject.value && this.blocksSubject.value.find(block => block.code == code);\n\n // getBannerImage = (banner) => (this.consts.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getBannerImage = (banner) =>\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName;\n\n getImage = (banner) => (this.consts.mediaBannerUrl() +\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName)\n\n formUrl = (banner) => {\n let resultado = \"/\";\n const element = (banner.redirectionType == 'attribute' ? 'attributes' : 'categories');\n try {\n let asociacion = banner[(element == 'categories' ? 'taxons' : element)];\n asociacion = asociacion.length && asociacion[0];\n if (asociacion) resultado = '/collection/' + element + '/' + (asociacion.slug || asociacion.translations[this.consts.getLocale()].slug);\n } catch (e) {\n }\n return resultado;\n }\n\n sendResponse = (response_obj) =>\n this.connection.post(this.contactFormResponseAPI(), this.prepareData(response_obj));\n\n prepareData = (obj) => {\n // Para el futuro, cuando haya que toquetear antes de mandar\n // attachmentFile\n return obj;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilsService {\n\n constructor() { }\n\n titleCaseWord(word: string) {\n if (!word) return word;\n return word[0].toUpperCase() + word.substr(1).toLowerCase();\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaymentUtils {\n\n constructor() {}\n\n private mp_error_codes = {\n 'pending_contingency': 'Estamos procesando el pago. En menos de 2 días hábiles te enviaremos por e-mail el resultado.',\n 'pending_review_manual': 'Estamos procesando el pago. En menos de 2 días hábiles te diremos por e-mail si se acreditó o si necesitamos más información.',\n 'cc_rejected_bad_filled_card_number': 'Revisa el número de tarjeta.',\n 'cc_rejected_bad_filled_date': \t'Revisa la fecha de vencimiento.',\n 'cc_rejected_bad_filled_other': \t'Revisa los datos.',\n 'cc_rejected_bad_filled_security_code': \t'Revisa el código de seguridad.',\n 'cc_rejected_blacklist': \t'No pudimos procesar tu pago.',\n 'cc_rejected_call_for_authorize': \t'Debes autorizar ante payment_method_id el pago de amount a Mercado Pago',\n 'cc_rejected_card_disabled': \t'Llama a payment_method_id para que active tu tarjeta. El teléfono está al dorso de tu tarjeta.',\n 'cc_rejected_card_error': \t'No pudimos procesar tu pago.',\n 'cc_rejected_duplicated_payment': \t'Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.',\n 'cc_rejected_high_risk': \t'Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.',\n 'cc_rejected_insufficient_amount': \t'Tu payment_method_id no tiene fondos suficientes.',\n 'cc_rejected_invalid_installments': \t'El metodo de pago no procesa pagos en cuotas.',\n 'cc_rejected_max_attempts': \t'Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.',\n 'cc_rejected_other_reason': \t'No procesó el pago.'\n }\n\n getErrorMessage = (code) => this.mp_error_codes[code];\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAuthenticated())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbleBuyerGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAbleToBuy())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAbleToBuy()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserRoleGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n const authorizedRoles = routeSnapshot.data.authorizedRoles || []\n\n if (!authorizedRoles.includes(this.auth.getUserProfileAsUser()?.typeUser))\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class LoggedInGuard implements CanActivate { \n \n constructor(private auth: AuthService, public router: Router) {} \n \n canActivate(): boolean {\n if (!this.auth.isAuthenticated()) {\n this.router.navigate(['/login']);\n }\n return this.auth.isAuthenticated();\n }\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { CheckoutService } from '../services/checkout/checkout.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class CheckoutReadyGuard implements CanActivate { \n \n constructor(private router: Router, private checkoutService: CheckoutService) {} \n \n canActivate(): boolean {\n if (!this.checkoutService.isCheckoutReady()) {\n this.router.navigate(['/']);\n }\n return this.checkoutService.isCheckoutReady();\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse\n} from \"@angular/common/http\";\nimport { throwError, Observable, of } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n \n if (this.injector.get(AuthService).isAuthenticated()\n && req.url.includes(this.injector.get(Constants).getUrlBase())\n && !req.url.includes('shop-api/login_check')) {\n\n let headers = {\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.injector.get(AuthService).getToken()}`,\n },\n }\n\n if (req.url.includes('contact-form/response'))\n delete headers.setHeaders[\"Content-Type\"]\n\n /* if (this.injector.get(AuthService).getCustomer())\n delete headers.setHeaders[\"Authorization\"] */\n\n let authReq: HttpRequest<any> = req.clone(headers)\n \n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse, HttpHeaders, HttpClient\n} from \"@angular/common/http\";\nimport { Router } from '@angular/router';\nimport { throwError, Observable, BehaviorSubject, of } from \"rxjs\";\nimport { catchError, filter, take, switchMap } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\nimport { BodyError } from \"../interfaces/checkout/checkout-error\";\nimport { ToastService } from \"../utils/toast.service\";\n\n@Injectable()\nexport class CustomerInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n\n const customer = this.injector.get(AuthService).getCustomer()\n\n if (customer) {\n\n const headers = {\n setHeaders: {\n 'customer': String(customer.id)\n }\n }\n\n let authReq: HttpRequest<any> = req.clone(headers)\n\n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).logout()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CheckoutService } from \"../services/checkout/checkout.service\";\n\nexport class ComponentHelper {\n\n constructor() {\n this.ecOnConstruct()\n }\n\n ecOnInit = (params = {}) => {\n\n }\n\n ecOnConstruct = (params = {}) => {\n\n }\n\n hasParams = (params, searched) => params && params != null && params.find(param => param.code?.toLowerCase().includes(searched.toLowerCase()));\n\n navigateOnRouter(router : Router,url: string) {\n router.navigateByUrl(`/${url}`);\n }\n}","import { Injectable, Renderer2, Inject, RendererFactory2 } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { Parameter } from '../interfaces/parameters';\nimport { DOCUMENT } from '@angular/common';\nimport { Script } from '../interfaces/Script';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { AnalyticsService } from './analytics.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParametersService {\n\n private parametersSubject = new BehaviorSubject<Parameter[]>(null);\n private readyParamsSubject = new ReplaySubject<boolean>(1);\n\n public parameters = this.parametersSubject.asObservable();\n public ready$ = this.readyParamsSubject.asObservable();\n\n getAllParametersAPI = () => 'shop-api/' + (this.constants.getMasterChannel() || this.constants.getChannel()) + '/parameters';\n\n constructor(private connection: ConnectionService, private constants: Constants,\n private analyticsService: AnalyticsService) {\n this.connection.get(this.getAllParametersAPI()).toPromise().then(res => {\n this.parametersSubject.next(res);\n this.readyParamsSubject.next(true);\n })\n }\n\n insertAnalitycs = () => {\n this.parametersSubject.value\n ? this.constants.onlyIfProduction(this.initializeAnalytics, this.parametersSubject.value)\n : this.waitUntilData(this.initializeAnalytics)\n }\n\n private initializeAnalytics = (params) => {\n\n let facebook = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('facebook') && param.code.includes('id'));\n !facebook && (facebook = params.find(param => param.code.includes('facebook') && param.code.includes('id')));\n facebook && this.analyticsService.initializeFacebook(facebook.value);\n\n let google = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('google') && param.code.includes('id'));\n !google && (google = params.find(param => param.code.includes('google') && param.code.includes('id')));\n google && this.analyticsService.initializeGoogle(google.value);\n\n let gtm = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('gtm') && param.code.includes('id'));\n !gtm && (gtm = params.find(param => param.code.includes('gtm') && param.code.includes('id')));\n gtm && this.analyticsService.initializeGTM(gtm.value);\n\n let metricool = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('metricool') && param.code.includes('id'));\n !metricool && (metricool = params.find(param => param.code.includes('metricool') && param.code.includes('id')));\n metricool && this.analyticsService.initializeMetricool(metricool.value);\n\n let doppler = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('doppler') && param.code.includes('id'));\n !doppler && (doppler = params.find(param => param.code.includes('doppler') && param.code.includes('id')));\n doppler && this.analyticsService.initializeDoppler(doppler.value);\n\n }\n\n private waitUntilData = (next) => {\n const subscription = this.parameters.subscribe(res => {\n if (res) {\n this.insertAnalitycs();\n subscription.unsubscribe();\n }\n });\n }\n\n}","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-account-ec',\n templateUrl: 'account-ec.component.html',\n styleUrls: ['account-ec.component.scss']\n})\nexport class AccountEcComponent extends ComponentHelper {\n\n public params = null\n\n constructor(protected authService: AuthService, public router: Router, public paramsService: ParametersService ) {\n super();\n this.paramsService.parameters.subscribe(p => {\n this.params = p\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('/home');\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Banner } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n// import { OwlOptions } from 'ngx-owl-carousel-o';\n\nexport type ColumnSize = 'col-md-8' | 'col-md-4' | 'col-md-12'\n\n@Component({\n selector: 'app-block-banner-boxes-ec',\n templateUrl: './block-banner-boxes-ec.component.html',\n styleUrls: ['./block-banner-boxes-ec.component.scss']\n})\nexport class BlockBannerBoxesEcComponent extends ComponentHelper implements OnInit {\n @Input() banners: Banner[];\n @Input() meta: any;\n\n protected big_ones = [0, 3, 4, 7, 8, 11, 12, 15, 16];\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.meta = { ...this.meta, ...this.meta.translations[this.consts.getLocale()] }\n this.ecOnInit()\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n columnSize = (i): ColumnSize => {\n if (!this.consts.mobile()) {\n if (this.big_ones.includes(i)) return 'col-md-8';\n else if (!((i + 1) == this.banners.length)) return 'col-md-4';\n else if (((i + 1) == this.banners.length) && this.esImpar(i)) return 'col-md-4';\n }\n return 'col-md-12';\n }\n\n esImpar = (number) => (number % 2) == 1;\n \n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n\ndeclare var $: any;\n\n@Component({\n selector: 'app-block-banner-full-ec',\n templateUrl: './block-banner-full-ec.component.html',\n styleUrls: ['./block-banner-full-ec.component.scss']\n})\nexport class BlockBannerFullEcComponent extends ComponentHelper implements OnInit {\n\n @Input() banners;\n @Input() meta: any;\n\n public options: any;\n\n constructor(public blocksService: BlocksService, protected consts: Constants, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.ecOnInit()\n\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n handlePage(page: string) {\n return this.router.url.includes(page);\n }\n\n}\n","import { Component, Input, OnInit, OnChanges } from '@angular/core';\n// import { ToastService, Constants, BlocksService } from 'ng-easycommerce';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-form-contact-ec',\n templateUrl: 'block-form-contact-ec.component.html',\n styleUrls: ['block-form-contact-ec.component.scss']\n})\nexport class BlockFormContactEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() block;\n @Input() success_message;\n @Input() redirect = true;\n @Input() subject?;\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = new FormData();\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants,\n public formBuilder: FormBuilder, protected blocksService: BlocksService) {\n super();\n this.contact_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n attachment: [''],\n captcha: ['', Validators.required],\n })\n this.newsletter_form = this.formBuilder.group({\n email: ['', Validators.required],\n })\n this.ecOnConstruct()\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('mailText', form.value.body)\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', this.contact_form.get('name').value)\n this.sendValue('email') && formData.append('email', this.contact_form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', this.contact_form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', this.contact_form.get('subject').value)\n this.sendValue('body') && formData.append('body', this.contact_form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', this.contact_form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.contact_form.reset()\n this.toastrService.show(this.success_message || success_message);\n this.redirect && this.router.navigateByUrl('/home');\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n uploadFile(event) {\n if (event.target.files.length > 0) {\n const file = event.target.files[0];\n this.contact_form.get('attachment').setValue(file);\n }\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n toastCompleteForm = (e) => {\n e.preventDefault();\n this.sendForm(this.contact_form, 'inquiry-sent');\n }\n\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-html-ec',\n templateUrl: './block-html-ec.component.html',\n styleUrls: ['./block-html-ec.component.scss'],\n})\nexport class BlockHtmlEcComponent extends ComponentHelper implements OnInit {\n\n @Input() html_content;\n\n constructor(protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.html_content = this.sanitizer.bypassSecurityTrustHtml(this.html_content);\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlockType } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-contact-form-news-ec',\n templateUrl: './contact-form-news-ec.component.html',\n styleUrls: ['./contact-form-news-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class ContactFormNewsEcComponent extends ComponentHelper implements OnInit {\n\n @Input() block;\n @Input() complete = false;\n @Input() success_message;\n @Input() subject?;\n @Input() codeBlock = 'newsletter_block'\n\n public blocks: BlockType[] = [];\n public blockContact: any = null;\n\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = {};\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants, public paramsService: ParametersService,\n public formBuilder: FormBuilder, protected blocksService: BlocksService, @Inject('env') public env ) {\n super();\n this.newsletter_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n captcha: ['', []],\n terms: ['', Validators.required],\n })\n this.ecOnConstruct()\n\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', form.get('name').value)\n this.sendValue('email') && formData.append('email', form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', form.get('subject').value)\n this.sendValue('body') && formData.append('body', form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.newsletter_form.reset()\n this.toastrService.show(this.success_message || success_message);\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n ngOnChanges() {\n }\n\n ngOnInit() {\n if (!this.block) {\n this.blocksService.getBlocks('home') ;\n this.blocksService.blocks.pipe(filter((blocks) => (blocks && blocks.length > 0))).subscribe(blocks => {\n this.block = this.blocksService.getBlockByCode(this.codeBlock);\n if (this.block.contactForm) {\n this.block = this.block.contactForm\n }\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n\n this.subscribeBlockNews(this.block);\n\n }) \n }else{\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n }\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n subscribeBlockNews = (block: any) => {\n \n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string, res) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Product } from '../../../interfaces/product';\nimport { AnalyticsService } from '../../../services/analytics.service';\n\n@Component({\n selector: 'app-block-products-ec',\n templateUrl: './block-products-ec.component.html',\n styleUrls: ['./block-products-ec.component.scss']\n})\nexport class BlockProductsEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() products: Product[];\n @Input() meta: any;\n\n public options: any;\n\n constructor(protected consts: Constants, \n private analyticsService: AnalyticsService,\n ) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.meta = { ...this.meta, ...(this.meta.translations ? this.meta.translations[this.consts.getLocale()] : { name: null }) }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: this.meta.name || 'Block Products', item_list_id: this.meta.name?.toLowerCase()?.replace(' ', '-') || 'block-products' })\n this.ecOnInit()\n }\n\n ngOnChanges(): void {\n\n }\n\n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n\n getKeyByValue(object, value) {\n return Object.keys(object).find(key => object[key] === value);\n}\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n@Component({\n selector: 'app-blocks-ec',\n templateUrl: './blocks-ec.component.html',\n styleUrls: ['./blocks-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class BlocksEcComponent extends ComponentHelper implements OnInit {\n\n private strsection = null\n\n @Input()\n set section(paramsstrsection) {\n this.strsection = paramsstrsection\n this.strsection && this.blocksService.getBlocks(this.strsection);\n }\n @Input() show_loading = true;\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n // this.blocksService.getBlocks(this.section);\n this.ecOnInit()\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n isNewsletter = (block) => block.code.includes('news');\n}\n","import { Component, OnInit, Input, TemplateRef } from \"@angular/core\"\nimport { Router } from \"@angular/router\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from \"../../core.consts\";\nimport { AuthService } from '../../services/auth.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { CartService } from '../../services/cart.service';\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { ToastService } from \"../../utils/toast.service\";\n\n\n@Component({\n selector: 'app-cart-ec',\n templateUrl: './cart-ec.component.html',\n styleUrls: ['./cart-ec.component.scss']\n})\nexport class CartEcComponent extends ComponentHelper implements OnInit {\n\n public isLoggedIn = false;\n public mediaUrl = '';\n public modalRef: BsModalRef | null;\n public promotions = [];\n\n constructor(public cartService: CartService, public authService: AuthService, protected consts: Constants,\n public productsService: ProductsService, public router: Router, public modalService: BsModalService, protected toastrService: ToastService) {\n super();\n this.ecOnConstruct()\n this.isLoggedIn = this.authService.isAuthenticated();\n this.mediaUrl = this.consts.mediaUrl();\n }\n\n\n ngOnChanges() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n updateLoggedIn() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.cartService.promotions.subscribe(promotions => this.promotions = promotions);\n this.ecOnInit()\n\n }\n\n toDecimal = (amount) => this.consts.toDecimal(amount);\n\n actualizarCantidad = (item, cantidad, stock) => {\n cantidad > 0 && cantidad <= stock ? this.cartService.updateItemQuantity(item, cantidad) : this.toastrService.show('out-of-stock-actually');\n }\n\n redirectCheckout = () => this.router.navigateByUrl(`/checkout`)\n\n redirectRegister = () => this.router.navigateByUrl(`/auth/login`)\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-xl', keyboard: false });\n }\n\n redirectDetailProduct(product) {\n let variant = product.variants[0]\n let path = '/product/'\n path += variant.code\n path += variant.options.length ? \"?variant=true\" : \"\"\n this.router.navigateByUrl(path)\n }\n}\n","import { Component, OnInit, OnChanges } from '@angular/core';\nimport Stepper from 'bs-stepper';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../../services/cart.service';\nimport { StepI } from '../../interfaces/step';\nimport { CheckoutData } from '../../interfaces/checkout-data';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n@Component({\n selector: 'app-checkout-ec',\n templateUrl: './checkout-ec.component.html',\n styleUrls: ['./checkout-ec.component.scss']\n})\nexport class CheckoutEcComponent extends ComponentHelper implements OnInit {\n\n public stepper: Stepper;\n public loadingSubject = new BehaviorSubject<boolean>(true);\n public canCheckout = false;\n public require_login = false;\n public subCan: Subscription;\n public subReady: Subscription;\n\n public loading$ = this.loadingSubject.asObservable();\n\n constructor(public checkoutService: CheckoutService, public toastrService: ToastService,\n public router: Router, public cartService: CartService, public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.subCan = this.checkoutService.canCheckout$.pipe(take(1)).subscribe(contain_items => {\n if (contain_items) this.initializeCheckout();\n else this.canCheckout = false;\n })\n this.ecOnInit()\n\n }\n\n ngOnDestroy() {\n this.subCan?.unsubscribe()\n this.subReady?.unsubscribe()\n }\n\n initializeCheckout = () => {\n this.canCheckout = true;\n let steps: StepI[] = [];\n steps.push({ name: 'address' });\n steps.push({ name: 'shipment' });\n steps.push({ name: 'payment' });\n this.checkoutService.setSteps(steps);\n this.setStepper();\n this.loadingSubject.next(false);\n\n this.subReady = this.checkoutService.onReady$.pipe(filter( ready => ready )).subscribe(\n res => { res && this.endCheckout()}\n );\n }\n\n goBack = () => this.stepper.previous();\n\n isStepReady = (step_name) => this.checkoutService.isStepReady(step_name);\n\n endCheckout = () => {\n this.checkoutService.complete().then(\n res => res.ok && this.router.navigate(['checkout/order_success']),\n err => this.toastrService.show('operation-error')\n )\n }\n\n setStepper = () => {\n setTimeout(() => {\n if (document.querySelector('#stepper') != null) {\n this.stepper = new Stepper(document.querySelector('#stepper'), {\n linear: true,\n animation: true\n })\n }else{\n this.setStepper()\n }\n }, 1000);\n }\n\n next = () => {\n this.stepper.next()\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n };\n\n error = (error_value) => this.toastrService.show(error_value);\n\n getIcon = (data_item: CheckoutData) => {\n switch (data_item.type) {\n case 'coupon': return 'assets/images/coupon.png';\n case 'discount': return 'assets/images/discount.png';\n case 'shipment': return 'assets/images/ico-envio.png';\n case 'subtotal': return 'assets/images/products.png';\n case 'total': return 'assets/images/ico-carrito.png';\n default: return 'assets/images/ico-carrito.png';\n }\n }\n\n}\n","import { Component, EventEmitter, Output, Input, OnInit, ViewChild, TemplateRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { CartService } from '../../../services/cart.service';\nimport { AddressingService } from '../../../services/checkout/addressing.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from '../../../core.consts';\nimport { add } from 'ngx-bootstrap/chronos';\nimport { ParametersService } from '../../../services/parameters.service';\n\n\n@Component({\n selector: 'app-dataform-ec',\n templateUrl: 'dataform-ec.component.html',\n styleUrls: ['dataform-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DataFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() step_id;\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesFacturacionSubject = new BehaviorSubject<any[]>([]);\n protected provincesFacturacionSubject = new BehaviorSubject<any[]>([]);\n\n public countries$ = this.countriesSubject.asObservable();\n public provinces$ = this.provincesSubject.asObservable();\n public countriesFacturacion$ = this.countriesFacturacionSubject.asObservable();\n public provincesFacturacion$ = this.provincesFacturacionSubject.asObservable();\n\n public require_login = false;\n public checkoutForm: FormGroup;\n public checkoutFormFacturacion: FormGroup;\n public loading = false;\n public form_ready = false;\n public allready_data = false;\n public addressBook = [];\n public addressBookSelected = { id: 0, notes: \"\" }\n\n public validado = false;\n public viewDataFacturacion: boolean = true;\n\n public modalRef: BsModalRef | null;\n public params: any = {};\n public selectAddres: boolean = false;\n\n constructor(public authService: AuthService,\n public fb: FormBuilder,\n public toast: ToastService,\n public addressingService: AddressingService,\n public cartService: CartService,\n private modalService: BsModalService,\n public paramsService: ParametersService,\n public consts: Constants) {\n super();\n this.ecOnConstruct()\n this.checkoutForm = this.fb.group(this.addressingService.getTypeForm().configForm.formAddres);\n this.checkoutForm.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutForm.valid }))\n .subscribe(() => this.onFormValid());\n\n this.checkoutFormFacturacion = this.fb.group(this.addressingService.getTypeForm().configForm.formBilling);\n this.checkoutFormFacturacion.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutFormFacturacion.valid }))\n .subscribe(() => this.onFormValid());\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.addressingService.initialize(this.step_id);\n const localEmail = localStorage.getItem('mail')\n this.authService.isAuthenticated() && this.checkoutForm.controls['email'].setValue(this.authService.getCustomer()?.email || localEmail);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n this.addressingService.getAddressingData().then(res => {\n this.countriesSubject.next(res);\n this.countriesFacturacionSubject.next(res);\n });\n\n (this.addressingService.modeSelectAddress == 'LOAD_ADDRESS_AND_SELECTION' || this.addressingService.modeSelectAddress == 'ONLY_ADDRESS_SELECTION') \n && this.addressingService.getAddressBook().then(res => {\n this.addressBook = res && res || null\n this.addressBook == null && this.setMode('carga') }\n )\n\n this.ecOnInit()\n }\n\n showFormFacturacion = () => {\n this.viewDataFacturacion = !this.viewDataFacturacion\n this.onFormChange()\n return this.viewDataFacturacion\n }\n\n onFormValid = () => {\n }\n\n protected onFormChange() {\n if (this.checkoutForm.valid) {\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) {\n this.validado = true\n return\n }\n if (this.viewDataFacturacion && this.checkoutForm.valid) {\n this.validado = true\n return\n }\n }\n this.validado = false\n }\n\n onInputChange = () => this.form_ready = false;\n\n onCountrySelected = (value) => {\n this.checkoutForm.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutForm.controls['provinceCode'].setValue(null);\n this.provincesSubject.next(\n value && value != 'null' ?\n this.countriesSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onCountrySelectedFacturacion = (value) => {\n this.checkoutFormFacturacion.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutFormFacturacion.controls['provinceCode'].setValue(null);\n this.provincesFacturacionSubject.next(\n value && value != 'null' ?\n this.countriesFacturacionSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onProvincesSelected = (value) => this.checkoutForm.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n onProvincesSelectedFacturacion = (value) => this.checkoutFormFacturacion.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n verifyValidate = (e) => {\n console.log(\"Verifying: \", e)\n this.require_login = false;\n if (e) {\n this.checkoutForm.controls['email'].setValue(e);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n }\n this.checkoutForm.valid ? this.emitResult() : this.showError('invalid-form');\n }\n\n showError = (error_message) => { this.toast.show(error_message); return true; }\n\n protected emitResult = async () => {\n this.loading = true;\n let data: any = { shippingAddress: { ...this.checkoutForm.getRawValue(), phoneNumber: this.checkoutForm.value.phoneNumber.toString() }, notes: (this.checkoutForm.getRawValue()).notes };\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) data = { ...data, notes: data.notes, billingAddress: this.checkoutFormFacturacion.getRawValue() };\n try {\n let result = await this.addressingService.setAddress(data);\n\n if (result === false)\n this.require_login = true\n\n if (result !== false && result !== undefined) {\n this.form_ready = true\n this.allready_data = true\n }\n\n } catch (e) { this.toast.show('operation-error') }\n this.loading = false;\n }\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-lg ', keyboard: false, backdrop: 'static' });\n }\n\n setSelectAddress = (addressSelect: any) => {\n this.addressBook.map(address => address.selected = address.id === addressSelect.id)\n this.addressBookSelected.id = this.addressBook.find(address => address.selected).id || 0\n }\n\n selectAddress = async () => {\n this.loading = true;\n let addressSelected = this.addressBook.find(address => address.selected)\n if (addressSelected) {\n try {\n if (!this.addressBookSelected.id) {\n this.addressBookSelected.id = addressSelected.id || 0\n }\n const request = {\n selected: this.addressBookSelected,\n shippingAddress: addressSelected\n }\n const resultSede = await this.addressingService.setHeadquarter(request);\n if (resultSede) {\n this.form_ready = true;\n this.allready_data = true;\n } else {\n this.toast.show('operation-error')\n }\n } catch (e) { this.toast.show('operation-error') }\n } else {\n this.showError('invalid-form')\n }\n this.loading = false;\n }\n\n getMode = () => {\n switch (this.addressingService.modeSelectAddress) {\n case 'ONLY_LOAD_ADDRESS':\n return true\n case 'ONLY_ADDRESS_SELECTION':\n if (this.authService.isAuthenticated()) {\n return false\n }\n return true\n case 'LOAD_ADDRESS_AND_SELECTION':\n if (this.authService.isAuthenticated()) {\n return this.selectAddres\n }\n return true\n }\n }\n\n setMode = (mode) => this.selectAddres = mode == \"carga\"\n\n getCountry = (code) => this.addressingService.countriesList.find(paises => paises.code.toLocaleLowerCase().includes(code.toLocaleLowerCase()))?.name || \"\"\n\n getProvince = (code) => this.addressingService.provinceList.find(ct => ct.code == code)?.name || \"\"\n\n getDocumentType = (code) => this.addressingService.documentTypes.find(dt => dt.code == code)?.name || \"\"\n\n getLabelNotesParam = () => this.hasParams(this.params, 'label_notes_' + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n getParamByChannelAndLanguage = (nameParam) => this.hasParams(this.params, nameParam + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class PaymentService extends StepService {\n\n private paymentMethodsSubject = new BehaviorSubject<any[]>([]);\n public methods$ = this.paymentMethodsSubject.asObservable();\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getCheckoutMobbexApi = () => 'shop-api/' + this.consts.getChannel() + '/mobbex/' + this.cartService.getCartToken() + '/process-payment'\n getCheckoutBancardApi = () => 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.getCartToken() + '/process-payment' //?testOrderNumber=' + this.getRandomArbitrary()\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n\n constructor(private connection: ConnectionService, private toastrService: ToastService, private cartService: CartService, private consts: Constants,\n private checkoutService: CheckoutService, private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getPaymentMethods();\n }\n\n getPaymentMethods = async () => this.connection.get(this.getPaymentMethodsApi()).toPromise().then(\n res => res.payments?.length && this.paymentMethodsSubject.next(Object.keys(res.payments[0].methods).map(key => res.payments[0].methods[key])),\n err => this.toastrService.show('operation-error')\n );\n\n // putPayment = (method) => this.connection.put(this.putPaymentApi(method), { method }).toPromise();\n putPayment = (method) =>\n this.connection\n .put(this.putPaymentApi(method), { method })\n .toPromise()\n .then(\n res => {\n this.analyticsService.callEvent('add_payment_info', res);\n return res\n },\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n\n getPreference = (shipment_data) => this.connection.post(this.getPreferenceApi(), shipment_data).pipe(map(res => (res.preference || res))).toPromise();\n\n getCheckoutMobbex = (shipment_data) => this.connection.post(this.getCheckoutMobbexApi(), shipment_data).toPromise();\n\n getCheckoutBancard = (shipment_data) => this.connection.get(this.getCheckoutBancardApi(), shipment_data).toPromise();\n\n private getRandomArbitrary = () => Math.round(Math.random() * (Number(9999999) - Number(2000003)) + Number(2000003))\n}","import { Component, Renderer2, ElementRef, ViewChild, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { PaymentService } from '../../../services/checkout/payment.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-payment-ec',\n templateUrl: 'payment-ec.component.html',\n styleUrls: ['payment-ec.component.scss'],\n providers: [PaymentService]\n\n})\nexport class PaymentEcComponent extends ComponentHelper implements OnChanges, OnInit {\n\n @Input() step_id;\n @ViewChild('formContainer') protected mercadopago_button: ElementRef;\n protected methodDataSubject = new BehaviorSubject<any>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n protected preference;\n\n\n public loading_internal = false;\n public order_id;\n public error;\n public loading = true;\n public loading_internal_mp = false;\n public method_data$ = this.methodDataSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public total_amount;\n\n \n constructor(protected renderer: Renderer2, protected toastr: ToastService,\n public paymentService: PaymentService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.paymentService.initialize(this.step_id);\n this.checkoutService.asociatedData$.subscribe((data: CheckoutData[]) => this.total_amount = (data.find(item => item.type == 'total')).amount)\n this.ecOnInit()\n\n }\n\n allData = () => ({\n ...this.paymentService.getUserData().shippingAddress,\n ...this.paymentService.getShipmentData(),\n });\n\n setError = (message) => {\n this.error = message;\n }\n\n emitResult = async () => {\n this.paymentService.setStepReady(this.methodDataSubject.getValue(), null).then(res => {\n this.setLoading(false)\n });\n }\n\n setLoading = (estado = true) => {\n this.loadingSubject.next(estado);\n return true;\n }\n\n verifyValidate = () => {\n this.setLoading()\n setTimeout(r => this.emitResult(), 1000);\n }\n\n setMethod = async (method) => {\n this.methodDataSubject.next(null);\n let result = await this.paymentService.putPayment(method.code);\n this.methodDataSubject.next(method);\n // this.isMP(method.code) && this.getPreference();\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n submitForm = (event) => {\n try {\n //console.log(\"EVENT\", event);\n event.preventDefault();\n return false;\n } catch (e) {\n //console.log('SE ROMOPIO EL PREVENT DEFAULT')\n }\n\n }\n\n getPK = (method) => (method.config.public_key || method.public_key);\n\n isRedirectRedsys = (code: string) => code && code.toLocaleLowerCase().includes('redsys_redirect');\n\n isRedirectCecaBank = (code: string) => code && code.toLocaleLowerCase().includes('ceca_bank_redirect');\n\n isMP = (code: string) => code && code.toLocaleLowerCase() == ('mercado_pago');\n \n isMPTarjetaDeCredito = (code: string) => code && code.toLocaleLowerCase().includes('credit');\n\n isMethodOffline = (code: string) => code && code.toLocaleLowerCase().includes('offline');\n\n isPeyPalExpress = (code: string) => code && code.toLocaleLowerCase().includes('paypal') && code.toLocaleLowerCase().includes('express');\n\n isMobbex = (code: string) => code && code.toLocaleLowerCase().includes('mobbex');\n\n isBancard = (code: string) => code && code.toLocaleLowerCase().includes('bancard');\n\n isDecidir = (code: string) => code && code.toLocaleLowerCase().includes('decidir');\n}","import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\nimport { map } from 'rxjs-compat/operator/map';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ShipmentService } from '../../../services/checkout/shipment.service';\nimport { ProductsService } from '../../../services/products/products.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-shipment-ec',\n templateUrl: './shipment-ec.component.html',\n styleUrls: ['./shipment-ec.component.scss'],\n providers: [ShipmentService]\n})\nexport class ShipmentEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() step_id;\n public methods_list: any[];\n public loading_internal = false;\n public points: any[] = [];\n public selected_final;\n public costos = null\n public costs = []\n\n contracts = [];\n\n constructor(public shipmentService: ShipmentService, protected toastrService: ToastService,\n public productsService: ProductsService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n emitResult = (method_name, contract_data) => {\n contract_data = {\n ...contract_data,\n shipping_method_contract: method_name + '_' + contract_data.name,\n shipping_method_branch_code: method_name == \"branch_delivery\" ? contract_data.sucursal_id : contract_data.name,\n }\n this.shipmentService.setContract(contract_data);\n }\n\n verifyValidate = (contract, data) => {\n try {\n this.costs.forEach(cost => cost.contracts.forEach(co => co.selected = false))\n this.costs.find(cost => cost.name == contract).contracts.find(contra => contra.name == data.name).selected = true\n } catch (error) {\n console.log(\"error al buscar contrato\", error);\n }\n this.emitResult(contract, data);\n };\n\n ngOnInit() {\n this.shipmentService.initialize(this.step_id);\n this.shipmentService.getShipmentMethods();\n this.checkoutService.asociatedData$.subscribe(data => {\n this.costos = data && data.find(value => value.type == \"shipment\") || null\n })\n this.shipmentService.costs.subscribe(cos => {\n this.costs = cos.map(cost => { return { ...cost, contracts: cost.contracts.map(co => { return { ...co, selected: false } } ) } })\n if (this.costs.length && this.costs[0]?.name && this.costs[0]?.contracts[0]) {\n this.verifyValidate(this.costs[0].name, this.costs[0].contracts[0])\n }\n })\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n this.shipmentService.getShipmentMethods();\n }\n\n toTraducible = (name) => name.replace(/_/g, '-');\n\n deleteUPS = (methods) => methods.filter(method => method.name != 'UPS');\n\n setMethod = (method) => {\n this.loading_internal = true;\n this.shipmentService.restartStep();\n setTimeout(() => {\n this.shipmentService.setMethod(method).then(res => this.loading_internal = false);\n }, 1000);\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n validName = (name) => isNaN(name);\n\n showResponse = (costs) => console.log(costs);\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-order-success-ec',\n templateUrl: './success-ec.component.html',\n styleUrls: ['./success-ec.component.scss']\n})\nexport class SuccessEcComponent extends ComponentHelper implements OnInit {\n\n public orderDetails = {};\n public params: any = {};\n public from_mp = true;\n\n constructor(protected activedRoute: ActivatedRoute, protected cartService: CartService, public router: Router, protected checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.checkoutService.order$.subscribe(\n res => {\n //console.log('LO QUE LLEGA EN ORDEN', res);\n this.params = {\n external_reference: res.number,\n }\n }\n );\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n// import { Constants, Filter, OptionsService, Product, ProductsService } from 'ng-easycommerce';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Filter } from '../../classes/filters/Filter';\nimport { Constants } from '../../core.consts';\nimport { FilterType } from '../../interfaces/filter';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { AuthService } from '../../services/auth.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n\n@Component({\n selector: 'app-collection-ec',\n templateUrl: './collection-ec.component.html',\n styleUrls: ['./collection-ec.component.scss']\n})\nexport class CollectionEcComponent extends ComponentHelper implements OnInit {\n\n public filters: Filter[] = [];\n public filters_top: Filter[];\n // public optionsFilters: ['all'];\n public products: Product[];\n public finished = false;\n protected suscripcion: Subscription;\n public loading = true;\n public breadcrumb: string[] = []\n public isCollection = true;\n public params: any;\n\n @Input() type;\n @Input() value;\n @Input() productsWithUniqueVariant: boolean = false;\n @Input() optionsFilters: FilterType[] = ['all'];\n\n constructor(public productsService: ProductsService,\n protected paramsSrv: ParametersService,\n protected activeRoute: ActivatedRoute,\n protected optionsService: OptionsService,\n public authService: AuthService,\n private analyticsService: AnalyticsService,\n public cartService: CartService,\n public consts: Constants) {\n super();\n this.paramsSrv.parameters.subscribe(param => this.params = param)\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n window.scroll(0, 0);\n this.products = [];\n this.ecOnInit()\n this.getProductsAndSubscribe();\n }\n getProductsAndSubscribe(): void {\n combineLatest([this.activeRoute.params, this.optionsService.ready, this.activeRoute.queryParams]).subscribe(([params, ready, queryParams]) => {\n if (ready.readyAll) {\n let cambio = false;\n this.products = [];\n if (!params['type'] || !params['value']) {\n this.productsService.getProductsForFilter({ latest: true, limit: 10 }, this.optionsFilters, queryParams.search);\n }\n else {\n this.productsService.getProductsForFilter({ type: params.type, value: params.value }, this.optionsFilters, queryParams.search);\n cambio = true;\n this.type = params['type'];\n this.value = params['value'];\n }\n try { this.suscripcion.unsubscribe(); } catch (e) { };\n this.suscripcion = this.productsService.products$.subscribe(\n res => {\n this.loading = false;\n if (res.length == 0) {\n this.products = [];\n this.finished = this.productsService.isFinished();\n } else {\n if (this.productsWithUniqueVariant) {\n if (cambio) {\n this.products = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n cambio = false;\n }\n else {\n res = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n this.products.push(...res)\n };\n } else {\n if (cambio) { this.products = res; cambio = false; }\n else this.products.push(...res);\n }\n }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: 'Collection', item_list_id: 'collection' })\n });\n this.productsService.filters$.subscribe(res => {\n this.breadcrumb = this.optionsService.getBreadcrumbByFilters(res);\n this.filters = this.getSpecificFilters(res, ['category', 'attributes', 'dynamics']);\n this.filters_top = this.getSpecificFilters(res, ['sort']);\n });\n this.productsService.finished().subscribe(res => this.finished = res);\n this.loading = false;\n }\n })\n }\n\n getSpecificFilters = (filters: Filter[], types: FilterType[]): Filter[] => {\n let result = [];\n types.forEach(type => {\n let result_filter = filters.find(filter => filter.type() == type);\n if (result_filter) result.push(result_filter);\n return result;\n });\n return result;\n }\n\n onScroll(): void {\n this.loading = true;\n if (!this.productsService.isWaiting() && !this.productsService.getNext()) {\n this.finished = true;\n this.loading = false;\n }\n }\n\n areProducts = () => this.products.length > 0;\n isWaiting = () => this.productsService.isWaiting();\n setFinished = () => this.finished = true;\n\n\n changeFilter = (e) => {\n if (!this.isCollection) {\n this.isCollection = true;\n }\n }\n\n addAllProductosToCart = (products = null) => {\n let items = [];\n (products || this.products).map(prod => prod.productWithUniqueVariant.map(p => items.push(p)))\n items = items.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem )\n items?.length && this.cartService.addAllToCart(items)\n }\n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: false , checkIfStock:true } \n } \n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { CartService } from '../../services/cart.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-coupon-ec',\n templateUrl: 'coupon-ec.component.html',\n styleUrls: ['coupon-ec.component.scss']\n})\nexport class CouponEcComponent extends ComponentHelper {\n\n public coupon_value = \"\";\n public aplied = false;\n public loading = false;\n\n constructor(public cartService: CartService, protected toastr: ToastService) { \n super();\n this.ecOnConstruct()\n }\n \n ngOnInit() {\n this.ecOnInit()\n }\n\n addCoupon = () => {\n this.validCoupon() && this.cartService.addCoupon(this.coupon_value).then(\n res => {\n res.error ? this.invalidCoupon() : this.applyCoupon();\n }\n )\n }\n\n invalidCoupon = () => {\n this.toastr.show('invalid-coupon');\n this.coupon_value = '';\n this.loading = false;\n }\n\n applyCoupon = () => {\n this.aplied = true;\n this.loading = false;\n }\n\n setLoading = () => this.loading = true;\n\n validCoupon = (): boolean => \n this.coupon_value && /^([A-Za-z\\-0-9]*)\\w+$/.test(this.coupon_value);\n}","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { FAQ } from '../../interfaces/faqs';\nimport { OptionsService } from '../../services/options.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-faqs-content-ec',\n templateUrl: 'faqs-content-ec.component.html',\n styleUrls: ['faqs-content-ec.component.scss']\n})\nexport class FaqsContentEcComponent extends ComponentHelper implements OnInit {\n\n public faqs : FAQ[];\n public actual_index;\n public empty_faqs = false;\n\n constructor(protected optionsService: OptionsService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.optionsService.getFAQ().toPromise().then(\n faqs => {\n console.log('LAS FAQS; ', faqs);\n if (faqs.length > 0) {\n this.faqs = faqs;\n this.actual_index = 0;\n } else {\n this.empty_faqs = true;\n }\n },\n error => {\n console.log(error);\n this.toastr.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(err => this.toastr.show('empty-faqs')); \n this.ecOnInit()\n\n }\n\n changeFAQ = (new_index) => this.actual_index = new_index;\n}","import { Component, Input, OnChanges, OnInit, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-ec',\n templateUrl: './filters-ec.component.html',\n styleUrls: ['./filters-ec.component.scss']\n})\nexport class FiltersEcComponent extends ComponentHelper implements OnInit {\n\n @Input() setSelected;\n @Input() filters;\n public expand: boolean = true;\n\n\n constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n close = (accordion_id) => {\n // this.consts.mobile()\n // ? this.document.getElementById(\"accordionExample\").classList.remove('show')\n // : this.document.getElementById(accordion_id).classList.remove('show');\n return true;\n };\n\n}\n","import { Component, Input, OnChanges, OnInit, Inject, EventEmitter, Output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-top-ec',\n templateUrl: './filters-top-ec.component.html',\n styleUrls: ['./filters-top-ec.component.scss']\n})\nexport class FiltersTopEcComponent extends ComponentHelper implements OnInit {\n\n // @Input() setSelected;\n // @Input() filters;\n\n // public expand: boolean = true;\n\n\n // constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n // super();\n // this.ecOnConstruct() \n // }\n\n // ngOnInit() {\n // this.expand = !this.consts.mobile()\n // this.ecOnInit()\n\n // }\n\n // ngOnChanges() {\n // }\n\n // setSelectedInternal = (filter, $event) => {\n // console.log('EL VALO RQUE VA A MANDAR: ', $event.target.value);\n // this.setSelected(filter, $event.target.value);\n // }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n @Input() setSelected;\n @Input() filters;\n @Input() full = true\n @Output() changeFilter = new EventEmitter();\n\n public expand: boolean = true;\n\n constructor(private consts: Constants, @Inject(DOCUMENT) private document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.full = !this.consts.mobile()\n this.ecOnInit()\n }\n\n ngOnChanges() {\n }\n\n mid = (filter, filterChild, value) => {\n // console.log(\"FILTER \", filter);\n // console.log(\"HIJO \", filterChild);\n // console.log(\"VALOR \", value);\n this.changeFilter.emit(value);\n return true\n }\n\n close = () => {\n //this.document.getElementById(\"filtros\").classList.remove('in');\n return true;\n };\n\n getDescripcion = (title) => {\n switch (title) {\n case 'most-expensive-first':\n return '+';\n case 'cheapest-first':\n return '-';\n case 'ascendancy':\n return 'Asc';\n case 'descendant':\n return 'Desc';\n default:\n return title;\n }\n }\n\n getStyles = (state) => {\n console.log(state);\n return (state) ? 'btn btn-secondary btn-sm active' : 'btn btn-secondary btn-sm'\n }\n\n setSeleccion = (values) => {\n //console.log('SELECIOTOTOT => ', values);\n let valores = values.split('@')\n let filter = this.filters.find(f => f.type() == valores[0]);\n let opChild = {}\n if (valores[1] == 'sub') {\n opChild = (filter.data.find(f => f.children.find(c => c.selected))).children.find(c => c.selected)\n } else {\n opChild = (filter.data.find(f => f.children.find(c => c.value == valores[2]))).children.find(c => c.value == valores[2])\n }\n this.setSelected(filter, opChild)\n }\n\n createValue = (filter, filterItem) => filter.type() + '@' + filterItem.type + '@' + filterItem.value\n\n}\n","import { Component, OnInit, Output } from '@angular/core';\nimport { EventEmitter } from 'events';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-footer-ec',\n templateUrl: 'footer-ec.component.html',\n styleUrls: ['footer-ec.component.scss']\n})\n\nexport class FooterEcComponent extends ComponentHelper implements OnInit {\n public menuItemsCategories: Menu[] = [];\n public menuItemsSections: Menu[] = [];\n public menuItemsAttributes: Menu[] = [];\n\n public sections = [];\n public categories = [];\n public attributes = [];\n public mediaUrl: string;\n public params: any = {};\n\n\n constructor(protected optionsService: OptionsService, public paramsService: ParametersService, protected consts: Constants) {\n super();\n this.optionsService.sections.subscribe(res => (res.length > 0) && this.updateMenuItem(res));\n this.optionsService.categories.subscribe(res => (res.length > 0) && this.updateCategories(res));\n this.optionsService.attributes.subscribe(res => (res.length > 0) && this.updateAttributes(res));\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.ecOnInit()\n\n }\n\n protected updateCategories = (categories) => {\n this.menuItemsCategories = this.optionsService.generateMenu(categories);\n this.menuItemsCategories = this.ecUpdateMenuItemCategories(this.menuItemsCategories)\n this.categories = this.menuItemsCategories\n }\n\n protected updateAttributes = (attributes) => {\n this.menuItemsAttributes = this.optionsService.generateMenu(attributes);\n this.menuItemsAttributes = this.ecUpdateMenuItemAttributes(this.menuItemsAttributes)\n this.attributes = this.menuItemsAttributes\n }\n\n protected updateMenuItem = (elements) => {\n this.menuItemsSections = this.optionsService.generateMenu(elements);\n this.menuItemsSections = this.ecUpdateMenuItemSection(this.menuItemsSections)\n this.sections = this.menuItemsSections;\n }\n\n hasParams = (params, searched) => params && params.find(param => param.code.toLowerCase().includes(searched));\n\n mobile = () => this.consts.mobile();\n\n public addChildren = (menuItems, code, item, stackPlace = 'end') => {\n (stackPlace == 'start')\n ? menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.unshift(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n : menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.push(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n }\n\n public ecUpdateMenuItemSection = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemCategories = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemAttributes = (menuItems) => {\n return menuItems\n }\n}","import { Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Router, Event, NavigationStart } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { Constants } from '../../core.consts';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { AuthService } from '../../services/auth.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { TranslateService } from '@ngx-translate/core';\ndeclare var $ : any\n\n@Component({\n selector: 'app-header-ec',\n templateUrl: './header-ec.component.html',\n styleUrls: ['./header-ec.component.scss']\n})\n\nexport class HeaderEcComponent extends ComponentHelper implements OnInit {\n \n transparent: boolean;\n mediaMenu: boolean;\n\n //og elden\n public menuItems: Menu[] = [];\n public menuSections: any[] = [];\n\n public attributes: Menu[] = [];\n public categories: Menu[] = [];\n public envetUrlTransparent = [\"/home\", \"/\"];\n public searchValue: string;\n public params: any = {};\n public toggled = false;\n\n @ViewChild(\"menu\") menu_button: ElementRef;\n\n constructor(\n public router: Router,\n protected consts: Constants,\n public cartService: CartService,\n protected optionsService: OptionsService,\n public paramsService: ParametersService,\n public productsService: ProductsService,\n public authService: AuthService,\n public translate: TranslateService,\n protected renderer: Renderer2) {\n super();\n this.envetUrlTransparent = this.changeUrlTransparent(this.envetUrlTransparent)\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n this.changeUrlNavigation(url)\n this.envetUrlTransparent.find(evUrl => evUrl === url) != undefined \n ? this.transparent = true\n : this.transparent = false\n }\n });\n // menu\n this.optionsService.categories.pipe(filter(cat => cat.length > 0)).subscribe(res => {\n this.updateMenuItem('categories', res)\n this.subscribeCategories(res)\n });\n this.optionsService.attributes.pipe(filter(atr => atr.length > 0)).subscribe(res => {\n this.updateMenuItem('attributes', res)\n this.subscribeAttributes(res)\n });\n this.ecOnConstruct()\n }\n\n \n\n\n ngOnInit(): void {\n this.paramsService.parameters.subscribe(res => this.params = res);\n const mediaQuery = window.matchMedia('(max-width: 992px)');\n this.mediaMenu = mediaQuery.matches;\n this.ecOnInit()\n }\n\n protected updateMenuItem = (title, elements) => {\n const index = this.menuItems.findIndex(element => element.title == title);\n if (index != null && index >= 0) {\n this.menuItems[index].children = this.optionsService.generateMenu(elements);\n } else {\n if (title == 'attributes') {\n this.attributes.push(...this.optionsService.generateMenu(elements))\n this.attributes = this.updateMenuItemLastCreated(this.attributes);\n }\n if (title == 'categories') {\n this.categories.push(...this.optionsService.generateMenu(elements))\n this.categories = this.updateMenuItemLastCreated(this.categories);\n } \n }\n }\n\n nagivate = (url: string) => this.router.navigateByUrl(`/${url}`);\n \n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('home');\n }\n\n setSearchValue = (event) => {\n event.key == 'Enter' && this.getCollectionSearch()\n this.searchValue = event.target.value;\n }\n\n getCollectionSearch = () => this.router.navigateByUrl('/collection?search=' + this.searchValue);\n \n\n toogleToolbar = () => {\n console.log('LLAMA AL TOOGLE')\n if (this.menu_button.nativeElement.classList.contains('d-none')) {\n this.renderer.removeClass(this.menu_button, 'd-none');\n this.renderer.addClass(this.menu_button, 'active-mobile');\n } else {\n this.renderer.addClass(this.menu_button, 'd-none');\n this.renderer.removeClass(this.menu_button, 'active-mobile');\n }\n }\n\n changeLanguage = (lang) => {\n this.consts.setLocale(lang)\n window.location.reload()\n } \n\n changeUrlTransparent = (urlTransparent = []) => urlTransparent\n\n subscribeAttributes = (arrayAttributes: Array<any>) => {\n \n }\n\n subscribeCategories = (arrayCategories: Array<any>) => {\n \n }\n\n updateMenuItemLastCreated = (arrayMenu: Menu[]) => arrayMenu\n\n changeUrlNavigation = (url: string) => { }\n \n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n\n@Component({\n selector: 'app-home-ec',\n templateUrl: './home-ec.component.html',\n styleUrls: ['./home-ec.component.scss']\n})\nexport class HomeEcComponent extends ComponentHelper implements OnInit {\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.blocksService.getBlocks('home');\n this.ecOnInit()\n\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n noNewsletter = (block) => !block.code.includes('newsletter');\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\"\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { UserRoleType } from \"../../classes/user-role-type\";\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from \"../../utils/toast.service\";\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-login-ec',\n templateUrl: './login-ec.component.html',\n styleUrls: ['./login-ec.component.scss']\n})\nexport class LoginEcComponent extends ComponentHelper implements OnInit {\n\n @Input() redirect = true;\n @Input() title = 'login';\n @Input() buyButton = false;\n @Input() withRoles: UserRoleType[] = []\n @Output() ready = new EventEmitter();\n @Output() loggedIn = new EventEmitter();\n\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService,\n protected toastrService: ToastService,\n protected formBuilder: FormBuilder,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n\n ngOnInit() {\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.ecOnInit()\n\n }\n\n redirectHome = () => {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl('/home')\n }\n\n nagivate(url: string) {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl(`/${url}`);\n }\n\n\n login = ($event) => {\n $event.preventDefault();\n this.loading = true;\n this.authService.login(this.loginForm.value, this.withRoles).toPromise().then(\n res => {\n $('#collapse_login5').collapse('hide');\n if (res == 'ok') {\n localStorage.setItem('mail', this.loginForm.value.username);\n $('#collapse_login5').collapse('hide');\n if (this.redirect) {\n this.redirectHome()\n } else {\n this.loggedIn.emit('true')\n this.ready.emit(this.loginForm.value.username)\n }\n }\n else {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n $('#collapse_login5').collapse('hide');\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, partition } from 'rxjs';\nimport { Product } from '../../interfaces/product';\nimport { ProductsService } from './products.service';\nimport { CartService } from '../cart.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport _ from \"lodash\";\nimport { AnalyticsService } from '../analytics.service';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\n\n@Injectable()\nexport class ProductDetailService {\n\n private productSubject = new BehaviorSubject<Product>({});\n private optionsSubject = new BehaviorSubject<any>({});\n private asociatedDataSubject = new BehaviorSubject<any>({ price: '', stock: 0, picture: '' });\n\n private variants = []\n\n public product$ = this.productSubject.asObservable();\n public options$ = this.optionsSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n\n constructor(\n private productsService: ProductsService, private cartService: CartService, private toastrService: ToastService,\n private constants: Constants, public analyticsService: AnalyticsService,) {\n }\n\n /**\n * @param code Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * \n * Carga el producto solicitado asyncronicamente sin respuesta \n */\n loadProduct = (code, variant: boolean = false) =>\n this.productsService.getSpecificProduct(code, variant).toPromise().then(\n res => variant ? this.initialize(res, code) : this.initialize(res),\n err => this.productSubject.next(null)\n )\n\n /**\n * @param product_id Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * @async\n * \n * A diferencia del metodo loadProduct, este retorna un valor cuando termina \n */\n getProduct = async (product_id, variant: boolean = false) => {\n let result = await this.productsService.getSpecificProduct(product_id, variant).toPromise();\n if (!result || result.error) this.productSubject.next(null);\n else variant ? this.initialize(result, product_id) : this.initialize(result);\n return true;\n }\n\n private initialize = (product, variant_code?) => {\n this.productSubject.next(product);\n this.optionsSubject.next(this.getOptions())\n variant_code ? this.updateVariants(variant_code) : this.updateVariants();\n this.variants.length && this.generateAsociatedDataFromVariants();\n //this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n // variant_code && this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n }\n\n setProduct = (product) => this.isProductValid(product) && this.initialize(product);\n\n isReady = () => this.variants.length == 1;\n\n setOption = (option_code, option_value) => {\n let options = this.optionsSubject.value;\n let option = options.find(element => element.code == option_code).values.find(value => value.name == option_value);\n option.selected = !option.selected;\n options.find(element => element.code == option_code).values.forEach(\n value => { if (value.name != option.name) value.selected = false }\n );\n this.optionsSubject.next(options);\n this.updateVariants();\n this.generateAsociatedDataFromVariants();\n }\n\n changePicture = (picture) => {\n let data = this.asociatedDataSubject.value;\n data.picture = picture;\n this.asociatedDataSubject.next(data);\n }\n\n handleError = (error) => {\n // Whathever we need to do with error\n }\n\n addToCart(quantity) {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n this.toastrService.show('cant-buy');\n return;\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n this.variants.length == 0 && this.toastrService.show('no-variants');\n (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) && this.toastrService.show('variants-left');\n (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) && this.toastrService.show('out-of-stock');\n return;\n }\n if (!this.validateQuantity(quantity)) return;\n this.cartService.addToCart(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n };\n\n\n\n addToCartPromise = async (quantity) => {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n return { error: true, message: 'cant-buy' };\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n if (this.variants.length == 0) return { error: true, message: 'no-variants' };\n else if (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) return { error: true, message: 'variants-left' };\n else if (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) return { error: true, message: 'out-of-stock' };\n }\n if (!this.validateQuantity(quantity)) return;\n let result = await this.cartService.addToCartPromise(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n return (result && !(result.error));\n };\n\n private getOptions = (product_received?: Product) => {\n let product = product_received || this.productSubject.value;\n let options = [];\n product.options.forEach(element => {\n options.push(this.toOption(element));\n })\n return options;\n }\n\n private toOption = (preoption) => {\n return {\n name: preoption.label,\n code: preoption.code,\n type: preoption.type,\n values: preoption.values.map(value => ({ name: value.code, description: value.name, selected: false }))\n }\n }\n\n private makeAffordableProduct(product_selected: Product) {\n product_selected.price = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.saleprice = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.options = {};\n this.variants[0].options.forEach(option => product_selected.options = { ...product_selected.options, ...option })\n return product_selected;\n }\n\n private updateVariants = (code?) => {\n let variants = this.productSubject.value.variants;\n if (!code) {\n this.optionsSubject.value.forEach(option => {\n option.values.forEach(value => {\n if (value.selected) {\n variants = variants.filter(variant => {\n return variant.options.some(variant_option => {\n return (option.code in variant_option && variant_option[option.code] == value.name);\n })\n })\n }\n })\n })\n } else {\n variants = variants.filter(variant => variant.code == code);\n }\n this.variants = variants;\n code && this.updateOptions();\n }\n\n private updateOptions = () => {\n let { options } = this.variants.length && this.variants[0];\n options && options.forEach(option => Object.keys(option).forEach(key => this.setOption(key, option[key])))\n }\n\n private generateAsociatedDataFromVariants = () => {\n let asociated: any = {};\n if (this.isReady()) {\n asociated.stock = this.variants[0].stock\n asociated.price = this.variants[0].price.toString()\n asociated.saleprice = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n asociated.discount = this.variants[0]?.discount || undefined;\n // asociated.price = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n // asociated.saleprice = this.variants[0].price.toString()\n } else {\n asociated.price = this.cratePrice()\n asociated.saleprice = this.crateSalePrice()\n asociated.stock = (this.variants.map(variant => variant.stock)).reduce((a, b) => a + b)\n asociated.discount = this.crateDiscount()\n }\n\n ('images' in this.variants[0] && this.variants[0].images.length > 0)\n ? asociated.picture = this.variants[0].images[0]\n : asociated.picture = (this.asociatedDataSubject.value.picture || this.productSubject.value.picturesdefault[0]);\n\n\n asociated.maximumAmount = this.variants[0]?.maximumAmount || 0\n asociated.minimumAmount = this.variants[0]?.minimumAmount || 0\n\n asociated.maximumItemsQuantity = this.variants[0]?.stock > 0 && 'maximumItemsQuantity' in this.variants[0] ? this.variants[0]?.maximumItemsQuantity : this.variants[0]?.stock\n asociated.minimumItemsQuantity = this.variants[0]?.stock > 0 && 'minimumItemsQuantity' in this.variants[0] && this.variants[0]?.minimumItemsQuantity > 0 ? this.variants[0]?.minimumItemsQuantity : 1\n\n asociated.finalConsumer = {\n finalConsumerPrice: this.variants[0]?.final_consumer_price,\n originalFinalConsumerPrice: this.variants[0]?.original_final_consumer_price,\n }\n\n asociated.taxes = {\n taxIncluded: this.variants[0]?.taxIncluded,\n taxCategory: this.variants[0]?.taxCategory,\n }\n\n this.asociatedDataSubject.next(asociated);\n }\n\n private crateDiscount = () => {\n try {\n let all_discount = '';\n this.variants.forEach(variant => {\n variant.discount && (all_discount = all_discount + ', ' + variant.discount);\n });\n if (all_discount == '') {\n return undefined\n }\n return all_discount\n } catch (error) {\n return undefined\n }\n }\n\n private cratePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n all_prices.push(variant.price);\n });\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private crateSalePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n variant.saleprice && all_prices.push(variant.saleprice);\n });\n if (!all_prices.length) {\n return undefined\n }\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private inRange = (quantity, min, max) => ((quantity - min) * (quantity - max) <= 0)\n\n private validateQuantity = (quantity: number) => {\n const actualQuantity = this.cartService.getCountFromItemInCart(this.variants[0].code);\n const asociatedData = this.asociatedDataSubject.value;\n console.log('La cantidad que llego: ', quantity, ' y la cantidad actual: ', actualQuantity);\n if ((actualQuantity + quantity) > asociatedData.maximumItemsQuantity) {\n this.toastrService.show('maximum-items-quantity', { quantity: asociatedData.maximumItemsQuantity })\n return false;\n }\n if ((actualQuantity + quantity) < asociatedData.minimumItemsQuantity) {\n this.toastrService.show('minimum-items-quantity', { quantity: asociatedData.minimumItemsQuantity })\n return false;\n }\n return true\n }\n\n // Cuando haya modelos de respuesta, validamos que no se intente cargar un producto incompleto\n private isProductValid = (product: Product) => true;\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * \n * @description Retorna una lista filtrada de las variantes que estan seleccionadas\n */\n private getVariantsSelected(options: any, optionsException: Array<any>): Array<Object> {\n\n let variantsSelected = [];\n options.forEach(v => {\n if (v.values && v.values.length) {\n v.values.forEach(val => {\n if (val.selected && !optionsException.find(op => op.toUpperCase() == v.code.toUpperCase())) {\n variantsSelected[v.code] = val.name;\n }\n })\n }\n });\n\n return variantsSelected;\n\n }\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * @param variants Todas las variantes disponibles del producto\n * \n * @description retorna todas las variantes disponibles a seleccion y su stock\n */\n public getVariantsAvailable(options: any, variants: any, optionsException: Array<any>): any {\n\n let variantsSelected = this.getVariantsSelected(options, optionsException);\n\n let variantsAvailable = [];\n\n variants.map(v => {\n\n let aux = {};\n if (v.options && v.options.length) {\n v.options.map(op => {\n Object.assign(aux, op, { stock: v.stock });\n })\n }\n variantsAvailable.push(aux);\n })\n return variantsAvailable.filter(va => this.constants.containsAll({ ...variantsSelected }, va))\n }\n\n\n /**\n * \n * @param options Array de variantes y sus valores\n * @param code Codigo de la variante a buscar\n * @param name nombre de la variante a buscar\n * @param variants variantes del producto\n * \n * @description busca en la lista de variantes disponibles si hay de ese codigo, ese nombre y con stock \n */\n public existVariantAndHasStock(options, code, name, variants, optionsException = []): boolean {\n\n return this.getVariantsAvailable(options, variants, optionsException).find(va =>\n va.hasOwnProperty(code) && va[code] === name && va.stock > 0)\n }\n\n /**\n * \n * @param product producto el cual se quiere desdoblar por variantes por una opción.\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\n * @returns arreglo con el producto desdoblado por la variante solicitada.\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \n */\n getProductWithUniqueVariant = (product, withOption?: ParamsProductsWithUniqueVariant) => {\n return this.productsService.getProductsWithUniqueVariant([product], withOption)\n }\n\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ToastService } from '../../utils/toast.service';\n\n\n@Component({\n selector: 'app-product-detail-ec',\n templateUrl: './product-detail-ec.component.html',\n styleUrls: ['./product-detail-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductDetailEcComponent extends ComponentHelper implements OnInit {\n\n public product: any;\n public mediaUrl;\n public show = false;\n public quantity = 1;\n public breadcrumb = [];\n public carousel: any;\n public code = null;\n public focusImage: string = null\n public owlOptions = {}\n \n\n @ViewChild('contact') contact: ElementRef;\n\n constructor(\n public productService: ProductDetailService,\n public consts: Constants,\n protected activedRoute: ActivatedRoute,\n public cartService: CartService,\n public optionsService: OptionsService,\n public productsService: ProductsService,\n public analyticsService: AnalyticsService,\n public router: Router,\n protected toastrService: ToastService) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.activedRoute.params.subscribe(queryParams => {\n let variant: any = (this.activedRoute.snapshot.queryParamMap.get('variant'));\n let code = queryParams.id;\n this.productService.loadProduct(code, variant);\n this.code = queryParams.id\n })\n this.productService.product$.subscribe(res => {\n this.product = res;\n window.scroll(0, 0);\n this.breadcrumb = this.optionsService.getBreadcrumb(this.product.category);\n });\n this.productService.product$.pipe(filter(data => data && data.id && data.id != 0)).subscribe(\n (productParam) => {\n this.analyticsService.callEvent('view_item', { ...productParam, currency: this.consts.currency.code })\n this.changeImgFocus(productParam.picturesdefault[0])}\n )\n this.ecOnConstruct()\n\n }\n\n ngOnInit(): void {\n this.ecOnInit()\n }\n\n addToCart = () => {\n this.quantity > 0 && this.productService.addToCart(this.quantity);\n }\n\n addAllProductosToCart = () => {\n let items = this.product.productWithUniqueVariant?.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem)\n items?.length && this.cartService.addAllToCart(items)\n }\n\n scroll() {\n let el = this.contact.nativeElement as HTMLElement;\n el.scrollIntoView();\n }\n\n saveRef = (carousel) => {\n this.carousel = carousel;\n }\n\n plus = (stock) => this.quantity < stock ? this.quantity = this.quantity + 1 : this.toastrService.show('out-of-stock-actually');\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n showContact = () => this.show = true;\n hideContact = () => this.show = false;\n\n thereIsMoreInfo = (product: any) => {\n let result;\n if (product?.special_mark && product?.special_mark.length) {\n result = product?.special_mark?.find(special_mark => special_mark.type == 'more_info');\n }\n return result;\n }\n\n changeImgFocus = (img) => {\n this.focusImage = img\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AuthService } from '../../services/auth.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\n\n@Component({\n selector: 'app-product-ec',\n templateUrl: './product-ec.component.html',\n styleUrls: ['./product-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductEcComponent extends ComponentHelper implements OnInit {\n\n public quantity = 1;\n public stock = 0\n public data = null\n\n\n constructor(public consts: Constants, public router: Router,public productService: ProductDetailService,public authService: AuthService,) {\n super();\n this.ecOnConstruct()\n }\n @Input() product: any;\n\n ngOnInit(): void {\n this.productService.setProduct(this.product)\n this.productService.asociatedData$.subscribe(res => { this.data = res; this.stock = res.stock })\n this.ecOnInit()\n }\n\n canBuy = () => false;\n\n ngOnChanges() {\n }\n\n buyOrRedirect = (variant = false) => {\n let idredirect = variant && this.product.variants.find(v => v.stock > 0)?.code\n if (!idredirect) { idredirect = this.product.id; variant = false }\n else { if (idredirect.includes(\"/\")) {idredirect = this.product.id ; variant = false} }\n this.router.navigateByUrl(`/product/${idredirect}${variant ? '?variant=true':''}`)\n }\n\n plus = () => this.quantity = this.quantity + 1;\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n addToCart = () => {\n this.productService.addToCart(+this.quantity)\n }\n\n getBrandName = product => {\n if (product && product.attributes)\n return product.attributes\n .filter(attribute => attribute.code === 'marca')\n .map(attribute => attribute.children[0].name)\n }\n}\n","import { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n@Component({\n selector: 'app-related-products-ec',\n templateUrl: './related-products-ec.component.html',\n styleUrls: ['./related-products-ec.component.scss']\n})\nexport class RelatedProductsEcComponent extends ComponentHelper implements OnInit {\n\n public relatedProducts = [];\n @Input() product_id;\n public name = null;\n\n constructor(protected productsService: ProductsService,\n private analyticsService: AnalyticsService,\n public consts: Constants,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.load(this.product_id)\n this.ecOnInit()\n }\n\n load(product_id) {\n this.productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(\n res => {\n this.relatedProducts = res\n res.map(products => this.analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.title?.toLowerCase()?.replace(' ', '-') || 'related-products' }))\n },\n //res => res.items ? this.products = res.items : null\n // err => this.toastrService.show('unable-to-fetch-products')\n )\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.load(changes.product_id.currentValue)\n //this.doSomething(changes.categoryId.currentValue);\n // You can also use categoryId.previousValue and \n // categoryId.firstChange for comparing old and new values\n\n }\n\n\n\n public customOptions: any = {\n loop: true,\n dots: false,\n navSpeed: 950,\n margin: 0,\n navText: ['', ''],\n nav: true,\n responsive: {\n 0: {\n items: 1,\n nav: true\n },\n 600: {\n items: 3,\n nav: true\n },\n 900: {\n items: 4,\n nav: true,\n }\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { OptionsService } from '../../services/options.service';\n\n@Component({\n selector: 'app-section-container-ec',\n templateUrl: './section-container-ec.component.html',\n styleUrls: ['./section-container-ec.component.scss']\n})\nexport class SectionContainerEcComponent extends ComponentHelper implements OnInit {\n\n public content_html: SafeHtml = \"<p>Sin información</p>\";\n public loadSection: boolean = false;\n @Input() sanitizeHtml: boolean = false\n @Input() name = null;\n\n constructor(protected activatedRoute: ActivatedRoute, protected optionsService: OptionsService,\n protected toastrService: ToastrService, protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n if (this.name) {\n this.getSection(this.name)\n } else {\n this.activatedRoute.params.subscribe(\n params => {\n this.name = params.name;\n this.getSection(this.name)\n }\n );\n }\n this.ecOnInit()\n }\n\n getSection = (link: any) => {\n this.loadSection = false\n this.optionsService.getSectionContentByLink(link).toPromise().then(\n html => {\n if (html) this.content_html =\n this.sanitizeHtml\n ? html\n : this.sanitizer.bypassSecurityTrustHtml(html)\n this.loadSection = true\n }\n ,\n error => {\n console.log(error);\n this.loadSection = true\n this.content_html = \"<p>Sin información</p>\";\n this.toastrService.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(error => {\n this.content_html = \"<p>Sin información</p>\"\n this.loadSection = true\n });\n }\n}","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { StoresService } from '../../services/stores.service';\n\n@Component({\n selector: 'app-store-ec',\n templateUrl: 'stores-ec.component.html',\n styleUrls: ['stores-ec.component.scss']\n})\nexport class StoresEcComponent extends ComponentHelper {\n\n public filterStores = null\n public storesAll = null\n public imageMap = true\n public urlmap;\n public stores = [];\n public provinces = []\n\n constructor(public storesService: StoresService, public consts: Constants , protected sanitizer: DomSanitizer) {\n super();\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148')\n this.storesService.stores.pipe(filter(store => store && store.length > 0)).subscribe(stores => {\n this.storesAll = stores\n this.stores = stores\n this.selectChange('')\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n updateMap(url:string) {\n url = url.includes ('embed') ? url : 'https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148'\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl(url)\n }\n\n getProvices = (stores) => {\n let provincesOpt = []\n stores.forEach(store => {\n if (provincesOpt.find(s => s.code == store.province.code) == undefined) {\n provincesOpt.push(store.province)\n }\n });\n return provincesOpt\n }\n\n selectChange = (select) => {\n this.filterStores = select != '' && this.storesAll.filter(store => store.province.code == select) || this.storesAll\n return true\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-product-variants-ec',\n templateUrl: 'variants-ec.component.html',\n styleUrls: ['variants-ec.component.scss']\n})\nexport class VariantsEcComponent extends ComponentHelper {\n\n @Input() product;\n @Input('options') options$;\n @Input() setOption;\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n setSeleccion = (values) => {\n $('#op').attr('disabled', true); \n let valores = values.split(',')\n if (valores.length != 2) return\n console.log(values);\n console.log(valores);\n this.setOption(valores[0], valores[1])\n }\n\n view = (length, options) => {\n // console.log('LAS OPCIONES', options);\n return length > 1;\n }\n\n\n\n}","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport { take } from 'rxjs/operators';\nimport Fuse from 'fuse.js'\n\nexport type SellerDashboardUI =\n | 'HEADER_TAB'\n | 'GENERATE_BUDGET_BTN'\n | 'MANAGE_ORDERS_BTN'\n | 'SORT_SELECT'\n | 'SEARCH_FORM'\n | 'ORDER_COUNTER'\n\n@Component({\n selector: 'app-seller-dashboard-container',\n templateUrl: 'seller-dashboard-container-ec.component.html',\n styleUrls: ['seller-dashboard-container-ec.component.scss']\n})\nexport class SellerDashboardContainerEcComponent extends ComponentHelper implements OnInit {\n\n @Input() UIComponents: SellerDashboardUI[] = []\n \n public user = null\n public activeCustomer = null\n public sortValue = ''\n public searchInput = ''\n public customers = []\n public filteredCustomers = []\n private fuseOptions = {\n isCaseSensitive: false,\n shouldSort: false,\n tokenize: true,\n threshold: 0.2,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 0,\n keys: ['firstName', 'lastName', 'email', 'id']\n }\n private fuse = new Fuse(this.customers, this.fuseOptions)\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected constants: Constants, @Inject('env') protected env) {\n super()\n this.ecOnConstruct()\n }\n\n updateCustomers = () => {\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n\n this.filteredCustomers =\n this.searchInput\n ? this.fuse\n .search(this.searchInput)\n .map(customer => customer.item)\n : this.customers\n\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers(this.sortValue)\n }\n\n sortCustomers = value => {\n this.sortValue = value\n\n const comparator =\n (this.sortValue == 'asc')\n ? [-1, 1]\n : [1, -1]\n\n this.filteredCustomers =\n this.sortValue\n ? this.filteredCustomers.sort((aCustomer, otherCustomer) => {\n return (aCustomer.firstName == otherCustomer.firstName)\n ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]\n : aCustomer.firstName.toLowerCase() < otherCustomer.firstName.toLowerCase() ? comparator[0] : comparator[1]\n })\n : this.filteredCustomers\n }\n\n changeCustomer = customer => {\n this.authService.setCustomer(customer)\n customer\n ? this.toastrService.show('start-impersonating', { customer: customer.firstName + ' ' + customer.lastName })\n : this.toastrService.show('stop-impersonating')\n }\n\n hasHeader = () =>\n this.hasUIComponent('HEADER_TAB') ||\n this.hasUIComponent('GENERATE_BUDGET_BTN') ||\n this.hasUIComponent('MANAGE_ORDERS_BTN') ||\n this.hasUIComponent('SORT_SELECT') ||\n this.hasUIComponent('SEARCH_FORM')\n\n navigateExternal = url => window.open(url)\n\n hasUIComponent = (UIComponent: SellerDashboardUI) => this.UIComponents.includes(UIComponent)\n\n ngOnInit() {\n this.authService.getUserProfile()\n .pipe(take(1))\n .subscribe(user => {\n this.user = user\n this.customers = user.customers\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n })\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-full-ec',\n templateUrl: 'loading-full-ec.component.html',\n styleUrls: ['loading-full-ec.component.scss']\n})\nexport class LoadingFullEcComponent extends ComponentHelper {\n\n @Input() hole_height = false;\n \n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-inline-ec',\n templateUrl: 'loading-inline-ec.component.html',\n styleUrls: ['loading-inline-ec.component.scss']\n})\nexport class LoadingInlineEcComponent extends ComponentHelper {\n\n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { CartService } from '../../../../services/cart.service';\nimport { ComponentHelper } from '../../../../classes/component-helper';\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: '[app-mp-credit-ec]',\n templateUrl: 'mpcredit-ec.component.html',\n styleUrls: ['mpcredit-ec.component.scss']\n})\nexport class MPCreditEcComponent extends ComponentHelper implements OnInit {\n\n @Input() public_key;\n @Input() total_amount;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n\n public installments = [];\n public installment;\n public installment_data;\n public issuers = [];\n public issuer_id;\n public merchant_account_id;\n public doSubmit = false;\n public payment_method = '';\n public require_issuer = false;\n public allready_payed = false;\n public payment_method_option_id;\n public payment_method_id;\n public processing_mode;\n public token;\n public email;\n public doc_number;\n public doc_type = \"DNI\";\n public bin;\n public code;\n public month;\n public year;\n public cardholder;\n\n protected finishApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.cart_token + '/process-payment';\n\n constructor(protected renderer: Renderer2, protected connection: ConnectionService,\n public consts: Constants, protected cartService: CartService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n //console.log('SHIPMENT DATA', this.user_data);\n var s = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(s, 'src', 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js');\n this.renderer.appendChild(document.body, s);\n setTimeout(() => {\n Mercadopago.setPublishableKey(this.public_key);\n }, 1000)\n this.ecOnInit()\n\n }\n\n expiryChange = (event) => {\n let fecha = (event.target.value).replace(/ /g, \"\");\n let fechaSplit = fecha.split('/')\n if (fechaSplit.length == 2) {\n this.month = fechaSplit[0]\n this.year = fechaSplit[1]\n }\n }\n\n cardNumberChange = (event) => {\n //console.log('TOMA EL ON CHANGE DE TARJETA');\n this.restartInstallments();\n this.guessPaymentMethod(event);\n }\n\n verifyValidate = (data) => {\n // FALTA SACAR EL PAYMENT METOD OPTTION ID\n let post_data = {\n token: data.id,\n issuer_id: this.issuer_id,\n installments: this.installment,\n merchant_account_id: this.merchant_account_id,\n payment_method_option_id: this.payment_method_option_id,\n payment_method_id: this.payment_method_id,\n processing_mode: this.processing_mode,\n email: this.email,\n document_type: this.doc_type,\n document_number: this.doc_number,\n };\n //console.log('LA DATA QUE VA A MANDAR: ', post_data);\n this.connection.post(this.finishApi(), post_data).toPromise().then(this.processResponse, this.processError)\n }\n\n // Obtener método de pago de la tarjeta\n\n guessPaymentMethod = (event) => {\n //console.log('SE LLAMA AL GUESS PAYMENT');\n let cardnumber = (event.target.value).replace(/ /g, \"\");\n this.setPaymentMethod.bind(this);\n if (cardnumber.length >= 6) {\n let bin = cardnumber.substring(0, 6);\n this.getPaymentMethod(bin);\n }\n };\n\n getPaymentMethod = (bin) => {\n let data_to_send = {\n public_key: this.public_key,\n marketplace: 'NONE',\n status: 'active',\n js_version: '1.3.1',\n bins: bin,\n referer: 'http://enzoshoes.easycommercetech.com'\n }\n\n this.connection.getOutsiderWithParams('https://api.mercadopago.com/v1/payment_methods/search', data_to_send).toPromise().then((res) => {\n //console.log('LA RESPUESTA DEL SEARCH PAYMENT METHOD: ', res);\n if (res && res.results && res.results.length) {\n const payment_data = res.results.find(result => result.processing_mode == \"gateway\") || res.results[0];\n if (payment_data.payment_type_id != \"credit_card\") {\n this.toastr.show('Debe ingresar información de una tarjeta de credito');\n return;\n }\n this.payment_method = payment_data.id;\n this.issuer_id = payment_data.issuer.id;\n payment_data.payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: ('Cuotas: ' + payerCost.installments + ' - Total: ' + this.calculateTotal(payerCost)), value: payerCost.installments });\n });\n this.installment_data = payment_data;\n } else {\n this.toastr.show('El número de tarjeta ingresado no es valido');\n }\n }).catch(err => this.toastr.show('Hubo un error al obtener la información de la tarjeta. Verifique que los datos sean correctos.'));\n }\n\n setPaymentMethod = (status, response) => {\n //console.log('SE LLAMA AL SET PAYMENT', response);\n let paymentMethod = response[0];\n this.payment_method = paymentMethod.id;\n this.getIssuers.bind(this);\n this.getInstallments.bind(this);\n if (paymentMethod.additional_info_needed.includes(\"issuer_id\")) {\n this.getIssuers(paymentMethod.id);\n } else {\n // this.issuer_id = response.issuer\n this.getInstallments(\n paymentMethod.id,\n this.total_amount\n );\n }\n }\n\n // Obtener banco emisor\n\n getIssuers = (paymentMethodId) => {\n this.restartInstallments();\n this.require_issuer = true;\n //console.log('SE LLAMA AL GET ISSUER');\n this.setIssuers.bind(this);\n Mercadopago.getIssuers(\n paymentMethodId,\n this.setIssuers\n );\n }\n\n setIssuers = (status, response) => {\n //console.log('SE LLAMA AL SET ISSUER', response);\n this.getInstallments.bind(this);\n if (status == 200) {\n response.forEach(issuer => {\n this.issuers.push({ name: issuer.name, value: issuer.value });\n });\n } else {\n this.toastr.show('Error al obtener proveedores disponibles');\n }\n }\n\n // UTILS\n\n restartInstallments = () => {\n this.installments = [];\n this.installment_data = null;\n this.merchant_account_id = null;\n this.payment_method_option_id = null;\n this.issuer_id = null;\n this.payment_method_id = null;\n }\n\n selectIssuer = (value) => {\n this.issuer_id = value;\n this.getInstallments(this.payment_method, this.total_amount, this.issuer_id);\n }\n\n selectInstallment = (value) => {\n const cost = this.installments.find(installment_cost => installment_cost.value == value);\n this.installment = cost.value;\n this.merchant_account_id = this.installment_data.merchant_account_id;\n this.payment_method_option_id = cost.payment_method_option_id || (this.installment_data.agreements && this.installment_data.agreements[0].merchant_accounts[0].payment_method_option_id);\n this.issuer_id = this.installment_data.issuer.id;\n this.payment_method_id = this.installment_data.payment_method_id || this.installment_data.id;\n this.processing_mode = this.installment_data.processing_mode;\n\n //console.log('COMO QUEDAN: ', this.merchant_account_id, this.payment_method_option_id, this.issuer_id, this.payment_method_id, this.installment);\n // this.payme\n }\n\n // Obtener cantidad de cuotas\n\n getInstallments = (paymentMethodId?, transactionAmount?, issuerId?) => {\n let payment = paymentMethodId || this.payment_method;\n let amount = transactionAmount || this.total_amount;\n //console.log('SE LLAMA AL GET INSTALLMENTS');\n this.setInstallments.bind(this);\n let data = {\n \"payment_method_id\": payment,\n \"bin\": this.bin.replace(/ /g, \"\"),\n \"amount\": parseFloat(amount),\n \"issuer_id\": issuerId ? parseInt(issuerId) : undefined\n };\n //console.log('LO QUE VA A MANDAR AL GET INSTALLMENTS');\n Mercadopago.getInstallments(data, this.setInstallments);\n }\n\n setInstallments = (status, response) => {\n //console.log('LA RESPUESTA DEL GET INSTALLMENTS', response);\n if (status == 200 && response.length) {\n this.installments = [];\n response[0].payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: payerCost.recommended_message, value: payerCost.installments });\n });\n this.installment_data = response[0];\n } else {\n // alert(`installments method info error: ${response}`);\n this.toastr.show('Hubo un error al obtener las cuotas disponibles. Vuelva a intentarlo más tarde');\n }\n }\n\n // Crea el token de la tarjeta\n\n getCardToken = (event) => {\n //console.log('SE LLAMA AL GET CARD TOKEN');\n event.preventDefault();\n if (!this.doSubmit) {\n let $form = document.getElementById('paymentForm');\n Mercadopago.createToken.bind(this)($form, this.setCardTokenAndPay);\n return false;\n }\n };\n\n setCardTokenAndPay = (status, response) => {\n //console.log('SE LLAMA AL SET CARD TOKEN AND PAY');\n if (status == 200 || status == 201) {\n let form = document.getElementById('paymentForm');\n let card = document.createElement('input');\n card.setAttribute('name', 'token');\n card.setAttribute('type', 'hidden');\n card.setAttribute('value', response.id);\n form.appendChild(card);\n this.token = response.id;\n this.doSubmit = true;\n // form.submit();\n // TERMINAR\n this.verifyValidate(response);\n } else {\n //console.log('EL RESPONSE: ', response);\n this.toastr.show(this.parseErrorMessage(status));\n }\n };\n\n // UTILS\n\n isInvalid = () => {\n const result = (\n !this.issuer_id ||\n !this.payment_method_id ||\n !this.payment_method_option_id ||\n (this.processing_mode == 'gateway' && !this.merchant_account_id) ||\n !this.installment ||\n !this.email ||\n !this.doc_type ||\n !this.doc_number ||\n this.allready_payed ||\n !this.code ||\n !this.month ||\n !this.year ||\n !this.cardholder\n )\n return result;\n }\n\n calculateTotal = (cost) => {\n let result = this.total_amount + ((this.total_amount * cost.installment_rate) / 100);\n result = parseFloat(result).toFixed(2);\n return result;\n }\n\n processResponse = (response) => {\n if (response.status !== 'rejected') {\n //console.log('SE PUDO EFECTUAR LA COMPRA');\n this.ready.emit('true');\n return;\n }\n this.processError(response);\n }\n\n processError = (response) => {\n this.allready_payed = false;\n if (response.status_detail) {\n switch (response.status_detail) {\n case 'rejected': this.toastr.show('Revisa el número de tarjeta.'); break;\n case 'rejected': this.toastr.show('Revisa la fecha de vencimiento.'); break;\n case 'rejected': this.toastr.show('Revisa los datos.'); break;\n case 'rejected': this.toastr.show('Revisa el código de seguridad de la tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Debes autorizar ante payment_method_id el pago de amount.'); break;\n case 'rejected': this.toastr.show('Llama a payment_method_id para activar tu tarjeta o usa otro medio de pago. El teléfono está al dorso de tu tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.'); break;\n case 'rejected': this.toastr.show('Tu payment_method_id no tiene fondos suficientes.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesa pagos en installments cuotas.'); break;\n case 'rejected': this.toastr.show('Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesó el pago.'); break;\n }\n return;\n }\n this.toastr.show('Hubo un error al intentar realizar el pago. Vuelva a intentarlo más tarde');\n }\n\n parseErrorMessage = (status_code) => {\n switch (status_code) {\n case 205: return ('Ingresa el número de tu tarjeta.');\n case 208: return ('Elige un mes.');\n case 209: return ('Elige un año.');\n case 212: return ('Ingresa tu tipo de documento.');\n case 213: return ('Ingresa tu documento.');\n case 214: return ('Ingresa tu documento.');\n case 220: return ('Ingresa tu banco.');\n case 221: return ('Ingresa el nombre y apellido.');\n case 224: return ('Ingresa el código de seguridad.');\n case 316: return ('Ingresa un nombre válido.');\n case 322: return ('El tipo de documento es inválido.');\n case 323: return ('Revisa tu documento.');\n case 324: return ('El documento es inválido.');\n case 325: return ('El mes es inválido');\n case 326: return ('El año es inválido');\n default: return ('Verifique que los datos sean correctos.');\n }\n }\n\n getDescripcionCuota = (itemCuota) => {\n //console.log(itemCuota);\n return itemCuota.name\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { ProductsService } from '../../../services/products/products.service';\n\n@Component({\n selector: 'app-price-ec',\n templateUrl: 'price-ec.component.html',\n styleUrls: ['price-ec.component.scss']\n})\n\nexport class PriceEcComponent extends ComponentHelper implements OnInit {\n\n @Input() price;\n @Input() saleprice;\n @Input() priceSize: boolean = true\n @Input() classStrSpacing;\n\n constructor(public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-redsys-catch-ec',\n templateUrl: './redsys-catch-ec.component.html',\n styleUrls: ['./redsys-catch-ec.component.scss']\n})\nexport class RedsysCatchEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, public router: Router, public checkoutService: CheckoutService) {\n super();\n $(\"header\").hide();\n $(\"footer\").hide();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let state\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n state = queryRouter.state\n state && state == 'statuspayment' && (state = queryParams.status)\n console.log('PARAMETROS STATE -> ', state);\n switch (state) {\n case '200':\n state = 'success'\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'success':\n this.setStateInLocal('Su pago fue procesado con éxito.',state)\n break;\n case 'pending':\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'failure':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'cancel':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'ok':\n this.setStateInSesion('Su pago fue procesado con éxito.', state)\n break;\n case 'challenge':\n this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state)\n break;\n case 'error':\n this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state)\n break;\n case '0':\n state = 'failure'\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n default:\n break;\n }\n })\n this.ecOnInit()\n }\n\n\n setStateInLocal = (mensaje, state) => {\n this.message = mensaje\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n setStateInSesion = (mensaje, state) => {\n this.message = mensaje\n sessionStorage.setItem('state', state)\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { CartService } from '../../../services/cart.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-redsys-pro-ec',\n templateUrl: 'redsys-pro-ec.component.html',\n styleUrls: ['redsys-pro-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysProEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n @ViewChild('formDobleAuthContainer') protected formDobleAuth: ElementRef;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n protected intentoRequest: boolean = false\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected finishApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/process-payment';\n protected challengeApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/3ds-challenge';\n protected merchantOrder = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/ds-merchant-order';\n \n constructor(protected renderer: Renderer2, protected connection: ConnectionService, protected toastrService: ToastService,\n public consts: Constants, public cartService: CartService, protected toastr: ToastService, @Inject(DOCUMENT) protected document: Document,\n protected activedRoute: ActivatedRoute,protected modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('method', JSON.stringify(this.method))\n sessionStorage.setItem('user_data', JSON.stringify(this.user_data))\n sessionStorage.setItem('finishApi',this.finishApi())\n sessionStorage.setItem('challengeApi',this.challengeApi())\n sessionStorage.setItem('merchantOrder',this.merchantOrder())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state && state != 'challenge') {\n sessionStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-redsys-redirect-ec',\n templateUrl: 'redsys-redirect-ec.component.html',\n styleUrls: ['redsys-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state) {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-ceca-redirect-ec',\n templateUrl: 'ceca-redirect-ec.component.html',\n styleUrls: ['ceca-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CecaRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/cecabank/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n console.log(state);\n if (state) {\n localStorage.removeItem('state')\n if (state == 'success') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.modalRef.hide()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago')\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { OrdersService } from '../../../services/account/orders.service';\n// import { OwlOptions } from 'projects/ng-easycommerce/src/lib/ec-component/product-detail-ec/node_modules/projects/ng-easycommerce/src/lib/ec-component/home-ec/node_modules/ngx-owl-carousel-o';\n\n@Component({\n selector: 'app-orders-ec',\n templateUrl: 'orders-list-ec.component.html',\n styleUrls: ['orders-list-ec.component.scss']\n})\nexport class OrdersEcComponent extends ComponentHelper implements OnInit {\n\n public mediaUrl;\n public orders;\n public loading = true;\n public error;\n\n constructor(public ordersService: OrdersService, public router: Router, protected consts: Constants) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.updateOrders();\n this.ordersService.orders$.pipe(filter(or => or)).subscribe(\n orders => {\n this.orders = this.sortedByNewest(orders);\n this.loading = false\n },\n err => {\n this.loading = false\n this.error = 'orders-error';\n }\n )\n this.ecOnInit()\n\n }\n\n sortedByNewest = orders => orders && orders.length && orders.sort((anOrder, otherOrder) => anOrder.number > otherOrder.number ? -1 : 1)\n\n goToOrder = (order) => {\n this.ordersService.setSelectedOrder(order);\n this.router.navigateByUrl((`account/orders/${order.number}`))\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n optionsBox = {\n loop: true,\n autoplay: true,\n smartSpeed: 950,\n margin: 10,\n dots: false,\n dotsData: false,\n navText: [\"\", \"\"],\n responsive: {\n 0: {\n items: 1,\n },\n 600: {\n items: 1,\n },\n 1000: {\n items: 1,\n }\n }\n }\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { OrdersService } from '../../../services/account/orders.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-order-ec',\n templateUrl: 'order-ec.component.html',\n styleUrls: ['order-ec.component.scss']\n})\nexport class OrderEcComponent extends ComponentHelper implements OnInit {\n\n protected orderSubject = new BehaviorSubject<any>({});\n\n public order$ = this.orderSubject.asObservable();\n public order = null\n public loading = true;\n public error;\n @Input() numberOrder = null\n\n constructor(public ordersService: OrdersService, protected activedRoute: ActivatedRoute, public router: Router, public consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.selectedOrder$.subscribe(\n async res => {\n let order;\n if (this.numberOrder == null) {\n this.numberOrder = this.activedRoute.snapshot.params.number\n }\n if (res) order = res;\n else order = await this.ordersService.findOrder(this.numberOrder);\n order && this.orderSubject.next(order);\n !order && this.callError();\n this.order = order\n this.loading = false;\n }),\n err => {\n this.ordersService.error$.toPromise().then(res => this.error = res);\n this.loading = false;\n this.callError();\n }\n this.ecOnInit()\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n callError = () => {\n this.error = '?';\n this.router.navigateByUrl('account/orders');\n }\n\n volver = () => this.router.navigateByUrl('account/orders');\n\n}","import { Component, Input, OnInit, OnChanges } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-auth-ec',\n templateUrl: 'auth-ec.component.html',\n styleUrls: ['auth-ec.component.scss']\n})\nexport class AuthEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() complete = true;\n public data = {\n email: null,\n password: null,\n nombre: null,\n apellido: null,\n }\n @Input() redirect = true;\n public loginForm: FormGroup;\n public registerForm: FormGroup;\n public loading: Boolean = false;\n public register_loading: Boolean = false;\n public params: any = [];\n\n\n constructor(public authService: AuthService, protected toastr: ToastService,\n public paramsService: ParametersService,\n protected activatedRoute: ActivatedRoute,\n protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n\n this.activatedRoute.params.subscribe(\n params => {\n if (params?.data) {\n let resul = JSON.parse(atob(params.data))\n resul && this.authService.doLoginUser(resul)\n }\n }\n );\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n }\n\n setProp = (prop, event) => {\n this.data[prop] = event.target.value;\n }\n\n login = () => this.redirect && this.redirectHome();\n\n redirectHome = () => {\n setTimeout(() => this.router.navigateByUrl('/'), 1500);\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.router.navigateByUrl('home')\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}\n\n\n\n\n\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AnalyticsService } from '../../../services/analytics.service';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-register-form-ec',\n templateUrl: 'register-form-ec.component.html',\n styleUrls: ['register-form-ec.component.scss']\n})\nexport class RegisterFormEcComponent extends ComponentHelper implements OnInit {\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success: Boolean = false\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public registroUsuario: any = {\n firstName: '',\n lastName: '',\n email: '',\n plainPassword: '',\n plainPassword2: '',\n newsletter: false,\n terms: false,\n }\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public analyticsService: AnalyticsService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n this.ecOnInit()\n\n }\n\n setProp = (prop, event) => {\n this.registroUsuario[prop] = event.target.value;\n }\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.value.plainPassword != this.registerForm.value.plainPassword2) {\n this.toastr.show('Las contraseñas no coinciden');\n this.register_loading = false\n return;\n }\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.analyticsService.callEvent('sign_up', {\n firstName: this.registerForm.value.firstName,\n lastName: this.registerForm.value.lastName,\n email:this.registerForm.value.email\n })\n this.success =true\n this.ready.emit(true)\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { UserRoleType } from '../../../classes/user-role-type';\n\n@Component({\n selector: 'app-login-form-ec',\n templateUrl: 'login-form-ec.component.html',\n styleUrls: ['login-form-ec.component.scss']\n})\nexport class LoginFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Input() title = 'login';\n /* @Input() withRoles: UserRoleType[] = [UserRoleType.SELLER, UserRoleType.RETAILER, UserRoleType.WHOLESALER] */\n /* @Input() withRoles: UserRoleType[] = [] */\n @Output() ready = new EventEmitter();\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.redirect && this.authService.isAuthenticated() && this.redirectHome()\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n\n this.ecOnInit()\n }\n\n login = ($event, withRoles: UserRoleType[] = []) => {\n $event.preventDefault();\n this.loading = true;\n if (!this.loginForm.valid) {\n this.toastrService.show('Aún hay datos sin completar');\n return;\n }\n this.authService.login(this.loginForm.value, withRoles).toPromise().then(\n res => {\n if (res == 'ok') {\n if (this.redirect) {\n setTimeout(() => this.redirectHome(), 500);\n } else {\n this.ready.emit(this.loginForm.value.username);\n }\n }\n else {\n if (res == 'error') {\n /* Why would the USER care (or even know) about channels */\n /* this.toastrService.show('channel-permission-denied') */\n this.toastrService.show('invalid-credentials')\n this.loading = false;\n return\n }\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n redirectHome = () => {\n const resolverFunction = this.authService.getHomeResolver()\n resolverFunction\n ? resolverFunction()\n : this.router.navigateByUrl('/')\n }\n\n}","import { Component } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-forgot-password-ec',\n templateUrl: 'forgot-password-ec.component.html',\n styleUrls: ['forgot-password-ec.component.scss']\n})\nexport class ForgotPasswordEcComponent extends ComponentHelper {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n\n constructor(protected authService: AuthService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n recoverPassword = (event) => {\n event.preventDefault();\n if (!this.validEmail()) this.toastr.show('invalid-email');\n else {\n this.loading = true;\n this.authService.recoverPassword(this.email).toPromise()\n .then(this.processOk, this.processOk).catch(this.processOk);\n }\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('non-existent-email')\n : this.toastr.show(response.error);\n }\n\n validEmail = () => this.email != '' && this.email.includes('@');\n}","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\n\n@Component({\n selector: 'app-confirm-account-ec',\n templateUrl: 'confirm-account-ec.component.html',\n styleUrls: ['confirm-account-ec.component.scss']\n})\nexport class ConfirmAccountEcComponent extends ComponentHelper {\n\n public ok: Boolean = false;\n public error: Boolean = false;\n\n constructor(protected authService: AuthService, protected activedRoute: ActivatedRoute) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n const token = this.activedRoute.snapshot.queryParams.token;\n this.authService.confirmAccount(token).toPromise().then(this.onSuccess, this.onSuccess).catch(this.onSuccess) \n this.ecOnInit()\n\n }\n\n onSuccess = () => {\n this.ok = true;\n }\n\n onError = () => {\n this.error = true;\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-password-reset-ec',\n templateUrl: 'password-reset-ec.component.html',\n styleUrls: ['password-reset-ec.component.scss']\n})\nexport class PasswordResetEcComponent extends ComponentHelper implements OnInit {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n protected token;\n public formGroup: FormGroup;\n\n constructor(protected authService: AuthService, protected toastr: ToastService, protected activedRoute: ActivatedRoute, \n public router: Router, protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.token = this.activedRoute.snapshot.queryParams.token;\n !this.token && this.router.navigateByUrl('/');\n this.formGroup = this.formBuilder.group({\n first: ['', Validators.required],\n second: ['', Validators.required]\n })\n this.ecOnInit()\n\n }\n\n sendNewPassword = (event) => {\n event.preventDefault();\n if (this.invalidForm()) return;\n this.loading = true;\n this.authService.passwordReset(this.formGroup.value.first, this.token).toPromise()\n .then(this.processOk)\n .catch(this.processError);\n }\n\n invalidForm = () => {\n if (this.formGroup.valid) {\n const passwords = this.formGroup.value;\n if (passwords.first == passwords.second) return false;\n else this.toastr.show('password-doesnt-match');\n } else this.toastr.show('invalid-form');\n return true;\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('operation-error')\n : this.toastr.show(response.error);\n }\n\n sendToLogin = () => this.router.navigateByUrl('/auth/login');\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { BehaviorSubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { AuthService } from '../../../services/auth.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-register-wholesaler-form-ec',\n templateUrl: 'register-wholesaler-form-ec.component.html',\n styleUrls: ['register-wholesaler-form-ec.component.scss']\n})\nexport class RegisterWholesalerFormEcComponent extends ComponentHelper implements OnInit {\n\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected documentTypesSubject = new BehaviorSubject<any[]>([]);\n\n public provinces$ = this.provincesSubject.asObservable();\n public countries$ = this.countriesSubject.asObservable();\n public documentTypes$ = this.documentTypesSubject.asObservable();\n\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success : Boolean = false;\n public requestTerms = false;\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public params: any = {};\n\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public consts: Constants,\n public paramsService: ParametersService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.registerForm = this.formBuilder.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n documentType: [null, [Validators.required]],\n documentNumber: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', []],\n countryCode: [null, Validators.required],\n street: [null, [Validators.maxLength(50)]],\n city: ['', Validators.required],\n postcode: ['', Validators.required],\n provinceName: ['', Validators.required],\n provinceCode: [null, Validators.required],\n companyName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n gender: [null, []],\n birthday: [null, [Validators.maxLength(11)]],\n taxIdentification: ['', Validators.required],\n comments: ['', []],\n contactFirstName: ['', []],\n contactLastName: ['', []],\n contactCompanyPosition: ['', []],\n contactEmail: ['', []],\n contactDocumentType: ['', []],\n contactDocumentNumber: ['', []],\n subscribedToNewsletter: [false],\n terms: [true, Validators.required],\n });\n this.authService.getCountriesData().then(res => {\n this.countriesSubject.next(res);\n let documentTypes = []\n res.map(paises => {\n this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase()) && (documentTypes = paises.documentTypes || [])\n });\n this.documentTypesSubject.next(documentTypes);\n });\n this.ecOnInit()\n }\n\n onCountrySelected = (value) => {\n $('#selectOpPais').attr('disabled', true);\n this.registerForm.controls['countryCode'].setValue(value);\n this.registerForm.controls['provinceCode'].setValue('');\n value != '' && this.provincesSubject.next(this.countriesSubject.value.find(country => country.code == value).provinces);\n }\n\n onProvincesSelected = (value) => {\n $('#selectOpProvincia').attr('disabled', true);\n this.registerForm.controls['provinceName'].setValue(this.provincesSubject.value.find(province => province.code == value).name);\n }\n\n onGenderSelected = (value) => {\n $('#selectOpSexo').attr('disabled', true);\n }\n\n onDocumentTypeSelected = (value) => {\n $('#selectOpDocumentType').attr('disabled', true);\n }\n\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUpWholesaler(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.success = true;\n this.ready.emit(true);\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Product } from '../../interfaces/product';\n\n\n@Component({\n selector: 'app-share-block-ec',\n templateUrl: './share-block-ec.component.html',\n styleUrls: ['./share-block-ec.component.scss'],\n})\nexport class ShareBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() product: Product\n\n public url = ''\n public mediaimg = ''\n public description = ''\n\n constructor(\n public consts: Constants, protected renderer: Renderer2, private meta: Meta, private title: Title) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.url = window.location.href\n this.mediaimg = this.product.picturesdefault && this.product.picturesdefault[0]\n this.description = this.product.name\n if (this.description) {\n this.meta.addTags(\n [\n {\n name: \"description\",\n content: this.description\n },\n {\n property: \"og:site_name\",\n content: this.title.getTitle()\n }\n ,\n {\n property: \"og:url\",\n content: this.url\n }\n ,\n {\n property: \"og:title\",\n content: this.description\n }\n ,\n {\n property: \"og:type\",\n content: 'product'\n }\n ,\n {\n property: \"og:price:amount\",\n content: this.product.price\n }\n ,\n {\n property: \"og:price:currency\",\n content: this.consts.currency.code\n }\n ,\n {\n property: \"og:image\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"og:image:secure_url\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"witter:site\",\n content: '@'\n }\n ,\n {\n property: \"twitter:card\",\n content: 'summary_large_image'\n }\n ,\n {\n property: \"twitter:title\",\n content: this.description\n }\n ,\n {\n property: \"twitter:description\",\n content: this.description\n }\n \n ], true);\n }\n\n this.ecOnInit()\n }\n\n\n toShareFacebook = () => {\n //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`\n return `https://www.facebook.com/share.php?u=${this.url}`\n }\n\n toShareTwitter = () => {\n //return `https://twitter.com/share?text=${encodeURIComponent(this.description)};url=${encodeURIComponent(this.url)}`\n return `https://twitter.com/share?text=${this.description}&url=${this.url}`\n }\n\n toSharePinterest = () => {\n //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`\n return `https://pinterest.com/pin/create/button/?url=${this.url}&media=${this.consts.mediaUrl()+this.mediaimg}&description=${this.description}`\n }\n\n\n createMetadata = () => {\n\n // <meta name=\"description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n // <meta property=\"og:site_name\" content=\"MYC HOME LINENS\">\n // <meta property=\"og:url\" content=\"https://myc-homelinens.com/products/cojin-algodon-joy-azul\">\n \n // <meta property=\"og:title\" content=\"COJÍN JOY - AZUL\">\n // <meta property=\"og:type\" content=\"product\">\n // <meta property=\"og:description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n // <meta property=\"og:price:amount\" content=\"20,20\">\n // <meta property=\"og:price:currency\" content=\"EUR\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta name=\"twitter:site\" content=\"@\">\n // <meta name=\"twitter:card\" content=\"summary_large_image\">\n // <meta name=\"twitter:title\" content=\"COJÍN JOY - AZUL\">\n // <meta name=\"twitter:description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-detail-checkout-block-ec',\n templateUrl: './detail-checkout-block-ec.component.html',\n styleUrls: ['./detail-checkout-block-ec.component.scss'],\n})\nexport class DetailCheckoutBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() asociatedData\n public data = null\n\n constructor(public checkoutService: CheckoutService,) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.asociatedData && (this.data = this.asociatedData) ||\n this.checkoutService.asociatedData$.subscribe(data => this.data = data)\n this.ecOnInit()\n }\n\n getIcon = (data_item: CheckoutData) => {\n\n switch (data_item.type) {\n case 'coupon': return 'fas fa-ticket-alt fa-3x';\n case 'discount': return 'fas fa-tags fa-3x';\n case 'shipment': return 'fas fa-shipping-fast fa-3x';\n case 'subtotal': return 'fas fa-boxes fa-3x';\n case 'taxes': return 'fas fa-file-invoice-dollar fa-3x';\n case 'total': return 'fas fa-shopping-basket fa-3x';\n default: return 'fas fa-tags fa-3x';\n }\n }\n // case 'coupon': return 'assets/images/iconosdetailcheckout/ticket-alt.svg';\n // case 'discount': return 'assets/images/iconosdetailcheckout/tags.svg';\n // case 'shipment': return 'assets/images/iconosdetailcheckout/shipping-fast.svg';\n // case 'subtotal': return 'assets/images/iconosdetailcheckout/boxes.svg';\n // case 'taxes': return 'assets/images/iconosdetailcheckout/file-invoice-dollar.svg';\n // case 'total': return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n // default: return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n}\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'ec-checkout-error',\n templateUrl: 'checkout-error-ec.component.html',\n styleUrls: ['checkout-error-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CheckoutErrorComponent extends ComponentHelper implements OnInit {\n\n public error: BodyError;\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n @Input() urlRedireccion = '/cart'\n subs: Subscription;\n subsModal: Subscription;\n\n constructor(\n public checkoutErrorService: ErrorHandlerService,\n public checkoutService: CheckoutService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n console.log('Componente manejo de errores inicializando')\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n setTimeout(() => {\n this.navigateByUrl()\n }, 3000);\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl(this.urlRedireccion)\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n }else{\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-lg ', keyboard: false, backdrop: 'static', animated: true })\n }\n );\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n this.navigateByUrl()\n })\n }\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../../classes/component-helper\";\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { CartService } from '../../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mp-redirect-ec',\n templateUrl: 'mp-redirect-ec.component.html',\n styleUrls: ['mp-redirect-ec.component.scss'],\n})\nexport class MpRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getPreference()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con mercado pago')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getPreference = () =>\n this.paymentServiceInst.getPreference(this.allData).then(\n res => {\n this.preference = res;\n this.url = this.preference.init_point\n this.renderMP(this.preference);\n },\n err => this.setError('operation-error')\n );\n\n setError = (message) => {\n //this.error = message;\n }\n\n renderMP = (preference) => {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== 'https://www.mercadopago.com.ar' || !event.data.type) {\n return;\n }\n let dataType = event.data.type;\n if (dataType === 'submit') {\n const paymentData = event.data.value;\n return;\n }\n });\n }\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-redsys-redirect-out-ec',\n templateUrl: 'redsys-redirect-out-ec.component.html',\n styleUrls: ['redsys-redirect-out-ec.component.scss'],\n})\nexport class RedSysRedirectOutEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.url = \"../../../assets/redsysFrameRedirectOutBase.html\"\n }, 1000);\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure' || state == 'error') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con redsys')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n\n setError = (message) => {\n \n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Subscription } from 'rxjs';\ndeclare var paypal;\ndeclare var PAYPAL_CLIENT: any;\ndeclare var PAYPAL_SECRET: any;\ndeclare var PAYPAL_ORDER_API: any;\n\n@Component({\n selector: 'app-paypal-express-ec',\n templateUrl: 'paypal-express-ec.component.html',\n styleUrls: ['paypal-express-ec.component.scss'],\n})\nexport class PaypalExpressEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n @ViewChild('paypal', { static: true }) paypalElement: ElementRef;\n\n public getUrlNotification = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/paypal/redirect/notification';\n\n producto = {\n descripcion: 'producto en venta',\n precio: 10,\n img: 'imagen de tu producto'\n }\n title = 'angular-paypal-payment';\n\n public loading = false;\n public cart = null;\n public tried = 10;\n public subsCart: Subscription;\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute) {\n super();\n\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.setVariables()\n this.subsCart = this.cartService.cart.subscribe(cart => {\n this.cart = cart\n console.log(this.cart);\n let scriptSdk = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptSdk, 'src', 'https://www.paypal.com/sdk/js?client-id=' + this.method.config.public_client_id + '¤cy=' + this.cart?.currency || 'USD');\n this.renderer.appendChild(document.body, scriptSdk);\n this.renderPayPal()\n })\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subsCart.unsubscribe()\n }\n\n ngOnChanges() {\n }\n\n renderPayPal = () => {\n if (this.tried == 0) {\n return\n }else{\n this.tried--\n }\n setTimeout(() => {\n try {\n if ((typeof paypal !== 'undefined') && paypal != undefined && paypal != null) {\n paypal\n .Buttons({\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [\n {\n amount: {\n currency_code: this.cart?.currency || 'USD',\n value: this.total_amount || this.cart?.totals?.total\n }\n }\n ]\n })\n },\n onApprove: async (data, actions) => {\n const order = await actions.order.capture();\n order.purchase_units[0]['reference_id'] = this.cart.tokenValue\n console.log(order);\n this.connection.postOutsider(this.getUrlNotification(), order).toPromise().then(res => {\n this.ready.emit(true)\n console.log('ok');\n }).catch(res => {\n this.processError('')\n console.log('error');\n })\n },\n onError: err => {\n console.log(err);\n this.processError('')\n }\n })\n .render(this.paypalElement.nativeElement);\n this.loading = false;\n } else {\n console.log('Entro al else');\n this.renderPayPal();\n }\n } catch (error) {\n console.log('Entro al catch');\n this.renderPayPal();\n }\n }, 1000);\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setVariables = () => {\n // setTimeout(() => {\n // if (typeof PAYPAL_CLIENT !== 'undefined'\n // && typeof PAYPAL_SECRET !== 'undefined'\n // && typeof PAYPAL_ORDER_API !== 'undefined') {\n // PAYPAL_CLIENT = this.method.config.public_client_id;\n // PAYPAL_SECRET = this.method.config.public_client_secret;\n // PAYPAL_ORDER_API = 'https://api-m.paypal.com/v2/checkout/orders/';\n // } else {\n // console.log('no entro al if');\n // this.setVariables()\n // }\n // }, 2000);\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mobbex-ec',\n templateUrl: 'mobbex-ec.component.html',\n styleUrls: ['mobbex-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class MobbexEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataMobbex;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutMobbex()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con mobbex')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n \n } \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutMobbex = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutMobbex(this.allData).then(\n res => {\n this.dataMobbex = res;\n this.url = res?.data?.url && this.sanitizer.bypassSecurityTrustResourceUrl(res?.data?.url)\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-bancard-ec',\n templateUrl: 'bancard-ec.component.html',\n styleUrls: ['bancard-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class BancardEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataBancard;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con bancard')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && this.sanitizer.bypassSecurityTrustResourceUrl(res?.iframe_link)\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.dataBancard?.process_id && localStorage.setItem('dataRedirect', this.dataBancard.process_id )\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-bancard-redirect-ec',\n templateUrl: 'bancard-redirect-ec.component.html',\n styleUrls: ['bancard-redirect-ec.component.scss'],\n})\nexport class BancardRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n protected dataBancard;\n\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.ventana?.close()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 4000); \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setError = (message) => {\n \n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && res?.iframe_link\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { BodyError } from '../../../interfaces/checkout/checkout-error';\nimport { AuthService } from '../../../services/auth.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'select-channel-ec',\n templateUrl: 'select-channel-ec.component.html',\n styleUrls: ['select-channel-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class SelectChannelEcComponent extends ComponentHelper implements OnInit {\n\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n subs: Subscription;\n subsModal: Subscription;\n public channels = []\n\n constructor(\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n this.subs = this.authService.channelsUser.pipe(filter(res => res != null && res.length > 0)).subscribe(\n res => {\n this.channels = res.map(item => {\n return { ...(item as object), selected: false }\n })\n this.initializeTemplate()\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl('')\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n } else {\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-sm modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true })\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n })\n }\n }\n\n setSelect = (chanelSelect: any) => {\n this.channels.map(chanel => chanel.selected = chanel.code == chanelSelect.code)\n }\n\n setChannel = () => {\n if (this.channels.find(chanel => chanel.selected)) {\n this.authService.channelAccess(this.channels.find(chanel => chanel.selected))\n this.bsModalRef.hide()\n }\n }\n\n\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-cart-load-ec',\n templateUrl: './cart-load-ec.component.html',\n styleUrls: ['./cart-load-ec.component.scss']\n})\nexport class CartLoadEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, \n public router: Router, \n public checkoutService: CheckoutService, \n public cartService: CartService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let token\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n token = queryRouter.token\n console.log('PARAMETROS token -> ', token);\n this.cartService.loadCartByToken(token).then(res => {\n this.router.navigateByUrl('/cart')\n })\n })\n this.ecOnInit()\n }\n\n}\n","import { ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: '[app-magnizoom-ec]',\n templateUrl: './magnizoom.component.html',\n styleUrls: ['./magnizoom.component.scss']\n})\nexport class MagnizoomComponent implements OnInit {\n\n private imageSrc:string\n @Input() set ImageSrc(value) { \n this.imageSrc = value; \n this.loadImage(this.imageSrc); \n }\n @Input() zoomMode: 'LENS' | 'COVER' = 'COVER';\n @Input() minZoomFactor = 1.2;\n @Input() maxZoomFactor = 3;\n\n @Input() imageStyle: { [x: string]: any; };\n @Input() imageClass: any;\n\n @ViewChild('mainCanvas', { static: true }) mainCanvasRef: ElementRef;\n\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n image: HTMLImageElement;\n\n mousePosition: Point2D = null;\n lensSize: Size2D = { width: 400, height: 300 };\n zoomFactor = 2;\n\n get canvasWidth() { return this.image && this.image.width || 800; }\n get canvasHeight() { return this.image && this.image.height || 600; }\n\n constructor() { }\n \n ngOnInit() {\n this.initContext();\n this.loadImage(this.imageSrc);\n }\n\n initContext() {\n \n this.canvas = (this.mainCanvasRef.nativeElement as HTMLCanvasElement);\n this.context = this.canvas.getContext('2d');\n }\n\n loadImage(src: string) {\n \n this.image = new Image();\n this.image.onload = () => {\n this.lensSize = { width: this.image.width / 2, height: this.image.height / 2 };\n setTimeout(() => this.render());\n };\n this.image.src = src;\n }\n\n render() {\n this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight); // clear canvas\n this.context.lineWidth = 1; // border width\n this.context.drawImage(this.image, 0, 0); // bg image\n\n if (this.mousePosition) {\n switch (this.zoomMode) {\n case 'LENS': this.renderLensMode(); break;\n case 'COVER': this.renderCoverMode(); break;\n }\n }\n }\n\n renderLensMode() {\n this.context.lineWidth = 5; // border width\n const zoomRect = this.getZoomRect();\n this.context.fillRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // bg (clear)\n const clippingRect = this.getClippingRect();\n // zoom image\n this.context.drawImage(\n this.image,\n clippingRect.x, clippingRect.y, clippingRect.w, clippingRect.h,\n zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h\n );\n this.context.strokeRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // border\n }\n\n renderCoverMode() {\n const covertRect = this.getCoverRect();\n this.context.drawImage(\n this.image,\n covertRect.x, covertRect.y, covertRect.w, covertRect.h,\n 0, 0, this.canvasWidth, this.canvasHeight\n ); // cover image\n }\n\n getZoomRect() {\n const w = this.lensSize.width;\n const h = this.lensSize.height;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getClippingRect() {\n const w = this.lensSize.width / this.zoomFactor;\n const h = this.lensSize.height / this.zoomFactor;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getCoverRect() {\n const w = this.canvasWidth / this.zoomFactor;\n const h = this.canvasHeight / this.zoomFactor;\n // const x = this.mousePosition.x - (w / 2);\n // const y = this.mousePosition.y - (h / 2);\n const x = this.mousePosition.x - this.mousePosition.x / this.zoomFactor;\n const y = this.mousePosition.y - this.mousePosition.y / this.zoomFactor;\n return this.clampRect(x, y, w, h);\n }\n\n clampRect(x: number, y: number, w: number, h: number) {\n if (x <= 0) { x = 0; }\n if (x + w >= this.canvasWidth) { x = this.canvasWidth - w; }\n if (y < 0) { y = 0; }\n if (y + h >= this.canvasHeight) { y = this.canvasHeight - h; }\n return { x, y, w, h };\n }\n\n calculateMousePosition(clientX: number, clientY: number) {\n const boundingRect = this.canvas.getBoundingClientRect();\n const viewToModelX = this.canvasWidth / boundingRect.width;\n const viewToModelY = this.canvasHeight / boundingRect.height;\n const x = (clientX - boundingRect.left) * viewToModelX;\n const y = (clientY - boundingRect.top) * viewToModelY;\n this.mousePosition = { x, y };\n }\n\n onMouseLeave(event: MouseEvent) {\n this.mousePosition = null;\n this.render();\n }\n\n onMouseEnterOrMove(event: MouseEvent) {\n this.calculateMousePosition(event.clientX, event.clientY);\n this.render();\n }\n\n onMouseScroll(event: WheelEvent) {\n let newZoomFactor = this.zoomFactor;\n newZoomFactor -= event.deltaY / 1000;\n if (newZoomFactor < this.minZoomFactor) { newZoomFactor = this.minZoomFactor; }\n if (newZoomFactor > this.maxZoomFactor) { newZoomFactor = this.maxZoomFactor; }\n if (this.zoomFactor !== newZoomFactor) {\n this.zoomFactor = newZoomFactor;\n this.render();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-multiple-items-to-cart-ec',\n templateUrl: 'multiple-items-to-cart-ec.component.html',\n styleUrls: ['multiple-items-to-cart-ec.component.scss']\n})\nexport class MultipleItemsToCartEcComponent extends ComponentHelper {\n\n @Input() product: Product;\n @Input() objectWithVariant: ParamsProductsWithUniqueVariant;\n @Output() totalCostItems = new EventEmitter()\n @Output() totalItems = new EventEmitter()\n\n public total = 0\n public countItems = 0\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.product.productWithUniqueVariant = this.productService?.getProductWithUniqueVariant(this.product, this.getObjectParamsWithVariant())\n this.ecOnInit()\n }\n\n optionsProductForVariant = () => this.product.productWithUniqueVariant\n\n setQuantity = (value, product: Product) => {\n \n let quantity = Number(value) > product.currentOption.stock ? product.currentOption.stock : Number(value)\n product.productToCartItem = {\n productCode: product.currentOption.productCode,\n variantCode: product.currentOption.variantCode,\n quantity: quantity,\n finalPrice: product.currentOption.finalPrice,\n totalCost: quantity * product.currentOption.finalPrice,\n }\n\n this.total = 0\n this.countItems = 0\n this.product.productWithUniqueVariant.filter(prod => prod.productToCartItem).map(\n prod => {\n this.total += prod.productToCartItem.totalCost\n this.countItems += prod.productToCartItem.quantity\n }\n )\n this.totalCostItems.emit(this.total.toString())\n this.totalItems.emit(this.countItems.toString())\n\n }\n\n condition = (value, product: Product) : boolean => {\n if (Number(value) >= product.currentOption.stock) {\n return false\n }\n return true\n }\n\n allWithoutTracking = () => this.optionsProductForVariant().some( item => item.currentOption?.stock != 9999)\n\n private getObjectParamsWithVariant = (): ParamsProductsWithUniqueVariant => {\n return this.objectWithVariant || this.getObjectWithVariant()\n } \n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: true , checkIfStock: false }\n } \n\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { RecaptchaSettings } from 'ng-recaptcha/recaptcha/recaptcha-settings';\nimport { BehaviorSubject} from 'rxjs';\nimport { map, filter, concatMap} from 'rxjs/operators';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\n//import * from '../assets/ec-i18n'\n@Injectable({\n providedIn: 'root'\n})\nexport class CaptchaService {\n \n private captchaSubject: BehaviorSubject<RecaptchaSettings> = new BehaviorSubject({siteKey:''})\n public captcha = this.captchaSubject.asObservable()\n \n private urlBaseFormat:string\n \n private recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';\n private recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';\n\n private RECAPTCHA_SITE_KEYS \n private RECAPTCHA_SITES \n /**\n * @description Carga las configuraciones iniciales\n * @param consts Constantes del core\n * @param connection Servicio para realizar las peticiones HTTP al backend\n * @param http Servicio utilizado para obtener archivos estaticos contenidos dentro de la aplicación\n */\n constructor(private consts: Constants,\n private connection: ConnectionService,\n private http:HttpClient) {\n /**\n * @description Carga la direccion de la pagina actual que sera utilizada como clave para obtener\n * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.\n */\n this.urlBaseFormat = this.formatUrl(location.href)\n this.initializer()\n }\n /**\n * \n * @returns {string} path que contiene la direccion del endpoint referido al captcha\n */\n private captchaApi = () => 'shop-api/channels';\n\n /**\n * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores\n * de los Json estaticos, para posteriormente obtener la \"siteKey\"(clave del captcha) en caso\n * de que no venga desde el backend. \n */\n private initializer = () => {\n this.getRecaptchaSites().pipe(\n //filter( e => e[this.urlBaseFormat+'ee'] ),\n map(res => this.RECAPTCHA_SITES = res),\n concatMap(e => this.getRecaptchaSiteKeys().pipe(\n map(res => this.RECAPTCHA_SITE_KEYS = res)))).subscribe(\n e => this.getSiteKey())\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las claves captcha\n */\n private getRecaptchaSiteKeys = () => {\n return this.http.get<any[]>(this.recaptchaSiteKeysUrl)\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios\n */\n private getRecaptchaSites = () => {\n return this.http.get<any[]>(this.recaptchaSitesUrl)\n }\n\n /**\n * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,\n * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con\n * los datos generados.\n */\n private getSiteKey = () => {\n this.connection.get(this.captchaApi()).toPromise().then(\n res => { console.log(res); this.captchaSubject.next({ siteKey: res.siteKey ? res.siteKey : this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) },\n err => { console.log('ERROR 1', err); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITES[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) }\n ).catch(err => { console.log('ERROR 2 ', err, ' Base url:', this.consts.getUrlBase()); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) })\n //console.log(this.captcha)\n }\n\n /**\n * \n * @returns {string} Clave del captcha.\n */\n public getKey = () => {\n return this.captcha.pipe(map((elem) => elem?.siteKey));\n }\n\n /**\n * @description Recibe una url y se encarga de quitarle \"http\", \"/\" y las demas rutas, para devolver la url\n * del sitio con una formato limpio. Ejemplo \"https://ejemplo.com.ar/ruta1/ruta2/\" a \"ejemplo.com.ar\" \n * @param {string} url url que sera formateada \n * @returns {string} url formateada\n */\n private formatUrl = (url:string) => url.split(\"/\").filter(e => e != \"/\").filter(e => !e.includes(\"http\")).filter(e => e.length).slice(0,1).pop()\n\n}","import { ElementRef, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { CaptchaService } from '../../../services/captcha.service';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: 're-captcha-ec',\n templateUrl: './re-captcha-ec.component.html',\n styleUrls: ['./re-captcha-ec.component.scss']\n})\nexport class RecaptchaEcComponent implements OnInit {\n \n /**\n * @param form recibe el formulario que contiene al captcha.\n * @param siteKey recibe un string con la clave para el captcha\n */\n @Input() form: any;\n @Input() siteKey: string;\n public captcha:any;\n constructor(public captchaService: CaptchaService){ \n }\n\n ngOnInit(): void {\n // throw new Error('Method not implemented.');\n this.captchaService.captcha.subscribe( res => {\n this.captcha = res;\n this.updateKey()} )\n }\n\n /**\n * @description Carga el campo captcha del formulario pasado con la respuesta luego de completar el captcha.\n * @param {string} captchaResponse obtiene la respuesta que genero el captcha.\n */\n resolved(captchaResponse: string) {\n this.form.catpcha = captchaResponse;\n }\n /**\n * @description Actualiza la clave si está es pasada por parametro en la variable siteKey \n * @returns {null}\n */\n updateKey = () => this.siteKey ? this.captcha.siteKey = this.siteKey : null\n\n \n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-decidir-ec',\n templateUrl: 'decidir-ec.component.html',\n styleUrls: ['decidir-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DecidirEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataDecidir;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutDecidir()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n localStorage.setItem('dataDecidir', JSON.stringify(this.method))\n console.log('dataaaaa', this.method);\n this.modalRef = this.modalService.show(template, { class: 'modal-xl modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n localStorage.removeItem('dataRedirect')\n localStorage.removeItem('dataDecidir')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con Decidir')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n this.clearStorageState()\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutDecidir = () => {\n this.loading = true\n this.dataDecidir = this.method;\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html')\n this.loading = false\n }\n\n resizeIframe = (obj) => {\n obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';\n obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';\n }\n\n}\n\n","// //Component base\n\nimport { AccountEcComponent } from \"./account-ec/account-ec.component\";\nimport { BlockBannerBoxesEcComponent } from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nimport { BlockBannerFullEcComponent } from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nimport { BlockFormContactEcComponent } from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nimport { BlockHtmlEcComponent } from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nimport { ContactFormNewsEcComponent } from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nimport { BlockProductsEcComponent } from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nimport { BlocksEcComponent } from \"./blocks-ec/blocks-ec.component\";\nimport { CartEcComponent } from \"./cart-ec/cart-ec.component\";\nimport { CheckoutEcComponent } from \"./checkout-ec/checkout-ec.component\";\nimport { DataFormEcComponent } from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nimport { PaymentEcComponent } from \"./checkout-ec/payment-ec/payment-ec.component\";\nimport { ShipmentEcComponent } from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nimport { SuccessEcComponent } from \"./checkout-ec/success-ec/success-ec.component\";\nimport { CollectionEcComponent } from \"./collection-ec/collection-ec.component\";\nimport { CouponEcComponent } from \"./coupon-ec/coupon-ec.component\";\nimport { FaqsContentEcComponent } from \"./faqs-content-ec/faqs-content-ec.component\";\nimport { FiltersEcComponent } from \"./filters-ec/filters-ec.component\";\nimport { FiltersTopEcComponent } from \"./filters-top-ec/filters-top-ec.component\";\nimport { FooterEcComponent } from \"./footer-ec/footer-ec.component\";\nimport { HeaderEcComponent } from \"./header-ec/header-ec.component\";\nimport { HomeEcComponent } from \"./home-ec/home-ec.component\";\nimport { LoginEcComponent } from \"./login-ec/login-ec.component\";\nimport { ProductDetailEcComponent } from \"./product-detail-ec/product-detail-ec.component\";\nimport { ProductEcComponent } from \"./product-ec/product-ec.component\";\nimport { RelatedProductsEcComponent } from \"./related-products-ec/related-products-ec.component\";\nimport { SectionContainerEcComponent } from \"./section-container-ec/section-container-ec.component\";\nimport { StoresEcComponent } from \"./stores-ec/stores-ec.component\";\nimport { VariantsEcComponent } from \"./variants-ec/variants-ec.component\";\nimport { SellerDashboardContainerEcComponent } from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nimport { LoadingFullEcComponent } from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nimport { LoadingInlineEcComponent } from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nimport { MPCreditEcComponent } from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nimport { PriceEcComponent } from \"./widgets-ec/price-ec/price-ec.component\";\nimport { RedsysCatchEcComponent } from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nimport { RedSysProEcComponent } from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nimport { RedSysRedirectEcComponent } from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nimport { CecaRedirectEcComponent } from \"./widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nimport { OrdersEcComponent } from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nimport { OrderEcComponent } from \"./account-ec/order-ec/order-ec.component\";\nimport { AuthEcComponent } from \"./auth-ec/auth-ec.component\";\nimport { RegisterFormEcComponent } from \"./auth-ec/register-form-ec/register-form-ec.component\";\nimport { LoginFormEcComponent } from \"./auth-ec/login-form-ec/login-form-ec.component\";\nimport { ForgotPasswordEcComponent } from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nimport { ConfirmAccountEcComponent } from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nimport { PasswordResetEcComponent } from \"./password-reset-ec/password-reset-ec.component\";\nimport { RegisterWholesalerFormEcComponent } from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nimport { ShareBlockEcComponent } from \"./share-block-ec/share-block-ec.component\";\nimport { DetailCheckoutBlockEcComponent } from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nimport { CheckoutErrorComponent } from \"./checkout-error-ec/checkout-error-ec.component\";\nimport { MpRedirectEcComponent } from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nimport { RedSysRedirectOutEcComponent } from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nimport { PaypalExpressEcComponent } from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nimport { MobbexEcComponent } from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nimport { BancardEcComponent } from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nimport { BancardRedirectEcComponent } from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nimport { SelectChannelEcComponent } from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nimport { CartLoadEcComponent } from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nimport { MagnizoomComponent } from \"./widgets-ec/zoom-ec/magnizoom.component\";\nimport { MultipleItemsToCartEcComponent } from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nimport { RecaptchaEcComponent } from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nimport { DecidirEcComponent } from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n\n\nexport const components: any[] = [\n BlockBannerBoxesEcComponent,\n BlockBannerFullEcComponent,\n BlockFormContactEcComponent,\n BlockHtmlEcComponent,\n ContactFormNewsEcComponent,\n BlockProductsEcComponent,\n BlocksEcComponent,\n\n CartEcComponent,\n\n DataFormEcComponent,\n PaymentEcComponent,\n ShipmentEcComponent,\n SuccessEcComponent,\n CheckoutEcComponent,\n \n CollectionEcComponent,\n CouponEcComponent,\n FaqsContentEcComponent,\n FiltersEcComponent,\n FiltersTopEcComponent,\n FooterEcComponent,\n HeaderEcComponent,\n LoginEcComponent,\n ProductEcComponent,\n RelatedProductsEcComponent,\n SectionContainerEcComponent,\n StoresEcComponent,\n VariantsEcComponent,\n SellerDashboardContainerEcComponent,\n \n LoadingInlineEcComponent,\n LoadingFullEcComponent,\n MPCreditEcComponent,\n PriceEcComponent,\n RedsysCatchEcComponent,\n RedSysProEcComponent,\n RedSysRedirectEcComponent,\n HomeEcComponent,\n ProductDetailEcComponent,\n AccountEcComponent,\n OrdersEcComponent,\n OrderEcComponent,\n AuthEcComponent,\n RegisterFormEcComponent,\n LoginFormEcComponent,\n SelectChannelEcComponent,\n ForgotPasswordEcComponent,\n ConfirmAccountEcComponent,\n PasswordResetEcComponent,\n CecaRedirectEcComponent,\n\n RegisterWholesalerFormEcComponent,\n\n ShareBlockEcComponent,\n DetailCheckoutBlockEcComponent,\n\n CheckoutErrorComponent,\n MpRedirectEcComponent,\n RedSysRedirectOutEcComponent,\n PaypalExpressEcComponent,\n\n MobbexEcComponent,\n BancardEcComponent,\n BancardRedirectEcComponent,\n DecidirEcComponent,\n\n CartLoadEcComponent,\n MultipleItemsToCartEcComponent,\n\n MagnizoomComponent,\n RecaptchaEcComponent\n];\n\n\nexport * from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./blocks-ec/blocks-ec.component\";\nexport * from \"./cart-ec/cart-ec.component\";\nexport * from \"./checkout-ec/checkout-ec.component\";\nexport * from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./checkout-ec/success-ec/success-ec.component\";\nexport * from \"./collection-ec/collection-ec.component\";\nexport * from \"./coupon-ec/coupon-ec.component\";\nexport * from \"./faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./filters-ec/filters-ec.component\";\nexport * from \"./filters-top-ec/filters-top-ec.component\";\nexport * from \"./footer-ec/footer-ec.component\";\nexport * from \"./header-ec/header-ec.component\";\nexport * from \"./login-ec/login-ec.component\";\nexport * from \"./product-ec/product-ec.component\";\nexport * from \"./related-products-ec/related-products-ec.component\";\nexport * from \"./section-container-ec/section-container-ec.component\";\nexport * from \"./stores-ec/stores-ec.component\";\nexport * from \"./variants-ec/variants-ec.component\";\nexport * from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nexport * from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./widgets-ec/price-ec/price-ec.component\";\nexport * from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./home-ec/home-ec.component\";\nexport * from \"./product-detail-ec/product-detail-ec.component\";\nexport * from \"./account-ec/account-ec.component\";\nexport * from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./account-ec/order-ec/order-ec.component\";\nexport * from \"./auth-ec/auth-ec.component\";\nexport * from \"./auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./password-reset-ec/password-reset-ec.component\";\nexport * from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./share-block-ec/share-block-ec.component\";\nexport * from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from './widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component';\nexport * from \"./checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./widgets-ec/zoom-ec/magnizoom.component\";\nexport * from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nexport * from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { BlocksService } from \"../services/blocks/blocks.service\";\nimport { Router } from \"@angular/router\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecAddActionRedirect]\",\n})\nexport class AddActionRedirectDirective implements OnChanges, OnInit, OnDestroy {\n private banner: any;\n private classStr: \"\";\n private redirectUrl = ''\n private linstenEvent = null\n private transparent = true\n\n @Input()\n set ecAddActionRedirect(value: any) {\n this.banner = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set isTransparent(value: boolean) {\n this.transparent = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private blocksService: BlocksService,\n private router: Router,\n ) { }\n\n ngOnInit() { }\n\n\n ngOnChanges(changes: SimpleChanges) {\n this.transparent && this.renderer.setStyle(this.elementRef.nativeElement, 'color', 'transparent')\n this.renderer.setAttribute(this.elementRef.nativeElement, \"role\", \"button\")\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(this.elementRef.nativeElement, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n this.redirectUrl = this.banner.url ? this.banner.url : this.blocksService.formUrl(this.banner)\n this.banner.url ?\n this.renderer.setProperty(this.elementRef.nativeElement, \"href\", this.banner.url)\n :\n this.linstenEvent = this.renderer.listen(this.elementRef.nativeElement, 'click', this.redirectFromUrl)\n }\n\n redirectFromUrl = (evt) => {\n this.router.navigateByUrl(this.redirectUrl)\n }\n\n ngOnDestroy() {\n this.linstenEvent && this.linstenEvent()\n }\n}\n","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { Product } from '../interfaces/product';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecProductStock]\"\n})\nexport class ProductStockDirective {\n\n private productDirective: Product = null;\n\n @Input()\n ecProductStockElse: TemplateRef<any>\n\n @Input()\n set ecProductStock(product: Product) {\n this.productDirective = product\n this.viewContainer.clear();\n if (this.validateStock()) {\n if (this.ecProductStockElse) {\n this.viewContainer.createEmbeddedView(this.ecProductStockElse);\n }else{\n console.error('falta definir el template de agotado');\n }\n } else {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef, ) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n\n validateStock = () => {\n if (this.productDirective.special_mark == undefined || this.productDirective.variants == undefined) {\n setTimeout(() => {\n return this.validateStock()\n }, 1000);\n } else {\n return this.checkValuesForStock()\n }\n }\n\n checkValuesForStock = () => {\n let existMark = false\n this.productDirective.special_mark.forEach(special_mark => {\n switch (special_mark.type) {\n case 'out_of_stock': existMark = true; break;\n }\n })\n if (!existMark) {\n existMark = this.productDirective.variants.find(v => v.stock > 0) == undefined\n }\n return existMark\n }\n}","import {\n Directive,\n OnInit,\n ViewContainerRef,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecProductOff]\",\n})\nexport class ProductOffDirective implements OnChanges, OnInit, OnDestroy {\n\n private product: any;\n private classStr: \"\";\n private customMessageStr = \"{discount}% OFF\";\n\n @Input()\n set ecProductOff(value: any) {\n this.product = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set customMessage(value: string) {\n this.customMessageStr = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit() { }\n hasDiscount = (product) => {\n\n if (!product.saleprice) {\n return null\n }\n if (product.price?.toString().includes(\"-\") && product.saleprice?.toString().includes(\"-\")) {\n let prices = product.price?.toString().split('-')\n let saleprices = product.saleprice?.toString().split('-')\n let saleBf = this.generateDiscount(prices[1]?.trim(), saleprices[1]?.trim())\n let saleLt = this.generateDiscount(prices[0]?.trim(), saleprices[0]?.trim())\n if (!saleBf && !saleLt) {\n return null\n }\n if (saleBf && saleLt && saleBf == saleLt) {\n return `${saleBf}`\n }\n if (saleBf && !saleLt) {\n return `${saleBf}`\n }\n if (!saleBf && saleLt) {\n return `${saleLt}`\n }\n return `${saleBf} - ${saleLt}`\n }else{\n if (parseInt(product.price) > parseInt(product.saleprice)) {\n return this.generateDiscount(product.price, product.saleprice)\n }\n }\n // console.log(product.price?.toString().includes(\"-\"));\n // console.log(product.saleprice?.toString().includes(\"-\"));\n // console.log(' PRECIO ', product.price);\n // console.log(' SALE ', product.saleprice);\n \n // if (\n // !product.price.toString().includes(\"-\") &&\n // product.saleprice &&\n // parseInt(product.price) > parseInt(product.saleprice)\n // ) {\n // let result =\n // ((parseInt(product.price) - parseInt(product.saleprice)) /\n // parseInt(product.price)) *\n // 100;\n // if (Number.isNaN(result)) {\n // return null;\n // } else return Math.floor(result);\n // }\n // return null;\n };\n\n\n generateDiscount = (price, saleprice) => {\n \n if (parseFloat(price) > parseFloat(saleprice) ) {\n let result =\n ((parseFloat(price) - parseFloat(saleprice)) /\n parseFloat(price)) *\n 100;\n if (Number.isNaN(result)) {\n return null;\n } else return Math.round(result)//Math.floor(result);\n }\n return null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.product.price) {\n let discount = this.hasDiscount(this.product);\n this.elementRef.nativeElement.childNodes.forEach(node => {\n this.renderer.removeChild(this.elementRef.nativeElement, node)\n })\n if (discount) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.createImage(discount));\n } \n // else {\n // this.renderer.removeChild(this.elementRef.nativeElement.parentElement, this.elementRef.nativeElement);\n // }\n }\n }\n\n createImage = (discount) => {\n let popover = this.renderer.createElement(\"a\");\n this.customMessageStr = this.customMessageStr.replace('{discount}',discount)\n this.renderer.setProperty(popover, \"innerHTML\", this.customMessageStr);\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(popover, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n return popover;\n };\n\n ngOnDestroy() { }\n}\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, OnDestroy, Input, ElementRef, Renderer2, Inject, OnChanges, SimpleChanges } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Product } from '../interfaces/product';\nimport { Constants } from '../core.consts';\n\n\n@Directive({\n selector: '[ecProductMiniStandard]'\n})\nexport class ProductMiniStandardDirective implements OnChanges, OnInit, OnDestroy {\n\n private special_marks: any[];\n private product: Product;\n private idConteiner = null\n @Input()\n set ecProductMiniStandard(productParam: Product) {\n this.special_marks = productParam.special_mark\n this.product = productParam\n this.idConteiner = `container-img-marks-standard-${this.product.id}`\n }\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private renderer: Renderer2,\n private constants: Constants,\n ) { }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n (this.special_marks && this.special_marks.length)\n &&\n (this.special_marks.filter(special_mark => special_mark.type.includes('standard')))\n .map(special_mark => this.setMarkStandar(special_mark));\n }\n\n ngOnDestroy() { }\n\n setMarkStandar = (special_mark) => {\n let containerImg = document.getElementById(this.idConteiner);\n if (!containerImg) {\n let containerImg = this.renderer.createElement('div');\n this.renderer.setAttribute(containerImg, 'id', this.idConteiner);\n this.renderer.addClass(containerImg, 'container-img-marks-standard');\n this.renderer.appendChild(this.elementRef.nativeElement, containerImg);\n }\n this.renderer.appendChild(document.getElementById(this.idConteiner), this.createImage(special_mark));\n }\n\n createImage = (data) => {\n let image = (data.images && data.images.length) && data.images[0];\n if (!image) return null;\n let image_view = this.renderer.createElement('img');\n this.renderer.setAttribute(image_view, 'src', this.constants.mediaUrl() + image);\n return image_view;\n }\n\n}","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { User } from '../classes/user';\nimport { Product } from '../interfaces/product';\nimport { AuthService } from '../services/auth.service';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecAuthWholesaler]\"\n})\nexport class AuthWholesalerDirective {\n\n public auth: boolean = true\n public user: User = null\n private productDirective: Product = null;\n\n\n @Input()\n ecAuthWholesalerElse: TemplateRef<any>\n\n @Input()\n set ecAuthWholesaler(authparams) {\n this.auth = authparams\n if (this.auth) {\n this.authService.userAuth.subscribe(user => {\n this.viewContainer.clear();\n this.user = user\n this.viewContainer.createEmbeddedView(\n user?.isWholesaler() ? this.templateRef : this.ecAuthWholesalerElse\n )\n })\n }else{\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView( this.templateRef )\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private authService: AuthService,) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n}","//Directives base\n\n// import { ProductButtonBaseDirective } from './product-button-base.directive';\n// import { ProductContactBaseDirective } from './product-contact-base.directive';\n// import { ProductMiniBaseDirective } from './product-mini-base.directive';\n// import { ProductOffDetailBaseDirective } from './product-off-detail-base.directive';\n// import { ProductPriceBaseDirective } from './product-price-base.directive';\n\n\nimport { AddActionRedirectDirective } from './add-action-redirect.directive';\nimport { ProductStockDirective } from './product-stock.directive';\nimport { ProductOffDirective } from './product-off.directive';\nimport { ProductMiniStandardDirective } from './product-mini-standard.directive';\nimport { AuthWholesalerDirective } from './auth-wholesaler.directive';\n\nexport const directives: any[] = [\n // ProductButtonBaseDirective,\n // ProductContactBaseDirective,\n // ProductMiniBaseDirective,\n // ProductOffDetailBaseDirective,\n // ProductPriceBaseDirective,\n\n ProductMiniStandardDirective,\n ProductOffDirective,\n AddActionRedirectDirective,\n ProductStockDirective,\n AuthWholesalerDirective,\n];\n\n// export * from './product-button-base.directive';\n// export * from './product-contact-base.directive';\n// export * from './product-mini-base.directive';\n// export * from './product-off-detail-base.directive';\n// export * from './product-price-base.directive';\n\nexport * from './product-mini-standard.directive';\nexport * from './product-stock.directive';\nexport * from './product-off.directive';\nexport * from './auth-wholesaler.directive';\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { Constants } from '../core.consts';\nimport { ProductsService } from '../services/products/products.service';\n\n@Pipe({\n name: 'ecCurrencySymbol',\n})\nexport class ecCurrencySymbolPipe implements PipeTransform {\n \n\n constructor(public productsService: ProductsService, private currencyPipe: CurrencyPipe, public consts: Constants) { }\n\n transform(\n value: number\n ): string {\n const formatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'USD' });\n return value && this.changeSymbolTransform(formatter.format(value)?.toString()) || ''\n //return value && this.changeSymbolTransform(this.currencyPipe.transform(value,'USD').toString()) || ''\n }\n\n changeSymbolTransform = (valor) => {\n try {\n return this.positionSymbol(this.checkingWithoutDecimals(this.clearSymbol(valor)))\n } catch (error) {\n console.error('Errores en custom pipe -> ',error);\n return valor\n }\n }\n\n clearSymbol = (value) => value.replace('$', '')\n\n positionSymbol = (value) => this.consts?.currency.position.toUpperCase() == 'L' ? `${this.consts?.currency.symbol} ${value?.trim()}` : `${value?.trim()} ${this.consts?.currency.symbol}`\n\n checkingWithoutDecimals = (value) => {\n if (this.consts?.currency.withoutDecimals) {\n let val = value?.split(',')\n return val[1]?.trim() == \"00\" && value.trim().slice(0, value.trim().length - 3) || value\n }\n return value\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerHtml'\n})\nexport class EcSanitizerHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerUrl'\n})\nexport class EcSanitizerUrlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n\n}\n","//Pipes base\n\nimport { ecCurrencySymbolPipe } from \"./ec-currency-symbol.pipe\";\nimport { EcSanitizerHtmlPipe } from \"./ec-sanitizer-html.pipe\";\nimport { EcSanitizerUrlPipe } from \"./ec-sanitizer-url.pipe\";\n\n\nexport const pipes: any[] = [\n ecCurrencySymbolPipe,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe\n];\n\nexport * from \"./ec-currency-symbol.pipe\";\nexport * from \"./ec-sanitizer-html.pipe\";\nexport * from \"./ec-sanitizer-url.pipe\";\n","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OrderByPipe } from './pipes/order-by.pipe';\nimport { RouterModule } from '@angular/router';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { ToastrModule } from 'ngx-toastr';\nimport { WINDOW_PROVIDERS } from './services/windows.service';\nimport { ProductsService } from './services/products/products.service';\nimport { BannerService } from './services/banner.service';\nimport { CartService } from './services/cart.service';\nimport { OrdersService } from './services/account/orders.service';\nimport { PaginationService } from './interfaces/paginate';\nimport { ConnectionService } from './api/connection.service';\nimport { AuthService } from './services/auth.service';\nimport { OptionsService } from './services/options.service';\nimport { ShipmentService } from './services/checkout/shipment.service';\nimport { CheckoutService } from './services/checkout/checkout.service';\nimport { OptionsOfProductListDataReceiverService } from './utils/options-of-product-list-data.service';\nimport { DataformService } from './services/dataform.service';\nimport { BlocksService } from './services/blocks/blocks.service';\nimport { UtilsService } from './utils/utils.service';\nimport { ShipmentDataTransformer } from './utils/shipment-transformer.service';\nimport { PaymentUtils } from './utils/payment-utils.service';\nimport { ToastService } from './utils/toast.service';\nimport { Constants } from './core.consts';\nimport { AuthGuardService } from './guards/auth-guard.service';\nimport { AbleBuyerGuardService } from './guards/able-buyer-guard.service';\nimport { UserRoleGuardService } from './guards/user-role-guard.service';\nimport { LoggedInGuard } from './guards/loggedin-guard.service';\nimport { CheckoutReadyGuard } from './guards/checkout-ready.service';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { CustomerInterceptor } from './interceptors/customer.interceptor';\nimport { StoresService } from './services/stores.service';\nimport { AddressingService } from './services/checkout/addressing.service';\nimport * as fromComponentsBase from './ec-component/index';\nimport * as fromDirectiveBase from './ec-directive/index';\nimport * as fromPipeBase from './ec-pipe/index';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RecaptchaModule, RecaptchaFormsModule, RECAPTCHA_SETTINGS, RecaptchaSettings, RECAPTCHA_LANGUAGE } from 'ng-recaptcha';\nimport { OrderUtilityService } from './utils/order-util.service';\nimport { FacebookPixelService } from './utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from './utils/analytics/google-analytics.service';\nimport { CardModule } from 'ngx-card';\nimport { AnalyticsService } from './services/analytics.service';\nimport { GTMService } from './utils/analytics/gtm.service';\nimport { ChannelConfigService } from './services/channel-config.service';\nimport { BlocksRepositoryService } from './services/blocks/blocks-repository.service';\nimport { ErrorHandlerService } from './services/checkout/error-handler.service';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { EcSanitizerHtmlPipe } from './ec-pipe/ec-sanitizer-html.pipe';\nimport { EcSanitizerUrlPipe } from './ec-pipe/ec-sanitizer-url.pipe';\nimport { CaptchaService } from './services/captcha.service';\nimport { DopplerService } from './utils/analytics/doppler.service';\n\n@NgModule({\n exports: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n ],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n HttpClientModule,\n InfiniteScrollModule,\n ToastrModule,\n FormsModule,\n ReactiveFormsModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n CardModule,\n ModalModule\n ],\n declarations: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe,\n ],\n providers: [\n\n ]\n})\nexport class NgEasycommerceModule {\n public static forRoot(environment: any): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: [\n Constants,\n {\n provide: 'env', // you can also use InjectionToken\n useValue: environment\n },\n WINDOW_PROVIDERS,\n ProductsService,\n BannerService,\n CartService,\n OrdersService,\n PaginationService,\n ConnectionService,\n AuthService,\n OptionsService,\n ShipmentService,\n CheckoutService,\n OptionsOfProductListDataReceiverService,\n DataformService,\n BlocksService,\n StoresService,\n AnalyticsService,\n // Utils\n Constants,\n UtilsService,\n ShipmentDataTransformer,\n PaymentUtils,\n OptionsOfProductListDataReceiverService,\n ToastService,\n AddressingService,\n FacebookPixelService,\n GoogleAnalyticsService,\n GTMService,\n DopplerService,\n // Guards\n AuthGuardService,\n AbleBuyerGuardService,\n UserRoleGuardService,\n LoggedInGuard,\n CheckoutReadyGuard,\n OrderUtilityService,\n fromPipeBase.pipes,\n CurrencyPipe,\n ChannelConfigService,\n BlocksRepositoryService,\n ErrorHandlerService,\n CaptchaService,\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: '6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3' } as RecaptchaSettings,\n },\n // Others\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CustomerInterceptor,\n multi: true\n }\n ]\n };\n }\n\n public static forChild(): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: []\n };\n }\n}","import { Injectable } from '@angular/core';\r\nimport { Constants } from '../core.consts';\r\nimport { CartService } from './cart.service';\r\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ConnectionService } from '../api/connection.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GiftCardService {\r\n\r\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\r\n\r\n private baseUrl = this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/';\r\n private couponApi = () => this.baseUrl + 'carts/' + this.cartService.getCartToken() + '/coupon';\r\n\r\n public state = this.stateSubject.asObservable();\r\n\r\n constructor(private consts: Constants, private cartService: CartService, private connection: ConnectionService) { }\r\n\r\n setCoupon = (coupon) => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.put(this.couponApi(), { coupon }).subscribe(\r\n res => this.handleResponse(res, coupon)\r\n )\r\n }\r\n\r\n removeCoupon = () => this.stateSubject.getValue().data.coupon && this.deleteCoupon();\r\n\r\n deleteCoupon = () => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.delete(this.couponApi());\r\n }\r\n\r\n handleResponse = (response, coupon) => {\r\n response.code ?\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: false,\r\n data: { message: response.message, discount: '' }\r\n }) :\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: true,\r\n data: { message: 'coupon-ready', discount: 'APPLIED DISCOUNT', coupon }\r\n });\r\n }\r\n\r\n avoidCoupon = () => {\r\n this.stateSubject.next({ doing: false, ok: true, data: { discount: null, message: 'avoided', coupon: null } })\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { Product } from '../interfaces/product';\nimport { BehaviorSubject, Observable, Subscriber } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\n// Get product from Localstorage\nlet products = JSON.parse(localStorage.getItem(\"wishlistItem\")) || [];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WishlistService {\n \n // wishlist array\n public wishlistProducts: BehaviorSubject<Product[]> = new BehaviorSubject([]);\n public observer : Subscriber<{}>;\n\n // Initialize \n constructor(private toastrService: ToastrService) { \n this.wishlistProducts.subscribe(products => products = products);\n }\n\n // Get wishlist Products\n public getProducts(): Observable<Product[]> {\n const itemsStream = new Observable(observer => {\n observer.next(products);\n observer.complete();\n });\n return <Observable<Product[]>>itemsStream;\n }\n\n // If item is aleready added In wishlist\n public hasProduct(product: Product): boolean {\n const item = products.find(item => item.id === product.id);\n return item !== undefined;\n }\n\n // Add to wishlist\n public addToWishlist(product: Product): Product | boolean {\n var item: Product | boolean = false;\n if (this.hasProduct(product)) {\n item = products.filter(item => item.id === product.id)[0];\n const index = products.indexOf(item);\n } else {\n products.push(product);\n }\n this.toastrService.success('This product added to Wishlist.'); // toasr services\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n return item;\n }\n\n // Removed Product\n public removeFromWishlist(product: Product) {\n if (product === undefined) { return; }\n const index = products.indexOf(product);\n products.splice(index, 1);\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n }\n \n\n}\n","import {Inject, Injectable, OnInit} from '@angular/core';\nimport {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';\nimport {Constants} from '../core.consts';\n\n@Injectable()\nexport class StandardReuseStrategy implements RouteReuseStrategy {\n\n private routes : string[] = [];\n private storedRoutes = new Map<string, DetachedRouteHandle>();\n\n constructor(@Inject('env')private env) {}\n\n shouldDetach(route : ActivatedRouteSnapshot): boolean {\n this.routes = (this.routes.length && this.routes) || (this.env.routes || []);\n let result = route.data.key && this.routes.includes(route.data.key);\n return result;\n }\n\n store(route : ActivatedRouteSnapshot, handle : DetachedRouteHandle): void {\n this.storedRoutes.set(route.data.key, handle);\n }\n\n shouldAttach(route : ActivatedRouteSnapshot): boolean {\n return !!this.storedRoutes.get(route.data.key);\n }\n\n retrieve(route : ActivatedRouteSnapshot): DetachedRouteHandle {\n return this.storedRoutes.get(route.data.key);\n }\n\n shouldReuseRoute(future : ActivatedRouteSnapshot, curr : ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n","/*\n * Public API Surface of ng-easycommerce\n */\n\nexport * from './lib/ng-easycommerce.module';\n\n// Classes\nexport * from './lib/classes/user';\nexport * from './lib/classes/checkout/step';\nexport * from './lib/classes/checkout-process-state';\nexport * from './lib/classes/filters/AttributesFilter';\nexport * from './lib/classes/filters/CategoryFilter';\nexport * from './lib/classes/filters/DinamycsFilter';\nexport * from './lib/classes/filters/Filter';\nexport * from './lib/classes/filters/SortFilter';\n\n// Servicios\nexport * from './lib/services/auth.service';\nexport * from './lib/services/banner.service';\nexport * from './lib/services/cart.service';\nexport * from './lib/services/blocks/blocks.service';\nexport * from './lib/services/dataform.service';\nexport * from './lib/services/gift-card.service';\nexport * from './lib/services/options.service';\nexport * from './lib/services/account/orders.service';\nexport * from './lib/services/pagination.service';\nexport * from './lib/services/parameters.service';\nexport * from './lib/services/windows.service';\nexport * from './lib/services/wishlist.service';\nexport * from './lib/services/checkout/checkout.service';\nexport * from './lib/services/checkout/shipment.service';\nexport * from './lib/services/checkout/addressing.service';\nexport * from './lib/services/checkout/payment.service';\nexport * from './lib/services/stores.service';\nexport * from './lib/services/products/product-detail.service';\nexport * from './lib/services/products/products.service';\nexport * from './lib/services/analytics.service';\nexport * from './lib/services/channel-config.service';\nexport * from './lib/services/captcha.service';\n\n// Interfaces\nexport * from './lib/interfaces/block';\nexport * from './lib/interfaces/cart-item';\nexport * from './lib/interfaces/core.interfaces';\nexport * from './lib/interfaces/filter';\nexport * from './lib/interfaces/coupon';\nexport * from './lib/interfaces/deserializable';\nexport * from './lib/interfaces/navbar-items';\nexport * from './lib/interfaces/paginate';\nexport * from './lib/interfaces/parameters';\nexport * from './lib/interfaces/product';\nexport * from './lib/interfaces/step';\nexport * from './lib/interfaces/selection';\nexport * from './lib/interfaces/checkout-data';\nexport * from './lib/interfaces/faqs';\nexport * from './lib/interfaces/store';\nexport * from './lib/interfaces/choose-options/options-of-product-list';\nexport * from './lib/interfaces/choose-options/filter-option';\n\nexport * from './lib/api/connection.service';\n\n// Guards\nexport * from './lib/guards/auth-guard.service';\nexport * from './lib/guards/able-buyer-guard.service';\nexport * from './lib/guards/user-role-guard.service';\nexport * from './lib/guards/checkout-ready.service';\nexport * from './lib/guards/loggedin-guard.service';\n\n// Interceptors\nexport * from './lib/interceptors/auth.interceptor';\n\n// Pipes\n// export * from './lib/pipes/order-by.pipe';\n\n// Utils\nexport * from './lib/utils/toast.service';\nexport * from './lib/utils/utils.service';\n\nexport * from './lib/core.consts';\n\n// Strategy\nexport * from './lib/strategies/standard.strategy';\n\n// Component Base\nexport * from \"./lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/blocks-ec.component\";\nexport * from \"./lib/ec-component/cart-ec/cart-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/checkout-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/success-ec/success-ec.component\";\nexport * from \"./lib/ec-component/collection-ec/collection-ec.component\";\nexport * from \"./lib/ec-component/coupon-ec/coupon-ec.component\";\nexport * from \"./lib/ec-component/faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./lib/ec-component/filters-ec/filters-ec.component\";\nexport * from \"./lib/ec-component/filters-top-ec/filters-top-ec.component\";\nexport * from \"./lib/ec-component/footer-ec/footer-ec.component\";\nexport * from \"./lib/ec-component/header-ec/header-ec.component\";\nexport * from \"./lib/ec-component/login-ec/login-ec.component\";\nexport * from \"./lib/ec-component/product-ec/product-ec.component\";\nexport * from \"./lib/ec-component/related-products-ec/related-products-ec.component\";\nexport * from \"./lib/ec-component/section-container-ec/section-container-ec.component\";\nexport * from \"./lib/ec-component/stores-ec/stores-ec.component\";\nexport * from \"./lib/ec-component/variants-ec/variants-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/price-ec/price-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./lib/ec-component/home-ec/home-ec.component\";\nexport * from \"./lib/ec-component/product-detail-ec/product-detail-ec.component\";\nexport * from \"./lib/ec-component/account-ec/account-ec.component\";\nexport * from \"./lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./lib/ec-component/account-ec/order-ec/order-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/auth-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./lib/ec-component/password-reset-ec/password-reset-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./lib/ec-component/share-block-ec/share-block-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nexport * from \"./lib/ec-component/checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component\";\n\n\n// Directive base\n// export * from './lib/ec-directive/product-button-ec.directive'\n// export * from './lib/ec-directive/product-contact-ec.directive'\n// export * from './lib/ec-directive/product-mini-ec.directive'\n// export * from './lib/ec-directive/product-off-detail-ec.directive'\n// export * from './lib/ec-directive/product-price-ec.directive'\n\nexport * from './lib/ec-directive/product-mini-standard.directive'\nexport * from './lib/ec-directive/add-action-redirect.directive';\nexport * from './lib/ec-directive/product-stock.directive';\nexport * from './lib/ec-directive/auth-wholesaler.directive';\n\n\n//Pipes base\nexport * from './lib/ec-pipe/ec-currency-symbol.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-html.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-url.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {StepService as ɵn} from './lib/classes/checkout/step-service';\nexport {ComponentHelper as ɵf} from './lib/classes/component-helper';\nexport {components as ɵb} from './lib/ec-component/index';\nexport {SellerDashboardContainerEcComponent as ɵc} from './lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component';\nexport {RecaptchaEcComponent as ɵe} from './lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component';\nexport {MagnizoomComponent as ɵd} from './lib/ec-component/widgets-ec/zoom-ec/magnizoom.component';\nexport {directives as ɵq} from './lib/ec-directive/index';\nexport {ProductOffDirective as ɵr} from './lib/ec-directive/product-off.directive';\nexport {pipes as ɵs} from './lib/ec-pipe/index';\nexport {CustomerInterceptor as ɵv} from './lib/interceptors/customer.interceptor';\nexport {OrderByPipe as ɵa} from './lib/pipes/order-by.pipe';\nexport {BlocksRepositoryService as ɵg} from './lib/services/blocks/blocks-repository.service';\nexport {ErrorHandlerService as ɵo} from './lib/services/checkout/error-handler.service';\nexport {DopplerService as ɵl} from './lib/utils/analytics/doppler.service';\nexport {FacebookPixelService as ɵh} from './lib/utils/analytics/facebook-pixel.service';\nexport {GoogleAnalyticsService as ɵi} from './lib/utils/analytics/google-analytics.service';\nexport {GTMService as ɵj} from './lib/utils/analytics/gtm.service';\nexport {MetricoolPixelService as ɵk} from './lib/utils/analytics/metricool-pixel.service';\nexport {OptionsOfProductListDataReceiverService as ɵt} from './lib/utils/options-of-product-list-data.service';\nexport {OrderUtilityService as ɵm} from './lib/utils/order-util.service';\nexport {PaymentUtils as ɵu} from './lib/utils/payment-utils.service';\nexport {ShipmentDataTransformer as ɵp} from './lib/utils/shipment-transformer.service';"],"names":["Constants","__extends","__param","CheckoutService","AddressingService","ChannelConfigService","AuthService","CartService","OrdersService","StoresService","AuthGuardService","AbleBuyerGuardService","UserRoleGuardService","LoggedInGuard","CheckoutReadyGuard","ParametersService","__decorate","__values","CaptchaService","fromPipeBase.pipes","fromComponentsBase.components","fromDirectiveBase.directives","GiftCardService","products","WishlistService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-easycommerce.js","sources":["ng://ng-easycommerce/lib/pipes/order-by.pipe.ts","ng://ng-easycommerce/lib/services/windows.service.ts","ng://ng-easycommerce/lib/core.consts.ts","ng://ng-easycommerce/lib/api/connection.service.ts","ng://ng-easycommerce/lib/services/pagination.service.ts","ng://ng-easycommerce/lib/classes/filters/Filter.ts","ng://ng-easycommerce/lib/classes/filters/CategoryFilter.ts","ng://ng-easycommerce/lib/services/options.service.ts","ng://ng-easycommerce/lib/classes/filters/AttributesFilter.ts","ng://ng-easycommerce/lib/classes/filters/DinamycsFilter.ts","ng://ng-easycommerce/lib/classes/filters/SortFilter.ts","ng://ng-easycommerce/lib/services/products/products.service.ts","ng://ng-easycommerce/lib/services/banner.service.ts","ng://ng-easycommerce/lib/classes/user.ts","ng://ng-easycommerce/lib/classes/checkout/step.ts","ng://ng-easycommerce/lib/utils/order-util.service.ts","ng://ng-easycommerce/lib/utils/analytics/doppler.service.ts","ng://ng-easycommerce/lib/utils/analytics/facebook-pixel.service.ts","ng://ng-easycommerce/lib/utils/analytics/google-analytics.service.ts","ng://ng-easycommerce/lib/utils/analytics/gtm.service.ts","ng://ng-easycommerce/lib/utils/analytics/metricool-pixel.service.ts","ng://ng-easycommerce/lib/services/analytics.service.ts","ng://ng-easycommerce/lib/services/checkout/error-handler.service.ts","ng://ng-easycommerce/lib/utils/toast.service.ts","ng://ng-easycommerce/lib/services/checkout/checkout.service.ts","ng://ng-easycommerce/lib/classes/checkout/step-service.ts","ng://ng-easycommerce/lib/services/checkout/addressing.service.ts","ng://ng-easycommerce/lib/services/channel-config.service.ts","ng://ng-easycommerce/lib/services/auth.service.ts","ng://ng-easycommerce/lib/services/cart.service.ts","ng://ng-easycommerce/lib/services/account/orders.service.ts","ng://ng-easycommerce/lib/utils/shipment-transformer.service.ts","ng://ng-easycommerce/lib/services/stores.service.ts","ng://ng-easycommerce/lib/services/checkout/shipment.service.ts","ng://ng-easycommerce/lib/interfaces/choose-options/filter-option.ts","ng://ng-easycommerce/lib/utils/options-of-product-list-data.service.ts","ng://ng-easycommerce/lib/services/dataform.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks-repository.service.ts","ng://ng-easycommerce/lib/services/blocks/blocks.service.ts","ng://ng-easycommerce/lib/utils/utils.service.ts","ng://ng-easycommerce/lib/utils/payment-utils.service.ts","ng://ng-easycommerce/lib/guards/auth-guard.service.ts","ng://ng-easycommerce/lib/guards/able-buyer-guard.service.ts","ng://ng-easycommerce/lib/guards/user-role-guard.service.ts","ng://ng-easycommerce/lib/guards/loggedin-guard.service.ts","ng://ng-easycommerce/lib/guards/checkout-ready.service.ts","ng://ng-easycommerce/lib/interceptors/auth.interceptor.ts","ng://ng-easycommerce/lib/interceptors/customer.interceptor.ts","ng://ng-easycommerce/lib/classes/component-helper.ts","ng://ng-easycommerce/lib/services/parameters.service.ts","ng://ng-easycommerce/lib/ec-component/account-ec/account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/blocks-ec/blocks-ec.component.ts","ng://ng-easycommerce/lib/ec-component/cart-ec/cart-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/checkout-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.ts","ng://ng-easycommerce/lib/services/checkout/payment.service.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/success-ec/success-ec.component.ts","ng://ng-easycommerce/lib/ec-component/collection-ec/collection-ec.component.ts","ng://ng-easycommerce/lib/ec-component/coupon-ec/coupon-ec.component.ts","ng://ng-easycommerce/lib/ec-component/faqs-content-ec/faqs-content-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-ec/filters-ec.component.ts","ng://ng-easycommerce/lib/ec-component/filters-top-ec/filters-top-ec.component.ts","ng://ng-easycommerce/lib/ec-component/footer-ec/footer-ec.component.ts","ng://ng-easycommerce/lib/ec-component/header-ec/header-ec.component.ts","ng://ng-easycommerce/lib/ec-component/home-ec/home-ec.component.ts","ng://ng-easycommerce/lib/ec-component/login-ec/login-ec.component.ts","ng://ng-easycommerce/lib/services/products/product-detail.service.ts","ng://ng-easycommerce/lib/ec-component/product-detail-ec/product-detail-ec.component.ts","ng://ng-easycommerce/lib/ec-component/product-ec/product-ec.component.ts","ng://ng-easycommerce/lib/ec-component/related-products-ec/related-products-ec.component.ts","ng://ng-easycommerce/lib/ec-component/section-container-ec/section-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/stores-ec/stores-ec.component.ts","ng://ng-easycommerce/lib/ec-component/variants-ec/variants-ec.component.ts","ng://ng-easycommerce/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/price-ec/price-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component.ts","ng://ng-easycommerce/lib/ec-component/account-ec/order-ec/order-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/auth-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-form-ec/register-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/login-form-ec/login-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.ts","ng://ng-easycommerce/lib/ec-component/password-reset-ec/password-reset-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts","ng://ng-easycommerce/lib/ec-component/share-block-ec/share-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts","ng://ng-easycommerce/lib/ec-component/checkout-error-ec/checkout-error-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component.ts","ng://ng-easycommerce/lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/zoom-ec/magnizoom.component.ts","ng://ng-easycommerce/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.ts","ng://ng-easycommerce/lib/services/captcha.service.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts","ng://ng-easycommerce/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.ts","ng://ng-easycommerce/lib/ec-component/index.ts","ng://ng-easycommerce/lib/ec-directive/add-action-redirect.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-stock.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-off.directive.ts","ng://ng-easycommerce/lib/ec-directive/product-mini-standard.directive.ts","ng://ng-easycommerce/lib/ec-directive/auth-wholesaler.directive.ts","ng://ng-easycommerce/lib/ec-directive/index.ts","ng://ng-easycommerce/lib/ec-pipe/ec-currency-symbol.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-html.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/ec-sanitizer-url.pipe.ts","ng://ng-easycommerce/lib/ec-pipe/index.ts","ng://ng-easycommerce/lib/ng-easycommerce.module.ts","ng://ng-easycommerce/lib/services/gift-card.service.ts","ng://ng-easycommerce/lib/services/wishlist.service.ts","ng://ng-easycommerce/lib/strategies/standard.strategy.ts","ng://ng-easycommerce/public-api.ts","ng://ng-easycommerce/ng-easycommerce.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'orderBy'\n})\nexport class OrderByPipe implements PipeTransform {\n\n transform(array, val = 'desc'){\n \n if (!val || val.trim() == \"\"){\n return array;\n } \n\n //ascending\n if (val == 'asc'){\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item1['id'], item2['id']);\n });\n } else if(val == 'desc'){ // desc\n return Array.from(array).sort((item1: any, item2: any) => { \n return this.orderByComparator(item2['id'], item1['id']);\n });\n } else if(val == 'a-z') { // a-z\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] < b['name'] ){\n return -1;\n } else if ( a['name'] > b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'z-a') { // z-a\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['name'] > b['name'] ){\n return -1;\n } else if ( a['name'] < b['name'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'low') { // low to high\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] < b['price'] ){\n return -1;\n } else if ( a['price'] > b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n } else if(val == 'high') { // high to low\n return Array.from(array).sort((a: any, b: any) => { \n if ( a['price'] > b['price'] ){\n return -1;\n } else if ( a['price'] < b['price'] ){\n return 1;\n } else {\n return 0; \n }\n });\n }\n\n }\n\n orderByComparator(a:any, b:any):number{\n\n if((isNaN(parseFloat(a)) || !isFinite(a)) || (isNaN(parseFloat(b)) || !isFinite(b))){\n //Isn't a number so lowercase the string to properly compare\n if(a.toLowerCase() < b.toLowerCase()) return -1;\n if(a.toLowerCase() > b.toLowerCase()) return 1;\n }\n else{\n //Parse strings as numbers to compare properly\n if(parseFloat(a) < parseFloat(b)) return -1;\n if(parseFloat(a) > parseFloat(b)) return 1;\n }\n\n return 0; //equal each other\n }\n\n}\n","import { isPlatformBrowser } from \"@angular/common\";\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/* Create a new injection token for injecting the window into a component. */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/* Define abstract class for obtaining reference to the global window object. */\r\nexport abstract class WindowRef {\r\n\r\n get nativeWindow(): Window | Object {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n}\r\n\r\n/* Define class that implements the abstract class and returns the native window object. */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get nativeWindow(): Window | Object {\r\n return window;\r\n }\r\n\r\n}\r\n\r\n/* Create an factory function that returns the native window object. */\r\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n return new Object();\r\n}\r\n\r\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\r\nexport const browserWindowProvider: ClassProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n\r\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\r\nexport const windowProvider: FactoryProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [ WindowRef, PLATFORM_ID ]\r\n};\r\n\r\n/* Create an array of providers. */\r\nexport const WINDOW_PROVIDERS = [\r\n browserWindowProvider,\r\n windowProvider\r\n];","\nimport { Injectable, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from './api/connection.service';\nimport { CurrencyConfig } from './interfaces/currencyConfig';\ntype currencyType = 'EUR' | 'ARG' | 'USD' | 'PYG' | 'PEN' | 'CUSTOM';\ntype positionType = 'L' | 'R';\ntype channelTypes = 'b2b' | 'b2b2c' | 'b2c';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Constants {\n\n constructor(public translate: TranslateService, private router: Router, @Inject('env') private env) { }\n\n private readonly LOCALE = 'LOCALE';\n private readonly CHANNEL = 'CHANNEL';\n\n private channelConfigSubject = new ReplaySubject<any>();\n public channelConfig$ = this.channelConfigSubject.asObservable();\n\n private channelConfigAPI = (channel) => '/shop-api/' + channel + 'channel';\n\n private browserWindow: object = window || {};\n private browserWindowEnv: object = this.browserWindow['__env'] || {};\n\n // private urlBase: string = 'http://testing.backend.easycommercetech.com/';\n private urlBase: string = this.browserWindowEnv['apiUrl'] ? this.browserWindowEnv['apiUrl'] : (this.env.apiUrl || 'http://backend.easycommerce.devp/');\n private urlAssets: string = this.browserWindowEnv['urlAssets'] ? this.browserWindowEnv['urlAssets'] : (this.env.urlAssets || this.urlBase);\n private urlFrontend: string = this.browserWindowEnv['urlFrontend'] ? this.browserWindowEnv['urlFrontend'] : (this.env.urlFrontend || 'https://elden.easycommercetech.com/');\n private locale: string = localStorage.getItem(this.LOCALE) ? localStorage.getItem(this.LOCALE) : this.browserWindowEnv['locale'] ? this.browserWindowEnv['locale'] : (this.env.locale || 'es_AR');\n private channel: string = localStorage.getItem(this.CHANNEL) ? localStorage.getItem(this.CHANNEL) : this.browserWindowEnv['channel'] ? this.browserWindowEnv['channel'] : (this.env.channel || 'minorista')\n private blocksCacheTime: string = this.browserWindowEnv['blocksCacheTime'] ? this.browserWindowEnv['blocksCacheTime'] : (this.env.blocksCacheTime || null);\n\n private modalConfig = { title: 'Example', class: 'modal-xl modal-dialog-centered', keyboard: false };\n setModalConfig = (config: any) => this.modalConfig = config;\n getModalConfig = () => this.modalConfig;\n\n private version: string = 'v1';\n\n private routes = [/^home$/g, /^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g, /^contact$/g];\n\n /* Get rid of this ASAP! */\n private masterChannel = null\n\n public getMasterChannel = () => {\n if (!this.masterChannel) this.masterChannel = localStorage.getItem('MASTER_CHANNEL')\n return this.masterChannel\n }\n\n public setMasterChannel = channel => {\n this.masterChannel = channel\n localStorage.setItem('MASTER_CHANNEL', channel)\n }\n\n private isProduction = () => this.browserWindowEnv['production'] ? this.browserWindowEnv['production'] : (this.env.production || false);\n\n setUrlBase = (url) => this.urlBase = url;\n setUrlAssets = (url) => this.urlAssets = url;\n\n /**\n * @param next Function to execute\n * @param params That function needs\n *\n * Execute the function passed as params, if the frontend is in production mode\n */\n onlyIfProduction = (next, params) => this.isProduction() && next(params);\n\n mediaUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"image/\";\n mediaBannerUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"banner-image/\";\n mediaStoreUrl = () => this.urlAssets + (this.urlAssets == this.urlBase ? 'media/' : '') + \"store-image/\";\n\n getProductsListRoute = () => 'collection/';\n\n getSectionsRoute = () => 'section/';\n\n getUrlBase = () => this.urlBase;\n getUrlFrontend = () => this.urlFrontend;\n\n getBlocksCacheTime = (): number => this.blocksCacheTime && parseInt(this.blocksCacheTime);\n\n // getLocale = () => this.locale;\n // setLocale = (locale) => this.locale = locale;\n\n getLocale = () => {\n if (localStorage.getItem(this.LOCALE)) {\n this.locale = localStorage.getItem(this.LOCALE)\n }\n return this.locale\n }\n\n getLocaleTranslate = () => {\n return this.getLocale().split('_')[0]\n }\n\n public setLocale = locale => {\n localStorage.setItem(this.LOCALE, locale)\n this.translate.use(locale.split('_')[0])\n this.locale = locale\n }\n\n getChannel = () => {\n if (localStorage.getItem(this.CHANNEL)) {\n this.channel = localStorage.getItem(this.CHANNEL)\n }\n return this.channel\n }\n\n public setChannel = channel => {\n localStorage.setItem(this.CHANNEL, channel)\n this.channel = channel\n }\n\n getVersion = () => this.version;\n\n loginExtraData = () => {\n return {\n client_id: 'demo_client',\n client_secret: 'secret_demo_client',\n grant_type: 'password'\n }\n }\n\n isCollection = (path) => (/^(\\/?)collection(\\/?)([\\w\\.\\/\\?]*)$/g).test(path);\n\n /**\n * Utilities\n */\n\n mobile = () => window.innerWidth < 750;\n\n strictTypeChannel = () => this.env.strictTypeChannel || 'b2b2c';\n\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total;\n\n /**\n * Elementos para manejo de lista de rutas reutilizables\n */\n\n addRouteToReuse = (route: RegExp) => route && this.routes.push(route);\n\n removeRouteToReuse = (route: RegExp) => {\n const index = this.routes.indexOf(route);\n if (index > -1) {\n this.routes.splice(index, 1);\n }\n }\n\n getRoutesToReuse = (): RegExp[] => this.routes;\n\n\n\n /**\n * @public ejemplo de uso <img *ngFor=\"let item of consts.getRatingStar(product.rating,'assets/images/star.png','assets/images/notStar.png')\" [src]=\"item\">\n * @description funcion que dado un valor entre 1 .. 5, y star: notStar: \n * (deben ser el path del archivo local a la implementacion).\n * retorna un arreglo con con la valoracion correspondiente. \n */\n getRatingStar = (rating: any, star: String, notStar: String) => {\n try {\n let urlStar = [];\n let cantStar = Number(rating) || 0;\n for (let index = 0; index < 5; index++) {\n urlStar.push(\n cantStar > 0\n ? star\n : notStar\n );\n cantStar--;\n }\n return urlStar;\n } catch (error) {\n console.error(\"getRatingStar produjo un error -> \", error);\n }\n\n };\n\n /**\n * @public ejemplo de uso (keypress)=\"inputValidationByExpressions($event,'[0-9]{1,9}')\" en el DOM.\n * @description funcion que dado un manejandor de evento, y una expresion regular esta es \n * evaluada sobre los valores que el manejador de eventos nos envia. \n * En el caso en el que se envie el parametro 'condition' este puede ser para \n * anular el evento como condicion adicional a la evaluacion de la entrada.\n */\n inputValidationByExpressions = (e, patron, condition = null ) => {\n try {\n let tecla = (document) ? e.keyCode : e.which;\n if (tecla == 8) return true;\n let patronReg = new RegExp(patron)\n let tecla_final = String.fromCharCode(tecla);\n if (condition != null) {\n return patronReg.test(tecla_final) && condition;\n }\n return patronReg.test(tecla_final)\n } catch (error) {\n console.error(\"inputValidationByExpressions produjo un error -> \", error);\n }\n }\n\n\n /**\n * \n * @param needles (agujas) object con claves valor a filtrar\n * @param haystack (pajar) objecto en el que buscar\n * \n * @description funcion que busca en el haystack (pajar) todos los objetos que contentan \n * todas las claves de los needles(agujas) que contengan el mismo valor\n */\n containsAll(needles: object, haystack: object): boolean {\n let result: boolean = true;\n\n if (!!needles && !!haystack) {\n Object.entries(needles).forEach(value => {\n if (!(haystack.hasOwnProperty(value[0]) && haystack[value[0]] == value[1])) result = false\n })\n }\n return result;\n }\n\n /**\n * Propiedad que se utiliza para tomar como configuración para el tipo de moneda que se utiliza en el sitio. \n * Estos valores son utilizados para el pipe currencyPrice\n */\n public currency: CurrencyConfig = {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n }\n\n /**\n * \n * @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar. \n * Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.\n * @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,\n * todas las key son opcionales y por defecto se toman los valores del ejemplo. \n * @returns se retorna la configuración que se seteo a la propiedad currency del servicio.\n */\n public setCurrency = (currencyTypeFind: currencyType, customType?: CurrencyConfig) => {\n let currencyTypeCofig: CurrencyConfig[] = [\n {\n code: 'EUR',\n symbol: '€',\n position: 'R',\n withoutDecimals: false\n\n },\n {\n code: 'ARG',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'USD',\n symbol: '$',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PYG',\n symbol: 'Gs.',\n position: 'L',\n withoutDecimals: false\n },\n {\n code: 'PEN',\n symbol: 'S/',\n position: 'L',\n withoutDecimals: false\n }\n ]\n this.currency = currencyTypeCofig.find(ct => ct.code == currencyTypeFind.toUpperCase()) || this.currency\n customType && (this.currency = { ...this.currency, ...customType })\n return this.currency;\n };\n\n\n /**\n * devuelve true si existe el elemento \"search\" en el array de parametros \"params\"\n * \n * @param params Array de parametros entre los que buscar\n * @param searched Elemento que buscar\n * @param prefix prefijo del string a buscar (ejemplo: \"link_\")\n * @param suffix sufijo del string a buscar (ejemplo: \"link_\")\n * @param casesensitive determina si se evalua con sensibilidad entre mayuscula y minuscula\n * @returns retorna true o false si se encontro o no el parametro en el array\n */\n public hasParams(\n params,\n searched,\n prefix = '',\n suffix = '',\n casesensitive = false): boolean {\n\n\n return casesensitive ? params.find(param => (param.code).toLowerCase() == (prefix + searched + suffix).toLowerCase() || (param.code).toLowerCase() == (searched).toLowerCase())\n : params.find(param => param.code == (prefix + searched + suffix) || param.code == searched)\n\n };\n modifyChannelConfig = (channelConfig) => {\n console.log(\"Channel config: \", channelConfig)\n if (channelConfig.channel || channelConfig.code)\n this.setChannel(channelConfig.channel || channelConfig.code)\n\n if (channelConfig.locale || channelConfig.locales.code)\n this.setLocale(channelConfig.locale || channelConfig.locales.code)\n\n return channelConfig;\n }\n}\n\n","import { Injectable, OnInit } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilterOption, FilterOptionTypes, FilterOptionValue } from '../interfaces/choose-options/filter-option';\nimport { take } from 'rxjs/operators';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class ConnectionService {\n\n private url;\n\n constructor(private http: HttpClient, private translate: TranslateService,\n private consts: Constants) {\n this.url = this.consts.getUrlBase();\n }\n\n /** POST */\n post(api: string, data?): Observable<any> {\n return this.http.post<any>(this.url + api, data || {}).pipe(take(1));\n }\n\n postOutsider(api: string, data): Observable<any> {\n return this.http.post<any>(api, data).pipe(take(1));\n }\n\n /** GET */\n get(api: string, data?): Observable<any> {\n return this.http.get<any>(this.formUrl(api), { params: { ...data } }).catch(err => of(null)).pipe(take(1));\n }\n\n getOutsider(api: string): Observable<any> {\n return this.http.get<any>(api).pipe(take(1));\n }\n\n getErrorNotHandler(api: string): Observable<any> {\n return this.http.get<any>(this.url + api).pipe(take(1));\n }\n\n getOutsiderWithParams(api: string, data: any): Observable<any> {\n return this.http.get<any>(api, { params: { ...data }});\n }\n\n getHTML(api: string): Observable<any> {\n let httpHeaders = new HttpHeaders({ Accept: 'text/plain, text/html' });\n return this.http.get(this.url + api, { responseType: 'text', headers: httpHeaders }).pipe(take(1));\n }\n\n getWithLimit(api: string, limit: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n getPaginated(api: string, limit: string, page: string): Observable<any> {\n let params = new HttpParams();\n params = params.append('limit', limit);\n params = params.append('page', page);\n return this.http.get<any>(this.url + api, { params }).pipe(take(1));\n }\n\n /** PUT */\n put(api: string, data): Observable<any> {\n return this.http.put<any>(this.url + api, data).pipe(take(1));\n }\n\n /** DELETE */\n delete(api: string): Observable<any> {\n return this.http.delete<any>(this.url + api).pipe(take(1));\n }\n\n formUrl = (api) => {\n return window.location.protocol == 'https:' && !this.url.includes('https') ? (this.url.replace('http', 'https')) + api : this.url + api;\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { Product } from '../interfaces/product';\n\n@Injectable()\nexport class PaginationService {\n\n private api: string;\n private limit;\n private params;\n private nextSubject : BehaviorSubject<Product[]> = new BehaviorSubject([]);\n private finishedSubject : BehaviorSubject<boolean> = new BehaviorSubject(false);\n private finished;\n public total= 0;\n \n public waiting = false;\n \n public next = this.nextSubject.asObservable();\n public finished$ = this.finishedSubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) { }\n\n initialize(api, limit?, initialValues?) {\n this.api = api;\n this.limit = limit || this.limit || 10;\n this.finished = false;\n this.nextSubject.next([]);\n }\n\n getNext(next?) : boolean{\n this.waiting = true;\n this.api = this.api.replace('%20', ' '); //-\n let nextProducts = !this.api.includes('page=') \n ? this.connection.get(this.api, { limit: this.limit, page: 1 }) \n : this.connection.get(this.api);\n !this.finished && nextProducts.subscribe(\n response => {\n response.links ? this.updatePageData(response) : this.finalize(response)\n next && next(response);\n }\n )\n return true;\n }\n\n private updatePageData = (response) => {\n this.api = this.cleanRoute(response.links.next);\n this.finished = response.page == response.pages;\n this.total = response.total;\n this.finishedSubject.next((response.page == response.pages))\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n private finalize = (response) => {\n this.finished = true;\n this.finishedSubject.next(true);\n this.nextSubject.next(response.items);\n this.waiting = false;\n }\n\n cleanRoute = (route: string) => route.slice(1);\n\n getPage(totalItems: number, currentPage: number = 1, pageSize: number = 8) { }\n\n isFinished = () => this.finished;\n}\n","import { IFilter, FilterElement, FilterType } from \"../../interfaces/filter\";\n\nexport class Filter implements IFilter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = false;\n type = (): FilterType => null;\n getContent = (): FilterElement[] => null;\n toUrlParams = (): string => null;\n setContent = (options): void => null;\n\n setSelected = (element, value?) => {\n !this.multi && this.cleanFilter(this.data, element);\n this.setSelectedValue(element, value);\n }\n\n cleanFilter = (data, element_to_change) => {\n element_to_change && data.forEach(element => {\n element_to_change != element ? element.selected = false : null;\n (element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);\n })\n }\n\n reset = (children?) => {\n let data = children || this.data;\n data.forEach(element => {\n element.selected = false;\n (element.children && element.children.length > 0) && this.reset(element.children);\n })\n }\n\n setSelectedValue = (element, value?, sublist?, multi?) => {\n let elements = sublist || this.data;\n let index = elements.findIndex(subelement => {\n return (element.code || element) == subelement.code;\n });\n if (index >= 0) {\n elements[index].selected = elements[index].selected ? false : true;\n !multi && elements.forEach((child, i) => {\n if (i != index) child.selected = false;\n });\n return {\n elements,\n founded: true\n };\n } else {\n elements.some(elem => elem.type == 'sub') && elements.some(\n filter => {\n let founded = false;\n if (filter.type == 'sub') {\n const result = this.setSelectedValue(element, value, filter.children, filter.multi);\n if (result && result.founded) {\n filter.children = result.elements;\n founded = true;\n }\n }\n return founded;\n }\n )\n }\n };\n\n getSelectedList = (): any => this.findSelected(this.data, []);\n\n findSelected = (elements: any[], result) => {\n let element = elements.find(elem => elem.selected);\n if (element) {\n result.push(element.code);\n return result;\n }\n elements.forEach(elem => {\n if (elem.children && elem.children.length) {\n let new_result = this.findSelected(elem.children, result);\n if (new_result) result = new_result;\n }\n })\n return result;\n }\n}\n\n","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class CategoryFilter extends Filter {\n\n data: FilterElement[] = [];\n private raw_data;\n multi = false;\n\n constructor(private categories$: Observable<any>, formatter, initial_value?) {\n super();\n this.categories$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n type = (): FilterType => 'category';\n\n setContent = (categories, original?, initial_value?) => {\n categories.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = categories;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '', sublist?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub' && !element.selected) {\n const result = this.toUrlParams('', element.children);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if (element.selected) {\n if (actual_url == '') actual_url = '&category=' + element.value;\n else actual_url = element.value;\n }\n })\n return actual_url;\n };\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { BehaviorSubject, of, Observable } from 'rxjs';\nimport { Constants } from '../core.consts';\nimport { AuthService } from './auth.service';\nimport { take, map, catchError } from 'rxjs/operators';\nimport { FAQ } from '../interfaces/faqs';\nimport { Filter } from '../classes/filters/Filter';\n\n@Injectable()\nexport class OptionsService {\n\n private categoriesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private attributesSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private sectionsSubject: BehaviorSubject<any> = new BehaviorSubject([]);\n private readySubject: BehaviorSubject<any> = new BehaviorSubject({ options: { categories: false, attributes: false, sections: false }, readyAll: false });\n private data = [];\n\n\n public categories = this.categoriesSubject.asObservable();\n public attributes = this.attributesSubject.asObservable();\n public sections = this.sectionsSubject.asObservable();\n public ready = this.readySubject.asObservable();\n\n constructor(private connection: ConnectionService, private constants: Constants) {\n this.getAllData();\n // this.authService.loggedIn.subscribe(res => res && this.getAllData());\n }\n\n private getAllData = () => {\n this.getCategories();\n this.getAttributes();\n this.getSections();\n }\n\n private async getCategories() {\n await this.connection.get(this.taxonsApi()).pipe(take(1),\n map(response => this.appendPaths(true, response)))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.categoriesSubject.next(response)\n }\n ).catch(() => this.categoriesSubject.next([]))\n this.optionLoaded('categories');\n }\n\n private async getAttributes() {\n await this.connection.get(this.attributesApi()).pipe(\n map(response => this.appendPaths(false, (response.items || response))))\n .toPromise().then(\n response => {\n response.forEach(element => this.data.push(element));\n this.attributesSubject.next(this.addAttributesSlug(response));\n }\n ).catch(() => this.attributesSubject.next([]))\n this.optionLoaded('attributes');\n }\n\n private appendPaths(isCategory, response) {\n let result = response.map(subelement => {\n if (!subelement.children || subelement.children.length == 0) {\n subelement.children = [];\n subelement.path = isCategory ? this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name))\n : this.constants.getProductsListRoute() + 'attributes/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name));\n } else if (subelement.children) {\n subelement.slug = subelement.slug || this.slugify(subelement.name);\n subelement.children = this.appendPaths(isCategory, subelement.children);\n }\n isCategory ? subelement.path = this.constants.getProductsListRoute() + 'categories/' + this.slugify((subelement.slug ? this.slugify(subelement.slug) : subelement.name)) : null;\n return subelement;\n });\n return result;\n }\n\n private async getSections() {\n await this.connection.get(this.sectionsApi()).toPromise().then(\n response => {\n let sections = response.filter(item => item.code != 'home');\n sections = sections.map(section => this.appendSection(section));\n this.sectionsSubject.next(sections);\n }\n ).catch(() => this.categoriesSubject.next([]));\n this.optionLoaded('sections');\n }\n\n private appendSection(section) {\n let data: any = {};\n if (section.pages?.length) {\n data.type = 'sub';\n data.children = section.pages.map(page => {\n return {\n code: page.code,\n name: page.name,\n type: 'link',\n path: this.constants.getSectionsRoute() + page.code,\n // path: this.constants.getSectionsRoute() + page.slug,\n }\n });\n data.title = section.name;\n data.name = section.name;\n data.path = this.constants.getSectionsRoute() + section.code;\n data.code = section.code;\n } else {\n data.code = section.code;\n data.title = section.name;\n data.type = 'link';\n data.children = [];\n data.path = this.constants.getSectionsRoute() + section.code;\n }\n return data;\n }\n\n public getSectionContentByLink = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n catchError(e => of(false))\n );\n\n public getSectionContentByLinkAsPromise = (link) =>\n this.connection.getHTML(this.pageContentByCodeApi(link)).pipe(\n map(html => html.split('</head>')[html.split('</head>').length - 1]),\n ).toPromise().catch(e => null);\n\n public getFAQ = () => {\n return this.connection.get(this.faqsApi()).pipe(map(response => {\n let result: FAQ[] = [];\n response.forEach(response_faq => {\n let faqs: FAQ = {\n code: response_faq.code,\n position: response_faq.position,\n title: response_faq.translations[this.constants.getLocale()].topic,\n questions: response_faq.frequentlyAskedQuestions.map(asked_question => ({\n code: asked_question.code,\n position: asked_question.position,\n question: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].question : '',\n answer: asked_question.translations[this.constants.getLocale()] ? asked_question.translations[this.constants.getLocale()].answer : '',\n }))\n };\n result.push(faqs);\n })\n return result;\n }));\n }\n\n private optionLoaded(key) {\n const allReady = (options) => Object.keys(options).every(option_key => state.options[option_key]);\n let state = this.readySubject.value;\n state.options[key] = true;\n this.readySubject.next({ options: state.options, readyAll: allReady(state.options) })\n }\n\n private isSubElement = (array, code) => {\n let element = array.find(element => element.code == code);\n return (element && element.code) || (array.children && this.isSubElement(array.chidren, code));\n }\n\n private findCode = (slug, elements) => {\n let element = elements.find(elem => elem.slug == slug);\n if (element) return element.code;\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n element = this.findCode(slug, elem.children);\n }\n return element || false;\n });\n return element;\n }\n\n getCodeBySlug = (slug) => {\n let code = this.findCode(slug, this.generateMenu(this.categoriesSubject.value));\n if (!code) code = this.findCode(slug, this.generateMenu(this.attributesSubject.value));\n return code || slug;\n }\n\n getHigher = (code) => {\n let higher_code;\n higher_code = this.data.find(element => !(element.code == code) && !this.isSubElement(element.children, code)).code;\n return higher_code || 'default';\n }\n\n /**\n * @private\n * APIS\n */\n\n private cmsBase = () => 'cms/' + this.constants.getLocale();\n private cmsChannel = () => 'cms/' + this.constants.getChannel();\n private shopApi = () => 'shop-api/' + this.constants.getChannel();\n\n private faqsApi = () => 'cms/' + this.constants.getChannel() + '/faq';\n // private sectionsApi = () => this.cmsBase() + '/sections/';\n private sectionsApi = () => this.cmsChannel() + '/sections/' + '?locale=' + this.constants.getLocale();\n private sectionByCodeApi = (code) => this.cmsBase() + '/pages/' + code;\n // private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private pageContentByCodeApi = (code) => this.cmsBase() + '/' + this.constants.getChannel() + '/page/' + code;\n private taxonsApi = () => this.shopApi() + '/taxons/' + '?locale=' + this.constants.getLocale();\n private attributesApi = () => this.shopApi() + '/attributes-list' + '?locale=' + this.constants.getLocale();\n\n /**\n * @public\n * UTILS\n */\n\n addAttributesSlug = (attributes) => attributes.map(\n attribute => { return { ...attribute, children: attribute.children.map(child => { return { ...child, slug: this.slugify(child.name) } }) } }\n );\n\n slugify = (text: string) => this.removeAccents(text.toLowerCase().replace(/ & /g, ' ').replace(/ /g, '-').replace(/\\//g, '-').replace(/ñ/g, 'n'));\n\n generateMenu = (elements) => {\n return elements.map(subelement => {\n let result;\n (subelement.children && subelement.children.length == 0) ? result = {\n ...subelement,\n title: subelement.name,\n path: subelement.path,\n type: 'link',\n }\n : result = {\n ...subelement,\n title: subelement.name,\n type: 'sub',\n path: subelement.path,\n children: (subelement.children ? this.generateMenu(subelement.children) : [])\n };\n return result;\n });\n }\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n\n getBreadcrumb = (code) => {\n if (!code) return null;\n let breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.categoriesSubject.value), []);\n if (!breadcrumb || !breadcrumb.length) breadcrumb = this.generateBreadcrumb(code, this.generateMenu(this.attributesSubject.value), []);\n return (breadcrumb && breadcrumb.length) && breadcrumb.reverse();\n }\n\n getBreadcrumbByFilters = (filters: Filter[]) => {\n let final_result = [];\n filters.forEach(filter => {\n let result = filter.getSelectedList();\n if (!result || !result.length) return;\n\n if (filter.type() == 'category') final_result.unshift(...this.generateBreadcrumb(result[0], filter.data, []).reverse());\n else result.forEach(\n code => {\n let breadcrumb = this.generateBreadcrumb(code, filter.data, [])\n breadcrumb.length && final_result.push(breadcrumb[0]);\n }\n );\n });\n\n return final_result;\n }\n\n private generateBreadcrumb = (code, elements, result) => {\n let element = elements.find(elem => elem.code == code);\n if (element) {\n result.push(element);\n }\n else {\n elements.some(elem => {\n if (elem.children && elem.children.length) {\n const length = result.length;\n let new_result = this.generateBreadcrumb(code, elem.children, result);\n if (new_result.length > length) {\n result = new_result;\n result.push(elem);\n return true;\n }\n }\n return false;\n })\n }\n return result;\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { OptionsService } from \"../../services/options.service\";\nimport { Observable } from \"rxjs\";\nimport { Filter } from \"./Filter\";\n\nexport class AttributesFilter extends Filter {\n\n data: FilterElement[] = [];\n raw_data;\n multi = false;\n\n constructor(private attributes$: Observable<any>, formatter, initial_value?) {\n super();\n this.attributes$.subscribe(\n res => {\n this.raw_data = res;\n this.setContent(formatter(res), res, initial_value);\n }\n )\n }\n\n setContent = (attributes, original?, initial_value?) => {\n attributes.forEach((filter, i) => filter = this.createElement(filter, original[i], initial_value));\n this.data = attributes;\n }\n\n createElement = (filter, original, initial_value?) => {\n if (filter.type == 'sub') {\n filter.multi = false;\n filter.shape = 'text';\n filter.value = original.code;\n filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initial_value));\n } else {\n filter.value = original.code;\n filter.selected = (initial_value && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initial_value?.toLowerCase()));\n }\n return filter;\n }\n\n type = (): FilterType => 'attributes';\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&attributeCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&attributeCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&attributeCodes=', '');\n\n removeAccents = (str) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class DynamicsFilter extends Filter {\n\n generated_url = '';\n data: FilterElement[] = [];\n multi = true;\n\n type = (): FilterType => 'dynamics';\n\n setContent = (options) => {\n options = options.map(option => option = this.createElement(option));\n this.data = options;\n }\n\n createElement = (option) => {\n option = {\n title: option.label, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map(value => {\n return {\n title: value.code,\n description: value.name,\n code: (option.code + ' ' + value.name),\n type: 'child',\n value: value.code,\n selected: false\n }\n })\n }\n return option;\n }\n\n holi = () => {\n\n }\n\n getContent = (): FilterElement[] => this.data;\n\n toUrlParams = (actual_url = '&optionCodes=', sublist?, already?) => {\n let elements = sublist || this.data;\n let aux_url = '';\n elements.forEach(element => {\n if (element.type == 'sub') {\n let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))\n if (!actual_url.includes(result)) actual_url += this.cleanResult(result);\n } else if (element.selected) {\n if (actual_url == '&optionCodes=' && aux_url == '') {\n aux_url = element.value;\n }\n else {\n if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;\n else aux_url += ('<and>' + element.value);\n }\n }\n })\n return actual_url + aux_url;\n };\n\n cleanResult = (text) => text.replace('&optionCodes=', '');\n}","import { FilterType } from \"../../interfaces/filter\";\nimport { FilterElement } from \"../../interfaces/filter\";\nimport { Filter } from \"./Filter\";\n\nexport class SortFilter extends Filter {\n\n data : FilterElement[] = [];\n multi = true;\n\n constructor() {\n super();\n this.setContent();\n }\n\n type = () : FilterType => 'sort';\n\n setContent = () => {\n this.data = [\n {\n title: 'price', type: 'sub', multi: false, code: 'price' ,shape: 'text', children: [\n { title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false },\n { title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false }\n ]\n },\n {\n title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [\n { title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false },\n { title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false }\n ]\n }\n ]\n }\n\n getContent = () : FilterElement[] => this.data;\n \n toUrlParams = (actual_url = '', sublist?, father?) => {\n let elements = sublist || this.data;\n elements.forEach(element => {\n if (element.type == 'sub') {\n const result = this.toUrlParams(actual_url, element.children, element.title);\n !actual_url.includes(result) ? actual_url += result : null;\n } else if(element.selected) {\n actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);\n }\n })\n return actual_url;\n };\n\n // UTILS\n\n translate = (value) => {\n switch(value) {\n case 'price': return 'price';\n case 'created-date': return 'createdAt';\n case 'alphabetical-order': return 'name';\n }\n }\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscriber } from 'rxjs';\r\nimport 'rxjs/add/operator/map';\r\nimport { ConnectionService } from '../../api/connection.service';\r\nimport { Constants } from '../../core.consts';\r\nimport { Product } from '../../interfaces/product';\r\nimport { FilterOptionValue, FilterOption } from '../../interfaces/choose-options/filter-option';\r\nimport { FilterType, FilterElement, DefaultFilter } from '../../interfaces/filter';\r\nimport { PaginationService } from '../pagination.service';\r\nimport { CategoryFilter } from '../../classes/filters/CategoryFilter';\r\nimport { OptionsService } from '../options.service';\r\nimport { AttributesFilter } from '../../classes/filters/AttributesFilter';\r\nimport { DynamicsFilter } from '../../classes/filters/DinamycsFilter';\r\nimport { SortFilter } from '../../classes/filters/SortFilter';\r\nimport { Filter } from '../../classes/filters/Filter';\r\nimport 'rxjs/add/operator/catch';\r\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\r\n\r\n\r\n// Get product from Localstorage\r\nlet products : any = {};\r\ntype order_type = 'asc' | 'desc';\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n\r\n /** ATTRIBUTES */\r\n private subscription;\r\n private productsSubject: BehaviorSubject<Product[]> = new BehaviorSubject([]);\r\n private filtersSubject: BehaviorSubject<Filter[]> = new BehaviorSubject([]);\r\n\r\n public currency = 'USD';\r\n public catalogMode: boolean = false;\r\n public products$ = this.productsSubject.asObservable();\r\n public filters$ = this.filtersSubject.asObservable();\r\n\r\n\r\n private search_value :String;\r\n\r\n /** APIS */\r\n\r\n latestProductsByCategoryApi = (category) => 'shop-api/' + this.constants.getChannel() + '/taxon-products/by-code/' + category;\r\n latestProductsApi = () => 'shop-api/' + this.constants.getChannel() + '/product-latest/';\r\n specificProductApi = (code, variant) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/' + (variant ? 'variant/' : '') + code + '?locale=' + this.constants.getLocale();\r\n productsBySpecialMarkApi = (specialmark) => 'shop-api/' + this.constants.getVersion() + '/' + this.constants.getChannel() + '/special-marks/' + specialmark + '/products/';\r\n relatedProductsApi = (key) => 'shop-api/' + this.constants.getChannel() + '/products/related/by-code/' + key + '?locale=' + this.constants.getLocale();\r\n productVariantApi = (code) => 'shop-api/' + this.constants.getChannel() + '/products/by-code/variant/' + code;\r\n latestProductsByAttributeApi = (attribute) => 'shop-api/' + this.constants.getChannel() + '/products/by-attribute/' + attribute;\r\n productSearchApi = () => 'shop-api/' + this.constants.getChannel() + '/product-search/';\r\n cmsRelatedProductsApi = (page) => 'cms/' + this.constants.getLocale() + '/' + this.constants.getChannel() + '/page/' + page + '/product-related';\r\n productsFilterApi = (filters = '') => 'shop-api/' + this.constants.getChannel() + '/product-search/' + '?locale=' + this.constants.getLocale() + filters;\r\n\r\n constructor(private connection: ConnectionService, private constants: Constants, private pagination: PaginationService, private options: OptionsService) { }\r\n\r\n /** FUNCTIONS */\r\n\r\n getLatestProducts = (limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsApi()) :\r\n this.connection.getWithLimit(this.latestProductsApi(), limit);\r\n\r\n getLatestProductsByCategory = (category: string, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.latestProductsByCategoryApi(category)) :\r\n this.connection.getWithLimit(this.latestProductsByCategoryApi(category), limit);\r\n\r\n getPaginated = (limit: string, page: string): Observable<any> =>\r\n this.connection.getPaginated(this.latestProductsApi(), limit, page);\r\n\r\n getSpecificProduct = (code: string, variant: boolean): Observable<any> =>\r\n this.connection.get(this.specificProductApi(code, variant));\r\n\r\n getProductsBySpecialMark = (specialmark, limit: string = '0'): Observable<any> =>\r\n limit == '0' ? this.connection.get(this.productsBySpecialMarkApi(specialmark)) :\r\n this.connection.getWithLimit(this.productsBySpecialMarkApi(specialmark), limit);\r\n\r\n getRelatedProducts = (key: string): Observable<any> =>\r\n this.connection.get(this.relatedProductsApi(key));\r\n\r\n getProductVariant = (code: string) =>\r\n this.connection.get(this.productVariantApi(code));\r\n\r\n getlatestProductsByAttribute = (attribute) =>\r\n this.connection.get(this.latestProductsByAttributeApi(attribute));\r\n\r\n getSearchedProducts = (content) => {\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.generateFinalApi(content), products?.limit || 8);\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n }\r\n\r\n getCMSRelatedProducts = (page) =>\r\n this.connection.get(this.cmsRelatedProductsApi(page)).catch((err) => of(null));\r\n\r\n getProductsSearched = (search_value, filters?: FilterType[]) => {\r\n this.getProductsForFilter(null, filters, search_value);\r\n }\r\n\r\n /**\r\n * @param products \r\n * @param filters \r\n * @param search_value \r\n * @param defaultFilters \r\n */\r\n getProductsForFilter = (products?: { type?: string, value?: string, limit?: number, latest?: boolean }, filters?: FilterType[], search_value?, defaultFilters?: DefaultFilter[]) => {\r\n this.productsSubject.next([]);\r\n search_value ? this.search_value = search_value : this.search_value = ''; \r\n filters && this.setFilters(products, filters, defaultFilters);\r\n this.pagination.initialize(this.generateFinalApi(search_value), products?.limit || 8);\r\n this.subscription && this.subscription.unsubscribe();\r\n this.subscription = this.pagination.next.subscribe(\r\n res => this.productsSubject.next(res),\r\n err => this.productsSubject.next(null)\r\n )\r\n this.filtersSubject.value.some(filter => filter.type() == 'dynamics')\r\n ? this.pagination.getNext(this.updateDynamicFilters)\r\n : this.pagination.getNext();\r\n }\r\n\r\n setFilters = (products, filters: FilterType[], defaultFilters?: DefaultFilter[]) => {\r\n let final_filters: Filter[] = [];\r\n if (filters?.includes('all')) filters = ['attributes', 'category', 'dynamics', 'sort'];\r\n filters?.forEach(filter => final_filters.push(this.getFilterInstance(filter, products)));\r\n defaultFilters?.forEach(filterDefault => {\r\n let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);\r\n filter && filterDefault.codes.forEach(value => filter.setSelected(value));\r\n })\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getFilterInstance = (filter: string, products): Filter => {\r\n let instance: Filter;\r\n switch (filter) {\r\n case 'category': instance = new CategoryFilter(this.options.categories, this.options.generateMenu, (products.type == 'categories' && products.value)); break;\r\n case 'attributes': instance = new AttributesFilter(this.options.attributes, this.options.generateMenu, (products.type == 'attributes' && products.value)); break;\r\n case 'sort': instance = new SortFilter(); break;\r\n case 'dynamics': instance = new DynamicsFilter(); break;\r\n }\r\n return instance;\r\n }\r\n\r\n updateDynamicFilters = (request) => {\r\n if (!request.options) return;\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == 'dynamics');\r\n index && final_filters[index].setContent(request.options);\r\n this.filtersSubject.next(final_filters);\r\n }\r\n\r\n getNext = (): boolean => !this.pagination.isFinished() && this.pagination.getNext();\r\n\r\n setFilterSelected = (filterObj: Filter, filterElem: FilterElement) => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n let index = final_filters.findIndex(filter => filter.type() == filterObj.type());\r\n final_filters[index].setSelected(filterElem, filterElem.value);\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n updateProductsForFilter = () => {\r\n this.pagination.waiting = true;\r\n this.productsSubject.next([]);\r\n this.pagination.initialize(this.search_value ? this.generateFinalApi(this.search_value) : this.generateFinalApi() );\r\n this.pagination.getNext();\r\n // SI SE ACTUALIZARAN LOS FILTROS DINAMICOS EN EL FUTURO\r\n // let filtersObj = this.filtersSubject.value;\r\n // filtersObj.some(filter => filter.type() == 'dynamics') \r\n // ? this.pagination.getNext(this.updateDynamicFilters) \r\n // : this.pagination.getNext();\r\n }\r\n\r\n /**\r\n * \r\n * @param products Array. Lista de productos.\r\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\r\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\r\n * @returns arreglo con los productos desdoblados por la opción solicitada. \r\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \r\n * \r\n * @description Recibe una lista de productos y retorna los mismos productos tantas veces como variantes tenga. \r\n * cada producto retornado tendrá una única variante.\r\n */\r\n getProductsWithUniqueVariant = (products, withOption: ParamsProductsWithUniqueVariant = { type: 'color' , code: 'color' , defaultFirstOption:false , checkIfStock:true }) => {\r\n\r\n !withOption['code'] && withOption['type'] && (withOption['code'] = withOption['type']) || !withOption['code'] && (withOption['code'] = 'color')\r\n !withOption['type'] && withOption['code'] && (withOption['type'] = withOption['code']) || !withOption['type'] && (withOption['type'] = 'color')\r\n !withOption.hasOwnProperty('defaultFirstOption') && (withOption['defaultFirstOption'] = false)\r\n !withOption.hasOwnProperty('checkIfStock') && (withOption['checkIfStock'] = true)\r\n\r\n let productsUniqueVariant = [];\r\n products.forEach(product => {\r\n let variants = [...product?.variants];\r\n let option = product.options.find(opt => opt.type.toLowerCase() === withOption.type.toLowerCase());\r\n \r\n if (option) {\r\n option.values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type.toLowerCase() == withOption.type.toLowerCase()).values = [{ code: optionValue.code, name: optionValue.name}];\r\n //busco una variante con ese code para asignarle la lista de imagenes\r\n let variantAux = variants.find(\r\n variant => ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(withOption.code.toLowerCase()) || op.hasOwnProperty(withOption.code.toUpperCase())) \r\n && (op[withOption.code.toLowerCase()] || op[withOption.code.toUpperCase()]) === optionValue.code)\r\n \r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n if (withOption.defaultFirstOption && product.options?.length) {\r\n let firstOptions = product.options[0]\r\n product.options[0].values.forEach(optionValue => {\r\n let modified_product = JSON.parse(JSON.stringify(product));\r\n modified_product.options.find(option => option.type == firstOptions.type).values = [{ code: firstOptions.code, name: firstOptions.name }];\r\n let variantAux = variants.find(\r\n variant => {\r\n return ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false ) \r\n && variant.options.length \r\n && variant.options.some(op => (op.hasOwnProperty(firstOptions.code.toLowerCase()) || op.hasOwnProperty(firstOptions.code.toUpperCase())) \r\n && (op[firstOptions.code.toLowerCase()] || op[firstOptions.code.toUpperCase()]) === optionValue.code)\r\n }\r\n );\r\n variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));\r\n })\r\n }else{\r\n productsUniqueVariant.push(product)\r\n }\r\n\r\n }\r\n })\r\n return productsUniqueVariant.length > 0 ? productsUniqueVariant : products;\r\n }\r\n\r\n productWithVariantValues = (product, variant, optionValue) => {\r\n product.picturesdefault = variant.images\r\n product.variant_id = variant.code; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.stock = variant.stock || 0; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.\r\n product.currentOption = {\r\n ...optionValue,\r\n productCode: product.id,\r\n variantCode: variant.code,\r\n stock: variant.stock || 0,\r\n finalPrice: variant.saleprice || variant.price || 0,\r\n }\r\n return product\r\n }\r\n\r\n\r\n cleanAllFilters = () => {\r\n let final_filters: Filter[] = this.filtersSubject.value;\r\n final_filters.forEach(filter => filter.reset());\r\n this.filtersSubject.next(final_filters);\r\n this.updateProductsForFilter();\r\n }\r\n\r\n /** UTILS AND FILTERING */\r\n\r\n isWaiting = () => this.pagination.waiting;\r\n isFinished = () => this.pagination.isFinished();\r\n\r\n generateFinalApi = (search_value?) => {\r\n let extra_params = '';\r\n this.filtersSubject.value.forEach(filter => {\r\n const extra = filter.toUrlParams();\r\n extra.split('=')[1] != '' ? extra_params += extra : null;\r\n })\r\n if (search_value) extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);\r\n return this.productsFilterApi(extra_params);\r\n }\r\n\r\n finished = (): Observable<boolean> => this.pagination.finished$;\r\n\r\n getTotal = () => this.pagination.total;\r\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { OptionsService } from './options.service';\nimport 'rxjs/add/operator/catch';\n\n@Injectable()\nexport class BannerService {\n\n private bannerSubject = new BehaviorSubject<any>({ banners: [], button_route: '' });\n private type;\n private code;\n\n public banner = this.bannerSubject.asObservable();\n\n bannersByTaxonApi = (taxon) => 'api/' + this.constants.getVersion() + '/banners/by-taxon/' + taxon;\n bannersByAttributeApi = (attribute) => 'api/' + this.constants.getVersion() + '/banners/by-attribute/' + attribute;\n\n constructor(private connection: ConnectionService, private constants: Constants, private optionsService: OptionsService) {\n // Get available methods of instance, and update this.methods\n }\n\n getBanner = (type, code) => {\n this.type = type;\n this.code = code;\n if (type && code) {\n if (type == 'taxon' || type == 'categories') {\n this.loadBannersByTaxon(code);\n } else {\n this.loadBannersByAtrribute(code);\n }\n }\n }\n\n getBannersByTaxon(taxon: string): Observable<any> {\n return this.connection.get(this.bannersByTaxonApi(taxon)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(taxon)))\n ));\n }\n\n getBannersByAttribute(attribute): Observable<any> {\n return this.connection.get(this.bannersByAttributeApi(attribute)).pipe(catchError(\n err => this.connection.get(this.bannersByTaxonApi(this.optionsService.getHigher(attribute)))\n ));\n }\n\n loadBannersByTaxon(taxon) {\n this.getBannersByTaxon(taxon).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n loadBannersByAtrribute(attribute) {\n this.getBannersByAttribute(attribute).catch(err => of([])).subscribe(res => {\n res && this.procesateBanners(res);\n })\n }\n\n private procesateBanners(banners) {\n let final_banners = [];\n banners.forEach(banner => final_banners.push(banner.translations.filter(res => res['locale'] == this.constants.getLocale())[0]));\n let button_route = '/collection/' + (this.type == 'taxon' ? 'categories' : 'attributes') + '/' + this.code;\n this.bannerSubject.next({ banners: final_banners, button_route });\n }\n\n getImage = (banner) => (this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getImageFull = (banner) =>\n this.constants.getUrlBase() + ((this.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName);\n\n mobile = () => window.innerWidth < 750;\n\n\n}\n","import { Deserializable } from '../interfaces/deserializable';\n\nexport class User implements Deserializable {\n\n private readonly USER = 'USER';\n public type = 'loguedin';\n public config = {};\n public client_id = 'demo_client';\n public client_secret = 'secret_demo_client';\n public grant_type = 'password';\n public email = '';\n public username = '';\n public password = '';\n public first_name = '';\n public last_name = '';\n public address = { country: '', city: '', state: '', address: '', postcode: '' };\n public birthday = '';\n public gender = '';\n public phone_number = '';\n public suscribed_to_newsletter: boolean = true;\n public document_type? = '';\n public preferred_card? = '';\n public document_number? = '';\n public channels = []\n public customers = []\n public token = '';\n public typeUser? = null;\n\n initilized = res => {\n this.token = res.token\n this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'\n this.username = res.username\n this.email = res.username\n this.channels = res.channels || []\n this.customers = res.customers || []\n }\n\n isWholesaler = () => this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false\n\n isSeller = () => this.typeUser && this.typeUser == 'seller' || false\n\n isRetailCustomer = () => this.typeUser && this.typeUser == 'retail_customer' || false\n\n deserialize(input: any): this {\n return Object.assign(this, input);\n }\n\n jsonify() {\n return {\n client_id: this.client_id,\n client_secret: this.client_secret,\n grant_type: this.grant_type,\n username: this.username,\n email: this.email,\n password: this.password,\n token: this.token,\n typeUser: this.typeUser,\n channels: this.channels,\n customers: this.customers\n }\n }\n\n removePassword() {\n this.password = '';\n }\n\n needsAuth() {\n return this.type == 'loguedin';\n }\n\n toForm = () => {\n return {\n firstName: this.first_name,\n lastName: this.last_name,\n phoneNumber: this.phone_number,\n email: this.email,\n documentType: this.document_type,\n documentNumer: this.document_number,\n street: this.address.address,\n countryCode: this.address.country,\n city: this.address.city,\n provinceName: this.address.state,\n postcode: this.address.postcode\n }\n }\n\n persistInStorage = (key = this.USER) => {\n try {\n const json = this.jsonify()\n const str = JSON.stringify(json)\n localStorage.setItem(key, JSON.stringify(this.jsonify()))\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n loadFromStorage = (key = this.USER) => {\n if (localStorage.getItem(key)) {\n this.deserialize(JSON.parse(localStorage.getItem(key)));\n return true\n }\n return false\n }\n\n removeFromStorage = (key = this.USER) => {\n try {\n localStorage.removeItem(key);\n console.log('usuario removido');\n return true\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n public setChannels = (...channels) => this.channels = channels\n\n}","import { StepI, StepState, StepTypeI } from \"../../interfaces/step\";\n\nexport class Step implements StepI {\n\n public name;\n public priority;\n public type: StepTypeI;\n public data;\n public state: StepState = 'pending';\n\n constructor(name, priority) {\n this.name = name;\n this.priority = priority;\n }\n\n doing = () => {\n this.data = null;\n this.state = 'doing';\n };\n\n restart = () => {\n this.data = null;\n this.state = 'pending';\n }\n\n ready = (data) => {\n this.data = data;\n this.state = 'ready';\n }\n\n isPending = () => this.state == 'pending' || this.state == 'doing';\n\n isReady = () => this.state == 'ready' && this.data;\n}","import { Injectable } from '@angular/core';\nimport { CheckoutData, CheckoutDataType } from '../interfaces/checkout-data';\n\n@Injectable()\nexport class OrderUtilityService {\n\n constructor() { }\n\n /**\n * @param cart Objeto carrito o orden, indistintamente, ya que poseen el mismo formato\n * @param forCart Si la solicitud de promociones proviene del carrito, suprime el subtotal y el total\n * @description Devuelve un listado con todas las promociones que posee el carro/orden\n */\n getPromotions = (cart: any, forCart: boolean = false): CheckoutData[] => {\n if (cart.checkoutState && cart.checkoutState == \"completed\") return;\n let new_state: CheckoutData[] = [];\n let subtotal: CheckoutData = { type: 'subtotal', name: 'subtotal', amount: cart.totals.items };\n let total: CheckoutData = { type: 'total', name: 'total', amount: cart.totals.total };\n !forCart && new_state.push(subtotal);\n cart.cartDiscounts.forEach(cartDiscount => {\n cartDiscount.type = this.formatType(cartDiscount.type);\n new_state.push({\n type: cartDiscount.type,\n name: (cartDiscount.type != 'coupon') ? cartDiscount.name : 'coupon',\n amount: this.getAmount(cartDiscount, cart)\n });\n });\n !forCart && new_state.push(total);\n return new_state;\n }\n\n getAmount = (discount, cart): number => {\n if (discount.type != 'shipment') return discount.amount;\n return cart.totals.shipping;\n }\n\n formatType = (type: string): CheckoutDataType => {\n let result;\n switch (type) {\n case 'order_promotion': result = 'discount'; break;\n case 'order_shipping_promotion': result = 'shipment'; break;\n case 'order_coupon_promotion': result = 'coupon'; break;\n case 'order_unit_promotion': result = 'discount'; break;\n }\n !result && (result = type.includes('promotion') || type.includes('discount') ? 'discount' : type )\n return result || type;\n }\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class DopplerService {\n\n private isLoaded = false;\n private renderer: Renderer2;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixelSrc) => {\n this.isLoaded = true\n let scriptInsert = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptInsert, 'type', 'text/javascript');\n this.renderer.setAttribute(scriptInsert, 'async', 'async');\n this.renderer.setAttribute(scriptInsert, 'src', pixelSrc);\n this.renderer.appendChild(this.document.body, scriptInsert);\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { FacebookPixelData } from '../../interfaces/analytics/facebook-pixel/facebook-pixel-model';\n\ndeclare let fbq: Function;\n\n@Injectable()\nexport class FacebookPixelService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_id) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `!function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', ${pixel_id});`;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n this.enabled = true;\n setTimeout(() => this.callEvent('initialize'), 1000);\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && fbq('track', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'initialize': return 'PageView';\n case 'view_item': return 'ViewContent';\n case 'checkout_init': return 'InitiateCheckout';\n case 'payment_info': return 'AddPaymentInfo';\n case 'purchase': return 'Purchase';\n case 'add_to_cart': return 'AddToCart';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'initialize': return data;\n case 'view_item': return this.toViewContent(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n default: return data;\n }\n }\n \n callCustomEvent = (event_name, data: FacebookPixelData = {}) => {\n if (!this.enabled) return;\n fbq('trackCustom', event_name, data);\n }\n \n disable = () => this.enabled = false;\n\n private toViewContent = (data) => {\n let lastProduct = data?.name || 'not-product'\n return {\n content_type: 'product',\n content_name: lastProduct,\n content_ids: [data.variants[0]?.code],\n currency: data.currency || \"USD\",\n value: data.variants[0]?.saleprice || data.variants[0]?.price,\n //product_catalog_id: 'TEST'\n }\n }\n \n private toPurchase = (data) => {\n return { \n currency: data.currency || \"USD\",\n value: data.totals?.total || 0 ,\n content_type: 'product_group',\n contents: this.getContents(data),\n //product_catalog_id: 'TEST'\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n num_items: data.items?.length || 0,\n value: data.totals?.total || 0 ,\n }\n }\n\n private toPaymentInfo = (data) => {\n return {\n //content_category : \"inicio checkout\",\n content_type: 'product_group',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n }\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]?.product?.name || 'not-product'\n return {\n content_name: lastProduct,\n content_type: 'product',\n contents: this.getContents(data),\n content_ids: this.getContentIds(data),\n currency: data.currency || \"USD\",\n value: data.totals?.total || 0,\n //product_catalog_id: 'TEST'\n\n }\n }\n\n private getContents = (data) => {\n return data.items.map(\n item => {\n return {\n id: item.product.variants[0]?.code,\n quantity: item.quantity\n }\n }\n )\n }\n\n private getContentIds = (data) => {\n return data.items.map(\n item => item.product.variants[0]?.code\n )\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport { ProductsService } from '../../services/products/products.service';\n\ndeclare var gtag: Function;\ndeclare var dataLayer: any[];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleAnalyticsService {\n\n private renderer: Renderer2;\n private enabled = false;\n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any,\n private router: Router, private productsService: ProductsService) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize(gtm_id: string) {\n const declaration = this.renderer.createElement('script');\n declaration.async = true;\n declaration.src = `https://www.googletagmanager.com/gtag/js?id=${gtm_id}`;\n const initialization = this.renderer.createElement('script');\n initialization.text = `window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '${gtm_id}')`;\n this.renderer.appendChild(this.document.head, initialization);\n this.renderer.appendChild(this.document.head, declaration);\n this.enabled = true;\n setTimeout(() => this.startListeningPageViews(gtm_id), 1000);\n }\n\n private startListeningPageViews = (gtm_id) => {\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n gtag('config', gtm_id, {\n 'page_path': event.urlAfterRedirects\n })\n })\n }\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.enabled) return;\n let event = this.translateEventName(event_name);\n event && gtag('event', this.translateEventName(event_name), this.evalEvent(event_name, data));\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item';\n case 'view_item_list': return 'view_item_list';\n case 'checkout_init': return 'begin_checkout'; \n case 'shipping_info': return 'add_shipping_info';\n case 'add_payment_info': return 'add_payment_info';\n case 'purchase': return 'purchase';\n case 'add_to_cart': return 'add_to_cart';\n case 'remove_from_cart': return 'remove_from_cart';\n case 'sign_up': return 'sign_up';\n default: return null;\n //default: return event_name;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item': return this.toViewItem(data);\n case 'view_item_list': return this.toViewItemList(data);\n case 'checkout_init': return this.toCheckoutInit(data);\n case 'shipping_info': return this.toShippingInfo(data);\n case 'add_payment_info': return this.toPaymentInfo(data);\n case 'purchase': return this.toPurchase(data);\n case 'add_to_cart': return this.toAddToCart(data);\n case 'remove_from_cart': return this.toRemoveToCart(data);\n case 'sign_up': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n // console.log('toPurchese', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency,\n // shipping: data.totals.shipping,\n // tax: data.totals.taxes,\n // value: data.totals.total,\n // transaction_id: data.number,\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // }))\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n // console.log('toInitcheckout', {\n // coupon: this.toCartDiscount(data),\n // currency: data.currency || \"USD\",\n // items: data.items.map(item => ({\n // id: item.product.id,\n // name: item.product.name,\n // category: item.product.category,\n // price: item.total,\n // quantity: item.quantity\n // })),\n // value: data.totals?.total || 0,\n // });\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity:lastProduct.quantity,...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n // console.log('addtocart', {\n // data,\n // currency: data.currency || \"USD\",\n // items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n // value: lastProduct.total || 0,\n // });\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n // console.log('view ', {\n // currency: product.currency,\n // items: [this.toItem(product)],\n // value: product.variants[0]?.saleprice || product.variants[0]?.price,\n // });\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n // console.log('toViewItemList ', {\n // items: data.products.map(product => this.toItem(product)),\n // item_list_name: data.item_list_name || 'Collection',\n // item_list_id: data.item_list_id || 'collection'\n // });\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n // console.log('remove_from_cart ', {\n // currency: product.currency || \"USD\",\n // items: [this.toItem({ quantity: product.quantity, ...productParam })],\n // value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n // });\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}","import {Inject, Injectable, Optional} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { AnalyticEventKey } from '../../interfaces/analytics/event-key.model';\nimport {GoogleTagManagerConfig} from '../../interfaces/analytics/gtm-config';\n\n@Injectable({providedIn: 'root'})\nexport class GTMService {\n private isLoaded = false;\n private enabled = false;\n\n\n private config : GoogleTagManagerConfig = { id: null };\n\n private browserGlobals = {\n windowRef(): any {\n return window;\n },\n documentRef(): any {\n return document;\n }\n };\n\n constructor(private router: Router) {}\n\n public getDataLayer(): any[]{\n const window = this.browserGlobals.windowRef();\n window.dataLayer = window.dataLayer || [];\n return window.dataLayer;\n }\n\n private pushOnDataLayer(obj : object): void {\n const dataLayer = this.getDataLayer();\n dataLayer.push(obj);\n }\n\n public addGtmToDom(): Promise < boolean > {\n return new Promise(\n (resolve, reject) => {\n if (this.isLoaded) {\n return resolve(this.isLoaded);\n }\n const doc = this.browserGlobals.documentRef();\n this.pushOnDataLayer({'gtm.start': new Date().getTime(), event: 'gtm.js'});\n\n const gtmScript = doc.createElement('script');\n gtmScript.id = 'GTMscript';\n gtmScript.async = true;\n gtmScript.src = this.applyGtmQueryParams(this.config.gtm_resource_path ? this.config.gtm_resource_path : 'https://www.googletagmanager.com/gtm.js');\n gtmScript.addEventListener('load', () => {\n return resolve(this.isLoaded = true);\n });\n gtmScript.addEventListener('error', () => {\n return reject(false);\n });\n doc.head.insertBefore(gtmScript, doc.head.firstChild);\n }\n );\n }\n\n public initialize = (config : GoogleTagManagerConfig) => {\n this.config = config || this.config;\n this.addGtmToDom().then(() => {\n this.router.events.forEach(item => {\n if (item instanceof NavigationEnd) {\n const gtmTag = {\n event: 'page',\n pageName: item.url\n };\n this.pushTag(gtmTag);\n }\n });\n })\n }\n\n public pushTag(item : object): Promise < void > {\n return new Promise<void>((resolve, reject) => {\n if (!this.isLoaded) {\n this.addGtmToDom().then(() => {\n this.pushOnDataLayer(item);\n return resolve();\n }).catch(() => reject());\n } else {\n this.pushOnDataLayer(item);\n return resolve();\n }\n });\n }\n\n private applyGtmQueryParams(url : string): string {\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n return(url + Object.keys(this.config).filter((k) => this.config[k]).map((k) => `${k}=${\n this.config[k]\n }`).join('&'));\n }\n\n\n callEvent = (event_name: AnalyticEventKey, data = {}) => {\n if (!this.isLoaded) return;\n let event = this.translateEventName(event_name);\n event && this.pushTag({ 'event': this.translateEventName(event_name), data: this.evalEvent(event_name, data) })\n }\n\n translateEventName = (event_name: AnalyticEventKey) => {\n switch (event_name) {\n case 'view_item': return 'view_item_gtm';\n case 'view_item_list': return 'view_item_list_gtm';\n case 'checkout_init': return 'begin_checkout_gtm';\n case 'shipping_info': return 'add_shipping_info_gtm';\n case 'add_payment_info': return 'add_payment_info_gtm';\n case 'purchase': return 'purchase_gtm';\n case 'add_to_cart': return 'add_to_cart_gtm';\n case 'remove_from_cart': return 'remove_from_cart_gtm';\n case 'sign_up': return 'sign_up_gtm';\n default: return null;\n }\n }\n\n evalEvent = (event_name, data) => {\n switch (event_name) {\n case 'view_item_gtm': return this.toViewItem(data);\n case 'view_item_list_gtm': return this.toViewItemList(data);\n case 'checkout_init_gtm': return this.toCheckoutInit(data);\n case 'shipping_info_gtm': return this.toShippingInfo(data);\n case 'add_payment_info_gtm': return this.toPaymentInfo(data);\n case 'purchase_gtm': return this.toPurchase(data);\n case 'add_to_cart_gtm': return this.toAddToCart(data);\n case 'remove_from_cart_gtm': return this.toRemoveToCart(data);\n case 'sign_up_gtm': return this.toSignUp(data);\n default: return data;\n }\n }\n\n private toPurchase = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency,\n shipping: data.totals.shipping,\n tax: data.totals.taxes,\n value: data.totals.total,\n transaction_id: data.number,\n countItems: data.items?.length || 0,\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n }))\n }\n }\n\n private toCheckoutInit = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n value: data.totals?.total || 0,\n }\n }\n\n private toCartDiscount = (data) => {\n let strDiscount = ''\n strDiscount = data.cartDiscounts.map(itemDiscount => itemDiscount?.type).join()\n return strDiscount == '' ? 'not-discount' : strDiscount\n }\n\n private toAddToCart = (data) => {\n let lastProduct = data.items?.length && data.items[data.items.length - 1]\n return {\n currency: data.currency || \"USD\",\n items: [this.toItem({ quantity: lastProduct.quantity, ...lastProduct.product })],\n value: lastProduct.total || 0,\n }\n }\n\n disable = () => this.enabled = false;\n\n private toViewItem = (product) => {\n return {\n currency: product.currency,\n items: [this.toItem(product)],\n value: product.variants[0]?.saleprice || product.variants[0]?.price,\n }\n }\n\n private toViewItemList = (data) => {\n return {\n items: data.products.map(product => this.toItem(product)),\n item_list_name: data.item_list_name || 'Collection',\n item_list_id: data.item_list_id || 'collection'\n }\n }\n\n private toRemoveToCart = (product) => {\n let productParam = product.product\n return {\n currency: product.currency || \"USD\",\n items: [this.toItem({ quantity: product.quantity, ...productParam })],\n value: (productParam.variants[0]?.saleprice || productParam.variants[0]?.price) * product.quantity || 1,\n }\n }\n\n private toItem = (product) => ({\n item_name: product.name,\n item_id: product.id,\n item_brand: product.attributes?.length ? product.attributes[0].name : '',\n item_category: product.category,\n price: product.variants[0]?.saleprice || product.variants[0]?.price,\n quantity: product.quantity || 1,\n })\n\n private toPaymentInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n payment_type: data.payments[0]?.method?.code || 'not-payments',\n value: data.totals?.total || 0,\n }\n }\n\n private toShippingInfo = (data) => {\n return {\n coupon: this.toCartDiscount(data),\n currency: data.currency || \"USD\",\n items: data.items.map(item => ({\n id: item.product.id,\n name: item.product.name,\n category: item.product.category,\n price: item.total,\n quantity: item.quantity\n })),\n shipping_tier: data.shipments[0]?.method?.code || 'not-shipping',\n value: data.totals?.total || 0,\n }\n }\n\n private toSignUp = (data) => {\n return {\n ...data\n }\n }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MetricoolPixel } from \"../../interfaces/analytics/metricool-pixel\";\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class MetricoolPixelService {\n private isLoaded = false;\n\n\n\n private renderer: Renderer2;\n\n \n\n constructor(private rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: any) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n initialize = (pixel_hash) => {\n let new_analityc_script = this.renderer.createElement('script');\n new_analityc_script.type = 'text/javascript';\n new_analityc_script.text = `\n function loadScript(a) {\n var b = document.getElementsByTagName(\"head\")[0], c = document.createElement(\"script\");\n c.type = \"text/javascript\",\n c.src = \"https://tracker.metricool.com/resources/be.js\",\n c.onreadystatechange = a,\n c.onload = a, b.appendChild(c)\n } loadScript(function () {\n beTracker.t({ hash: \"${pixel_hash}\" })\n });\n `;\n this.renderer.appendChild(this.document.body, new_analityc_script);\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { DopplerService } from '../utils/analytics/doppler.service';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { GTMService } from '../utils/analytics/gtm.service';\nimport { MetricoolPixelService } from '../utils/analytics/metricool-pixel.service';\n\n@Injectable()\nexport class AnalyticsService {\n\n private services: any[] = [];\n\n constructor(\n private facebookAnalitycs: FacebookPixelService,\n private googleAnalytics: GoogleAnalyticsService,\n private gtmAnalytics: GTMService,\n private metricoolAnalytics:MetricoolPixelService,\n private dopplerAnalytics:DopplerService) {\n this.services.push(this.facebookAnalitycs);\n this.services.push(this.googleAnalytics);\n this.services.push(this.gtmAnalytics);\n }\n\n initializeFacebook = (value) => {\n this.facebookAnalitycs.initialize(value);\n }\n\n initializeGoogle = (value) => {\n this.googleAnalytics.initialize(value);\n }\n\n initializeGTM = (value) => {\n this.gtmAnalytics.initialize({ id: value });\n }\n\n initializeMetricool = (value) => {\n this.metricoolAnalytics.initialize(value);\n }\n\n initializeDoppler = (value) => {\n this.dopplerAnalytics.initialize(value);\n }\n\n callEvent = (event_name: AnalyticEventKey, data: any = {}) => {\n this.services.forEach(service => {\n service.callEvent(event_name, data)\n });\n }\n}","import { Injectable, Injector } from '@angular/core';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AuthService } from '../auth.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandlerService {\n\n private errorSubject = new BehaviorSubject<BodyError>(null);\n public error$ = this.errorSubject.asObservable();\n\n constructor(private cartService: CartService,\n private toastrService: ToastrService,\n private injector: Injector,\n private consts: Constants) { }\n\n outOfStock = (error: BodyError) => {\n this.cartService.updateItemsOnError(error.content, error.code)\n this.otherErrors(error)\n }\n\n channeAccessPermissionDenied = (error: BodyError) => {\n this.injector.get(AuthService).logout()\n this.otherErrors(error)\n }\n\n otherErrors = (error: BodyError) => {\n error && error.message && this.errorSubject.next(error)\n this.toastrService.show(error.message,'', {closeButton:true,timeOut:6000})\n this.clearError()\n }\n\n clearError = () => {\n setTimeout(() => {\n this.errorSubject.next(null)\n }, 3000);\n }\n\n handlerErrorResponse = (error: BodyError) => {\n switch (error.code) {\n case 'out_of_stock': this.outOfStock(error); break;\n case 'items_with_product_or_product_variant_not_enabled': this.outOfStock(error); break;\n case 'channel_access_permission_denied': this.channeAccessPermissionDenied(error); break;\n default: this.otherErrors(error); break;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class ToastService {\n\n constructor(private translation: TranslateService, private toastrService: ToastrService) {}\n\n show = (message, interpolateParams: any = {}, title = '', configToastr: Partial<IndividualConfig> = { }) => {\n this.translation.get(message, interpolateParams).pipe(take(1)).subscribe(\n res => this.toastrService.show((res ? res : message), title, configToastr)\n );\n }\n}","import { Injectable, OnInit } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\nimport { StepI, StepTypeI } from '../../interfaces/step';\nimport { Step } from '../../classes/checkout/step';\nimport { CheckoutData, CheckoutDataType } from '../../interfaces/checkout-data';\nimport { OrderUtilityService } from '../../utils/order-util.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { AuthService } from '../auth.service';\nimport { User } from '../../classes/user';\nimport { ErrorHandlerService } from './error-handler.service';\nimport { filter, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ToastService } from '../../utils/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CheckoutService implements OnInit {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n putAddressApi = () => this.baseApi() + '/address';\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n completeApi = () => this.baseApi() + '/complete';\n persistShipmentApi = () => '';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getHasPurchaseConditions = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/has_purchase_conditions';\n\n private canCheckoutSubject = new ReplaySubject<boolean>();\n private onReadySubject = new BehaviorSubject<boolean>(false);\n\n private stateSubject = new BehaviorSubject<Step[]>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private orderSubject = new BehaviorSubject<any>(null);\n private asociatedDataSubject = new BehaviorSubject<CheckoutData[]>(null);\n private order: any;\n private checkout_data: any = {};\n public total;\n private cartLocal;\n private user: User;\n\n public order$ = this.orderSubject.asObservable();\n public state$ = this.stateSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public canCheckout$ = this.canCheckoutSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n public onReady$ = this.onReadySubject.asObservable();\n\n constructor(private connection: ConnectionService,\n private cartService: CartService,\n private consts: Constants,\n private toastrService: ToastService,\n private orderUtils: OrderUtilityService,\n private analyticsService: AnalyticsService,\n public authService: AuthService,\n private router: Router,\n private checkoutError: ErrorHandlerService) {\n\n combineLatest([this.cartService.cartItems, this.cartService.loading]).subscribe(([items, loading]) => {\n if (!loading && items.length > 0) {\n this.canCheckoutSubject.next(true)\n this.cartService.getTotalAmount().subscribe(res => {\n this.total = res;\n });\n }\n\n })\n this.cartService.cart.subscribe(cart => cart && (this.cartLocal = cart) && this.updateAsociatedData(cart));\n this.order$.subscribe(order => order && this.updateAsociatedData(order))\n this.authService.getUserProfile().subscribe(user => this.user = user)\n this.checkoutError.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.toastrService.show('redirect-cart')\n setTimeout(() => {\n this.router.navigateByUrl('/cart')\n }, 3000);\n }\n )\n }\n\n ngOnInit() {\n }\n\n updateOrder = (order) => order && this.orderSubject.next(order);\n\n getStepData = (step_name: StepTypeI) => {\n let step_result = this.stateSubject.getValue().find(step => step.name == step_name);\n return (step_result && step_result.data);\n }\n\n setSteps = (steps: StepI[], autohandle = true) => {\n let final_steps = [];\n steps.forEach((step, i) => final_steps.push(new Step(step.name, step.priority || (i + 1))));\n this.stateSubject.next(final_steps);\n this.connection.getErrorNotHandler(this.getHasPurchaseConditions()).toPromise().then(\n res => {\n this.analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total })\n }\n )\n }\n\n setStepReady = async (step_number, data, order?) => {\n await this.restartAllStepsFrom(step_number);\n setTimeout(() => {\n let steps = this.stateSubject.getValue();\n steps.find(step => step.priority == step_number).ready(data);\n this.stateSubject.next(steps);\n\n if (order) {\n this.orderSubject.next(order);\n this.total = order.totals.total;\n }\n\n this.isCheckoutReady() &&\n setTimeout(() => {\n this.onReadySubject.next(true);\n }, 500);\n }, 150);\n return true;\n }\n\n setStepDoing = async (step_number) => {\n let steps = this.stateSubject.getValue();\n steps = await this.restartAllStepsFrom(step_number, false, false);\n steps.find(step => step.priority == step_number).doing();\n this.stateSubject.next(steps);\n return true;\n }\n\n restartAllStepsFrom = (step_number, included = true, update = true) => {\n let steps = this.stateSubject.getValue();\n steps = steps.map((step) => {\n included\n ? (step.priority >= step_number) && step.restart()\n : (step.priority > step_number) && step.restart()\n return step;\n })\n update && this.stateSubject.next(steps);\n return steps;\n }\n\n isCheckoutReady = () => {\n let steps = this.stateSubject.value;\n const step_missing = steps.find(step => step.isPending());\n return !step_missing;\n }\n\n isStepReady = (step_name) => {\n return this.stateSubject.getValue().find(step => step.name == step_name).isReady()\n };\n\n setOrder = (order) => { this.order = order, this.orderSubject.next(order) };\n getOrder = () => this.order || this.orderSubject.value;\n\n private completeOrder = () => this.connection.put(this.completeApi(), { email: this.checkout_data.email, notes: this.checkout_data.notes || '' }).toPromise();\n\n complete = async () => {\n this.loadingSubject.next(true);\n let result = await this.completeOrder();\n if (result && result.error) {\n this.cartService.changeHaveToUpdate(false);\n this.loadingSubject.next(false);\n return ({ ok: false, require_login: true, message: 'not-completed' });\n }\n this.setOrder(result);\n this.analyticsService.callEvent('purchase', { ...result, currency: result.currency, value: result.total });\n this.cartService.clearAndResetCart();\n this.canCheckoutSubject.next(false);\n this.onReadySubject.next(false);\n this.loadingSubject.next(false);\n return ({ ok: true, require_login: false, message: '' });\n }\n\n updateAsociatedData = (cart: any) => {\n let result = this.orderUtils.getPromotions(cart);\n if (this.authService.getUserProfileAsUser()?.isWholesaler() && cart.totals.taxes != 0) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'taxes',\n name: 'taxes',\n amount: cart.totals.taxes\n }\n result.push(total);\n }\n let shipment = result?.find(promotion => promotion.type == \"shipment\");\n if (!shipment && cart.totals.shipping != 0) {\n\n if (result?.length && !result.find(item => item.type === \"shipment\")) {\n let total = { ...result[result.length - 1] };\n result[result.length - 1] = {\n type: 'shipment',\n name: 'shipment',\n amount: cart.totals.shipping\n }\n result.push(total);\n }\n }\n this.asociatedDataSubject.next(result);\n }\n\n restartCheckout = () => { }\n\n}","import { BodyError } from \"../../interfaces/checkout/checkout-error\";\nimport { CheckoutService } from \"../../services/checkout/checkout.service\";\n\nexport class StepService {\n\n public step_id;\n\n constructor(private checkout: CheckoutService) { }\n\n /** Persistir el id del paso para luego indicarle al CheckoutService quien le habla */\n initialize = (step_id) => {\n this.step_id = step_id;\n }\n\n /** Reinicia información en CheckoutService del paso */\n restartStep = () => this.checkout.setStepDoing(this.step_id);\n\n /**\n * Obtener información obtenida en el paso de datos asociados al usuario y a la facturación\n */\n getUserData = () => this.checkout.getStepData('address');\n\n /**\n * Obtener información obtenida en el paso de envío\n */\n getShipmentData = () => this.checkout.getStepData('shipment');\n\n /**\n * Obtener información obtenida en el paso de pago\n */\n getPaymentData = () => this.checkout.getStepData('payment');\n\n /**\n * \n * @param step_data Información obtenida en el paso\n * @param order Información de la orden que devolvió el backend al terminar el paso\n */\n setStepReady = async (step_data, order) => (await this.restartStep()) && this.checkout.setStepReady(this.step_id, step_data, order);\n\n /**\n * \n */\n //setError = (error: BodyError) => error && this.checkout.handleError(error);\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\nimport { Validators } from '@angular/forms';\n\ntype typeForms = 'EUR' | 'ARG';\ntype typeSelectAddres = 'ONLY_LOAD_ADDRESS' | 'ONLY_ADDRESS_SELECTION' | 'LOAD_ADDRESS_AND_SELECTION';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AddressingService extends StepService {\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n countriesApi = () => 'shop-api/' + this.consts.getChannel() + '/countries';\n zonesApi = () => 'shop-api/' + this.consts.getChannel() + '/zones';\n provincesApi = () => 'shop-api/' + this.consts.getChannel() + '/provinces';\n putAddressApi = () => this.baseApi() + '/address';\n addressBookApi = () => 'shop-api/' + this.consts.getChannel() + '/address-book';\n headquarterApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() +'/headquarter';\n\n public typeForms: typeForms = 'ARG';\n public modeSelectAddress: typeSelectAddres = 'ONLY_LOAD_ADDRESS';\n public countriesList = [];\n public documentTypes = [];\n public provinceList = [];\n\n constructor(private connection: ConnectionService, private consts: Constants, private cartService: CartService, private checkoutService: CheckoutService,\n private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getAddressingData().then(res => {\n if (res) {\n this.documentTypes = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.documentTypes || []\n this.provinceList = (res.find(paises => this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase())))?.provinces || []\n this.countriesList = res\n }\n })\n }\n\n ngOnInit() {\n\n }\n\n getAddressingData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res?._embedded?.items)).toPromise();\n\n getAddressBook = async () =>\n this.connection.get(this.addressBookApi()).pipe(map(res => res?.length && res.map(addres => { return addres && { ...addres, selected: addres.default } }) || null )).toPromise();\n \n setHeadquarter = (sede: any) => {\n return this.connection.put(this.headquarterApi(), sede.selected)\n .pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(sede, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n \n setAddress = (user_data: any) => {\n user_data.locale = this.consts.getLocale();\n return this.connection.put(this.putAddressApi(), user_data).pipe(map(order => {\n if (order && order.error) {\n this.cartService.changeHaveToUpdate(false);\n return false;\n }\n this.setStepReady(user_data, order);\n this.analyticsService.callEvent('payment_info', order);\n return order;\n })).toPromise().then(\n res => res,\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n putAddressAndHandle = (user_data, next?, onError?) => {\n user_data.locale = this.consts.getLocale();\n let data = { shippingAddress: { ...user_data.data } };\n this.connection.put(this.putAddressApi(), data).toPromise().then(\n res => {\n this.setStepReady(user_data, res);\n this.analyticsService.callEvent('payment_info', res);\n next && next();\n },\n err => onError && onError(err)\n )\n }\n\n getTypeForm = () => {\n let formsTypeCofig = [\n {\n code: 'EUR',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n terms: [null, Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', []],\n documentNumber: ['', []],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: false, values: this.documentTypes },\n documentNumber: { enabled: true, required: false, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: true, required: true, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n },\n {\n code: 'ARG',\n configForm: {\n formAddres: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n },\n formBilling: {\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: [null, [Validators.required]],\n city: ['', Validators.required],\n provinceCode: [null, [Validators.required]],\n postcode: ['', Validators.required],\n notes: ['']\n }\n },\n viewForms: {\n firstName: { enabled: true, required: true, values: [] },\n lastName: { enabled: true, required: true, values: [] },\n phoneNumber: { enabled: true, required: true, values: [] },\n email: { enabled: true, required: true, values: [] },\n documentType: { enabled: true, required: true, values: this.documentTypes},\n documentNumber: { enabled: true, required: true, values: [] },\n street: { enabled: true, required: true, values: [] },\n countryCode: { enabled: true, required: true, values: [] },\n city: { enabled: true, required: true, values: [] },\n provinceCode: { enabled: true, required: true, values: [] },\n postcode: { enabled: true, required: true, values: [] },\n terms: { enabled: false, required: false, values: [] },\n notes: { enabled: true, required: false, values: [] }\n }\n }\n ]\n return formsTypeCofig.find(ct => ct.code == this.typeForms);\n }\n\n setTypeSelectAddres = (type: typeSelectAddres) => {\n console.log(\"Setting type: \", type)\n this.modeSelectAddress = type && type || 'ONLY_LOAD_ADDRESS'\n\n }\n\n setTypeForms = (type: typeForms) => {\n this.typeForms = type && type || 'ARG' \n }\n}","\nimport { Injectable, Inject, Injector } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ConnectionService } from '../api/connection.service';\nimport { AddressingService } from './checkout/addressing.service';\nimport { Constants } from '../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChannelConfigService {\n\n constructor(private consts: Constants, @Inject('env') private env, private connection: ConnectionService, private injector: Injector) {\n this.getChannelConfig()\n this.getChannels()\n this.getLocales()\n }\n\n private channelConfigApi = () => 'shop-api/' + this.consts.getChannel() + '/channel'\n private localesApi = () => 'shop-api/' + this.consts.getChannel() + '/locales'\n private channelsApi = () => 'shop-api/channels'\n\n private channelConfigSubject = new ReplaySubject<any>()\n public channelConfig$ = this.channelConfigSubject.asObservable()\n\n private channelsSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public channels = this.channelsSubject.asObservable()\n\n private localesSubject: BehaviorSubject<any> = new BehaviorSubject([])\n public locales = this.localesSubject.asObservable()\n\n public getChannelConfig = () => {\n this.connection.get(this.channelConfigApi()).toPromise().then(\n res => { this.channelConfigSubject.next(res), res && this.consts.setChannel(res.code) },\n err => this.channelConfigSubject.next({})\n ).catch(err => this.channelConfigSubject.next(null))\n }\n\n public getChannels = () => {\n this.connection.get(this.channelsApi()).toPromise()\n .then(res => this.channelsSubject.next(res))\n .catch(err => this.channelsSubject.next([]))\n }\n\n public getLocales = () => {\n this.connection.get(this.localesApi()).toPromise()\n .then(res => this.localesSubject.next(res.items))\n .catch(err => this.localesSubject.next([]))\n }\n\n public changeChannel = channelObj => {\n console.log(\"Channel: \", channelObj)\n this.consts.modifyChannelConfig({\n channel: channelObj.code,\n locale: channelObj.defaultLocale.code\n /* channeltype: channelObj.type */\n /* currency: channelObj.baseCurrency */\n })\n this.injector.get(AddressingService).setTypeSelectAddres(channelObj.headquarterSelectionOnly || null)\n }\n\n}\n\n","import { Injectable, Injector } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { User } from '../classes/user';\nimport 'rxjs/add/observable/of';\nimport { ToastrService } from 'ngx-toastr';\nimport { Constants } from '../core.consts';\nimport { map, mapTo, catchError, tap } from 'rxjs/operators';\nimport * as moment from \"moment\";\nimport { ChannelConfigService } from './channel-config.service';\nimport { take } from 'rxjs-compat/operator/take';\nimport { CartService } from './cart.service';\nimport { Router } from '@angular/router';\nimport { UserRoleType } from '../classes/user-role-type';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private readonly JWT_TOKEN = 'JWT_TOKEN'\n private readonly REFRESH_TOKEN = 'REFRESH_TOKEN'\n private readonly EXPIRATES_IN = 'EXPIRATES_IN'\n private readonly USER = 'USER'\n private readonly MAIL = 'mail'\n private readonly LOCALE = 'LOCALE'\n private readonly CHANNEL = 'CHANNEL'\n private readonly CUSTOMER = 'CUSTOMER'\n\n /* activeChannelSwitch? */\n private activeChannelChange: boolean = false\n private loggedInSubject = new BehaviorSubject<any>(false)\n private loggingInSubject = new BehaviorSubject<any>(false)\n private userInSubject = new BehaviorSubject<User>(null)\n private channelsUserSubject = new BehaviorSubject<any[]>([])\n /* private customerSubject = new BehaviorSubject<any>(null) */\n private user: User = null\n\n // APIS\n public tokenApi = () => 'shop-api/login_check';\n public registerApi = () => 'shop-api/' + this.constants.getChannel() + '/register';\n public registerWholesalerApi = () => 'shop-api/' + this.constants.getChannel() + '/register-wholesaler';\n public confirmAccountApi = (token) => 'shop-api/' + this.constants.getChannel() + '/verify-account?token=' + token;\n public resetPasswordApi = (token) => 'shop-api/' + this.constants.getChannel() + '/password-reset/' + token;\n public recoverPasswordApi = () => 'shop-api/' + this.constants.getChannel() + '/request-password-reset';\n public countriesApi = () => 'shop-api/' + this.constants.getChannel() + '/countries';\n\n // Atributos utiles\n public waiting = false;\n public loggedIn = this.loggedInSubject.asObservable()\n public loggingIn = this.loggingInSubject.asObservable()\n public userAuth = this.userInSubject.asObservable()\n public channelsUser = this.channelsUserSubject.asObservable()\n /* private customer = this.channelsUserSubject.asObservable() */\n private customer = null\n public channel = null\n public channels = []\n private homeResolver = null\n\n constructor(private connection: ConnectionService,\n private toastrService: ToastrService,\n private constants: Constants,\n private injector: Injector\n ) {\n this.isAuthenticated() && this.loggedInSubject.next(true)\n }\n\n /**\n * @desc Devuelve un observable\n * @param user Objeto que contiene username y password \n */\n login(user: { username: string, password: string }, withRoles: UserRoleType[] = []): Observable<any> {\n this.injector.get(ChannelConfigService).channelConfig$.subscribe(ch => this.channel = ch)\n this.injector.get(ChannelConfigService).channels.subscribe(ch => this.channels = ch)\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n let result = this.connection.post(this.tokenApi(), user).pipe(\n map(res => {\n if (this.channelAccessPermission({ ...user, ...res }) && this.isAllowedRole(withRoles, res.type)) {\n this.doLoginUser({ ...user, ...res })\n return 'ok'\n }\n return 'error'\n }),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n );\n return result\n }\n\n channelAccessPermission = (res) => {\n this.channelsUserSubject.next([])\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n /* if (UserRoleType.SELLER == res.type as UserRoleType) return true */\n\n /* No authorized channels */\n if (res.channels?.length == 0) {\n return false\n }\n /* Some authorized channel(s) including current channel */\n if (res.channels.find(userchannel => userchannel.code === this.channel.code)) {\n /* Multiple authorized channels including current channel */\n if (res.channels?.length > 1 && this.activeChannelChange)\n this.channelsUserSubject.next(res.channels)\n return true\n }\n /* One authorized channel not including current channel */\n if (res.channels?.length == 1 && this.activeChannelChange) {\n delete res.password\n this.channelAccess(res.channels[0], res)\n return true\n }\n /* Multiple authorized channels not including current channel */\n if (this.activeChannelChange) {\n this.channelsUserSubject.next(res.channels)\n return true\n }\n return false\n }\n\n channelAccess = (channel, user = null) => {\n if (window.location.hostname != channel.hostname) {\n let encoded = btoa(JSON.stringify(user != null ? user : this.user))\n window.location.replace(`${window.location.protocol}//${channel.hostname}/auth/redirect/${encoded}`)\n } else {\n this.constants.modifyChannelConfig(channel)\n window.location.reload()\n }\n }\n\n /**\n * @desc Devuelve una promesa\n * @param user Objeto que contiene username y password \n */\n doLogin = (user: { username: string, password: string }) => {\n this.loggingInSubject.next(true);\n user = { ...user, ...this.constants.loginExtraData() };\n return this.connection.post(this.tokenApi(), user).pipe(\n map(res => this.doLoginUser(res)),\n mapTo('ok'),\n catchError(err => {\n this.loggingInSubject.next(false);\n return of(err.toString());\n })\n ).toPromise();\n }\n\n getUserProfile(): Observable<User> {\n return (this.user && Observable.of(this.user)) || this.getCurrentUser();\n }\n\n getUserProfileAsUser(): User {\n return this.user || this.getCurrentUserAsUser();\n }\n\n private getCurrentUserAsUser(): User {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n else if (this.user?.channels.find(userchannel => userchannel?.code === this.constants.getChannel())) {\n // this.user.channels?.length > 1 && this.channelsUserSubject.next(this.user.channels)\n return this.user;\n } else {\n this.logout()\n //window.location.reload()\n }\n return this.user;\n }\n\n private getCurrentUser(): Observable<User> {\n this.user = new User();\n if (!this.user.loadFromStorage()) {\n this.user = null\n }\n return Observable.of(this.user);\n }\n\n // private getCurrentUser(): Observable<User> {\n // return this.connection.get('getProfile').map(res => {\n // const user = new User();\n // this.user = user.deserialize(res.data);\n // return user;\n // });\n // }\n\n signUp = (data) => this.connection.post(this.registerApi(), data);\n\n isAuthenticated(): boolean {\n if (this.isTokenExpired()) {\n this.doLogoutUser()\n }\n this.getCurrentUserAsUser()\n this.userInSubject.next(this.user);\n return this.getToken() && !this.isTokenExpired() && this.user != null;\n }\n\n confirmAccount = (token: string) =>\n this.connection.get(this.confirmAccountApi(token));\n\n passwordReset = (new_password, token) => {\n const data = { password: { first: new_password, second: new_password } };\n return this.connection.put(this.resetPasswordApi(token), data);\n }\n\n recoverPassword = (email: string) =>\n this.connection.put(this.recoverPasswordApi(), { email });\n\n /* TOKEN */\n\n logout() {\n this.doLogoutUser();\n }\n\n refreshToken() {\n let data = { ...this.constants.loginExtraData(), refresh_token: this.getRefreshToken() }\n return this.connection.post(this.tokenApi(), data).pipe(map(\n res => this.doLoginUser(res)\n ))\n }\n\n getToken() {\n return localStorage.getItem(this.JWT_TOKEN);\n }\n\n isTokenExpired = () => {\n const fecha_expiracion = this.getExpiratesAt();\n const result = moment() >= moment(fecha_expiracion);\n return result;\n }\n\n getExpiratesAt = () => localStorage.getItem(this.EXPIRATES_IN);\n\n public doLoginUser(tokens) {\n this.user = new User()\n this.user.initilized(tokens)\n this.forceChannelsForSeller(tokens)\n this.user.persistInStorage()\n // localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'days').format());\n // localStorage.setItem(this.REFRESH_TOKEN, tokens.refresh_token);\n localStorage.setItem(this.EXPIRATES_IN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.REFRESH_TOKEN, moment(tokens.expires_in).add(1, 'h').format());\n localStorage.setItem(this.JWT_TOKEN, tokens.token);\n localStorage.setItem(this.MAIL, tokens.username);\n this.userInSubject.next(this.user);\n this.loggedInSubject.next(true);\n this.loggingInSubject.next(false);\n }\n\n public doLogoutUser() {\n this.user = null\n localStorage.removeItem(this.USER);\n localStorage.removeItem(this.EXPIRATES_IN);\n localStorage.removeItem(this.JWT_TOKEN);\n localStorage.removeItem(this.REFRESH_TOKEN);\n localStorage.removeItem('cart_token');\n localStorage.removeItem(this.MAIL);\n localStorage.removeItem(this.CHANNEL);\n localStorage.removeItem(this.LOCALE);\n localStorage.removeItem(this.CUSTOMER);\n localStorage.removeItem('MASTER_CHANNEL');\n this.loggedInSubject.next(false);\n this.userInSubject.next(this.user);\n this.channelsUserSubject.next([])\n }\n\n private getRefreshToken() {\n return localStorage.getItem(this.REFRESH_TOKEN);\n }\n\n hasToRefresh = () => this.getRefreshToken();\n\n signUpWholesaler = (data) => this.connection.post(this.registerWholesalerApi(), data);\n\n getCountriesData = async () =>\n this.connection.get(this.countriesApi()).pipe(map(res => res._embedded.items)).toPromise();\n\n public setActiveChannelChange = (activelyChangeChannelsOnLogin: boolean) => this.activeChannelChange = activelyChangeChannelsOnLogin\n\n private isAllowedRole = (allowedRoles: UserRoleType[], role: string) => {\n return allowedRoles.length\n ? allowedRoles.includes(role as UserRoleType)\n : true\n }\n\n /* Please remove this ASAP - Needs *channels* array in user object ALWAYS */\n private forceChannelsForSeller = tokens => {\n if (UserRoleType.SELLER == tokens.type as UserRoleType)\n this.channels?.length\n ? this.user.setChannels(...this.channels)\n : this.user.setChannels(this.channel)\n }\n\n public setCustomer = customer => {\n /* this.customerSubject.next(customer) */\n this.customer = customer\n localStorage.setItem(this.CUSTOMER, JSON.stringify(customer))\n this.injector.get(CartService).clearAndResetCustomerCart()\n }\n\n /* public getCustomer = () => Observable.of(JSON.parse(localStorage.getItem(this.CUSTOMER))) */\n\n public getCustomer = () => {\n /* this.customerSubject.next(JSON.parse(localStorage.getItem(this.CUSTOMER)))\n return this.customer */\n return this.customer || JSON.parse(localStorage.getItem(this.CUSTOMER))\n }\n\n public setHomeResolver = resolverFunction => this.homeResolver = resolverFunction\n\n public getHomeResolver = () => this.homeResolver\n\n public isAbleToBuy = (): boolean => !this.getUserProfileAsUser()?.isSeller() || !!this.getCustomer()\n\n}","import { Injectable } from '@angular/core';\r\nimport { Product } from '../interfaces/product';\r\nimport { CartItem } from '../interfaces/cart-item';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConnectionService } from '../api/connection.service';\r\nimport { Constants } from '../core.consts';\r\nimport { AuthService } from './auth.service';\r\nimport { ToastService } from '../utils/toast.service';\r\nimport { CouponI } from '../interfaces/coupon';\r\nimport { OrderUtilityService } from '../utils/order-util.service';\r\nimport { CheckoutData } from '../interfaces/checkout-data';\r\nimport { CartAffordable } from '../interfaces/cart/cart-affordable';\r\nimport { ChannelConfigService } from './channel-config.service';\r\nimport { AnalyticsService } from '../../public-api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService {\r\n private cartItemsSubject: BehaviorSubject<CartItem[]> = new BehaviorSubject([]);\r\n private couponSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private cartSubject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n private requestInProcess = new BehaviorSubject(false);\r\n private promotionsSubject: BehaviorSubject<CheckoutData[]> = new BehaviorSubject([]);\r\n\r\n private items = [];\r\n private count: number = 0;\r\n private locale = \"\";\r\n private logged_in = false;\r\n private have_to_update = true;\r\n public channelConfig: any = {};\r\n private cart_baseUrl = 'shop-api/' + this.consts.getChannel() + '/carts';\r\n\r\n public cartItemsApi = () => this.cart_baseUrl;\r\n public addItemApi = () => this.cart_baseUrl + '/' + this.cart_token + '/items';\r\n public addAllItemsApi = () => this.cart_baseUrl + '/' + this.cart_token + '/multiple-items';\r\n public updateItemQuantityApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public deleteItemApi = (item_id) => this.cart_baseUrl + '/' + this.cart_token + '/items/' + item_id;\r\n public couponApi = () => this.cart_baseUrl + '/' + this.cart_token + '/coupon';\r\n\r\n public cart_token;\r\n public cartItems = this.cartItemsSubject.asObservable().pipe(map(items => this.switchPriceInCartItem(items)))\r\n public coupon = this.couponSubject.asObservable();\r\n public loading = this.requestInProcess.asObservable();\r\n public cart = this.cartSubject.asObservable();\r\n public promotions = this.promotionsSubject.asObservable();\r\n\r\n constructor(private connection: ConnectionService, private toastrService: ToastService, private consts: Constants,\r\n private authService: AuthService, private orderUtils: OrderUtilityService, private analyticsService: AnalyticsService,\r\n private channelConfigService: ChannelConfigService) {\r\n\r\n this.requestInProcess.next(true);\r\n this.items = JSON.parse(localStorage.getItem('cart')) || [];\r\n this.cart_token = localStorage.getItem('cart_token') || null;\r\n this.authService.loggedIn.subscribe(res => this.getCart());\r\n this.channelConfigService.channelConfig$.subscribe(res => this.channelConfig = res);\r\n }\r\n\r\n\r\n private getCart = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token && this.items.length >= 1) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByToken = async () =>\r\n this.connection.post(this.cartItemsApi(), ((this.cart_token) && { token: this.cart_token })).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n private getCartByCustomer = async () =>\r\n this.connection.post(this.cartItemsApi()).subscribe(\r\n res => this.initializeCart(res)\r\n )\r\n\r\n /**\r\n * @private\r\n * CART CRUD SERVER'S SYNCRONIZED\r\n */\r\n\r\n private initializeCart = (response) => {\r\n this.cart_token = response.tokenValue;\r\n localStorage.setItem('cart_token', this.cart_token);\r\n this.locale = response.locale;\r\n this.updateCartObj(response, false);\r\n this.updateCartItems(this.transformItems(response.items));\r\n this.requestInProcess.next(false);\r\n return true;\r\n }\r\n\r\n private switchPriceInCartItem = (items: CartItem[]) => {\r\n //return items;\r\n return items.map(\r\n item => {\r\n if (item.product) {\r\n item.product.price = item.product.variants[0].saleprice ? item.product.variants[0].saleprice : item.product.variants[0].price\r\n }\r\n return item\r\n }\r\n )\r\n }\r\n\r\n private stepCart = (res) => {\r\n res.items.length > 0 && res.items.forEach(\r\n item => !this.isItemInLocal(item.id) && this.deleteCartItem(item, false)\r\n );\r\n this.addAllToCart(\r\n this.items.filter(\r\n item => !res.items.some(external_item => external_item.id == item.item_id)\r\n )\r\n );\r\n }\r\n\r\n private updateCartItems = (items) => {\r\n this.items = items;\r\n this.count = items.length;\r\n this.cartItemsSubject.next(this.items);\r\n this.updateLocalCart();\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n private updateCartItemQuantity = (variant_id, quantity) => {\r\n let newQuantity = this.items.find(item => item.variant_id == variant_id).quantity = quantity;\r\n this.cartItemsSubject.next(this.items);\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-updated', {quantity:newQuantity});\r\n }\r\n\r\n private appendToCart = (cart) => {\r\n this.updateCartObj(cart);\r\n this.items = this.transformItems(cart.items);\r\n this.count = this.items.length;\r\n this.requestInProcess.next(false);\r\n this.updateLocalCart();\r\n this.toastrService.show('product-added');\r\n this.cartItemsSubject.next(this.items);\r\n }\r\n\r\n private removeCartItem = (cart, product, toast = true) => {\r\n this.updateCartObj(cart, false);\r\n this.items.splice(this.items.findIndex(item => item.item_id == product.item_id), 1);\r\n this.cartItemsSubject.next(this.items);\r\n toast && this.requestInProcess.next(false);\r\n toast && this.toastrService.show('product-removed');\r\n this.updateLocalCart();\r\n // this.googleAnalytics.removeFromCart(product);\r\n this.analyticsService.callEvent('remove_from_cart', { ...product, currency: this.consts.currency.code })\r\n }\r\n\r\n private addIfAllreadyExists = (product, variant_id, quantityAdd = 1) =>\r\n this.items.find((item, index) => {\r\n if (item.product.id == product.id && item.variant_id == variant_id) {\r\n this.updateItemQuantity(item, this.findItem(product.id).quantity + quantityAdd);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n private updateLocalCart = () => {\r\n localStorage.setItem('cart', JSON.stringify(this.items));\r\n }\r\n\r\n private resetCart = (next?) => {\r\n this.items = [];\r\n this.cartSubject.next(null);\r\n this.cart_token = null;\r\n this.cartItemsSubject.next([]);\r\n this.count = 0;\r\n localStorage.setItem('cart', \"[]\");\r\n localStorage.removeItem('cart_token');\r\n next && next();\r\n }\r\n\r\n private updateCartObj = (cart, emitEvent = true): boolean => {\r\n this.cartSubject.next(cart);\r\n emitEvent && this.analyticsService.callEvent('add_to_cart', cart);\r\n this.promotionsSubject.next(this.orderUtils.getPromotions(cart, true));\r\n\r\n cart.couponCode\r\n ? this.formatCoupon(cart)\r\n : this.couponSubject.next(null);\r\n return true;\r\n }\r\n\r\n private isItemInLocal = (item_id) => this.items.some(item => item.item_id == item_id);\r\n\r\n /**\r\n * @public\r\n * CART CRUD\r\n */\r\n\r\n addToCart = (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n !added && this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id })\r\n .subscribe(\r\n res => this.appendToCart(res),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n addToCartPromise = async (product: Product, quantity: number, variant_id) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n let added = this.addIfAllreadyExists(product, variant_id, quantity);\r\n if (!added) {\r\n let result = await (this.connection.post(this.addItemApi(), { productCode: product.id, quantity: quantity, variantCode: variant_id }).toPromise());\r\n if (!result || result.error) this.handleError(result.error);\r\n else {\r\n this.appendToCart(result);\r\n return { error: false }\r\n }\r\n }\r\n return { error: true }\r\n }\r\n\r\n\r\n addAllToCart = (items: any[]) => {\r\n if (!this.authService.isAbleToBuy()) {\r\n this.toastrService.show('must-select-customer')\r\n return\r\n }\r\n\r\n this.requestInProcess.next(true);\r\n\r\n const params = { items: this.mergeItemsAddAllToCart(items) };\r\n\r\n this.connection.post(this.addAllItemsApi(), params)\r\n .toPromise().then(\r\n res => {\r\n this.updateCartObj(res.cart) && this.updateCartItems(this.transformItems(res.cart.items));\r\n res.cart_response.status == 'success' && this.toastrService.show('products-added');\r\n },\r\n err => {\r\n this.handleError(err);\r\n }\r\n ).catch(err => {\r\n this.handleError(err);\r\n });\r\n }\r\n\r\n mergeItemsAddAllToCart = (items: any[]) => {\r\n let paramsMerge = []\r\n this.items.forEach(item => {\r\n let itemInterno = items.find(itemParam => itemParam.variantCode == item.variant_id)\r\n paramsMerge.push(\r\n {\r\n productCode: item.product.id,\r\n variantCode: item.variant_id,\r\n quantity: itemInterno && itemInterno.quantity || item.quantity\r\n }\r\n )\r\n })\r\n\r\n items = items.filter(itemParam => !this.items.find(item => itemParam.variantCode == item.variant_id))\r\n\r\n return [...items, ...paramsMerge]\r\n }\r\n\r\n updateItemQuantity = (item: CartItem, quantity) => {\r\n if (this.validateQuantity(item, quantity)) {\r\n this.connection.put(this.updateItemQuantityApi(this.findItemByIdVariant(item.variant_id)), { 'quantity': Number(quantity) }).subscribe(\r\n res => this.updateCartObj(res) && this.updateCartItemQuantity(item.variant_id, Number(quantity)),\r\n err => this.handleError(err)\r\n )\r\n }\r\n }\r\n\r\n\r\n validateQuantity = (item: CartItem, quantity) => {\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) > item.product.variants[0].maximumItemsQuantity) {\r\n this.toastrService.show('maximum-items-quantity', { quantity: item.product.variants[0].maximumItemsQuantity })\r\n return false\r\n }\r\n if ((this.getCountFromItemInCart(item.productCode) + quantity) < item.product.variants[0].minimumItemsQuantity) {\r\n this.toastrService.show('minimum-items-quantity', { quantity: item.product.variants[0].minimumItemsQuantity })\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n calculateStockCounts = (item: CartItem, quantity) => {\r\n if (item.product.stock < item.quantity + quantity) {\r\n // this.toastrService.show('out-of-stock');\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n deleteCartItem = (item, toast = true) => {\r\n let id_buscado = this.findItemByIdVariant(item.variant_id)\r\n this.connection.delete(this.deleteItemApi(id_buscado)).subscribe(\r\n res => this.removeCartItem(res, item, toast),\r\n err => this.handleError(err)\r\n )\r\n }\r\n\r\n clearCart() {\r\n //solucion provisaoria\r\n let items = [...this.items]\r\n while (items && items.length > 0) {\r\n this.deleteCartItem(items.pop(), false)\r\n }\r\n //this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCart() {\r\n this.resetCart(this.getCart);\r\n }\r\n\r\n clearAndResetCustomerCart() {\r\n console.log(\"Clearing and reseting...\")\r\n this.resetCart(this.getCartByCustomer)\r\n }\r\n\r\n handleError = (error: { error: string }) => {\r\n this.toastrService.show('operation-error-param');\r\n this.requestInProcess.next(false);\r\n }\r\n\r\n getCountFromItemInCart = (codeVariant): number => this.items.find(item => item.variant_id == codeVariant)?.quantity || 0;\r\n\r\n findItemByIdVariant = (variant_id) => this.items.find(item => item.variant_id == variant_id).item_id\r\n\r\n findItem = (product_id) => this.items.find(item => item.product.id == product_id);\r\n\r\n /** DATA FOR OTHER SERVICES */\r\n getCartToken = () => this.cart_token;\r\n\r\n getLocale = () => this.locale;\r\n\r\n getTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.total));\r\n\r\n getCountCartItems = (): Observable<number> =>\r\n this.cartItems.pipe(map((cartItems) => cartItems?.length));\r\n\r\n getTaxesAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.taxes > 0 ? cart?.totals?.taxes : 0));\r\n\r\n getSubTotalAmount = (): Observable<number> =>\r\n this.cart.pipe(map((cart) => cart?.totals?.items));\r\n\r\n toDecimal = (total) => (total - Math.floor(total) == 0) ? total / 100 : total\r\n\r\n getDiscount(): Observable<number> {\r\n return this.cartItems.pipe(map((product) => {\r\n let total = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.saleprice * curr.quantity;\r\n }, 0);\r\n let subtotal = this.items.reduce((prev, curr) => {\r\n return prev + curr.product.price * curr.quantity;\r\n }, 0);\r\n return subtotal - total;\r\n }));\r\n }\r\n\r\n addCoupon = async (code): Promise<any> => {\r\n try {\r\n let result = await this.connection.put(this.couponApi(), { coupon: code }).toPromise();\r\n if (result.error || result.errors) return { error: true, message: 'invalid-coupon' };\r\n this.updateCartObj(result, false);\r\n return { error: false, message: 'ok' };\r\n } catch (e) {\r\n return { error: true, message: 'invalid-coupon' };\r\n }\r\n }\r\n\r\n removeCoupon = async () => this.connection.delete(this.couponApi()).pipe(map(res => this.updateCartObj(res, false))).toPromise();\r\n\r\n formatCoupon = (cart) => {\r\n let current_coupon = this.couponSubject.value;\r\n let coupon: CouponI = { code: cart.couponCode };\r\n try {\r\n const key = Object.keys(cart.cartDiscounts)[0];\r\n coupon = {\r\n ...coupon,\r\n amount: (cart.cartDiscounts && cart.cartDiscounts[key].amount.current) || 0,\r\n name: (cart.cartDiscounts && cart.cartDiscounts[key].name) || 'no-name'\r\n };\r\n } catch (e) { }\r\n (coupon != current_coupon) && this.couponSubject.next(coupon);\r\n }\r\n\r\n changeHaveToUpdate = (value) => this.have_to_update = value;\r\n\r\n readyForCheckout = (successCallback?: Function, errorCallback?: Function): CartAffordable => {\r\n let cart = this.cartSubject.value;\r\n let items = this.cartItemsSubject.value;\r\n let result: CartAffordable = { ok: true };\r\n if (items.length < this.channelConfig.minimumQuantityPurchaseItems) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-items' })\r\n }\r\n if (cart.totals.total < this.channelConfig.minimumPurchaseAmount) {\r\n result.ok = false; result.reasons.push({ message: 'not-enought-amount' })\r\n }\r\n if (successCallback || errorCallback) {\r\n result.ok\r\n ? successCallback && successCallback()\r\n : errorCallback && errorCallback();\r\n }\r\n return result;\r\n }\r\n\r\n updateItemsOnError = (itemsWithError: any[], code: string) => {\r\n // console.log(itemsWithError);\r\n // console.log(this.items);\r\n let itemsUpdated = this.items.map(item => {\r\n let itemWithError = itemsWithError.find(failedItem => item.item_id == failedItem.id);\r\n if (itemWithError) {\r\n item.failed = true;\r\n item.error = code;\r\n }\r\n return item;\r\n })\r\n // console.log(itemsUpdated);\r\n this.updateCartItems(itemsUpdated);\r\n }\r\n\r\n loadCartByToken = async (token: string) => {\r\n this.cart_token = token\r\n let result = await this.getCartByToken()\r\n return result\r\n }\r\n\r\n /**\r\n * UTILS\r\n */\r\n\r\n transformItems = (server_item) => server_item.map(\r\n item => {\r\n item = {\r\n product: item.product,\r\n variant_id: item.product.variants[0].code,\r\n quantity: item.quantity,\r\n item_id: item.id,\r\n total: item.total\r\n }\r\n // console.log(item.product.variants[0]);\r\n // console.log(item.product.variants[0].saleprice);\r\n // console.log(item.product.variants[0].price);\r\n // console.log(item.product.variants[0].saleprice > 0 ? item.product.variants[0].seleprice : item.product.variants[0].price);\r\n // setTimeout(() => {\r\n // item.product.price = item.total / item.quantity// ? item.product.variants[0].seleprice : item.product.variants[0].price;\r\n // }, 100);\r\n return item;\r\n }\r\n )\r\n \r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { ConnectionService } from '../../api/connection.service';\nimport { CartService } from '../cart.service';\nimport { ObservableError } from '../../interfaces/observable-error.interface';\nimport { Constants } from '../../core.consts';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrdersService {\n\n private ordersSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n private errorSubject: BehaviorSubject<ObservableError> = new BehaviorSubject(null);\n private selectedOrderSubject: BehaviorSubject<any> = new BehaviorSubject(null);\n\n public orders$ = this.ordersSubject.asObservable();\n public error$ = this.errorSubject.asObservable();\n public selectedOrder$ = this.selectedOrderSubject.asObservable();\n\n private loading = false;\n\n ordersListapi = () => `shop-api/${this.consts.getChannel()}/orders`;\n\n constructor(private connection: ConnectionService, private cartService: CartService, private router: Router, private consts: Constants) {\n // this.updateOrders();\n }\n\n updateOrders = () => {\n this.loading = true;\n this.connection.get(this.ordersListapi())\n .pipe(\n map(res => {\n let orders = this.mapOrdersAndAddInfo(res);\n return orders;\n })\n )\n .subscribe(\n response => {\n this.ordersSubject.next(response);\n this.loading = false;\n },\n err => {\n this.errorSubject.next({ message: 'unable-get-orders' });\n }\n )\n }\n\n mapOrdersAndAddInfo = (orders) =>\n orders.map(order => {\n order.total = order.payments.reduce((a, b) => a + b.price.current, 0);\n return order;\n })\n\n setSelectedOrder = (order: any) => this.selectedOrderSubject.next(order);\n\n findOrder = (order_number) =>\n this.ordersSubject.value ? this.getOrderByNumber(order_number) : this.waitUntilOrders(order_number, this.getOrderByNumber);\n\n getOrderByNumber = (order_number) => {\n // El dia de mañana, cuando vengan paginadas y haya que preguntarle al servidor, se cambia este metodo\n const orders = this.ordersSubject.value;\n let order = orders.find(order => order.number == order_number)\n return order;\n }\n\n waitUntilOrders = (order_number, next) => {\n this.orders$.toPromise().then(orders => {\n if (!orders) {\n if (!this.loading) this.updateOrders();\n this.waitUntilOrders(order_number, next);\n }\n this.getOrderByNumber(order_number);\n })\n }\n\n reBuy(order) {\n // this.cartService.clearCart();\n order.items.map(item => {\n this.cartService.addToCart(this.formatProduct(item.product, item.product.discount), item.quantity, item.variant_id);\n });\n this.router.navigateByUrl('/cart');\n }\n\n formatProduct(product, discount) {\n let percentaje = parseFloat('0.' + discount.toString()).toFixed(2);\n product.price = product.variants[0].price;\n product.saleprice = (product.price - (product.price * parseFloat(percentaje)));\n product.options = {};\n product.variants[0].options.forEach(option => product.options = { ...product.options, ...option });\n return product;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ShipmentDataTransformer {\n\n getData = (method, response) => {\n switch(method) {\n case 'andreani': return response;\n case 'oca': return response.newDataSet;\n }\n }\n\n getApi = (method) => {\n switch(method) {\n case 'andreani': return 'https://api.andreani.com/v1/sucursales';\n case 'oca': return 'http://webservice.oca.com.ar/oep_tracking/Oep_Track.asmx/GetCentrosImposicion';\n }\n }\n\n constructor() { }\n\n appendShipmentExtra = (contract, data) => {\n let result: any = {}\n switch(contract) {\n case 'domicilio': result = { ...data }; break;\n // case 'sucursal': result = { ...data, codigo_sucursal: data. }; break;\n // case 'local': result = { ...data, codigo_local: data. }\n }\n if (contract == 'domicilio') {\n result = { ...data }\n } else {\n result = { codigo_sucursal: data.id }\n }\n return data;\n }\n\n // Andreni\n getMethodDetail = (method, branch) => {\n let result = '';\n branch.direccion.componentesDeDireccion.forEach(component => result += (component.meta + ' ' + component.contenido + ' '));\n return result;\n }\n\n transformAndreani = (response) => {\n let result = []\n response.forEach(element => {\n let data: any = {};\n data.name = element.descripcion;\n data.label = element.descripcion;\n data.latitude = element.geocoordenadas && element.geocoordenadas.latitud;\n data.longitude = element.geocoordenadas && element.geocoordenadas.longitud;\n data.atencion = element.horarioDeAtencion;\n data.address = element.direccion.componentesDeDireccion.map(data => data.contenido).join(' ');\n data.info = 'Sucursal ' + data.name + ' - ' + data.address + ' - ' + data.atencion;\n result.push(data);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Store } from '../interfaces/store';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoresService {\n\n private storesSubject = new BehaviorSubject<Store[]>([]);\n public stores = this.storesSubject.asObservable();\n\n getAllStoresApi = () => 'shop-api/' + this.consts.getChannel() + '/stores';\n\n constructor(private connection: ConnectionService, private consts: Constants) {\n this.connection.get(this.getAllStoresApi()).toPromise().then(\n res => {\n res.length && this.storesSubject.next(res);\n !res.length && this.storesSubject.next(null);\n }\n )\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, Observable, Subscription } from 'rxjs';\nimport { take, tap, map } from 'rxjs/operators';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { CheckoutProcessState } from '../../classes/checkout-process-state';\nimport { ShipmentDataTransformer } from '../../utils/shipment-transformer.service';\nimport { ConnectionService } from '../../api/connection.service';\nimport { StoresService } from '../stores.service';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class ShipmentService extends StepService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n private methodsSubject = new BehaviorSubject<any>([]);\n private costsSubject = new BehaviorSubject<any>([]);\n private subscription: Subscription;\n\n public order;\n\n private baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n\n public state = this.stateSubject.asObservable();\n public methods = this.methodsSubject.asObservable();\n public costs = this.costsSubject.asObservable();\n\n\n public shipmentMethodsApi = () => this.baseApi() + '/shipping';\n\n public persistShipmentApi = () => 'shop-api/' + this.consts.getChannel() + '/andreani/' + this.cartService.getCartToken() + '/ship';\n public putShipmentApi = () => this.baseApi() + '/shipping/' + this.stateSubject.getValue().data.method;\n public putContractApi = () => 'shop-api/' + this.consts.getChannel() + '/checkout/' + this.cartService.getCartToken() + '/shipping-contract';\n public calculatedCostsApi = () => 'shop-api/' + this.consts.getChannel() + '/carts/' + this.cartService.getCartToken() + '/multiple-estimated-shipping-cost';\n\n constructor(private connection: ConnectionService, private transformer: ShipmentDataTransformer, private analyticsService: AnalyticsService,\n private consts: Constants, private cartService: CartService, private storesService: StoresService, private checkoutService: CheckoutService) {\n super(checkoutService);\n }\n\n getShipmentMethods = () => {\n // this.connection.get(this.shipmentMethodsApi()).toPromise().then(\n // res => this.methodsSubject.next(this.responseToList(res))\n // ).catch(err => this.methodsSubject.next([]))\n this.connection.getErrorNotHandler(this.shipmentMethodsApi()).toPromise().then(\n res => {\n this.methodsSubject.next(this.responseToList(res))\n },\n err => {\n this.methodsSubject.next([])\n }\n ).catch(err => {\n this.methodsSubject.next([])\n })\n }\n\n setMethod = async (method) => {\n this.costsSubject.next([]);\n this.stateSubject.next({ doing: true, ok: false, data: { method } });\n this.putShipment().then(\n async res => {\n this.checkoutService.updateAsociatedData(res);\n this.order = res;\n const costs = await this.getCalculatedCosts();\n this.modifyCostsResponse(costs, this.getUserData().shippingAddress.postcode, method);\n },\n err => {\n return new Promise((resolve,reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n private putShipment = () => this.connection.put(this.putShipmentApi(), { method: this.stateSubject.getValue().data.method }).toPromise();\n\n getCalculatedCosts = () => this.connection.get(this.calculatedCostsApi()).toPromise();\n\n setContract = async (contract: any) => {\n const data = { ...contract, ...this.otherParamsForContract(contract) };\n return await this.connection.put(this.putContractApi(), data)\n .toPromise().then(\n order => {\n this.analyticsService.callEvent('shipping_info', order);\n return this.setStepReady(data, order)},\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n }\n\n ngOnDestroy() {\n this.subscription && this.subscription.unsubscribe();\n }\n\n // UTILS\n\n /**\n * @param response De api de solicitud de costos por metodo de envío seleccionado\n * @param post_code Indicado en el paso de Addressing (datos personales y de facturación)\n * @param method Metodo de envío seleccionado\n */\n modifyCostsResponse = async (response, post_code, method) => {\n response = response.multiplePrices;\n let branch_delivery = response.findIndex(submethod => submethod.name == 'branch_delivery');\n if (branch_delivery != -1) {\n response[branch_delivery].contracts = response[branch_delivery].contracts.map(contract => {\n let branch_property = contract.branch_property || {};\n let address_data = branch_property.address || {};\n return {\n contract: 'branch_delivery',\n name: contract.name,\n price: contract.price,\n ...address_data,\n ...branch_property,\n computed: (address_data.street || '') + ' N° ' + (address_data.number || '')\n };\n });\n this.costsSubject.next(response);\n }\n if (method == 'pickup_store') {\n let final_method_data = response;\n this.subscription = this.storesService.stores.subscribe(stores => {\n if (stores.length) {\n final_method_data.forEach(pickup_store => {\n pickup_store.contracts.forEach(contract => {\n const current_store = stores.find(store => store.code == contract.name);\n if (!current_store) contract.detail = 'Sin información';\n else contract.detail = current_store.name + ' - ' + current_store.address;\n return contract;\n })\n })\n this.costsSubject.next(final_method_data);\n }\n })\n } else {\n this.costsSubject.next(response);\n }\n }\n\n responseToList = (response) =>\n (response.shipments && response.shipments.length > 0) && Object.keys(response.shipments[0].methods).map(key => response.shipments[0].methods[key]);\n\n otherParamsForContract = (contract) => {\n return {\n shipping_method_contract:\n contract.shipping_method_contract\n ? contract.shipping_method_contract\n : contract.contract + '_' + contract.name,\n shipping_method_branch_code:\n contract.shipping_method_branch_code\n ? contract.shipping_method_branch_code\n : (contract.contract && contract.contract == \"branch_delivery\") ? contract.number : contract.name\n }\n }\n\n getBranchOffices = (method) => this.connection.getOutsider(this.transformer.getApi(method.toLowerCase())).toPromise();\n\n formatUnnecesaryDocument = (data) => {\n if (data.shippingAddress?.documentNumber?.length == 0) {\n data.shippingAddress.documentNumber = '00000000'\n }\n if (data.shippingAddress?.documentType?.length == 0) {\n data.shippingAddress.documentType = 'XXX'\n }\n if (data.billingAddress && data.billingAddress.documentNumber?.length == 0) {\n data.billingAddress.documentNumber = '00000000'\n }\n if (data.billingAddress && data.billingAddress.documentType?.length == 0) {\n data.billingAddress.documentType = 'XXX'\n }\n return data\n }\n}\n","export interface FilterOption {\n name: string;\n value: string;\n type: FilterOptionTypes;\n selectedOption: any;\n options: Array<FilterOptionValue>;\n}\n\nexport interface FilterOptionValue {\n name: string;\n value: any;\n selected: boolean;\n}\n\nexport enum FilterOptionTypes {\n oneSelect = 'one-select',\n multiSelect = 'multi-select'\n}","import { Injectable } from '@angular/core';\nimport { OptionsOfProductListInterface } from '../interfaces/choose-options/options-of-product-list';\nimport { FilterOptionTypes } from '../interfaces/choose-options/filter-option';\n\n@Injectable()\nexport class OptionsOfProductListDataReceiverService {\n constructor() { }\n\n getData(): OptionsOfProductListInterface {\n return {\n sortOptions: [\n {\n name: 'Alphabetical order',\n value: 'name',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Ascendancy',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Descendant',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Created date',\n value: 'createdAt',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Oldest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Newest first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n {\n name: 'Price',\n value: 'price',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Cheapest first',\n value: 'asc',\n selected: false,\n },\n {\n name: 'Most expensive first',\n value: 'desc',\n selected: false,\n }\n ]\n },\n ],\n filterOptions: [\n {\n name: 'Vigencia',\n value: 'enabled',\n type: FilterOptionTypes.oneSelect,\n selectedOption: null,\n options: [\n {\n name: 'Habilitados',\n value: 'true',\n selected: false,\n },\n {\n name: 'Deshabilitados',\n value: 'false',\n selected: false,\n }\n ]\n }\n ],\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AuthService } from './auth.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\n\n@Injectable()\nexport class DataformService {\n\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\n\n public state = this.stateSubject.asObservable();\n public checkoutForm : FormGroup;\n\n constructor(private fb: FormBuilder, private authService: AuthService) {\n this.checkoutForm = this.fb.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n email: ['', [Validators.required, Validators.email]],\n documentType: ['', [Validators.required]],\n documentNumber: ['', [Validators.required]],\n street: ['', [Validators.required, Validators.maxLength(50)]],\n countryCode: ['', Validators.required],\n city: ['', Validators.required],\n provinceName: ['', Validators.required],\n postcode: ['', Validators.required]\n });\n\n this.authService.getUserProfile().subscribe(\n res => this.checkoutForm.patchValue(res.toForm())\n )\n }\n\n isValid = () => this.checkoutForm.valid;\n\n change = () => {\n this.checkoutForm.valid ? this.stateSubject.next({ doing: false, ok: true, data: this.checkoutForm.value }) \n : this.stateSubject.next({ doing: true, ok: false, data: null })\n }\n}","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\n\nexport interface BlockInfo {\n section: string,\n blocks: IBlock[]\n}\n\n@Injectable()\nexport class BlocksRepositoryService {\n\n private data: BlockInfo[] = [];\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n\n constructor(private consts: Constants, private connection: ConnectionService) {\n this.consts.getBlocksCacheTime() && setInterval(this.restartBlocks, this.consts.getBlocksCacheTime());\n }\n\n getBlocks = async (section) : Promise<IBlock[]> => this.hasSectionBlocks(section)?.blocks || this.connection.get(this.blocksAPI(section))\n .toPromise().then(\n res => this.appendBlock(res.items, section) && res.items,\n err => new Promise((resolve, reject) => reject()) // Va por callback error, el servicio define el valor a setear\n ).catch(err => new Promise((resolve,reject) => reject(new Error(null)))); //Queda pendiente ver como manejar el error de este lado\n\n hasSectionBlocks = (section) => this.data.find(block_info => block_info.section == section);\n\n appendBlock = (blocks : IBlock[], section) => {\n const new_block = { section, blocks };\n this.data.push(new_block);\n return true;\n }\n\n restartBlocks = () => this.data = [];\n}","import { Injectable } from '@angular/core';\nimport { Constants } from '../../core.consts';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BlocksRepositoryService } from './blocks-repository.service';\n\n\n/**\n * @description Servicio de manejo de Bloques. Cada sección posee N bloques asociados, ordenados por posición y con tu tipo y datos correspondientes\n * (chequear interfaz de IBlock)\n */\n@Injectable()\nexport class BlocksService {\n\n private blocksSubject = new BehaviorSubject<any[]>([]);\n\n public blocks = this.blocksSubject.asObservable();\n\n blocksAPI = (section) => 'cms/' + this.consts.getChannel() + '/blocks/section/' + section + '?locale=' + this.consts.getLocale();\n contactFormResponseAPI = () => 'cms/' + this.consts.getLocale() + '/contact-form/response';\n\n constructor(private consts: Constants, private connection: ConnectionService,\n private blocksRepo: BlocksRepositoryService) { }\n\n getBlocks = (section) => {\n this.blocksRepo.getBlocks(section).then(\n res => this.blocksSubject.next(this.orderedAndModified(res)),\n err => this.blocksSubject.next(null)\n )\n }\n\n orderedAndModified = (result) => {\n let result_ordered = result.sort((a, b) => a.priority - b.priority);\n return (result_ordered.length ? result_ordered : null);\n }\n\n getBlockByCode = (code) =>\n this.blocksSubject.value && this.blocksSubject.value.find(block => block.code == code);\n\n // getBannerImage = (banner) => (this.consts.mobile() && banner.mobileImageName && banner.mobileImageName != '') ? banner.mobileImageName : banner.imageName;\n getBannerImage = (banner) =>\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName;\n\n getImage = (banner) => (this.consts.mediaBannerUrl() +\n (this.consts.mobile() && banner.translations[this.consts.getLocale()].mobileImageName && banner.translations[this.consts.getLocale()].mobileImageName != '')\n ? banner.translations[this.consts.getLocale()].mobileImageName\n : banner.translations[this.consts.getLocale()].imageName)\n\n formUrl = (banner) => {\n let resultado = \"/\";\n const element = (banner.redirectionType == 'attribute' ? 'attributes' : 'categories');\n try {\n let asociacion = banner[(element == 'categories' ? 'taxons' : element)];\n asociacion = asociacion.length && asociacion[0];\n if (asociacion) resultado = '/collection/' + element + '/' + (asociacion.slug || asociacion.translations[this.consts.getLocale()].slug);\n } catch (e) {\n }\n return resultado;\n }\n\n sendResponse = (response_obj) =>\n this.connection.post(this.contactFormResponseAPI(), this.prepareData(response_obj));\n\n prepareData = (obj) => {\n // Para el futuro, cuando haya que toquetear antes de mandar\n // attachmentFile\n return obj;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilsService {\n\n constructor() { }\n\n titleCaseWord(word: string) {\n if (!word) return word;\n return word[0].toUpperCase() + word.substr(1).toLowerCase();\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaymentUtils {\n\n constructor() {}\n\n private mp_error_codes = {\n 'pending_contingency': 'Estamos procesando el pago. En menos de 2 días hábiles te enviaremos por e-mail el resultado.',\n 'pending_review_manual': 'Estamos procesando el pago. En menos de 2 días hábiles te diremos por e-mail si se acreditó o si necesitamos más información.',\n 'cc_rejected_bad_filled_card_number': 'Revisa el número de tarjeta.',\n 'cc_rejected_bad_filled_date': \t'Revisa la fecha de vencimiento.',\n 'cc_rejected_bad_filled_other': \t'Revisa los datos.',\n 'cc_rejected_bad_filled_security_code': \t'Revisa el código de seguridad.',\n 'cc_rejected_blacklist': \t'No pudimos procesar tu pago.',\n 'cc_rejected_call_for_authorize': \t'Debes autorizar ante payment_method_id el pago de amount a Mercado Pago',\n 'cc_rejected_card_disabled': \t'Llama a payment_method_id para que active tu tarjeta. El teléfono está al dorso de tu tarjeta.',\n 'cc_rejected_card_error': \t'No pudimos procesar tu pago.',\n 'cc_rejected_duplicated_payment': \t'Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.',\n 'cc_rejected_high_risk': \t'Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.',\n 'cc_rejected_insufficient_amount': \t'Tu payment_method_id no tiene fondos suficientes.',\n 'cc_rejected_invalid_installments': \t'El metodo de pago no procesa pagos en cuotas.',\n 'cc_rejected_max_attempts': \t'Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.',\n 'cc_rejected_other_reason': \t'No procesó el pago.'\n }\n\n getErrorMessage = (code) => this.mp_error_codes[code];\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n\n if (!this.auth.isAuthenticated())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbleBuyerGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectSellerTo || '/'\n\n if (!this.auth.isAbleToBuy())\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAbleToBuy()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserRoleGuardService implements CanActivate {\n\n constructor(private auth: AuthService, private router: Router) { }\n\n canActivate(routeSnapshot: ActivatedRouteSnapshot): boolean {\n const redirectTo = routeSnapshot.data.redirectTo || '/'\n const authorizedRoles = routeSnapshot.data.authorizedRoles || []\n\n if (!authorizedRoles.includes(this.auth.getUserProfileAsUser()?.typeUser))\n this.router.navigateByUrl(redirectTo)\n\n return this.auth.isAuthenticated()\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class LoggedInGuard implements CanActivate { \n \n constructor(private auth: AuthService, public router: Router) {} \n \n canActivate(): boolean {\n if (!this.auth.isAuthenticated()) {\n this.router.navigate(['/login']);\n }\n return this.auth.isAuthenticated();\n }\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { CheckoutService } from '../services/checkout/checkout.service';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class CheckoutReadyGuard implements CanActivate { \n \n constructor(private router: Router, private checkoutService: CheckoutService) {} \n \n canActivate(): boolean {\n if (!this.checkoutService.isCheckoutReady()) {\n this.router.navigate(['/']);\n }\n return this.checkoutService.isCheckoutReady();\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse\n} from \"@angular/common/http\";\nimport { throwError, Observable, of } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n \n if (this.injector.get(AuthService).isAuthenticated()\n && req.url.includes(this.injector.get(Constants).getUrlBase())\n && !req.url.includes('shop-api/login_check')) {\n\n let headers = {\n setHeaders: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.injector.get(AuthService).getToken()}`,\n },\n }\n\n if (req.url.includes('contact-form/response'))\n delete headers.setHeaders[\"Content-Type\"]\n\n /* if (this.injector.get(AuthService).getCustomer())\n delete headers.setHeaders[\"Authorization\"] */\n\n let authReq: HttpRequest<any> = req.clone(headers)\n \n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).doLogoutUser()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport {\n HttpEvent, HttpInterceptor, HttpHandler,\n HttpRequest, HttpErrorResponse, HttpHeaders, HttpClient\n} from \"@angular/common/http\";\nimport { Router } from '@angular/router';\nimport { throwError, Observable, BehaviorSubject, of } from \"rxjs\";\nimport { catchError, filter, take, switchMap } from \"rxjs/operators\";\nimport { AuthService } from '../services/auth.service';\nimport { Constants } from \"../core.consts\";\nimport { ErrorHandlerService } from \"../services/checkout/error-handler.service\";\nimport { BodyError } from \"../interfaces/checkout/checkout-error\";\nimport { ToastService } from \"../utils/toast.service\";\n\n@Injectable()\nexport class CustomerInterceptor implements HttpInterceptor {\n\n constructor(\n private injector: Injector\n ) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler,\n ): Observable<HttpEvent<any>> {\n\n const customer = this.injector.get(AuthService).getCustomer()\n\n if (customer) {\n\n const headers = {\n setHeaders: {\n 'customer': String(customer.id)\n }\n }\n\n let authReq: HttpRequest<any> = req.clone(headers)\n\n return next.handle(authReq).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n return next.handle(req).pipe(catchError(catchErr => this.handleErrors(catchErr)));\n }\n\n private handleErrors(err: HttpErrorResponse): Observable<any> {\n if (err.status === 401 || err.status === 403) {\n this.injector.get(AuthService).logout()\n return of(err);\n }\n if (err.status === 450) {\n this.injector.get(ErrorHandlerService).handlerErrorResponse(err.error)\n return of(err.error);\n }\n return throwError(err);\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CheckoutService } from \"../services/checkout/checkout.service\";\n\nexport class ComponentHelper {\n\n constructor() {\n this.ecOnConstruct()\n }\n\n ecOnInit = (params = {}) => {\n\n }\n\n ecOnConstruct = (params = {}) => {\n\n }\n\n hasParams = (params, searched) => params && params != null && params.find(param => param.code?.toLowerCase().includes(searched.toLowerCase()));\n\n navigateOnRouter(router : Router,url: string) {\n router.navigateByUrl(`/${url}`);\n }\n}","import { Injectable, Renderer2, Inject, RendererFactory2 } from '@angular/core';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { Parameter } from '../interfaces/parameters';\nimport { DOCUMENT } from '@angular/common';\nimport { Script } from '../interfaces/Script';\nimport { FacebookPixelService } from '../utils/analytics/facebook-pixel.service';\nimport { AnalyticEventKey } from '../interfaces/analytics/event-key.model';\nimport { GoogleAnalyticsService } from '../utils/analytics/google-analytics.service';\nimport { AnalyticsService } from './analytics.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParametersService {\n\n private parametersSubject = new BehaviorSubject<Parameter[]>(null);\n private readyParamsSubject = new ReplaySubject<boolean>(1);\n\n public parameters = this.parametersSubject.asObservable();\n public ready$ = this.readyParamsSubject.asObservable();\n\n getAllParametersAPI = () => 'shop-api/' + (this.constants.getMasterChannel() || this.constants.getChannel()) + '/parameters';\n\n constructor(private connection: ConnectionService, private constants: Constants,\n private analyticsService: AnalyticsService) {\n this.connection.get(this.getAllParametersAPI()).toPromise().then(res => {\n this.parametersSubject.next(res);\n this.readyParamsSubject.next(true);\n })\n }\n\n insertAnalitycs = () => {\n this.parametersSubject.value\n ? this.constants.onlyIfProduction(this.initializeAnalytics, this.parametersSubject.value)\n : this.waitUntilData(this.initializeAnalytics)\n }\n\n private initializeAnalytics = (params) => {\n\n let facebook = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('facebook') && param.code.includes('id'));\n !facebook && (facebook = params.find(param => param.code.includes('facebook') && param.code.includes('id')));\n facebook && this.analyticsService.initializeFacebook(facebook.value);\n\n let google = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('google') && param.code.includes('id'));\n !google && (google = params.find(param => param.code.includes('google') && param.code.includes('id')));\n google && this.analyticsService.initializeGoogle(google.value);\n\n let gtm = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('gtm') && param.code.includes('id'));\n !gtm && (gtm = params.find(param => param.code.includes('gtm') && param.code.includes('id')));\n gtm && this.analyticsService.initializeGTM(gtm.value);\n\n let metricool = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('metricool') && param.code.includes('id'));\n !metricool && (metricool = params.find(param => param.code.includes('metricool') && param.code.includes('id')));\n metricool && this.analyticsService.initializeMetricool(metricool.value);\n\n let doppler = params.find(param => param.code.includes(\"_\" + this.constants.getChannel() + \"_\") && param.code.includes('doppler') && param.code.includes('id'));\n !doppler && (doppler = params.find(param => param.code.includes('doppler') && param.code.includes('id')));\n doppler && this.analyticsService.initializeDoppler(doppler.value);\n\n }\n\n private waitUntilData = (next) => {\n const subscription = this.parameters.subscribe(res => {\n if (res) {\n this.insertAnalitycs();\n subscription.unsubscribe();\n }\n });\n }\n\n}","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-account-ec',\n templateUrl: 'account-ec.component.html',\n styleUrls: ['account-ec.component.scss']\n})\nexport class AccountEcComponent extends ComponentHelper {\n\n public params = null\n\n constructor(protected authService: AuthService, public router: Router, public paramsService: ParametersService ) {\n super();\n this.paramsService.parameters.subscribe(p => {\n this.params = p\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('/home');\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Banner } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n// import { OwlOptions } from 'ngx-owl-carousel-o';\n\nexport type ColumnSize = 'col-md-8' | 'col-md-4' | 'col-md-12'\n\n@Component({\n selector: 'app-block-banner-boxes-ec',\n templateUrl: './block-banner-boxes-ec.component.html',\n styleUrls: ['./block-banner-boxes-ec.component.scss']\n})\nexport class BlockBannerBoxesEcComponent extends ComponentHelper implements OnInit {\n @Input() banners: Banner[];\n @Input() meta: any;\n\n protected big_ones = [0, 3, 4, 7, 8, 11, 12, 15, 16];\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.meta = { ...this.meta, ...this.meta.translations[this.consts.getLocale()] }\n this.ecOnInit()\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n columnSize = (i): ColumnSize => {\n if (!this.consts.mobile()) {\n if (this.big_ones.includes(i)) return 'col-md-8';\n else if (!((i + 1) == this.banners.length)) return 'col-md-4';\n else if (((i + 1) == this.banners.length) && this.esImpar(i)) return 'col-md-4';\n }\n return 'col-md-12';\n }\n\n esImpar = (number) => (number % 2) == 1;\n \n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\n\ndeclare var $: any;\n\n@Component({\n selector: 'app-block-banner-full-ec',\n templateUrl: './block-banner-full-ec.component.html',\n styleUrls: ['./block-banner-full-ec.component.scss']\n})\nexport class BlockBannerFullEcComponent extends ComponentHelper implements OnInit {\n\n @Input() banners;\n @Input() meta: any;\n\n public options: any;\n\n constructor(public blocksService: BlocksService, protected consts: Constants, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.banners = this.banners.map(\n banner => { return { ...banner, ...banner.translations[this.consts.getLocale()] } }\n );\n this.ecOnInit()\n\n }\n\n getImage = (banner) => this.blocksService.getBannerImage(banner);\n\n formUrl = (banner) => this.blocksService.formUrl(banner);\n\n handlePage(page: string) {\n return this.router.url.includes(page);\n }\n\n}\n","import { Component, Input, OnInit, OnChanges } from '@angular/core';\n// import { ToastService, Constants, BlocksService } from 'ng-easycommerce';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-form-contact-ec',\n templateUrl: 'block-form-contact-ec.component.html',\n styleUrls: ['block-form-contact-ec.component.scss']\n})\nexport class BlockFormContactEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() block;\n @Input() success_message;\n @Input() redirect = true;\n @Input() subject?;\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = new FormData();\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants,\n public formBuilder: FormBuilder, protected blocksService: BlocksService) {\n super();\n this.contact_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n attachment: [''],\n captcha: ['', Validators.required],\n })\n this.newsletter_form = this.formBuilder.group({\n email: ['', Validators.required],\n })\n this.ecOnConstruct()\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('mailText', form.value.body)\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', this.contact_form.get('name').value)\n this.sendValue('email') && formData.append('email', this.contact_form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', this.contact_form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', this.contact_form.get('subject').value)\n this.sendValue('body') && formData.append('body', this.contact_form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', this.contact_form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.contact_form.reset()\n this.toastrService.show(this.success_message || success_message);\n this.redirect && this.router.navigateByUrl('/home');\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n uploadFile(event) {\n if (event.target.files.length > 0) {\n const file = event.target.files[0];\n this.contact_form.get('attachment').setValue(file);\n }\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n toastCompleteForm = (e) => {\n e.preventDefault();\n this.sendForm(this.contact_form, 'inquiry-sent');\n }\n\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-block-html-ec',\n templateUrl: './block-html-ec.component.html',\n styleUrls: ['./block-html-ec.component.scss'],\n})\nexport class BlockHtmlEcComponent extends ComponentHelper implements OnInit {\n\n @Input() html_content;\n\n constructor(protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.html_content = this.sanitizer.bypassSecurityTrustHtml(this.html_content);\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { BlockType } from '../../../interfaces/block';\nimport { BlocksService } from '../../../services/blocks/blocks.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-contact-form-news-ec',\n templateUrl: './contact-form-news-ec.component.html',\n styleUrls: ['./contact-form-news-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class ContactFormNewsEcComponent extends ComponentHelper implements OnInit {\n\n @Input() block;\n @Input() complete = false;\n @Input() success_message;\n @Input() subject?;\n @Input() codeBlock = 'newsletter_block'\n\n public blocks: BlockType[] = [];\n public blockContact: any = null;\n\n public contact_form: FormGroup;\n public newsletter_form: FormGroup;\n protected form_data: any = {};\n\n constructor(protected toastrService: ToastService, public router: Router, public consts: Constants, public paramsService: ParametersService,\n public formBuilder: FormBuilder, protected blocksService: BlocksService, @Inject('env') public env ) {\n super();\n this.newsletter_form = this.formBuilder.group({\n name: ['', []],\n email: ['', Validators.required],\n telephone: ['', []],\n subject: ['', []],\n body: ['', []],\n captcha: ['', []],\n terms: ['', Validators.required],\n })\n this.ecOnConstruct()\n\n }\n\n sendForm = (form, success_message) => {\n if (form.valid && (form.value.email.includes('@'))) {\n const formData = new FormData();\n formData.append('form_code', this.block.code)\n this.sendValue('name') && formData.append('name', form.get('name').value)\n this.sendValue('email') && formData.append('email', form.get('email').value)\n this.sendValue('telephone') && formData.append('telephone', form.get('telephone').value)\n this.sendValue('subject') && formData.append('subject', form.get('subject').value)\n this.sendValue('body') && formData.append('body', form.get('body').value)\n this.sendValue('attachments') && formData.append('attachment', form.get('attachment').value)\n this.blocksService.sendResponse(formData).toPromise().then(\n res => {\n this.newsletter_form.reset()\n this.toastrService.show(this.success_message || success_message);\n },\n err => {\n this.toastrService.show('inquiry-error');\n }\n );\n } else {\n this.toastrService.show('invalid-form');\n }\n }\n\n ngOnChanges() {\n }\n\n ngOnInit() {\n if (!this.block) {\n this.blocksService.getBlocks('home') ;\n this.blocksService.blocks.pipe(filter((blocks) => (blocks && blocks.length > 0))).subscribe(blocks => {\n this.block = this.blocksService.getBlockByCode(this.codeBlock);\n if (this.block.contactForm) {\n this.block = this.block.contactForm\n }\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n\n this.subscribeBlockNews(this.block);\n\n }) \n }else{\n this.block = { ...this.block, ...this.block.translations[this.consts.getLocale()] };\n }\n this.subject && this.setSubject();\n this.ecOnInit()\n }\n\n subscribeBlockNews = (block: any) => {\n \n }\n\n setSubject = () => {\n this.contact_form.setValue({\n ...this.contact_form.value,\n subject: this.subject\n });\n }\n\n resolved(captchaResponse: string, res) {\n this.form_data.catpcha = captchaResponse;\n }\n\n subscribe = () => {\n // PEDIR AL SERVICIO SE LO SUBSCRIBA, Y RESPONDA SI LO SUBSCRIBIÓ O YA ESTABA SUBSCRIPTO\n }\n\n toastNewsletterForm = (e) => {\n e.preventDefault();\n this.sendForm(this.newsletter_form, 'newsletter-thanks');\n }\n\n sendValue = (key) => {\n try {\n let keysearch = key[0].toUpperCase() + key.slice(1).toLowerCase();\n return this.block && this.block['send' + keysearch] || false\n } catch (error) {\n console.error(error);\n return false\n }\n }\n\n}\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { Product } from '../../../interfaces/product';\nimport { AnalyticsService } from '../../../services/analytics.service';\n\n@Component({\n selector: 'app-block-products-ec',\n templateUrl: './block-products-ec.component.html',\n styleUrls: ['./block-products-ec.component.scss']\n})\nexport class BlockProductsEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() products: Product[];\n @Input() meta: any;\n\n public options: any;\n\n constructor(protected consts: Constants, \n private analyticsService: AnalyticsService,\n ) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.meta = { ...this.meta, ...(this.meta.translations ? this.meta.translations[this.consts.getLocale()] : { name: null }) }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: this.meta.name || 'Block Products', item_list_id: this.meta.name?.toLowerCase()?.replace(' ', '-') || 'block-products' })\n this.ecOnInit()\n }\n\n ngOnChanges(): void {\n\n }\n\n boxesInlcudesCode = (box: string) => this.meta.code.toUpperCase().includes(box.toUpperCase())\n\n\n getKeyByValue(object, value) {\n return Object.keys(object).find(key => object[key] === value);\n}\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n@Component({\n selector: 'app-blocks-ec',\n templateUrl: './blocks-ec.component.html',\n styleUrls: ['./blocks-ec.component.scss'],\n providers: [BlocksService]\n})\nexport class BlocksEcComponent extends ComponentHelper implements OnInit {\n\n private strsection = null\n\n @Input()\n set section(paramsstrsection) {\n this.strsection = paramsstrsection\n this.strsection && this.blocksService.getBlocks(this.strsection);\n }\n @Input() show_loading = true;\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n // this.blocksService.getBlocks(this.section);\n this.ecOnInit()\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n isNewsletter = (block) => block.code.includes('news');\n}\n","import { Component, OnInit, Input, TemplateRef } from \"@angular/core\"\nimport { Router } from \"@angular/router\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from \"../../core.consts\";\nimport { AuthService } from '../../services/auth.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { CartService } from '../../services/cart.service';\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { ToastService } from \"../../utils/toast.service\";\n\n\n@Component({\n selector: 'app-cart-ec',\n templateUrl: './cart-ec.component.html',\n styleUrls: ['./cart-ec.component.scss']\n})\nexport class CartEcComponent extends ComponentHelper implements OnInit {\n\n public isLoggedIn = false;\n public mediaUrl = '';\n public modalRef: BsModalRef | null;\n public promotions = [];\n\n constructor(public cartService: CartService, public authService: AuthService, protected consts: Constants,\n public productsService: ProductsService, public router: Router, public modalService: BsModalService, protected toastrService: ToastService) {\n super();\n this.ecOnConstruct()\n this.isLoggedIn = this.authService.isAuthenticated();\n this.mediaUrl = this.consts.mediaUrl();\n }\n\n\n ngOnChanges() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n updateLoggedIn() {\n this.isLoggedIn = this.authService.isAuthenticated();\n }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.cartService.promotions.subscribe(promotions => this.promotions = promotions);\n this.ecOnInit()\n\n }\n\n toDecimal = (amount) => this.consts.toDecimal(amount);\n\n actualizarCantidad = (item, cantidad, stock) => {\n cantidad > 0 && cantidad <= stock ? this.cartService.updateItemQuantity(item, cantidad) : this.toastrService.show('out-of-stock-actually');\n }\n\n redirectCheckout = () => this.router.navigateByUrl(`/checkout`)\n\n redirectRegister = () => this.router.navigateByUrl(`/auth/login`)\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-xl', keyboard: false });\n }\n\n redirectDetailProduct(product) {\n let variant = product.variants[0]\n let path = '/product/'\n path += variant.code\n path += variant.options.length ? \"?variant=true\" : \"\"\n this.router.navigateByUrl(path)\n }\n}\n","import { Component, OnInit, OnChanges } from '@angular/core';\nimport Stepper from 'bs-stepper';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../../services/cart.service';\nimport { StepI } from '../../interfaces/step';\nimport { CheckoutData } from '../../interfaces/checkout-data';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n@Component({\n selector: 'app-checkout-ec',\n templateUrl: './checkout-ec.component.html',\n styleUrls: ['./checkout-ec.component.scss']\n})\nexport class CheckoutEcComponent extends ComponentHelper implements OnInit {\n\n public stepper: Stepper;\n public loadingSubject = new BehaviorSubject<boolean>(true);\n public canCheckout = false;\n public require_login = false;\n public subCan: Subscription;\n public subReady: Subscription;\n\n public loading$ = this.loadingSubject.asObservable();\n\n constructor(public checkoutService: CheckoutService, public toastrService: ToastService,\n public router: Router, public cartService: CartService, public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.subCan = this.checkoutService.canCheckout$.pipe(take(1)).subscribe(contain_items => {\n if (contain_items) this.initializeCheckout();\n else this.canCheckout = false;\n })\n this.ecOnInit()\n\n }\n\n ngOnDestroy() {\n this.subCan?.unsubscribe()\n this.subReady?.unsubscribe()\n }\n\n initializeCheckout = () => {\n this.canCheckout = true;\n let steps: StepI[] = [];\n steps.push({ name: 'address' });\n steps.push({ name: 'shipment' });\n steps.push({ name: 'payment' });\n this.checkoutService.setSteps(steps);\n this.setStepper();\n this.loadingSubject.next(false);\n\n this.subReady = this.checkoutService.onReady$.pipe(filter( ready => ready )).subscribe(\n res => { res && this.endCheckout()}\n );\n }\n\n goBack = () => this.stepper.previous();\n\n isStepReady = (step_name) => this.checkoutService.isStepReady(step_name);\n\n endCheckout = () => {\n this.checkoutService.complete().then(\n res => res.ok && this.router.navigate(['checkout/order_success']),\n err => this.toastrService.show('operation-error')\n )\n }\n\n setStepper = () => {\n setTimeout(() => {\n if (document.querySelector('#stepper') != null) {\n this.stepper = new Stepper(document.querySelector('#stepper'), {\n linear: true,\n animation: true\n })\n }else{\n this.setStepper()\n }\n }, 1000);\n }\n\n next = () => {\n this.stepper.next()\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n };\n\n error = (error_value) => this.toastrService.show(error_value);\n\n getIcon = (data_item: CheckoutData) => {\n switch (data_item.type) {\n case 'coupon': return 'assets/images/coupon.png';\n case 'discount': return 'assets/images/discount.png';\n case 'shipment': return 'assets/images/ico-envio.png';\n case 'subtotal': return 'assets/images/products.png';\n case 'total': return 'assets/images/ico-carrito.png';\n default: return 'assets/images/ico-carrito.png';\n }\n }\n\n}\n","import { Component, EventEmitter, Output, Input, OnInit, ViewChild, TemplateRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { CartService } from '../../../services/cart.service';\nimport { AddressingService } from '../../../services/checkout/addressing.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport { Constants } from '../../../core.consts';\nimport { add } from 'ngx-bootstrap/chronos';\nimport { ParametersService } from '../../../services/parameters.service';\n\n\n@Component({\n selector: 'app-dataform-ec',\n templateUrl: 'dataform-ec.component.html',\n styleUrls: ['dataform-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DataFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() step_id;\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesFacturacionSubject = new BehaviorSubject<any[]>([]);\n protected provincesFacturacionSubject = new BehaviorSubject<any[]>([]);\n\n public countries$ = this.countriesSubject.asObservable();\n public provinces$ = this.provincesSubject.asObservable();\n public countriesFacturacion$ = this.countriesFacturacionSubject.asObservable();\n public provincesFacturacion$ = this.provincesFacturacionSubject.asObservable();\n\n public require_login = false;\n public checkoutForm: FormGroup;\n public checkoutFormFacturacion: FormGroup;\n public loading = false;\n public form_ready = false;\n public allready_data = false;\n public addressBook = [];\n public addressBookSelected = { id: 0, notes: \"\" }\n\n public validado = false;\n public viewDataFacturacion: boolean = true;\n\n public modalRef: BsModalRef | null;\n public params: any = {};\n public selectAddres: boolean = false;\n\n constructor(public authService: AuthService,\n public fb: FormBuilder,\n public toast: ToastService,\n public addressingService: AddressingService,\n public cartService: CartService,\n private modalService: BsModalService,\n public paramsService: ParametersService,\n public consts: Constants) {\n super();\n this.ecOnConstruct()\n this.checkoutForm = this.fb.group(this.addressingService.getTypeForm().configForm.formAddres);\n this.checkoutForm.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutForm.valid }))\n .subscribe(() => this.onFormValid());\n\n this.checkoutFormFacturacion = this.fb.group(this.addressingService.getTypeForm().configForm.formBilling);\n this.checkoutFormFacturacion.statusChanges\n .pipe(\n filter(() => { this.onFormChange(); return this.checkoutFormFacturacion.valid }))\n .subscribe(() => this.onFormValid());\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.addressingService.initialize(this.step_id);\n const localEmail = localStorage.getItem('mail')\n this.authService.isAuthenticated() && this.checkoutForm.controls['email'].setValue(this.authService.getCustomer()?.email || localEmail);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n this.addressingService.getAddressingData().then(res => {\n this.countriesSubject.next(res);\n this.countriesFacturacionSubject.next(res);\n });\n\n (this.addressingService.modeSelectAddress == 'LOAD_ADDRESS_AND_SELECTION' || this.addressingService.modeSelectAddress == 'ONLY_ADDRESS_SELECTION') \n && this.addressingService.getAddressBook().then(res => {\n this.addressBook = res && res || null\n this.addressBook == null && this.setMode('carga') }\n )\n\n this.ecOnInit()\n }\n\n showFormFacturacion = () => {\n this.viewDataFacturacion = !this.viewDataFacturacion\n this.onFormChange()\n return this.viewDataFacturacion\n }\n\n onFormValid = () => {\n }\n\n protected onFormChange() {\n if (this.checkoutForm.valid) {\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) {\n this.validado = true\n return\n }\n if (this.viewDataFacturacion && this.checkoutForm.valid) {\n this.validado = true\n return\n }\n }\n this.validado = false\n }\n\n onInputChange = () => this.form_ready = false;\n\n onCountrySelected = (value) => {\n this.checkoutForm.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutForm.controls['provinceCode'].setValue(null);\n this.provincesSubject.next(\n value && value != 'null' ?\n this.countriesSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onCountrySelectedFacturacion = (value) => {\n this.checkoutFormFacturacion.controls['countryCode'].setValue(value == 'null' ? null : value);\n this.checkoutFormFacturacion.controls['provinceCode'].setValue(null);\n this.provincesFacturacionSubject.next(\n value && value != 'null' ?\n this.countriesFacturacionSubject.value.find(country => country.code == value).provinces\n :\n []);\n }\n\n onProvincesSelected = (value) => this.checkoutForm.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n onProvincesSelectedFacturacion = (value) => this.checkoutFormFacturacion.controls['provinceCode'].setValue(value == 'null' ? null : value);\n\n verifyValidate = (e) => {\n console.log(\"Verifying: \", e)\n this.require_login = false;\n if (e) {\n this.checkoutForm.controls['email'].setValue(e);\n this.authService.isAuthenticated() && this.checkoutForm.get('email').disable({ onlySelf: true });\n }\n this.checkoutForm.valid ? this.emitResult() : this.showError('invalid-form');\n }\n\n showError = (error_message) => { this.toast.show(error_message); return true; }\n\n protected emitResult = async () => {\n this.loading = true;\n let data: any = { shippingAddress: { ...this.checkoutForm.getRawValue(), phoneNumber: this.checkoutForm.value.phoneNumber.toString() }, notes: (this.checkoutForm.getRawValue()).notes };\n if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) data = { ...data, notes: data.notes, billingAddress: this.checkoutFormFacturacion.getRawValue() };\n try {\n let result = await this.addressingService.setAddress(data);\n\n if (result === false)\n this.require_login = true\n\n if (result !== false && result !== undefined) {\n this.form_ready = true\n this.allready_data = true\n }\n\n } catch (e) { this.toast.show('operation-error') }\n this.loading = false;\n }\n\n openModal(template: TemplateRef<any>) {\n this.modalRef = this.modalService.show(template, { class: 'modal-lg ', keyboard: false, backdrop: 'static' });\n }\n\n setSelectAddress = (addressSelect: any) => {\n this.addressBook.map(address => address.selected = address.id === addressSelect.id)\n this.addressBookSelected.id = this.addressBook.find(address => address.selected).id || 0\n }\n\n selectAddress = async () => {\n this.loading = true;\n let addressSelected = this.addressBook.find(address => address.selected)\n if (addressSelected) {\n try {\n if (!this.addressBookSelected.id) {\n this.addressBookSelected.id = addressSelected.id || 0\n }\n const request = {\n selected: this.addressBookSelected,\n shippingAddress: addressSelected\n }\n const resultSede = await this.addressingService.setHeadquarter(request);\n if (resultSede) {\n this.form_ready = true;\n this.allready_data = true;\n } else {\n this.toast.show('operation-error')\n }\n } catch (e) { this.toast.show('operation-error') }\n } else {\n this.showError('invalid-form')\n }\n this.loading = false;\n }\n\n getMode = () => {\n switch (this.addressingService.modeSelectAddress) {\n case 'ONLY_LOAD_ADDRESS':\n return true\n case 'ONLY_ADDRESS_SELECTION':\n if (this.authService.isAuthenticated()) {\n return false\n }\n return true\n case 'LOAD_ADDRESS_AND_SELECTION':\n if (this.authService.isAuthenticated()) {\n return this.selectAddres\n }\n return true\n }\n }\n\n setMode = (mode) => this.selectAddres = mode == \"carga\"\n\n getCountry = (code) => this.addressingService.countriesList.find(paises => paises.code.toLocaleLowerCase().includes(code.toLocaleLowerCase()))?.name || \"\"\n\n getProvince = (code) => this.addressingService.provinceList.find(ct => ct.code == code)?.name || \"\"\n\n getDocumentType = (code) => this.addressingService.documentTypes.find(dt => dt.code == code)?.name || \"\"\n\n getLabelNotesParam = () => this.hasParams(this.params, 'label_notes_' + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n getParamByChannelAndLanguage = (nameParam) => this.hasParams(this.params, nameParam + this.consts.getChannel() + '_' + this.consts.getLocale().split('_')[0])\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConnectionService } from '../../api/connection.service';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ToastService } from '../../utils/toast.service';\nimport { CartService } from '../cart.service';\nimport { Constants } from '../../core.consts';\nimport { map } from 'rxjs/operators';\nimport { CheckoutService } from './checkout.service';\nimport { StepService } from '../../classes/checkout/step-service';\nimport { ParametersService } from '../parameters.service';\nimport { AnalyticsService } from '../analytics.service';\n\n@Injectable()\nexport class PaymentService extends StepService {\n\n private paymentMethodsSubject = new BehaviorSubject<any[]>([]);\n public methods$ = this.paymentMethodsSubject.asObservable();\n\n baseApi = () => 'shop-api/' + this.consts.getChannel() + '/' + 'checkout/' + this.cartService.getCartToken();\n getPaymentMethodsApi = () => this.baseApi() + '/payment';\n getPreferenceApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.getCartToken() + '/preference';\n getCheckoutMobbexApi = () => 'shop-api/' + this.consts.getChannel() + '/mobbex/' + this.cartService.getCartToken() + '/process-payment'\n getCheckoutBancardApi = () => 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.getCartToken() + '/process-payment' //?testOrderNumber=' + this.getRandomArbitrary()\n putPaymentApi = (method) => this.baseApi() + '/payment/' + method;\n\n constructor(private connection: ConnectionService, private toastrService: ToastService, private cartService: CartService, private consts: Constants,\n private checkoutService: CheckoutService, private analyticsService: AnalyticsService) {\n super(checkoutService);\n this.getPaymentMethods();\n }\n\n getPaymentMethods = async () => this.connection.get(this.getPaymentMethodsApi()).toPromise().then(\n res => res.payments?.length && this.paymentMethodsSubject.next(Object.keys(res.payments[0].methods).map(key => res.payments[0].methods[key])),\n err => this.toastrService.show('operation-error')\n );\n\n // putPayment = (method) => this.connection.put(this.putPaymentApi(method), { method }).toPromise();\n putPayment = (method) =>\n this.connection\n .put(this.putPaymentApi(method), { method })\n .toPromise()\n .then(\n res => {\n this.analyticsService.callEvent('add_payment_info', res);\n return res\n },\n err => {\n return new Promise((resolve, reject) => reject(new Error(err.error)))\n }\n ).catch(err => console.error(err))\n\n getPreference = (shipment_data) => this.connection.post(this.getPreferenceApi(), shipment_data).pipe(map(res => (res.preference || res))).toPromise();\n\n getCheckoutMobbex = (shipment_data) => this.connection.post(this.getCheckoutMobbexApi(), shipment_data).toPromise();\n\n getCheckoutBancard = (shipment_data) => this.connection.get(this.getCheckoutBancardApi(), shipment_data).toPromise();\n\n private getRandomArbitrary = () => Math.round(Math.random() * (Number(9999999) - Number(2000003)) + Number(2000003))\n}","import { Component, Renderer2, ElementRef, ViewChild, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { PaymentService } from '../../../services/checkout/payment.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-payment-ec',\n templateUrl: 'payment-ec.component.html',\n styleUrls: ['payment-ec.component.scss'],\n providers: [PaymentService]\n\n})\nexport class PaymentEcComponent extends ComponentHelper implements OnChanges, OnInit {\n\n @Input() step_id;\n @ViewChild('formContainer') protected mercadopago_button: ElementRef;\n protected methodDataSubject = new BehaviorSubject<any>(null);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n protected preference;\n\n\n public loading_internal = false;\n public order_id;\n public error;\n public loading = true;\n public loading_internal_mp = false;\n public method_data$ = this.methodDataSubject.asObservable();\n public loading$ = this.loadingSubject.asObservable();\n public total_amount;\n\n \n constructor(protected renderer: Renderer2, protected toastr: ToastService,\n public paymentService: PaymentService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnChanges() { }\n\n ngOnInit() {\n this.paymentService.initialize(this.step_id);\n this.checkoutService.asociatedData$.subscribe((data: CheckoutData[]) => this.total_amount = (data.find(item => item.type == 'total')).amount)\n this.ecOnInit()\n\n }\n\n allData = () => ({\n ...this.paymentService.getUserData().shippingAddress,\n ...this.paymentService.getShipmentData(),\n });\n\n setError = (message) => {\n this.error = message;\n }\n\n emitResult = async () => {\n this.paymentService.setStepReady(this.methodDataSubject.getValue(), null).then(res => {\n this.setLoading(false)\n });\n }\n\n setLoading = (estado = true) => {\n this.loadingSubject.next(estado);\n return true;\n }\n\n verifyValidate = () => {\n this.setLoading()\n setTimeout(r => this.emitResult(), 1000);\n }\n\n setMethod = async (method) => {\n this.methodDataSubject.next(null);\n let result = await this.paymentService.putPayment(method.code);\n this.methodDataSubject.next(method);\n // this.isMP(method.code) && this.getPreference();\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n submitForm = (event) => {\n try {\n //console.log(\"EVENT\", event);\n event.preventDefault();\n return false;\n } catch (e) {\n //console.log('SE ROMOPIO EL PREVENT DEFAULT')\n }\n\n }\n\n getPK = (method) => (method.config.public_key || method.public_key);\n\n isRedirectRedsys = (code: string) => code && code.toLocaleLowerCase().includes('redsys_redirect');\n\n isRedirectCecaBank = (code: string) => code && code.toLocaleLowerCase().includes('ceca_bank_redirect');\n\n isMP = (code: string) => code && code.toLocaleLowerCase() == ('mercado_pago');\n \n isMPTarjetaDeCredito = (code: string) => code && code.toLocaleLowerCase().includes('credit');\n\n isMethodOffline = (code: string) => code && code.toLocaleLowerCase().includes('offline');\n\n isPeyPalExpress = (code: string) => code && code.toLocaleLowerCase().includes('paypal') && code.toLocaleLowerCase().includes('express');\n\n isMobbex = (code: string) => code && code.toLocaleLowerCase().includes('mobbex');\n\n isBancard = (code: string) => code && code.toLocaleLowerCase().includes('bancard');\n\n isDecidir = (code: string) => code && code.toLocaleLowerCase().includes('decidir');\n}","import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\nimport { map } from 'rxjs-compat/operator/map';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ShipmentService } from '../../../services/checkout/shipment.service';\nimport { ProductsService } from '../../../services/products/products.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-shipment-ec',\n templateUrl: './shipment-ec.component.html',\n styleUrls: ['./shipment-ec.component.scss'],\n providers: [ShipmentService]\n})\nexport class ShipmentEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() step_id;\n public methods_list: any[];\n public loading_internal = false;\n public points: any[] = [];\n public selected_final;\n public costos = null\n public costs = []\n\n contracts = [];\n\n constructor(public shipmentService: ShipmentService, protected toastrService: ToastService,\n public productsService: ProductsService, public checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n emitResult = (method_name, contract_data) => {\n contract_data = {\n ...contract_data,\n shipping_method_contract: method_name + '_' + contract_data.name,\n shipping_method_branch_code: method_name == \"branch_delivery\" ? contract_data.sucursal_id : contract_data.name,\n }\n this.shipmentService.setContract(contract_data);\n }\n\n verifyValidate = (contract, data) => {\n try {\n this.costs.forEach(cost => cost.contracts.forEach(co => co.selected = false))\n this.costs.find(cost => cost.name == contract).contracts.find(contra => contra.name == data.name).selected = true\n } catch (error) {\n console.log(\"error al buscar contrato\", error);\n }\n this.emitResult(contract, data);\n };\n\n ngOnInit() {\n this.shipmentService.initialize(this.step_id);\n this.shipmentService.getShipmentMethods();\n this.checkoutService.asociatedData$.subscribe(data => {\n this.costos = data && data.find(value => value.type == \"shipment\") || null\n })\n this.shipmentService.costs.subscribe(cos => {\n this.costs = cos.map(cost => { return { ...cost, contracts: cost.contracts.map(co => { return { ...co, selected: false } } ) } })\n if (this.costs.length && this.costs[0]?.name && this.costs[0]?.contracts[0]) {\n this.verifyValidate(this.costs[0].name, this.costs[0].contracts[0])\n }\n })\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n this.shipmentService.getShipmentMethods();\n }\n\n toTraducible = (name) => name.replace(/_/g, '-');\n\n deleteUPS = (methods) => methods.filter(method => method.name != 'UPS');\n\n setMethod = (method) => {\n this.loading_internal = true;\n this.shipmentService.restartStep();\n setTimeout(() => {\n this.shipmentService.setMethod(method).then(res => this.loading_internal = false);\n }, 1000);\n }\n\n setActive(e) {\n const parent = e.target.parentElement.children;\n for (const button of parent) {\n if (button.classList.contains('active')) {\n button.classList.remove('active')\n }\n }\n e.target.classList.add(\"active\")\n }\n\n validName = (name) => isNaN(name);\n\n showResponse = (costs) => console.log(costs);\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-order-success-ec',\n templateUrl: './success-ec.component.html',\n styleUrls: ['./success-ec.component.scss']\n})\nexport class SuccessEcComponent extends ComponentHelper implements OnInit {\n\n public orderDetails = {};\n public params: any = {};\n public from_mp = true;\n\n constructor(protected activedRoute: ActivatedRoute, protected cartService: CartService, public router: Router, protected checkoutService: CheckoutService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.checkoutService.order$.subscribe(\n res => {\n //console.log('LO QUE LLEGA EN ORDEN', res);\n this.params = {\n external_reference: res.number,\n }\n }\n );\n this.ecOnInit()\n\n }\n\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n// import { Constants, Filter, OptionsService, Product, ProductsService } from 'ng-easycommerce';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Filter } from '../../classes/filters/Filter';\nimport { Constants } from '../../core.consts';\nimport { FilterType } from '../../interfaces/filter';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { AuthService } from '../../services/auth.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n\n@Component({\n selector: 'app-collection-ec',\n templateUrl: './collection-ec.component.html',\n styleUrls: ['./collection-ec.component.scss']\n})\nexport class CollectionEcComponent extends ComponentHelper implements OnInit {\n\n public filters: Filter[] = [];\n public filters_top: Filter[];\n // public optionsFilters: ['all'];\n public products: Product[];\n public finished = false;\n protected suscripcion: Subscription;\n public loading = true;\n public breadcrumb: string[] = []\n public isCollection = true;\n public params: any;\n\n @Input() type;\n @Input() value;\n @Input() productsWithUniqueVariant: boolean = false;\n @Input() optionsFilters: FilterType[] = ['all'];\n\n constructor(public productsService: ProductsService,\n protected paramsSrv: ParametersService,\n protected activeRoute: ActivatedRoute,\n protected optionsService: OptionsService,\n public authService: AuthService,\n private analyticsService: AnalyticsService,\n public cartService: CartService,\n public consts: Constants) {\n super();\n this.paramsSrv.parameters.subscribe(param => this.params = param)\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n window.scroll(0, 0);\n this.products = [];\n this.ecOnInit()\n this.getProductsAndSubscribe();\n }\n getProductsAndSubscribe(): void {\n combineLatest([this.activeRoute.params, this.optionsService.ready, this.activeRoute.queryParams]).subscribe(([params, ready, queryParams]) => {\n if (ready.readyAll) {\n let cambio = false;\n this.products = [];\n if (!params['type'] || !params['value']) {\n this.productsService.getProductsForFilter({ latest: true, limit: 10 }, this.optionsFilters, queryParams.search);\n }\n else {\n this.productsService.getProductsForFilter({ type: params.type, value: params.value }, this.optionsFilters, queryParams.search);\n cambio = true;\n this.type = params['type'];\n this.value = params['value'];\n }\n try { this.suscripcion.unsubscribe(); } catch (e) { };\n this.suscripcion = this.productsService.products$.subscribe(\n res => {\n this.loading = false;\n if (res.length == 0) {\n this.products = [];\n this.finished = this.productsService.isFinished();\n } else {\n if (this.productsWithUniqueVariant) {\n if (cambio) {\n this.products = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n cambio = false;\n }\n else {\n res = this.productsService.getProductsWithUniqueVariant(res, this.getObjectWithVariant() );\n this.products.push(...res)\n };\n } else {\n if (cambio) { this.products = res; cambio = false; }\n else this.products.push(...res);\n }\n }\n this.analyticsService.callEvent('view_item_list', { products: this.products, item_list_name: 'Collection', item_list_id: 'collection' })\n });\n this.productsService.filters$.subscribe(res => {\n this.breadcrumb = this.optionsService.getBreadcrumbByFilters(res);\n this.filters = this.getSpecificFilters(res, ['category', 'attributes', 'dynamics']);\n this.filters_top = this.getSpecificFilters(res, ['sort']);\n });\n this.productsService.finished().subscribe(res => this.finished = res);\n this.loading = false;\n }\n })\n }\n\n getSpecificFilters = (filters: Filter[], types: FilterType[]): Filter[] => {\n let result = [];\n types.forEach(type => {\n let result_filter = filters.find(filter => filter.type() == type);\n if (result_filter) result.push(result_filter);\n return result;\n });\n return result;\n }\n\n onScroll(): void {\n this.loading = true;\n if (!this.productsService.isWaiting() && !this.productsService.getNext()) {\n this.finished = true;\n this.loading = false;\n }\n }\n\n areProducts = () => this.products.length > 0;\n isWaiting = () => this.productsService.isWaiting();\n setFinished = () => this.finished = true;\n\n\n changeFilter = (e) => {\n if (!this.isCollection) {\n this.isCollection = true;\n }\n }\n\n addAllProductosToCart = (products = null) => {\n let items = [];\n (products || this.products).map(prod => prod.productWithUniqueVariant.map(p => items.push(p)))\n items = items.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem )\n items?.length && this.cartService.addAllToCart(items)\n }\n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: false , checkIfStock:true } \n } \n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { CartService } from '../../services/cart.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-coupon-ec',\n templateUrl: 'coupon-ec.component.html',\n styleUrls: ['coupon-ec.component.scss']\n})\nexport class CouponEcComponent extends ComponentHelper {\n\n public coupon_value = \"\";\n public aplied = false;\n public loading = false;\n\n constructor(public cartService: CartService, protected toastr: ToastService) { \n super();\n this.ecOnConstruct()\n }\n \n ngOnInit() {\n this.ecOnInit()\n }\n\n addCoupon = () => {\n this.validCoupon() && this.cartService.addCoupon(this.coupon_value).then(\n res => {\n res.error ? this.invalidCoupon() : this.applyCoupon();\n }\n )\n }\n\n invalidCoupon = () => {\n this.toastr.show('invalid-coupon');\n this.coupon_value = '';\n this.loading = false;\n }\n\n applyCoupon = () => {\n this.aplied = true;\n this.loading = false;\n }\n\n setLoading = () => this.loading = true;\n\n validCoupon = (): boolean => \n this.coupon_value && /^([A-Za-z\\-0-9]*)\\w+$/.test(this.coupon_value);\n}","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { FAQ } from '../../interfaces/faqs';\nimport { OptionsService } from '../../services/options.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-faqs-content-ec',\n templateUrl: 'faqs-content-ec.component.html',\n styleUrls: ['faqs-content-ec.component.scss']\n})\nexport class FaqsContentEcComponent extends ComponentHelper implements OnInit {\n\n public faqs : FAQ[];\n public actual_index;\n public empty_faqs = false;\n\n constructor(protected optionsService: OptionsService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.optionsService.getFAQ().toPromise().then(\n faqs => {\n console.log('LAS FAQS; ', faqs);\n if (faqs.length > 0) {\n this.faqs = faqs;\n this.actual_index = 0;\n } else {\n this.empty_faqs = true;\n }\n },\n error => {\n console.log(error);\n this.toastr.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(err => this.toastr.show('empty-faqs')); \n this.ecOnInit()\n\n }\n\n changeFAQ = (new_index) => this.actual_index = new_index;\n}","import { Component, Input, OnChanges, OnInit, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-ec',\n templateUrl: './filters-ec.component.html',\n styleUrls: ['./filters-ec.component.scss']\n})\nexport class FiltersEcComponent extends ComponentHelper implements OnInit {\n\n @Input() setSelected;\n @Input() filters;\n public expand: boolean = true;\n\n\n constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n close = (accordion_id) => {\n // this.consts.mobile()\n // ? this.document.getElementById(\"accordionExample\").classList.remove('show')\n // : this.document.getElementById(accordion_id).classList.remove('show');\n return true;\n };\n\n}\n","import { Component, Input, OnChanges, OnInit, Inject, EventEmitter, Output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from '../../core.consts';\nimport { ComponentHelper } from '../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-filters-top-ec',\n templateUrl: './filters-top-ec.component.html',\n styleUrls: ['./filters-top-ec.component.scss']\n})\nexport class FiltersTopEcComponent extends ComponentHelper implements OnInit {\n\n // @Input() setSelected;\n // @Input() filters;\n\n // public expand: boolean = true;\n\n\n // constructor(protected consts: Constants, @Inject(DOCUMENT) public document: Document) {\n // super();\n // this.ecOnConstruct() \n // }\n\n // ngOnInit() {\n // this.expand = !this.consts.mobile()\n // this.ecOnInit()\n\n // }\n\n // ngOnChanges() {\n // }\n\n // setSelectedInternal = (filter, $event) => {\n // console.log('EL VALO RQUE VA A MANDAR: ', $event.target.value);\n // this.setSelected(filter, $event.target.value);\n // }\n\n // close = () => {\n // this.document.getElementById(\"filtros\").classList.remove('in');\n // return true;\n // };\n\n\n @Input() setSelected;\n @Input() filters;\n @Input() full = true\n @Output() changeFilter = new EventEmitter();\n\n public expand: boolean = true;\n\n constructor(private consts: Constants, @Inject(DOCUMENT) private document: Document) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.expand = !this.consts.mobile()\n this.full = !this.consts.mobile()\n this.ecOnInit()\n }\n\n ngOnChanges() {\n }\n\n mid = (filter, filterChild, value) => {\n // console.log(\"FILTER \", filter);\n // console.log(\"HIJO \", filterChild);\n // console.log(\"VALOR \", value);\n this.changeFilter.emit(value);\n return true\n }\n\n close = () => {\n //this.document.getElementById(\"filtros\").classList.remove('in');\n return true;\n };\n\n getDescripcion = (title) => {\n switch (title) {\n case 'most-expensive-first':\n return '+';\n case 'cheapest-first':\n return '-';\n case 'ascendancy':\n return 'Asc';\n case 'descendant':\n return 'Desc';\n default:\n return title;\n }\n }\n\n getStyles = (state) => {\n console.log(state);\n return (state) ? 'btn btn-secondary btn-sm active' : 'btn btn-secondary btn-sm'\n }\n\n setSeleccion = (values) => {\n //console.log('SELECIOTOTOT => ', values);\n let valores = values.split('@')\n let filter = this.filters.find(f => f.type() == valores[0]);\n let opChild = {}\n if (valores[1] == 'sub') {\n opChild = (filter.data.find(f => f.children.find(c => c.selected))).children.find(c => c.selected)\n } else {\n opChild = (filter.data.find(f => f.children.find(c => c.value == valores[2]))).children.find(c => c.value == valores[2])\n }\n this.setSelected(filter, opChild)\n }\n\n createValue = (filter, filterItem) => filter.type() + '@' + filterItem.type + '@' + filterItem.value\n\n}\n","import { Component, OnInit, Output } from '@angular/core';\nimport { EventEmitter } from 'events';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-footer-ec',\n templateUrl: 'footer-ec.component.html',\n styleUrls: ['footer-ec.component.scss']\n})\n\nexport class FooterEcComponent extends ComponentHelper implements OnInit {\n public menuItemsCategories: Menu[] = [];\n public menuItemsSections: Menu[] = [];\n public menuItemsAttributes: Menu[] = [];\n\n public sections = [];\n public categories = [];\n public attributes = [];\n public mediaUrl: string;\n public params: any = {};\n\n\n constructor(protected optionsService: OptionsService, public paramsService: ParametersService, protected consts: Constants) {\n super();\n this.optionsService.sections.subscribe(res => (res.length > 0) && this.updateMenuItem(res));\n this.optionsService.categories.subscribe(res => (res.length > 0) && this.updateCategories(res));\n this.optionsService.attributes.subscribe(res => (res.length > 0) && this.updateAttributes(res));\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.ecOnInit()\n\n }\n\n protected updateCategories = (categories) => {\n this.menuItemsCategories = this.optionsService.generateMenu(categories);\n this.menuItemsCategories = this.ecUpdateMenuItemCategories(this.menuItemsCategories)\n this.categories = this.menuItemsCategories\n }\n\n protected updateAttributes = (attributes) => {\n this.menuItemsAttributes = this.optionsService.generateMenu(attributes);\n this.menuItemsAttributes = this.ecUpdateMenuItemAttributes(this.menuItemsAttributes)\n this.attributes = this.menuItemsAttributes\n }\n\n protected updateMenuItem = (elements) => {\n this.menuItemsSections = this.optionsService.generateMenu(elements);\n this.menuItemsSections = this.ecUpdateMenuItemSection(this.menuItemsSections)\n this.sections = this.menuItemsSections;\n }\n\n hasParams = (params, searched) => params && params.find(param => param.code.toLowerCase().includes(searched));\n\n mobile = () => this.consts.mobile();\n\n public addChildren = (menuItems, code, item, stackPlace = 'end') => {\n (stackPlace == 'start')\n ? menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.unshift(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n : menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.push(\n { code: 'sd', name: 'sd', path: '/home', title: 'sd', ...item }\n )\n }\n\n public ecUpdateMenuItemSection = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemCategories = (menuItems) => {\n return menuItems\n }\n\n public ecUpdateMenuItemAttributes = (menuItems) => {\n return menuItems\n }\n}","import { Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Router, Event, NavigationStart } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Menu } from '../../interfaces/navbar-items';\nimport { Constants } from '../../core.consts';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ParametersService } from '../../services/parameters.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { AuthService } from '../../services/auth.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { TranslateService } from '@ngx-translate/core';\ndeclare var $ : any\n\n@Component({\n selector: 'app-header-ec',\n templateUrl: './header-ec.component.html',\n styleUrls: ['./header-ec.component.scss']\n})\n\nexport class HeaderEcComponent extends ComponentHelper implements OnInit {\n \n transparent: boolean;\n mediaMenu: boolean;\n\n //og elden\n public menuItems: Menu[] = [];\n public menuSections: any[] = [];\n\n public attributes: Menu[] = [];\n public categories: Menu[] = [];\n public envetUrlTransparent = [\"/home\", \"/\"];\n public searchValue: string;\n public params: any = {};\n public toggled = false;\n\n @ViewChild(\"menu\") menu_button: ElementRef;\n\n constructor(\n public router: Router,\n protected consts: Constants,\n public cartService: CartService,\n protected optionsService: OptionsService,\n public paramsService: ParametersService,\n public productsService: ProductsService,\n public authService: AuthService,\n public translate: TranslateService,\n protected renderer: Renderer2) {\n super();\n this.envetUrlTransparent = this.changeUrlTransparent(this.envetUrlTransparent)\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n this.changeUrlNavigation(url)\n this.envetUrlTransparent.find(evUrl => evUrl === url) != undefined \n ? this.transparent = true\n : this.transparent = false\n }\n });\n // menu\n this.optionsService.categories.pipe(filter(cat => cat.length > 0)).subscribe(res => {\n this.updateMenuItem('categories', res)\n this.subscribeCategories(res)\n });\n this.optionsService.attributes.pipe(filter(atr => atr.length > 0)).subscribe(res => {\n this.updateMenuItem('attributes', res)\n this.subscribeAttributes(res)\n });\n this.ecOnConstruct()\n }\n\n \n\n\n ngOnInit(): void {\n this.paramsService.parameters.subscribe(res => this.params = res);\n const mediaQuery = window.matchMedia('(max-width: 992px)');\n this.mediaMenu = mediaQuery.matches;\n this.ecOnInit()\n }\n\n protected updateMenuItem = (title, elements) => {\n const index = this.menuItems.findIndex(element => element.title == title);\n if (index != null && index >= 0) {\n this.menuItems[index].children = this.optionsService.generateMenu(elements);\n } else {\n if (title == 'attributes') {\n this.attributes.push(...this.optionsService.generateMenu(elements))\n this.attributes = this.updateMenuItemLastCreated(this.attributes);\n }\n if (title == 'categories') {\n this.categories.push(...this.optionsService.generateMenu(elements))\n this.categories = this.updateMenuItemLastCreated(this.categories);\n } \n }\n }\n\n nagivate = (url: string) => this.router.navigateByUrl(`/${url}`);\n \n logout = () => {\n this.authService.logout();\n this.router.navigateByUrl('home');\n }\n\n setSearchValue = (event) => {\n event.key == 'Enter' && this.getCollectionSearch()\n this.searchValue = event.target.value;\n }\n\n getCollectionSearch = () => this.router.navigateByUrl('/collection?search=' + this.searchValue);\n \n\n toogleToolbar = () => {\n console.log('LLAMA AL TOOGLE')\n if (this.menu_button.nativeElement.classList.contains('d-none')) {\n this.renderer.removeClass(this.menu_button, 'd-none');\n this.renderer.addClass(this.menu_button, 'active-mobile');\n } else {\n this.renderer.addClass(this.menu_button, 'd-none');\n this.renderer.removeClass(this.menu_button, 'active-mobile');\n }\n }\n\n changeLanguage = (lang) => {\n this.consts.setLocale(lang)\n window.location.reload()\n } \n\n changeUrlTransparent = (urlTransparent = []) => urlTransparent\n\n subscribeAttributes = (arrayAttributes: Array<any>) => {\n \n }\n\n subscribeCategories = (arrayCategories: Array<any>) => {\n \n }\n\n updateMenuItemLastCreated = (arrayMenu: Menu[]) => arrayMenu\n\n changeUrlNavigation = (url: string) => { }\n \n}\n","import { Component, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { IBlock } from '../../interfaces/block';\nimport { BlocksService } from '../../services/blocks/blocks.service';\n\n\n@Component({\n selector: 'app-home-ec',\n templateUrl: './home-ec.component.html',\n styleUrls: ['./home-ec.component.scss']\n})\nexport class HomeEcComponent extends ComponentHelper implements OnInit {\n\n constructor(public blocksService: BlocksService, protected consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.blocksService.getBlocks('home');\n this.ecOnInit()\n\n }\n\n getHTMLContent = (block: IBlock) => block.translations[this.consts.getLocale()].content;\n\n noNewsletter = (block) => !block.code.includes('newsletter');\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\"\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from \"../../classes/component-helper\";\nimport { UserRoleType } from \"../../classes/user-role-type\";\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from \"../../utils/toast.service\";\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-login-ec',\n templateUrl: './login-ec.component.html',\n styleUrls: ['./login-ec.component.scss']\n})\nexport class LoginEcComponent extends ComponentHelper implements OnInit {\n\n @Input() redirect = true;\n @Input() title = 'login';\n @Input() buyButton = false;\n @Input() withRoles: UserRoleType[] = []\n @Output() ready = new EventEmitter();\n @Output() loggedIn = new EventEmitter();\n\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService,\n protected toastrService: ToastService,\n protected formBuilder: FormBuilder,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n\n ngOnInit() {\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.ecOnInit()\n\n }\n\n redirectHome = () => {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl('/home')\n }\n\n nagivate(url: string) {\n $('#collapse_login5').collapse('hide');\n this.router.navigateByUrl(`/${url}`);\n }\n\n\n login = ($event) => {\n $event.preventDefault();\n this.loading = true;\n this.authService.login(this.loginForm.value, this.withRoles).toPromise().then(\n res => {\n $('#collapse_login5').collapse('hide');\n if (res == 'ok') {\n localStorage.setItem('mail', this.loginForm.value.username);\n $('#collapse_login5').collapse('hide');\n if (this.redirect) {\n this.redirectHome()\n } else {\n this.loggedIn.emit('true')\n this.ready.emit(this.loginForm.value.username)\n }\n }\n else {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n $('#collapse_login5').collapse('hide');\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, partition } from 'rxjs';\nimport { Product } from '../../interfaces/product';\nimport { ProductsService } from './products.service';\nimport { CartService } from '../cart.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport _ from \"lodash\";\nimport { AnalyticsService } from '../analytics.service';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\n\n@Injectable()\nexport class ProductDetailService {\n\n private productSubject = new BehaviorSubject<Product>({});\n private optionsSubject = new BehaviorSubject<any>({});\n private asociatedDataSubject = new BehaviorSubject<any>({ price: '', stock: 0, picture: '' });\n\n private variants = []\n\n public product$ = this.productSubject.asObservable();\n public options$ = this.optionsSubject.asObservable();\n public asociatedData$ = this.asociatedDataSubject.asObservable();\n\n constructor(\n private productsService: ProductsService, private cartService: CartService, private toastrService: ToastService,\n private constants: Constants, public analyticsService: AnalyticsService,) {\n }\n\n /**\n * @param code Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * \n * Carga el producto solicitado asyncronicamente sin respuesta \n */\n loadProduct = (code, variant: boolean = false) =>\n this.productsService.getSpecificProduct(code, variant).toPromise().then(\n res => variant ? this.initialize(res, code) : this.initialize(res),\n err => this.productSubject.next(null)\n )\n\n /**\n * @param product_id Identificador del producto\n * @param variant Indica si se está solicitando un producto por su codigo, o por el codigo correspondiente a una de sus variantes\n * @async\n * \n * A diferencia del metodo loadProduct, este retorna un valor cuando termina \n */\n getProduct = async (product_id, variant: boolean = false) => {\n let result = await this.productsService.getSpecificProduct(product_id, variant).toPromise();\n if (!result || result.error) this.productSubject.next(null);\n else variant ? this.initialize(result, product_id) : this.initialize(result);\n return true;\n }\n\n private initialize = (product, variant_code?) => {\n this.productSubject.next(product);\n this.optionsSubject.next(this.getOptions())\n variant_code ? this.updateVariants(variant_code) : this.updateVariants();\n this.variants.length && this.generateAsociatedDataFromVariants();\n //this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n // variant_code && this.analyticsService.callEvent('view_item', { ...product, currency: this.constants.currency.code })\n }\n\n setProduct = (product) => this.isProductValid(product) && this.initialize(product);\n\n isReady = () => this.variants.length == 1;\n\n setOption = (option_code, option_value) => {\n let options = this.optionsSubject.value;\n let option = options.find(element => element.code == option_code).values.find(value => value.name == option_value);\n option.selected = !option.selected;\n options.find(element => element.code == option_code).values.forEach(\n value => { if (value.name != option.name) value.selected = false }\n );\n this.optionsSubject.next(options);\n this.updateVariants();\n this.generateAsociatedDataFromVariants();\n }\n\n changePicture = (picture) => {\n let data = this.asociatedDataSubject.value;\n data.picture = picture;\n this.asociatedDataSubject.next(data);\n }\n\n handleError = (error) => {\n // Whathever we need to do with error\n }\n\n addToCart(quantity) {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n this.toastrService.show('cant-buy');\n return;\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n this.variants.length == 0 && this.toastrService.show('no-variants');\n (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) && this.toastrService.show('variants-left');\n (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) && this.toastrService.show('out-of-stock');\n return;\n }\n if (!this.validateQuantity(quantity)) return;\n this.cartService.addToCart(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n };\n\n\n\n addToCartPromise = async (quantity) => {\n quantity = parseInt(quantity);\n if (!this.variants.length) {\n return { error: true, message: 'cant-buy' };\n }\n let product_selected = _.clone(this.productSubject.value);\n if (this.variants.length > 1 || this.variants.length == 0 || this.asociatedDataSubject.value.stock == 0) {\n if (this.variants.length == 0) return { error: true, message: 'no-variants' };\n else if (this.variants.length > 1 && this.asociatedDataSubject.value.stock > 0) return { error: true, message: 'variants-left' };\n else if (this.variants.length != 0 && this.asociatedDataSubject.value.stock == 0) return { error: true, message: 'out-of-stock' };\n }\n if (!this.validateQuantity(quantity)) return;\n let result = await this.cartService.addToCartPromise(this.makeAffordableProduct(product_selected), quantity, this.variants[0].code);\n return (result && !(result.error));\n };\n\n private getOptions = (product_received?: Product) => {\n let product = product_received || this.productSubject.value;\n let options = [];\n product.options.forEach(element => {\n options.push(this.toOption(element));\n })\n return options;\n }\n\n private toOption = (preoption) => {\n return {\n name: preoption.label,\n code: preoption.code,\n type: preoption.type,\n values: preoption.values.map(value => ({ name: value.code, description: value.name, selected: false }))\n }\n }\n\n private makeAffordableProduct(product_selected: Product) {\n product_selected.price = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.saleprice = parseFloat(this.asociatedDataSubject.value.price);\n product_selected.options = {};\n this.variants[0].options.forEach(option => product_selected.options = { ...product_selected.options, ...option })\n return product_selected;\n }\n\n private updateVariants = (code?) => {\n let variants = this.productSubject.value.variants;\n if (!code) {\n this.optionsSubject.value.forEach(option => {\n option.values.forEach(value => {\n if (value.selected) {\n variants = variants.filter(variant => {\n return variant.options.some(variant_option => {\n return (option.code in variant_option && variant_option[option.code] == value.name);\n })\n })\n }\n })\n })\n } else {\n variants = variants.filter(variant => variant.code == code);\n }\n this.variants = variants;\n code && this.updateOptions();\n }\n\n private updateOptions = () => {\n let { options } = this.variants.length && this.variants[0];\n options && options.forEach(option => Object.keys(option).forEach(key => this.setOption(key, option[key])))\n }\n\n private generateAsociatedDataFromVariants = () => {\n let asociated: any = {};\n if (this.isReady()) {\n asociated.stock = this.variants[0].stock\n asociated.price = this.variants[0].price.toString()\n asociated.saleprice = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n asociated.discount = this.variants[0]?.discount || undefined;\n // asociated.price = this.variants[0].saleprice && this.variants[0].saleprice.toString() || undefined;\n // asociated.saleprice = this.variants[0].price.toString()\n } else {\n asociated.price = this.cratePrice()\n asociated.saleprice = this.crateSalePrice()\n asociated.stock = (this.variants.map(variant => variant.stock)).reduce((a, b) => a + b)\n asociated.discount = this.crateDiscount()\n }\n\n ('images' in this.variants[0] && this.variants[0].images.length > 0)\n ? asociated.picture = this.variants[0].images[0]\n : asociated.picture = (this.asociatedDataSubject.value.picture || this.productSubject.value.picturesdefault[0]);\n\n\n asociated.maximumAmount = this.variants[0]?.maximumAmount || 0\n asociated.minimumAmount = this.variants[0]?.minimumAmount || 0\n\n asociated.maximumItemsQuantity = this.variants[0]?.stock > 0 && 'maximumItemsQuantity' in this.variants[0] ? this.variants[0]?.maximumItemsQuantity : this.variants[0]?.stock\n asociated.minimumItemsQuantity = this.variants[0]?.stock > 0 && 'minimumItemsQuantity' in this.variants[0] && this.variants[0]?.minimumItemsQuantity > 0 ? this.variants[0]?.minimumItemsQuantity : 1\n\n asociated.finalConsumer = {\n finalConsumerPrice: this.variants[0]?.final_consumer_price,\n originalFinalConsumerPrice: this.variants[0]?.original_final_consumer_price,\n }\n\n asociated.taxes = {\n taxIncluded: this.variants[0]?.taxIncluded,\n taxCategory: this.variants[0]?.taxCategory,\n }\n\n this.asociatedDataSubject.next(asociated);\n }\n\n private crateDiscount = () => {\n try {\n let all_discount = '';\n this.variants.forEach(variant => {\n variant.discount && (all_discount = all_discount + ', ' + variant.discount);\n });\n if (all_discount == '') {\n return undefined\n }\n return all_discount\n } catch (error) {\n return undefined\n }\n }\n\n private cratePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n all_prices.push(variant.price);\n });\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private crateSalePrice = () => {\n let min_price = 0;\n let max_price = 0;\n let all_prices = [];\n this.variants.forEach(variant => {\n variant.saleprice && all_prices.push(variant.saleprice);\n });\n if (!all_prices.length) {\n return undefined\n }\n min_price = all_prices.reduce((a, b) => Math.min(a, b));\n max_price = all_prices.reduce((a, b) => Math.max(a, b), 0);\n return min_price == max_price ? max_price.toString() : min_price + ' - ' + max_price;\n }\n\n private inRange = (quantity, min, max) => ((quantity - min) * (quantity - max) <= 0)\n\n private validateQuantity = (quantity: number) => {\n const actualQuantity = this.cartService.getCountFromItemInCart(this.variants[0].code);\n const asociatedData = this.asociatedDataSubject.value;\n console.log('La cantidad que llego: ', quantity, ' y la cantidad actual: ', actualQuantity);\n if ((actualQuantity + quantity) > asociatedData.maximumItemsQuantity) {\n this.toastrService.show('maximum-items-quantity', { quantity: asociatedData.maximumItemsQuantity })\n return false;\n }\n if ((actualQuantity + quantity) < asociatedData.minimumItemsQuantity) {\n this.toastrService.show('minimum-items-quantity', { quantity: asociatedData.minimumItemsQuantity })\n return false;\n }\n return true\n }\n\n // Cuando haya modelos de respuesta, validamos que no se intente cargar un producto incompleto\n private isProductValid = (product: Product) => true;\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * \n * @description Retorna una lista filtrada de las variantes que estan seleccionadas\n */\n private getVariantsSelected(options: any, optionsException: Array<any>): Array<Object> {\n\n let variantsSelected = [];\n options.forEach(v => {\n if (v.values && v.values.length) {\n v.values.forEach(val => {\n if (val.selected && !optionsException.find(op => op.toUpperCase() == v.code.toUpperCase())) {\n variantsSelected[v.code] = val.name;\n }\n })\n }\n });\n\n return variantsSelected;\n\n }\n\n /**\n * \n * @param options Array de Variantes y sus valores\n * @param variants Todas las variantes disponibles del producto\n * \n * @description retorna todas las variantes disponibles a seleccion y su stock\n */\n public getVariantsAvailable(options: any, variants: any, optionsException: Array<any>): any {\n\n let variantsSelected = this.getVariantsSelected(options, optionsException);\n\n let variantsAvailable = [];\n\n variants.map(v => {\n\n let aux = {};\n if (v.options && v.options.length) {\n v.options.map(op => {\n Object.assign(aux, op, { stock: v.stock });\n })\n }\n variantsAvailable.push(aux);\n })\n return variantsAvailable.filter(va => this.constants.containsAll({ ...variantsSelected }, va))\n }\n\n\n /**\n * \n * @param options Array de variantes y sus valores\n * @param code Codigo de la variante a buscar\n * @param name nombre de la variante a buscar\n * @param variants variantes del producto\n * \n * @description busca en la lista de variantes disponibles si hay de ese codigo, ese nombre y con stock \n */\n public existVariantAndHasStock(options, code, name, variants, optionsException = []): boolean {\n\n return this.getVariantsAvailable(options, variants, optionsException).find(va =>\n va.hasOwnProperty(code) && va[code] === name && va.stock > 0)\n }\n\n /**\n * \n * @param product producto el cual se quiere desdoblar por variantes por una opción.\n * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.\n * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.\n * @returns arreglo con el producto desdoblado por la variante solicitada.\n * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto ) \n */\n getProductWithUniqueVariant = (product, withOption?: ParamsProductsWithUniqueVariant) => {\n return this.productsService.getProductsWithUniqueVariant([product], withOption)\n }\n\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { CartService } from '../../services/cart.service';\nimport { OptionsService } from '../../services/options.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\nimport { ProductsService } from '../../services/products/products.service';\nimport { ToastService } from '../../utils/toast.service';\n\n\n@Component({\n selector: 'app-product-detail-ec',\n templateUrl: './product-detail-ec.component.html',\n styleUrls: ['./product-detail-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductDetailEcComponent extends ComponentHelper implements OnInit {\n\n public product: any;\n public mediaUrl;\n public show = false;\n public quantity = 1;\n public breadcrumb = [];\n public carousel: any;\n public code = null;\n public focusImage: string = null\n public owlOptions = {}\n \n\n @ViewChild('contact') contact: ElementRef;\n\n constructor(\n public productService: ProductDetailService,\n public consts: Constants,\n protected activedRoute: ActivatedRoute,\n public cartService: CartService,\n public optionsService: OptionsService,\n public productsService: ProductsService,\n public analyticsService: AnalyticsService,\n public router: Router,\n protected toastrService: ToastService) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.activedRoute.params.subscribe(queryParams => {\n let variant: any = (this.activedRoute.snapshot.queryParamMap.get('variant'));\n let code = queryParams.id;\n this.productService.loadProduct(code, variant);\n this.code = queryParams.id\n })\n this.productService.product$.subscribe(res => {\n this.product = res;\n window.scroll(0, 0);\n this.breadcrumb = this.optionsService.getBreadcrumb(this.product.category);\n });\n this.productService.product$.pipe(filter(data => data && data.id && data.id != 0)).subscribe(\n (productParam) => {\n this.analyticsService.callEvent('view_item', { ...productParam, currency: this.consts.currency.code })\n this.changeImgFocus(productParam.picturesdefault[0])}\n )\n this.ecOnConstruct()\n\n }\n\n ngOnInit(): void {\n this.ecOnInit()\n }\n\n addToCart = () => {\n this.quantity > 0 && this.productService.addToCart(this.quantity);\n }\n\n addAllProductosToCart = () => {\n let items = this.product.productWithUniqueVariant?.filter(prod => prod.productToCartItem).map(prod => prod.productToCartItem)\n items?.length && this.cartService.addAllToCart(items)\n }\n\n scroll() {\n let el = this.contact.nativeElement as HTMLElement;\n el.scrollIntoView();\n }\n\n saveRef = (carousel) => {\n this.carousel = carousel;\n }\n\n plus = (stock) => this.quantity < stock ? this.quantity = this.quantity + 1 : this.toastrService.show('out-of-stock-actually');\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n showContact = () => this.show = true;\n hideContact = () => this.show = false;\n\n thereIsMoreInfo = (product: any) => {\n let result;\n if (product?.special_mark && product?.special_mark.length) {\n result = product?.special_mark?.find(special_mark => special_mark.type == 'more_info');\n }\n return result;\n }\n\n changeImgFocus = (img) => {\n this.focusImage = img\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AuthService } from '../../services/auth.service';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\n\n@Component({\n selector: 'app-product-ec',\n templateUrl: './product-ec.component.html',\n styleUrls: ['./product-ec.component.scss'],\n providers: [ProductDetailService]\n})\nexport class ProductEcComponent extends ComponentHelper implements OnInit {\n\n public quantity = 1;\n public stock = 0\n public data = null\n\n\n constructor(public consts: Constants, public router: Router,public productService: ProductDetailService,public authService: AuthService,) {\n super();\n this.ecOnConstruct()\n }\n @Input() product: any;\n\n ngOnInit(): void {\n this.productService.setProduct(this.product)\n this.productService.asociatedData$.subscribe(res => { this.data = res; this.stock = res.stock })\n this.ecOnInit()\n }\n\n canBuy = () => false;\n\n ngOnChanges() {\n }\n\n buyOrRedirect = (variant = false) => {\n let idredirect = variant && this.product.variants.find(v => v.stock > 0)?.code\n if (!idredirect) { idredirect = this.product.id; variant = false }\n else { if (idredirect.includes(\"/\")) {idredirect = this.product.id ; variant = false} }\n this.router.navigateByUrl(`/product/${idredirect}${variant ? '?variant=true':''}`)\n }\n\n plus = () => this.quantity = this.quantity + 1;\n less = () => this.quantity > 1 ? this.quantity = this.quantity - 1 : null;\n\n addToCart = () => {\n this.productService.addToCart(+this.quantity)\n }\n\n getBrandName = product => {\n if (product && product.attributes)\n return product.attributes\n .filter(attribute => attribute.code === 'marca')\n .map(attribute => attribute.children[0].name)\n }\n}\n","import { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { AnalyticsService } from '../../services/analytics.service';\nimport { ProductsService } from '../../services/products/products.service';\n\n@Component({\n selector: 'app-related-products-ec',\n templateUrl: './related-products-ec.component.html',\n styleUrls: ['./related-products-ec.component.scss']\n})\nexport class RelatedProductsEcComponent extends ComponentHelper implements OnInit {\n\n public relatedProducts = [];\n @Input() product_id;\n public name = null;\n\n constructor(protected productsService: ProductsService,\n private analyticsService: AnalyticsService,\n public consts: Constants,\n public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.load(this.product_id)\n this.ecOnInit()\n }\n\n load(product_id) {\n this.productsService.getRelatedProducts(product_id).pipe(take(1)).subscribe(\n res => {\n this.relatedProducts = res\n res.map(products => this.analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.title?.toLowerCase()?.replace(' ', '-') || 'related-products' }))\n },\n //res => res.items ? this.products = res.items : null\n // err => this.toastrService.show('unable-to-fetch-products')\n )\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.load(changes.product_id.currentValue)\n //this.doSomething(changes.categoryId.currentValue);\n // You can also use categoryId.previousValue and \n // categoryId.firstChange for comparing old and new values\n\n }\n\n\n\n public customOptions: any = {\n loop: true,\n dots: false,\n navSpeed: 950,\n margin: 0,\n navText: ['', ''],\n nav: true,\n responsive: {\n 0: {\n items: 1,\n nav: true\n },\n 600: {\n items: 3,\n nav: true\n },\n 900: {\n items: 4,\n nav: true,\n }\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { OptionsService } from '../../services/options.service';\n\n@Component({\n selector: 'app-section-container-ec',\n templateUrl: './section-container-ec.component.html',\n styleUrls: ['./section-container-ec.component.scss']\n})\nexport class SectionContainerEcComponent extends ComponentHelper implements OnInit {\n\n public content_html: SafeHtml = \"<p>Sin información</p>\";\n public loadSection: boolean = false;\n @Input() sanitizeHtml: boolean = false\n @Input() name = null;\n\n constructor(protected activatedRoute: ActivatedRoute, protected optionsService: OptionsService,\n protected toastrService: ToastrService, protected sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n if (this.name) {\n this.getSection(this.name)\n } else {\n this.activatedRoute.params.subscribe(\n params => {\n this.name = params.name;\n this.getSection(this.name)\n }\n );\n }\n this.ecOnInit()\n }\n\n getSection = (link: any) => {\n this.loadSection = false\n this.optionsService.getSectionContentByLink(link).toPromise().then(\n html => {\n if (html) this.content_html =\n this.sanitizeHtml\n ? html\n : this.sanitizer.bypassSecurityTrustHtml(html)\n this.loadSection = true\n }\n ,\n error => {\n console.log(error);\n this.loadSection = true\n this.content_html = \"<p>Sin información</p>\";\n this.toastrService.show('No fue posible encontrar la sección solicitada');\n }\n ).catch(error => {\n this.content_html = \"<p>Sin información</p>\"\n this.loadSection = true\n });\n }\n}","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { StoresService } from '../../services/stores.service';\n\n@Component({\n selector: 'app-store-ec',\n templateUrl: 'stores-ec.component.html',\n styleUrls: ['stores-ec.component.scss']\n})\nexport class StoresEcComponent extends ComponentHelper {\n\n public filterStores = null\n public storesAll = null\n public exclusiveStores = null\n public imageMap = true\n public urlmap;\n public stores = [];\n public provinces = []\n\n constructor(public storesService: StoresService, public consts: Constants , protected sanitizer: DomSanitizer) {\n super();\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148')\n this.storesService.stores.pipe(filter(store => store && store.length > 0)).subscribe(stores => {\n this.storesAll = stores\n this.stores = stores\n this.exclusiveStores = stores.filter(store => store.exclusive )\n this.selectChange('')\n })\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n updateMap(url:string) {\n url = url.includes ('embed') ? url : 'https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d13137.519688957545!2d-58.3888163!3d-34.5945533!3m2!1i1024!2i768!4f13.1!5e0!3m2!1ses-419!2sar!4v1523889204148'\n this.urlmap = this.sanitizer.bypassSecurityTrustResourceUrl(url)\n }\n\n /**\n * @description Obtiene todas la provincias que figuren en el arreglo\n * @param stores Arreglo de tiendas\n * @returns {Array} Arreglo de provincias\n */\n getProvices = (stores) => {\n let provincesOpt = []\n stores.forEach(store => {\n if (provincesOpt.find(s => s.code == store.province.code) == undefined) {\n provincesOpt.push(store.province)\n }\n });\n return provincesOpt\n }\n\n /**\n * @description Retorna un arreglo de objetos formado por las claves \n * \"province\"(contiene un objeto provincia) y\n * \"stores\" (contiene un arreglo de tiendas pertenecientes a la provincia)\n * @param stores Opcional, arreglo de tiendas a la que se le quiere aplicar la division por provincia\n * @returns {Array<{\"province\", \"stores\"}>}\n */\n getStoresByProvinces = (stores = this.stores) => {\n let storesByProvinces = []\n if(stores){\n let provinces = this.getProvices(stores)\n provinces.forEach( elem => {\n let aux = stores?.filter(store => store.province.code == elem.code)\n storesByProvinces.push({province:elem,stores:aux})\n })\n }\n return storesByProvinces\n } \n\n /**\n * @description Retorna las tiendas con/sin retiro en el local\n * @param stores Opcional, arreglo de tiendas \n * @param cond Opcional, Si es \"true\" obtiene las tiendas con retiro local caso contrario \"false\"\n * @returns {Array<Store>} Arreglo de Store\n */\n getPickupStores = (stores = this.stores, cond:Boolean = true) => stores && stores.filter(store => cond == store.pickupStore)\n\n /**\n * @description Metodo que devuelve las tiendas que NO son exclusivas.\n * @returns {Array<Store>} Arreglo de Store\n */\n getNonExclusiveStores = () => this.stores.filter(store => !store.exclusive )\n\n selectChange = (select) => {\n this.filterStores = select != '' && this.storesAll.filter(store => store.province.code == select) || this.storesAll\n return true\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-product-variants-ec',\n templateUrl: 'variants-ec.component.html',\n styleUrls: ['variants-ec.component.scss']\n})\nexport class VariantsEcComponent extends ComponentHelper {\n\n @Input() product;\n @Input('options') options$;\n @Input() setOption;\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n setSeleccion = (values) => {\n $('#op').attr('disabled', true); \n let valores = values.split(',')\n if (valores.length != 2) return\n console.log(values);\n console.log(valores);\n this.setOption(valores[0], valores[1])\n }\n\n view = (length, options) => {\n // console.log('LAS OPCIONES', options);\n return length > 1;\n }\n\n\n\n}","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from \"../../services/auth.service\";\nimport { ToastService } from '../../utils/toast.service';\nimport { Constants } from '../../core.consts';\nimport { take } from 'rxjs/operators';\nimport Fuse from 'fuse.js'\n\nexport type SellerDashboardUI =\n | 'HEADER_TAB'\n | 'GENERATE_BUDGET_BTN'\n | 'MANAGE_ORDERS_BTN'\n | 'SORT_SELECT'\n | 'SEARCH_FORM'\n | 'ORDER_COUNTER'\n\n@Component({\n selector: 'app-seller-dashboard-container',\n templateUrl: 'seller-dashboard-container-ec.component.html',\n styleUrls: ['seller-dashboard-container-ec.component.scss']\n})\nexport class SellerDashboardContainerEcComponent extends ComponentHelper implements OnInit {\n\n @Input() UIComponents: SellerDashboardUI[] = []\n \n public user = null\n public activeCustomer = null\n public sortValue = ''\n public searchInput = ''\n public customers = []\n public filteredCustomers = []\n private fuseOptions = {\n isCaseSensitive: false,\n shouldSort: false,\n tokenize: true,\n threshold: 0.2,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 0,\n keys: ['firstName', 'lastName', 'email', 'id']\n }\n private fuse = new Fuse(this.customers, this.fuseOptions)\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected constants: Constants, @Inject('env') protected env) {\n super()\n this.ecOnConstruct()\n }\n\n updateCustomers = () => {\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n\n this.filteredCustomers =\n this.searchInput\n ? this.fuse\n .search(this.searchInput)\n .map(customer => customer.item)\n : this.customers\n\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers(this.sortValue)\n }\n\n /**\n * @description Ordena la lista de clientes\n * @param value recibe una cadena que de estar formada de la forma \"tipoOrdenacion_atributoPorOrdenar\"\n * Ejemplo: \"asc_firstName\" o \"desc_id\" ...\n */\n sortCustomers = value => {\n \n this.sortValue = value\n \n let values = (value as string).split('_')\n let sortType = values[0]\n let attribute = values[1] \n\n const comparator =\n (sortType == 'asc')\n ? [-1, 1]\n : [1, -1]\n\n let typeValue\n if(this.filteredCustomers.length > 0){\n typeValue = typeof(this.filteredCustomers[0][attribute])\n }\n let sortFunction = typeValue == 'number' ? this.sortNumber : this.sortText\n \n this.filteredCustomers =\n this.sortValue\n ? this.filteredCustomers.sort( (aCustomer,otherCustomer) => sortFunction(aCustomer,otherCustomer,attribute,comparator))\n : this.filteredCustomers\n }\n\n private sortNumber = (aCustomer, otherCustomer, attribute, comparator) => aCustomer[attribute] < otherCustomer[attribute] ? comparator[0] : comparator[1]\n\n private sortText = (aCustomer, otherCustomer, attribute, comparator) => {\n return (aCustomer[attribute] == otherCustomer[attribute])\n ? aCustomer.lastName.toLowerCase() < otherCustomer.lastName.toLowerCase() ? comparator[0] : comparator[1]\n : String(aCustomer[attribute]).toLowerCase() < String(otherCustomer[attribute]).toLowerCase() ? comparator[0] : comparator[1]\n }\n\n changeCustomer = customer => {\n this.authService.setCustomer(customer)\n customer\n ? this.toastrService.show('start-impersonating', { customer: customer.firstName + ' ' + customer.lastName })\n : this.toastrService.show('stop-impersonating')\n }\n\n hasHeader = () =>\n this.hasUIComponent('HEADER_TAB') ||\n this.hasUIComponent('GENERATE_BUDGET_BTN') ||\n this.hasUIComponent('MANAGE_ORDERS_BTN') ||\n this.hasUIComponent('SORT_SELECT') ||\n this.hasUIComponent('SEARCH_FORM')\n\n navigateExternal = url => window.open(url)\n\n hasUIComponent = (UIComponent: SellerDashboardUI) => this.UIComponents.includes(UIComponent)\n\n ngOnInit() {\n this.authService.getUserProfile()\n .pipe(take(1))\n .subscribe(user => {\n this.user = user\n this.customers = user.customers\n this.filteredCustomers = this.customers\n this.fuse.setCollection(this.filteredCustomers)\n this.sortCustomers('desc_ordersNotApproved')\n })\n \n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-full-ec',\n templateUrl: 'loading-full-ec.component.html',\n styleUrls: ['loading-full-ec.component.scss']\n})\nexport class LoadingFullEcComponent extends ComponentHelper {\n\n @Input() hole_height = false;\n \n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-loading-inline-ec',\n templateUrl: 'loading-inline-ec.component.html',\n styleUrls: ['loading-inline-ec.component.scss']\n})\nexport class LoadingInlineEcComponent extends ComponentHelper {\n\n constructor() {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { CartService } from '../../../../services/cart.service';\nimport { ComponentHelper } from '../../../../classes/component-helper';\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: '[app-mp-credit-ec]',\n templateUrl: 'mpcredit-ec.component.html',\n styleUrls: ['mpcredit-ec.component.scss']\n})\nexport class MPCreditEcComponent extends ComponentHelper implements OnInit {\n\n @Input() public_key;\n @Input() total_amount;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n\n public installments = [];\n public installment;\n public installment_data;\n public issuers = [];\n public issuer_id;\n public merchant_account_id;\n public doSubmit = false;\n public payment_method = '';\n public require_issuer = false;\n public allready_payed = false;\n public payment_method_option_id;\n public payment_method_id;\n public processing_mode;\n public token;\n public email;\n public doc_number;\n public doc_type = \"DNI\";\n public bin;\n public code;\n public month;\n public year;\n public cardholder;\n\n protected finishApi = () => 'shop-api/' + this.consts.getChannel() + '/mercado-pago/' + this.cartService.cart_token + '/process-payment';\n\n constructor(protected renderer: Renderer2, protected connection: ConnectionService,\n public consts: Constants, protected cartService: CartService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n //console.log('SHIPMENT DATA', this.user_data);\n var s = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(s, 'src', 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js');\n this.renderer.appendChild(document.body, s);\n setTimeout(() => {\n Mercadopago.setPublishableKey(this.public_key);\n }, 1000)\n this.ecOnInit()\n\n }\n\n expiryChange = (event) => {\n let fecha = (event.target.value).replace(/ /g, \"\");\n let fechaSplit = fecha.split('/')\n if (fechaSplit.length == 2) {\n this.month = fechaSplit[0]\n this.year = fechaSplit[1]\n }\n }\n\n cardNumberChange = (event) => {\n //console.log('TOMA EL ON CHANGE DE TARJETA');\n this.restartInstallments();\n this.guessPaymentMethod(event);\n }\n\n verifyValidate = (data) => {\n // FALTA SACAR EL PAYMENT METOD OPTTION ID\n let post_data = {\n token: data.id,\n issuer_id: this.issuer_id,\n installments: this.installment,\n merchant_account_id: this.merchant_account_id,\n payment_method_option_id: this.payment_method_option_id,\n payment_method_id: this.payment_method_id,\n processing_mode: this.processing_mode,\n email: this.email,\n document_type: this.doc_type,\n document_number: this.doc_number,\n };\n //console.log('LA DATA QUE VA A MANDAR: ', post_data);\n this.connection.post(this.finishApi(), post_data).toPromise().then(this.processResponse, this.processError)\n }\n\n // Obtener método de pago de la tarjeta\n\n guessPaymentMethod = (event) => {\n //console.log('SE LLAMA AL GUESS PAYMENT');\n let cardnumber = (event.target.value).replace(/ /g, \"\");\n this.setPaymentMethod.bind(this);\n if (cardnumber.length >= 6) {\n let bin = cardnumber.substring(0, 6);\n this.getPaymentMethod(bin);\n }\n };\n\n getPaymentMethod = (bin) => {\n let data_to_send = {\n public_key: this.public_key,\n marketplace: 'NONE',\n status: 'active',\n js_version: '1.3.1',\n bins: bin,\n referer: 'http://enzoshoes.easycommercetech.com'\n }\n\n this.connection.getOutsiderWithParams('https://api.mercadopago.com/v1/payment_methods/search', data_to_send).toPromise().then((res) => {\n //console.log('LA RESPUESTA DEL SEARCH PAYMENT METHOD: ', res);\n if (res && res.results && res.results.length) {\n const payment_data = res.results.find(result => result.processing_mode == \"gateway\") || res.results[0];\n if (payment_data.payment_type_id != \"credit_card\") {\n this.toastr.show('Debe ingresar información de una tarjeta de credito');\n return;\n }\n this.payment_method = payment_data.id;\n this.issuer_id = payment_data.issuer.id;\n payment_data.payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: ('Cuotas: ' + payerCost.installments + ' - Total: ' + this.calculateTotal(payerCost)), value: payerCost.installments });\n });\n this.installment_data = payment_data;\n } else {\n this.toastr.show('El número de tarjeta ingresado no es valido');\n }\n }).catch(err => this.toastr.show('Hubo un error al obtener la información de la tarjeta. Verifique que los datos sean correctos.'));\n }\n\n setPaymentMethod = (status, response) => {\n //console.log('SE LLAMA AL SET PAYMENT', response);\n let paymentMethod = response[0];\n this.payment_method = paymentMethod.id;\n this.getIssuers.bind(this);\n this.getInstallments.bind(this);\n if (paymentMethod.additional_info_needed.includes(\"issuer_id\")) {\n this.getIssuers(paymentMethod.id);\n } else {\n // this.issuer_id = response.issuer\n this.getInstallments(\n paymentMethod.id,\n this.total_amount\n );\n }\n }\n\n // Obtener banco emisor\n\n getIssuers = (paymentMethodId) => {\n this.restartInstallments();\n this.require_issuer = true;\n //console.log('SE LLAMA AL GET ISSUER');\n this.setIssuers.bind(this);\n Mercadopago.getIssuers(\n paymentMethodId,\n this.setIssuers\n );\n }\n\n setIssuers = (status, response) => {\n //console.log('SE LLAMA AL SET ISSUER', response);\n this.getInstallments.bind(this);\n if (status == 200) {\n response.forEach(issuer => {\n this.issuers.push({ name: issuer.name, value: issuer.value });\n });\n } else {\n this.toastr.show('Error al obtener proveedores disponibles');\n }\n }\n\n // UTILS\n\n restartInstallments = () => {\n this.installments = [];\n this.installment_data = null;\n this.merchant_account_id = null;\n this.payment_method_option_id = null;\n this.issuer_id = null;\n this.payment_method_id = null;\n }\n\n selectIssuer = (value) => {\n this.issuer_id = value;\n this.getInstallments(this.payment_method, this.total_amount, this.issuer_id);\n }\n\n selectInstallment = (value) => {\n const cost = this.installments.find(installment_cost => installment_cost.value == value);\n this.installment = cost.value;\n this.merchant_account_id = this.installment_data.merchant_account_id;\n this.payment_method_option_id = cost.payment_method_option_id || (this.installment_data.agreements && this.installment_data.agreements[0].merchant_accounts[0].payment_method_option_id);\n this.issuer_id = this.installment_data.issuer.id;\n this.payment_method_id = this.installment_data.payment_method_id || this.installment_data.id;\n this.processing_mode = this.installment_data.processing_mode;\n\n //console.log('COMO QUEDAN: ', this.merchant_account_id, this.payment_method_option_id, this.issuer_id, this.payment_method_id, this.installment);\n // this.payme\n }\n\n // Obtener cantidad de cuotas\n\n getInstallments = (paymentMethodId?, transactionAmount?, issuerId?) => {\n let payment = paymentMethodId || this.payment_method;\n let amount = transactionAmount || this.total_amount;\n //console.log('SE LLAMA AL GET INSTALLMENTS');\n this.setInstallments.bind(this);\n let data = {\n \"payment_method_id\": payment,\n \"bin\": this.bin.replace(/ /g, \"\"),\n \"amount\": parseFloat(amount),\n \"issuer_id\": issuerId ? parseInt(issuerId) : undefined\n };\n //console.log('LO QUE VA A MANDAR AL GET INSTALLMENTS');\n Mercadopago.getInstallments(data, this.setInstallments);\n }\n\n setInstallments = (status, response) => {\n //console.log('LA RESPUESTA DEL GET INSTALLMENTS', response);\n if (status == 200 && response.length) {\n this.installments = [];\n response[0].payer_costs.forEach(payerCost => {\n this.installments.push({ ...payerCost, name: payerCost.recommended_message, value: payerCost.installments });\n });\n this.installment_data = response[0];\n } else {\n // alert(`installments method info error: ${response}`);\n this.toastr.show('Hubo un error al obtener las cuotas disponibles. Vuelva a intentarlo más tarde');\n }\n }\n\n // Crea el token de la tarjeta\n\n getCardToken = (event) => {\n //console.log('SE LLAMA AL GET CARD TOKEN');\n event.preventDefault();\n if (!this.doSubmit) {\n let $form = document.getElementById('paymentForm');\n Mercadopago.createToken.bind(this)($form, this.setCardTokenAndPay);\n return false;\n }\n };\n\n setCardTokenAndPay = (status, response) => {\n //console.log('SE LLAMA AL SET CARD TOKEN AND PAY');\n if (status == 200 || status == 201) {\n let form = document.getElementById('paymentForm');\n let card = document.createElement('input');\n card.setAttribute('name', 'token');\n card.setAttribute('type', 'hidden');\n card.setAttribute('value', response.id);\n form.appendChild(card);\n this.token = response.id;\n this.doSubmit = true;\n // form.submit();\n // TERMINAR\n this.verifyValidate(response);\n } else {\n //console.log('EL RESPONSE: ', response);\n this.toastr.show(this.parseErrorMessage(status));\n }\n };\n\n // UTILS\n\n isInvalid = () => {\n const result = (\n !this.issuer_id ||\n !this.payment_method_id ||\n !this.payment_method_option_id ||\n (this.processing_mode == 'gateway' && !this.merchant_account_id) ||\n !this.installment ||\n !this.email ||\n !this.doc_type ||\n !this.doc_number ||\n this.allready_payed ||\n !this.code ||\n !this.month ||\n !this.year ||\n !this.cardholder\n )\n return result;\n }\n\n calculateTotal = (cost) => {\n let result = this.total_amount + ((this.total_amount * cost.installment_rate) / 100);\n result = parseFloat(result).toFixed(2);\n return result;\n }\n\n processResponse = (response) => {\n if (response.status !== 'rejected') {\n //console.log('SE PUDO EFECTUAR LA COMPRA');\n this.ready.emit('true');\n return;\n }\n this.processError(response);\n }\n\n processError = (response) => {\n this.allready_payed = false;\n if (response.status_detail) {\n switch (response.status_detail) {\n case 'rejected': this.toastr.show('Revisa el número de tarjeta.'); break;\n case 'rejected': this.toastr.show('Revisa la fecha de vencimiento.'); break;\n case 'rejected': this.toastr.show('Revisa los datos.'); break;\n case 'rejected': this.toastr.show('Revisa el código de seguridad de la tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Debes autorizar ante payment_method_id el pago de amount.'); break;\n case 'rejected': this.toastr.show('Llama a payment_method_id para activar tu tarjeta o usa otro medio de pago. El teléfono está al dorso de tu tarjeta.'); break;\n case 'rejected': this.toastr.show('No pudimos procesar tu pago.'); break;\n case 'rejected': this.toastr.show('Ya hiciste un pago por ese valor. Si necesitas volver a pagar usa otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('Tu pago fue rechazado. Elige otro de los medios de pago, te recomendamos con medios en efectivo.'); break;\n case 'rejected': this.toastr.show('Tu payment_method_id no tiene fondos suficientes.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesa pagos en installments cuotas.'); break;\n case 'rejected': this.toastr.show('Llegaste al límite de intentos permitidos. Elige otra tarjeta u otro medio de pago.'); break;\n case 'rejected': this.toastr.show('payment_method_id no procesó el pago.'); break;\n }\n return;\n }\n this.toastr.show('Hubo un error al intentar realizar el pago. Vuelva a intentarlo más tarde');\n }\n\n parseErrorMessage = (status_code) => {\n switch (status_code) {\n case 205: return ('Ingresa el número de tu tarjeta.');\n case 208: return ('Elige un mes.');\n case 209: return ('Elige un año.');\n case 212: return ('Ingresa tu tipo de documento.');\n case 213: return ('Ingresa tu documento.');\n case 214: return ('Ingresa tu documento.');\n case 220: return ('Ingresa tu banco.');\n case 221: return ('Ingresa el nombre y apellido.');\n case 224: return ('Ingresa el código de seguridad.');\n case 316: return ('Ingresa un nombre válido.');\n case 322: return ('El tipo de documento es inválido.');\n case 323: return ('Revisa tu documento.');\n case 324: return ('El documento es inválido.');\n case 325: return ('El mes es inválido');\n case 326: return ('El año es inválido');\n default: return ('Verifique que los datos sean correctos.');\n }\n }\n\n getDescripcionCuota = (itemCuota) => {\n //console.log(itemCuota);\n return itemCuota.name\n }\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { ProductsService } from '../../../services/products/products.service';\n\n@Component({\n selector: 'app-price-ec',\n templateUrl: 'price-ec.component.html',\n styleUrls: ['price-ec.component.scss']\n})\n\nexport class PriceEcComponent extends ComponentHelper implements OnInit {\n\n @Input() price;\n @Input() saleprice;\n @Input() priceSize: boolean = true\n @Input() classStrSpacing;\n\n constructor(public productsService: ProductsService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-redsys-catch-ec',\n templateUrl: './redsys-catch-ec.component.html',\n styleUrls: ['./redsys-catch-ec.component.scss']\n})\nexport class RedsysCatchEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, public router: Router, public checkoutService: CheckoutService) {\n super();\n $(\"header\").hide();\n $(\"footer\").hide();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let state\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n state = queryRouter.state\n state && state == 'statuspayment' && (state = queryParams.status)\n console.log('PARAMETROS STATE -> ', state);\n switch (state) {\n case '200':\n state = 'success'\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'success':\n this.setStateInLocal('Su pago fue procesado con éxito.',state)\n break;\n case 'pending':\n this.setStateInLocal('Su pago fue procesado con éxito.', state)\n break;\n case 'failure':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'cancel':\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n case 'ok':\n this.setStateInSesion('Su pago fue procesado con éxito.', state)\n break;\n case 'challenge':\n this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state)\n break;\n case 'error':\n this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state)\n break;\n case '0':\n state = 'failure'\n this.setStateInLocal('Se ha cancelado el proceso de pago.', state)\n break;\n default:\n break;\n }\n })\n this.ecOnInit()\n }\n\n\n setStateInLocal = (mensaje, state) => {\n this.message = mensaje\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n setStateInSesion = (mensaje, state) => {\n this.message = mensaje\n sessionStorage.setItem('state', state)\n localStorage.setItem('state', state)\n sessionStorage.setItem('modalnews', 'false')\n }\n\n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { CartService } from '../../../services/cart.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n/** @dynamic */\n@Component({\n selector: 'app-redsys-pro-ec',\n templateUrl: 'redsys-pro-ec.component.html',\n styleUrls: ['redsys-pro-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysProEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data;\n @ViewChild('formDobleAuthContainer') protected formDobleAuth: ElementRef;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n protected intentoRequest: boolean = false\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected finishApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/process-payment';\n protected challengeApi = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/3ds-challenge';\n protected merchantOrder = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/' + this.cartService.cart_token + '/ds-merchant-order';\n \n constructor(protected renderer: Renderer2, protected connection: ConnectionService, protected toastrService: ToastService,\n public consts: Constants, public cartService: CartService, protected toastr: ToastService, @Inject(DOCUMENT) protected document: Document,\n protected activedRoute: ActivatedRoute,protected modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('method', JSON.stringify(this.method))\n sessionStorage.setItem('user_data', JSON.stringify(this.user_data))\n sessionStorage.setItem('finishApi',this.finishApi())\n sessionStorage.setItem('challengeApi',this.challengeApi())\n sessionStorage.setItem('merchantOrder',this.merchantOrder())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state && state != 'challenge') {\n sessionStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-redsys-redirect-ec',\n templateUrl: 'redsys-redirect-ec.component.html',\n styleUrls: ['redsys-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class RedSysRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n sessionStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : sessionStorage.getItem('state')\n console.log(state);\n if (state) {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'ok') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'menosuno') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-ceca-redirect-ec',\n templateUrl: 'ceca-redirect-ec.component.html',\n styleUrls: ['ceca-redirect-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CecaRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n\n public loading = true;\n public isDobleAuth = false;\n public urls = [];\n public closeModal = ''\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/cecabank/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n console.log(\"SE CAMBIO\");\n }\n \n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect',this.dataRedirect())\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con tarjeta')\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n console.log(state);\n if (state) {\n localStorage.removeItem('state')\n if (state == 'success') {\n this.modalRef.hide()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.modalRef.hide()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.modalRef.hide()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago')\n return \n }\n this.modalRef.hide()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 6000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { OrdersService } from '../../../services/account/orders.service';\n// import { OwlOptions } from 'projects/ng-easycommerce/src/lib/ec-component/product-detail-ec/node_modules/projects/ng-easycommerce/src/lib/ec-component/home-ec/node_modules/ngx-owl-carousel-o';\n\n@Component({\n selector: 'app-orders-ec',\n templateUrl: 'orders-list-ec.component.html',\n styleUrls: ['orders-list-ec.component.scss']\n})\nexport class OrdersEcComponent extends ComponentHelper implements OnInit {\n\n public mediaUrl;\n public orders;\n public loading = true;\n public error;\n\n constructor(public ordersService: OrdersService, public router: Router, protected consts: Constants) {\n super();\n this.mediaUrl = this.consts.mediaUrl();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.updateOrders();\n this.ordersService.orders$.pipe(filter(or => or)).subscribe(\n orders => {\n this.orders = this.sortedByNewest(orders);\n this.loading = false\n },\n err => {\n this.loading = false\n this.error = 'orders-error';\n }\n )\n this.ecOnInit()\n\n }\n\n sortedByNewest = orders => orders && orders.length && orders.sort((anOrder, otherOrder) => anOrder.number > otherOrder.number ? -1 : 1)\n\n goToOrder = (order) => {\n this.ordersService.setSelectedOrder(order);\n this.router.navigateByUrl((`account/orders/${order.number}`))\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n optionsBox = {\n loop: true,\n autoplay: true,\n smartSpeed: 950,\n margin: 10,\n dots: false,\n dotsData: false,\n navText: [\"\", \"\"],\n responsive: {\n 0: {\n items: 1,\n },\n 600: {\n items: 1,\n },\n 1000: {\n items: 1,\n }\n }\n }\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { OrdersService } from '../../../services/account/orders.service';\nimport { Constants } from '../../../core.consts';\nimport { ComponentHelper } from '../../../classes/component-helper';\n\n@Component({\n selector: 'app-order-ec',\n templateUrl: 'order-ec.component.html',\n styleUrls: ['order-ec.component.scss']\n})\nexport class OrderEcComponent extends ComponentHelper implements OnInit {\n\n protected orderSubject = new BehaviorSubject<any>({});\n\n public order$ = this.orderSubject.asObservable();\n public order = null\n public loading = true;\n public error;\n @Input() numberOrder = null\n\n constructor(public ordersService: OrdersService, protected activedRoute: ActivatedRoute, public router: Router, public consts: Constants) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.ordersService.selectedOrder$.subscribe(\n async res => {\n let order;\n if (this.numberOrder == null) {\n this.numberOrder = this.activedRoute.snapshot.params.number\n }\n if (res) order = res;\n else order = await this.ordersService.findOrder(this.numberOrder);\n order && this.orderSubject.next(order);\n !order && this.callError();\n this.order = order\n this.loading = false;\n }),\n err => {\n this.ordersService.error$.toPromise().then(res => this.error = res);\n this.loading = false;\n this.callError();\n }\n this.ecOnInit()\n }\n\n toDate = (date) => moment(date).format('DD/MM/YYYY, h:mm:ss a')\n\n callError = () => {\n this.error = '?';\n this.router.navigateByUrl('account/orders');\n }\n\n volver = () => this.router.navigateByUrl('account/orders');\n\n}","import { Component, Input, OnInit, OnChanges } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { ParametersService } from '../../services/parameters.service';\n\n@Component({\n selector: 'app-auth-ec',\n templateUrl: 'auth-ec.component.html',\n styleUrls: ['auth-ec.component.scss']\n})\nexport class AuthEcComponent extends ComponentHelper implements OnInit, OnChanges {\n\n @Input() complete = true;\n public data = {\n email: null,\n password: null,\n nombre: null,\n apellido: null,\n }\n @Input() redirect = true;\n public loginForm: FormGroup;\n public registerForm: FormGroup;\n public loading: Boolean = false;\n public register_loading: Boolean = false;\n public params: any = [];\n\n\n constructor(public authService: AuthService, protected toastr: ToastService,\n public paramsService: ParametersService,\n protected activatedRoute: ActivatedRoute,\n protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n\n this.activatedRoute.params.subscribe(\n params => {\n if (params?.data) {\n let resul = JSON.parse(atob(params.data))\n resul && this.authService.doLoginUser(resul)\n }\n }\n );\n this.ecOnInit()\n\n }\n\n ngOnChanges() {\n (this.authService.isAuthenticated() && this.complete) && this.router.navigateByUrl('/');\n }\n\n setProp = (prop, event) => {\n this.data[prop] = event.target.value;\n }\n\n login = () => this.redirect && this.redirectHome();\n\n redirectHome = () => {\n setTimeout(() => this.router.navigateByUrl('/'), 1500);\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.router.navigateByUrl('home')\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}\n\n\n\n\n\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AnalyticsService } from '../../../services/analytics.service';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-register-form-ec',\n templateUrl: 'register-form-ec.component.html',\n styleUrls: ['register-form-ec.component.scss']\n})\nexport class RegisterFormEcComponent extends ComponentHelper implements OnInit {\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success: Boolean = false\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public registroUsuario: any = {\n firstName: '',\n lastName: '',\n email: '',\n plainPassword: '',\n plainPassword2: '',\n newsletter: false,\n terms: false,\n }\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public analyticsService: AnalyticsService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n\n this.registerForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', Validators.required],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', Validators.required],\n newsletter: [false],\n terms: ['', Validators.required],\n });\n this.ecOnInit()\n\n }\n\n setProp = (prop, event) => {\n this.registroUsuario[prop] = event.target.value;\n }\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.value.plainPassword != this.registerForm.value.plainPassword2) {\n this.toastr.show('Las contraseñas no coinciden');\n this.register_loading = false\n return;\n }\n if (this.registerForm.valid) {\n this.authService.signUp(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.analyticsService.callEvent('sign_up', {\n firstName: this.registerForm.value.firstName,\n lastName: this.registerForm.value.lastName,\n email:this.registerForm.value.email\n })\n this.success =true\n this.ready.emit(true)\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { UserRoleType } from '../../../classes/user-role-type';\n\n@Component({\n selector: 'app-login-form-ec',\n templateUrl: 'login-form-ec.component.html',\n styleUrls: ['login-form-ec.component.scss']\n})\nexport class LoginFormEcComponent extends ComponentHelper implements OnInit {\n\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Input() title = 'login';\n /* @Input() withRoles: UserRoleType[] = [UserRoleType.SELLER, UserRoleType.RETAILER, UserRoleType.WHOLESALER] */\n /* @Input() withRoles: UserRoleType[] = [] */\n @Output() ready = new EventEmitter();\n public loading = false;\n public loginForm: FormGroup;\n\n constructor(protected authService: AuthService, protected toastrService: ToastService, protected formBuilder: FormBuilder, public router: Router) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.redirect && this.authService.isAuthenticated() && this.redirectHome()\n !this.authService.isAuthenticated() && localStorage.removeItem('mail')\n this.loginForm = this.formBuilder.group({\n username: ['', Validators.required],\n password: ['', Validators.required]\n });\n\n this.ecOnInit()\n }\n\n login = ($event, withRoles: UserRoleType[] = []) => {\n $event.preventDefault();\n this.loading = true;\n if (!this.loginForm.valid) {\n this.toastrService.show('Aún hay datos sin completar');\n return;\n }\n this.authService.login(this.loginForm.value, withRoles).toPromise().then(\n res => {\n if (res == 'ok') {\n if (this.redirect) {\n setTimeout(() => this.redirectHome(), 500);\n } else {\n this.ready.emit(this.loginForm.value.username);\n }\n }\n else {\n if (res == 'error') {\n /* Why would the USER care (or even know) about channels */\n /* this.toastrService.show('channel-permission-denied') */\n this.toastrService.show('invalid-credentials')\n this.loading = false;\n return\n }\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n },\n err => {\n this.loading = false;\n this.toastrService.show('invalid-credentials');\n }\n )\n }\n\n redirectHome = () => {\n const resolverFunction = this.authService.getHomeResolver()\n resolverFunction\n ? resolverFunction()\n : this.router.navigateByUrl('/')\n }\n\n}","import { Component } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\nimport { ToastService } from '../../../utils/toast.service';\n\n@Component({\n selector: 'app-forgot-password-ec',\n templateUrl: 'forgot-password-ec.component.html',\n styleUrls: ['forgot-password-ec.component.scss']\n})\nexport class ForgotPasswordEcComponent extends ComponentHelper {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n\n constructor(protected authService: AuthService, protected toastr: ToastService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.ecOnInit()\n }\n\n recoverPassword = (event) => {\n event.preventDefault();\n if (!this.validEmail()) this.toastr.show('invalid-email');\n else {\n this.loading = true;\n this.authService.recoverPassword(this.email).toPromise()\n .then(this.processOk, this.processOk).catch(this.processOk);\n }\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('non-existent-email')\n : this.toastr.show(response.error);\n }\n\n validEmail = () => this.email != '' && this.email.includes('@');\n}","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { AuthService } from '../../../services/auth.service';\n\n@Component({\n selector: 'app-confirm-account-ec',\n templateUrl: 'confirm-account-ec.component.html',\n styleUrls: ['confirm-account-ec.component.scss']\n})\nexport class ConfirmAccountEcComponent extends ComponentHelper {\n\n public ok: Boolean = false;\n public error: Boolean = false;\n\n constructor(protected authService: AuthService, protected activedRoute: ActivatedRoute) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n const token = this.activedRoute.snapshot.queryParams.token;\n this.authService.confirmAccount(token).toPromise().then(this.onSuccess, this.onSuccess).catch(this.onSuccess) \n this.ecOnInit()\n\n }\n\n onSuccess = () => {\n this.ok = true;\n }\n\n onError = () => {\n this.error = true;\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { AuthService } from '../../services/auth.service';\nimport { ToastService } from '../../utils/toast.service';\n\n@Component({\n selector: 'app-password-reset-ec',\n templateUrl: 'password-reset-ec.component.html',\n styleUrls: ['password-reset-ec.component.scss']\n})\nexport class PasswordResetEcComponent extends ComponentHelper implements OnInit {\n\n public email = \"\";\n public loading = false;\n public ready = false;\n protected token;\n public formGroup: FormGroup;\n\n constructor(protected authService: AuthService, protected toastr: ToastService, protected activedRoute: ActivatedRoute, \n public router: Router, protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.token = this.activedRoute.snapshot.queryParams.token;\n !this.token && this.router.navigateByUrl('/');\n this.formGroup = this.formBuilder.group({\n first: ['', Validators.required],\n second: ['', Validators.required]\n })\n this.ecOnInit()\n\n }\n\n sendNewPassword = (event) => {\n event.preventDefault();\n if (this.invalidForm()) return;\n this.loading = true;\n this.authService.passwordReset(this.formGroup.value.first, this.token).toPromise()\n .then(this.processOk)\n .catch(this.processError);\n }\n\n invalidForm = () => {\n if (this.formGroup.valid) {\n const passwords = this.formGroup.value;\n if (passwords.first == passwords.second) return false;\n else this.toastr.show('password-doesnt-match');\n } else this.toastr.show('invalid-form');\n return true;\n }\n\n processOk = (response) => {\n this.loading = false;\n this.ready = true;\n }\n\n processError = (response) => {\n this.loading = false;\n (!response || response.error)\n ? this.toastr.show('operation-error')\n : this.toastr.show(response.error);\n }\n\n sendToLogin = () => this.router.navigateByUrl('/auth/login');\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from \"@angular/router\";\nimport { BehaviorSubject } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Constants } from '../../../core.consts';\nimport { AuthService } from '../../../services/auth.service';\nimport { ParametersService } from '../../../services/parameters.service';\nimport { ToastService } from '../../../utils/toast.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-register-wholesaler-form-ec',\n templateUrl: 'register-wholesaler-form-ec.component.html',\n styleUrls: ['register-wholesaler-form-ec.component.scss']\n})\nexport class RegisterWholesalerFormEcComponent extends ComponentHelper implements OnInit {\n\n protected provincesSubject = new BehaviorSubject<any[]>([]);\n protected countriesSubject = new BehaviorSubject<any[]>([]);\n protected documentTypesSubject = new BehaviorSubject<any[]>([]);\n\n public provinces$ = this.provincesSubject.asObservable();\n public countries$ = this.countriesSubject.asObservable();\n public documentTypes$ = this.documentTypesSubject.asObservable();\n\n public isLogged: Boolean = true;\n @Input() darkMode = false;\n @Input() redirect = true;\n @Input() complete = true;\n @Output() ready = new EventEmitter();\n public success : Boolean = false;\n public requestTerms = false;\n public campospersonajuridica: boolean = false;\n public register_loading: boolean;\n public registerForm: FormGroup;\n public params: any = {};\n\n\n constructor(public authService: AuthService,\n protected toastr: ToastService,\n public router: Router,\n public consts: Constants,\n public paramsService: ParametersService,\n protected formBuilder: FormBuilder) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.paramsService.parameters.subscribe(res => this.params = res);\n this.registerForm = this.formBuilder.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n documentType: [null, [Validators.required]],\n documentNumber: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]],\n plainPassword: ['', Validators.required],\n plainPassword2: ['', []],\n countryCode: [null, Validators.required],\n street: [null, [Validators.maxLength(50)]],\n city: ['', Validators.required],\n postcode: ['', Validators.required],\n provinceName: ['', Validators.required],\n provinceCode: [null, Validators.required],\n companyName: ['', [Validators.required]],\n phoneNumber: ['', [Validators.required, Validators.pattern('[0-9]+')]],\n gender: [null, []],\n birthday: [null, [Validators.maxLength(11)]],\n taxIdentification: ['', Validators.required],\n comments: ['', []],\n contactFirstName: ['', []],\n contactLastName: ['', []],\n contactCompanyPosition: ['', []],\n contactEmail: ['', []],\n contactDocumentType: ['', []],\n contactDocumentNumber: ['', []],\n subscribedToNewsletter: [false],\n terms: [true, Validators.required],\n });\n this.authService.getCountriesData().then(res => {\n this.countriesSubject.next(res);\n let documentTypes = []\n res.map(paises => {\n this.consts.getLocale().toLocaleLowerCase().includes(paises.code.toLocaleLowerCase()) && (documentTypes = paises.documentTypes || [])\n });\n this.documentTypesSubject.next(documentTypes);\n });\n this.ecOnInit()\n }\n\n onCountrySelected = (value) => {\n $('#selectOpPais').attr('disabled', true);\n this.registerForm.controls['countryCode'].setValue(value);\n this.registerForm.controls['provinceCode'].setValue('');\n value != '' && this.provincesSubject.next(this.countriesSubject.value.find(country => country.code == value).provinces);\n }\n\n onProvincesSelected = (value) => {\n $('#selectOpProvincia').attr('disabled', true);\n this.registerForm.controls['provinceName'].setValue(this.provincesSubject.value.find(province => province.code == value).name);\n }\n\n onGenderSelected = (value) => {\n $('#selectOpSexo').attr('disabled', true);\n }\n\n onDocumentTypeSelected = (value) => {\n $('#selectOpDocumentType').attr('disabled', true);\n }\n\n redirectHome = () => {\n this.router.navigateByUrl('/')\n }\n\n register = (event) => {\n event.preventDefault();\n this.register_loading = true;\n if (!this.registerForm.valid) {\n this.toastr.show('Aún hay campos sin completar o invalidos');\n this.register_loading = false\n return;\n };\n this.register_loading = true;\n if (this.registerForm.valid) {\n this.authService.signUpWholesaler(this.registerForm.value).toPromise().then(\n res => {\n this.register_loading = false;\n this.toastr.show('register-ok');\n this.success = true;\n this.ready.emit(true);\n if(this.redirect){\n this.router.navigateByUrl('home')\n }\n },\n error => {\n this.register_loading = false;\n if (error.status == 400) {\n this.toastr.show('El email ingresado ya se encuentra registrado.');\n } else {\n this.toastr.show('Error en el registro. Vuelva a intentarlo más tarde.');\n }\n }\n )\n } else {\n this.toastr.show('invalid-form');\n }\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { Product } from '../../interfaces/product';\nimport { ParametersService } from '../../services/parameters.service';\n\n\n\n@Component({\n selector: 'app-share-block-ec',\n templateUrl: './share-block-ec.component.html',\n styleUrls: ['./share-block-ec.component.scss'],\n})\nexport class ShareBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() product: Product\n\n public url = ''\n public mediaimg = ''\n public description = ''\n public params: any = {}\n\n constructor(\n public consts: Constants, public paramsService: ParametersService, protected renderer: Renderer2, private meta: Meta, private title: Title) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.url = window.location.href\n this.mediaimg = this.product.picturesdefault && this.product.picturesdefault[0]\n this.description = this.product.name\n if (this.description) {\n this.meta.addTags(\n [\n {\n name: \"description\",\n content: this.description\n },\n {\n property: \"og:site_name\",\n content: this.title.getTitle()\n }\n ,\n {\n property: \"og:url\",\n content: this.url\n }\n ,\n {\n property: \"og:title\",\n content: this.description\n }\n ,\n {\n property: \"og:type\",\n content: 'product'\n }\n ,\n {\n property: \"og:price:amount\",\n content: this.product.price\n }\n ,\n {\n property: \"og:price:currency\",\n content: this.consts.currency.code\n }\n ,\n {\n property: \"og:image\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"og:image:secure_url\",\n content: this.consts.mediaUrl()+this.mediaimg\n }\n ,\n {\n property: \"witter:site\",\n content: '@'\n }\n ,\n {\n property: \"twitter:card\",\n content: 'summary_large_image'\n }\n ,\n {\n property: \"twitter:title\",\n content: this.description\n }\n ,\n {\n property: \"twitter:description\",\n content: this.description\n }\n \n ], true);\n }\n this.paramsService.parameters.subscribe(res =>{ \n this.params = res != null ? res?.filter( elem => elem.code.includes('share')) : []\n });\n\n this.ecOnInit()\n }\n\n toShareFacebook = () => {\n //return `https://www.facebook.com/share.php?u=${encodeURIComponent(this.url)}`\n return `https://www.facebook.com/share.php?u=${this.url}`\n }\n\n toShareTwitter = () => {\n //return `https://twitter.com/share?text=${encodeURIComponent(this.description)};url=${encodeURIComponent(this.url)}`\n return `https://twitter.com/share?text=${this.description}&url=${this.url}`\n }\n\n toSharePinterest = () => {\n //return `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(this.url)}&media=${encodeURIComponent(this.mediaimg)}&description=${encodeURIComponent(this.description)}`\n return `https://pinterest.com/pin/create/button/?url=${this.url}&media=${this.consts.mediaUrl()+this.mediaimg}&description=${this.description}`\n }\n\n toShareWhatsapp = (wsp) => {\n return `https://wa.me/${wsp.value}?text=Me%20interesa%20este%20producto.%20${this.url}`\n }\n\n toShareEmail = (mail) => {\n return `mailto:${mail.value}?subject=Consulta%20sobre%20el%20producto:%20${this.description}&body=Artículo:%20${this.url}`\n }\n\n createMetadata = () => {\n\n // <meta name=\"description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n // <meta property=\"og:site_name\" content=\"MYC HOME LINENS\">\n // <meta property=\"og:url\" content=\"https://myc-homelinens.com/products/cojin-algodon-joy-azul\">\n \n // <meta property=\"og:title\" content=\"COJÍN JOY - AZUL\">\n // <meta property=\"og:type\" content=\"product\">\n // <meta property=\"og:description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n // <meta property=\"og:price:amount\" content=\"20,20\">\n // <meta property=\"og:price:currency\" content=\"EUR\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image\" content=\"http://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZUL45FG_f3304197-1c5a-47e2-b993-8bfcde1f9978_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYAZULTEXTURA_1200x630.png?v=1614246269\">\n // <meta property=\"og:image:secure_url\" content=\"https://cdn.shopify.com/s/files/1/0054/8179/1603/products/JOYJUNTOSCUADRADA_69e9dcc0-d4d1-42e1-94f8-30f4ea263325_1200x630.png?v=1614246269\">\n // <meta name=\"twitter:site\" content=\"@\">\n // <meta name=\"twitter:card\" content=\"summary_large_image\">\n // <meta name=\"twitter:title\" content=\"COJÍN JOY - AZUL\">\n // <meta name=\"twitter:description\" content=\"Cojín JOY, en algodón rústico súper soft, tonos frescos y naturales, y con detalles de borlas para darle un toque divertido.\">\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CheckoutData } from '../../../interfaces/checkout-data';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\n\n@Component({\n selector: 'app-detail-checkout-block-ec',\n templateUrl: './detail-checkout-block-ec.component.html',\n styleUrls: ['./detail-checkout-block-ec.component.scss'],\n})\nexport class DetailCheckoutBlockEcComponent extends ComponentHelper implements OnInit {\n\n @Input() asociatedData\n public data = null\n\n constructor(public checkoutService: CheckoutService,) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit(): void {\n this.asociatedData && (this.data = this.asociatedData) ||\n this.checkoutService.asociatedData$.subscribe(data => this.data = data)\n this.ecOnInit()\n }\n\n getIcon = (data_item: CheckoutData) => {\n\n switch (data_item.type) {\n case 'coupon': return 'fas fa-ticket-alt fa-3x';\n case 'discount': return 'fas fa-tags fa-3x';\n case 'shipment': return 'fas fa-shipping-fast fa-3x';\n case 'subtotal': return 'fas fa-boxes fa-3x';\n case 'taxes': return 'fas fa-file-invoice-dollar fa-3x';\n case 'total': return 'fas fa-shopping-basket fa-3x';\n default: return 'fas fa-tags fa-3x';\n }\n }\n // case 'coupon': return 'assets/images/iconosdetailcheckout/ticket-alt.svg';\n // case 'discount': return 'assets/images/iconosdetailcheckout/tags.svg';\n // case 'shipment': return 'assets/images/iconosdetailcheckout/shipping-fast.svg';\n // case 'subtotal': return 'assets/images/iconosdetailcheckout/boxes.svg';\n // case 'taxes': return 'assets/images/iconosdetailcheckout/file-invoice-dollar.svg';\n // case 'total': return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n // default: return 'assets/images/iconosdetailcheckout/shopping-basket.svg';\n}\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { BodyError } from '../../interfaces/checkout/checkout-error';\nimport { CheckoutService } from '../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'ec-checkout-error',\n templateUrl: 'checkout-error-ec.component.html',\n styleUrls: ['checkout-error-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class CheckoutErrorComponent extends ComponentHelper implements OnInit {\n\n public error: BodyError;\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n @Input() urlRedireccion = '/cart'\n subs: Subscription;\n subsModal: Subscription;\n\n constructor(\n public checkoutErrorService: ErrorHandlerService,\n public checkoutService: CheckoutService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n console.log('Componente manejo de errores inicializando')\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n setTimeout(() => {\n this.navigateByUrl()\n }, 3000);\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl(this.urlRedireccion)\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n }else{\n this.subs = this.checkoutErrorService.error$.pipe(filter(res => res != null)).subscribe(\n res => {\n this.error = res;\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-lg ', keyboard: false, backdrop: 'static', animated: true })\n }\n );\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n this.navigateByUrl()\n })\n }\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../../classes/component-helper\";\nimport { ConnectionService } from '../../../../api/connection.service';\nimport { ToastService } from '../../../../utils/toast.service';\nimport { Constants } from '../../../../core.consts';\nimport { CartService } from '../../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mp-redirect-ec',\n templateUrl: 'mp-redirect-ec.component.html',\n styleUrls: ['mp-redirect-ec.component.scss'],\n})\nexport class MpRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getPreference()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con mercado pago')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getPreference = () =>\n this.paymentServiceInst.getPreference(this.allData).then(\n res => {\n this.preference = res;\n this.url = this.preference.init_point\n this.renderMP(this.preference);\n },\n err => this.setError('operation-error')\n );\n\n setError = (message) => {\n //this.error = message;\n }\n\n renderMP = (preference) => {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== 'https://www.mercadopago.com.ar' || !event.data.type) {\n return;\n }\n let dataType = event.data.type;\n if (dataType === 'submit') {\n const paymentData = event.data.value;\n return;\n }\n });\n }\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-redsys-redirect-out-ec',\n templateUrl: 'redsys-redirect-out-ec.component.html',\n styleUrls: ['redsys-redirect-out-ec.component.scss'],\n})\nexport class RedSysRedirectOutEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.url = \"../../../assets/redsysFrameRedirectOutBase.html\"\n }, 1000);\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n localStorage.removeItem('state')\n if (state == 'success' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return \n }\n if (state == 'pending' || state == 'ok') {\n this.ventana?.close()\n this.ready.emit(true)\n return\n }\n if (state == 'failure' || state == 'error') {\n this.ventana?.close()\n this.processError('')\n return \n }\n if (state == 'cancel') {\n this.ventana?.close()\n this.processError('Se cancelo el pago con redsys')\n return \n }\n this.ventana?.close()\n this.processError('')\n return \n }\n setTimeout(() => {\n this.callState()\n }, 5000); \n \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n\n setError = (message) => {\n \n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { Subscription } from 'rxjs';\ndeclare var paypal;\ndeclare var PAYPAL_CLIENT: any;\ndeclare var PAYPAL_SECRET: any;\ndeclare var PAYPAL_ORDER_API: any;\n\n@Component({\n selector: 'app-paypal-express-ec',\n templateUrl: 'paypal-express-ec.component.html',\n styleUrls: ['paypal-express-ec.component.scss'],\n})\nexport class PaypalExpressEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Output() ready = new EventEmitter();\n @Input() user_data = null;\n @ViewChild('template') protected template: TemplateRef<any>;\n @ViewChild('paypal', { static: true }) paypalElement: ElementRef;\n\n public getUrlNotification = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/paypal/redirect/notification';\n\n producto = {\n descripcion: 'producto en venta',\n precio: 10,\n img: 'imagen de tu producto'\n }\n title = 'angular-paypal-payment';\n\n public loading = false;\n public cart = null;\n public tried = 10;\n public subsCart: Subscription;\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute) {\n super();\n\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.loading = true;\n this.setVariables()\n this.subsCart = this.cartService.cart.subscribe(cart => {\n this.cart = cart\n console.log(this.cart);\n let scriptSdk = this.renderer.createElement(\"script\");\n this.renderer.setAttribute(scriptSdk, 'src', 'https://www.paypal.com/sdk/js?client-id=' + this.method.config.public_client_id + '¤cy=' + this.cart?.currency || 'USD');\n this.renderer.appendChild(document.body, scriptSdk);\n this.renderPayPal()\n })\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subsCart.unsubscribe()\n }\n\n ngOnChanges() {\n }\n\n renderPayPal = () => {\n if (this.tried == 0) {\n return\n }else{\n this.tried--\n }\n setTimeout(() => {\n try {\n if ((typeof paypal !== 'undefined') && paypal != undefined && paypal != null) {\n paypal\n .Buttons({\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [\n {\n amount: {\n currency_code: this.cart?.currency || 'USD',\n value: this.total_amount || this.cart?.totals?.total\n }\n }\n ]\n })\n },\n onApprove: async (data, actions) => {\n const order = await actions.order.capture();\n order.purchase_units[0]['reference_id'] = this.cart.tokenValue\n console.log(order);\n this.connection.postOutsider(this.getUrlNotification(), order).toPromise().then(res => {\n this.ready.emit(true)\n console.log('ok');\n }).catch(res => {\n this.processError('')\n console.log('error');\n })\n },\n onError: err => {\n console.log(err);\n this.processError('')\n }\n })\n .render(this.paypalElement.nativeElement);\n this.loading = false;\n } else {\n console.log('Entro al else');\n this.renderPayPal();\n }\n } catch (error) {\n console.log('Entro al catch');\n this.renderPayPal();\n }\n }, 1000);\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setVariables = () => {\n // setTimeout(() => {\n // if (typeof PAYPAL_CLIENT !== 'undefined'\n // && typeof PAYPAL_SECRET !== 'undefined'\n // && typeof PAYPAL_ORDER_API !== 'undefined') {\n // PAYPAL_CLIENT = this.method.config.public_client_id;\n // PAYPAL_SECRET = this.method.config.public_client_secret;\n // PAYPAL_ORDER_API = 'https://api-m.paypal.com/v2/checkout/orders/';\n // } else {\n // console.log('no entro al if');\n // this.setVariables()\n // }\n // }, 2000);\n }\n}","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $ : any \n\n@Component({\n selector: 'app-mobbex-ec',\n templateUrl: 'mobbex-ec.component.html',\n styleUrls: ['mobbex-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class MobbexEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataMobbex;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutMobbex()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con mobbex')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n \n } \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutMobbex = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutMobbex(this.allData).then(\n res => {\n this.dataMobbex = res;\n this.url = res?.data?.url && this.sanitizer.bypassSecurityTrustResourceUrl(res?.data?.url)\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-bancard-ec',\n templateUrl: 'bancard-ec.component.html',\n styleUrls: ['bancard-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class BancardEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataBancard;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/bancard/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con bancard')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && this.sanitizer.bypassSecurityTrustResourceUrl(res?.iframe_link)\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.dataBancard?.process_id && localStorage.setItem('dataRedirect', this.dataBancard.process_id )\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\ndeclare var $ : any \n\n@Component({\n selector: 'app-bancard-redirect-ec',\n templateUrl: 'bancard-redirect-ec.component.html',\n styleUrls: ['bancard-redirect-ec.component.scss'],\n})\nexport class BancardRedirectEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() user_data = null;\n @Input() paymentServiceInst;\n @Input() allData;\n @Output() ready = new EventEmitter();\n protected preference;\n protected dataBancard;\n\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() +'shop-api/' + this.consts.getChannel() + '/redsys/redirect/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2, \n public connection: ConnectionService, \n public toastrService: ToastService,\n public consts: Constants, \n public cartService: CartService, \n public toastr: ToastService, \n public activedRoute: ActivatedRoute,\n private sanitizer: DomSanitizer) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutBancard()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n iniciar = () => {\n this.closeModal = ''\n this.clearStorageState()\n this.ventana = window.open(this.url)\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.ventana?.close()\n }\n\n callState = () => {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n !state && this.ventana.closed && (state = 'cancel')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n this.processError('Se cancelo el pago con bancard')\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.ventana?.close()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 4000); \n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n setError = (message) => {\n \n }\n\n getCheckoutBancard = () => {\n this.loading = true\n this.paymentServiceInst.getCheckoutBancard(this.allData).then(\n res => {\n this.dataBancard = res;\n this.url = res?.iframe_link && res?.iframe_link\n res?.iframe_link || (this.url = null) && this.processError('operation-error')\n this.loading = false\n },\n err => {\n this.processError('operation-error')\n this.loading = false\n }\n );\n }\n\n}\n\n","import { THIS_EXPR, ThrowStmt } from '@angular/compiler/src/output/output_ast';\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { BodyError } from '../../../interfaces/checkout/checkout-error';\nimport { AuthService } from '../../../services/auth.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\nimport { ErrorHandlerService } from '../../../services/checkout/error-handler.service';\n\n@Component({\n selector: 'select-channel-ec',\n templateUrl: 'select-channel-ec.component.html',\n styleUrls: ['select-channel-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class SelectChannelEcComponent extends ComponentHelper implements OnInit {\n\n public bsModalRef: BsModalRef\n @ViewChild('template') protected template: TemplateRef<any>;\n subs: Subscription;\n subsModal: Subscription;\n public channels = []\n\n constructor(\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router\n ) {\n super();\n }\n\n ngOnInit() {\n this.subs = this.authService.channelsUser.pipe(filter(res => res != null && res.length > 0)).subscribe(\n res => {\n this.channels = res.map(item => {\n return { ...(item as object), selected: false }\n })\n this.initializeTemplate()\n }\n );\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n this.subs?.unsubscribe()\n this.subsModal?.unsubscribe()\n }\n\n navigateByUrl = () => {\n this.router.navigateByUrl('')\n }\n\n initializeTemplate = () => {\n if (!this.template) {\n setTimeout(() => {\n this.initializeTemplate()\n }, 1000);\n } else {\n this.bsModalRef = this.modalService.show(this.template, { class: 'modal-sm modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true })\n this.subsModal = this.modalService.onHide.subscribe(onClose => {\n this.bsModalRef = null\n })\n }\n }\n\n setSelect = (chanelSelect: any) => {\n this.channels.map(chanel => chanel.selected = chanel.code == chanelSelect.code)\n }\n\n setChannel = () => {\n if (this.channels.find(chanel => chanel.selected)) {\n this.authService.channelAccess(this.channels.find(chanel => chanel.selected))\n this.bsModalRef.hide()\n }\n }\n\n\n}","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { ComponentHelper } from '../../../classes/component-helper';\nimport { CartService } from '../../../services/cart.service';\nimport { CheckoutService } from '../../../services/checkout/checkout.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-cart-load-ec',\n templateUrl: './cart-load-ec.component.html',\n styleUrls: ['./cart-load-ec.component.scss']\n})\nexport class CartLoadEcComponent extends ComponentHelper implements OnInit {\n\n public message = ''\n\n constructor(public activedRoute: ActivatedRoute, \n public router: Router, \n public checkoutService: CheckoutService, \n public cartService: CartService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n let token\n combineLatest([this.activedRoute.params, this.activedRoute.queryParams]).subscribe(([queryRouter, queryParams]) => {\n token = queryRouter.token\n console.log('PARAMETROS token -> ', token);\n this.cartService.loadCartByToken(token).then(res => {\n this.router.navigateByUrl('/cart')\n })\n })\n this.ecOnInit()\n }\n\n}\n","import { ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: '[app-magnizoom-ec]',\n templateUrl: './magnizoom.component.html',\n styleUrls: ['./magnizoom.component.scss']\n})\nexport class MagnizoomComponent implements OnInit {\n\n private imageSrc:string\n @Input() set ImageSrc(value) { \n this.imageSrc = value; \n this.loadImage(this.imageSrc); \n }\n @Input() zoomMode: 'LENS' | 'COVER' = 'COVER';\n @Input() minZoomFactor = 1.2;\n @Input() maxZoomFactor = 3;\n\n @Input() imageStyle: { [x: string]: any; };\n @Input() imageClass: any;\n\n @ViewChild('mainCanvas', { static: true }) mainCanvasRef: ElementRef;\n\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n image: HTMLImageElement;\n\n mousePosition: Point2D = null;\n lensSize: Size2D = { width: 400, height: 300 };\n zoomFactor = 2;\n\n get canvasWidth() { return this.image && this.image.width || 800; }\n get canvasHeight() { return this.image && this.image.height || 600; }\n\n constructor() { }\n \n ngOnInit() {\n this.initContext();\n this.loadImage(this.imageSrc);\n }\n\n initContext() {\n \n this.canvas = (this.mainCanvasRef.nativeElement as HTMLCanvasElement);\n this.context = this.canvas.getContext('2d');\n }\n\n loadImage(src: string) {\n \n this.image = new Image();\n this.image.onload = () => {\n this.lensSize = { width: this.image.width / 2, height: this.image.height / 2 };\n setTimeout(() => this.render());\n };\n this.image.src = src;\n }\n\n render() {\n this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight); // clear canvas\n this.context.lineWidth = 1; // border width\n this.context.drawImage(this.image, 0, 0); // bg image\n\n if (this.mousePosition) {\n switch (this.zoomMode) {\n case 'LENS': this.renderLensMode(); break;\n case 'COVER': this.renderCoverMode(); break;\n }\n }\n }\n\n renderLensMode() {\n this.context.lineWidth = 5; // border width\n const zoomRect = this.getZoomRect();\n this.context.fillRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // bg (clear)\n const clippingRect = this.getClippingRect();\n // zoom image\n this.context.drawImage(\n this.image,\n clippingRect.x, clippingRect.y, clippingRect.w, clippingRect.h,\n zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h\n );\n this.context.strokeRect(zoomRect.x, zoomRect.y, zoomRect.w, zoomRect.h); // border\n }\n\n renderCoverMode() {\n const covertRect = this.getCoverRect();\n this.context.drawImage(\n this.image,\n covertRect.x, covertRect.y, covertRect.w, covertRect.h,\n 0, 0, this.canvasWidth, this.canvasHeight\n ); // cover image\n }\n\n getZoomRect() {\n const w = this.lensSize.width;\n const h = this.lensSize.height;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getClippingRect() {\n const w = this.lensSize.width / this.zoomFactor;\n const h = this.lensSize.height / this.zoomFactor;\n const x = this.mousePosition.x - (w / 2);\n const y = this.mousePosition.y - (h / 2);\n return this.clampRect(x, y, w, h);\n }\n\n getCoverRect() {\n const w = this.canvasWidth / this.zoomFactor;\n const h = this.canvasHeight / this.zoomFactor;\n // const x = this.mousePosition.x - (w / 2);\n // const y = this.mousePosition.y - (h / 2);\n const x = this.mousePosition.x - this.mousePosition.x / this.zoomFactor;\n const y = this.mousePosition.y - this.mousePosition.y / this.zoomFactor;\n return this.clampRect(x, y, w, h);\n }\n\n clampRect(x: number, y: number, w: number, h: number) {\n if (x <= 0) { x = 0; }\n if (x + w >= this.canvasWidth) { x = this.canvasWidth - w; }\n if (y < 0) { y = 0; }\n if (y + h >= this.canvasHeight) { y = this.canvasHeight - h; }\n return { x, y, w, h };\n }\n\n calculateMousePosition(clientX: number, clientY: number) {\n const boundingRect = this.canvas.getBoundingClientRect();\n const viewToModelX = this.canvasWidth / boundingRect.width;\n const viewToModelY = this.canvasHeight / boundingRect.height;\n const x = (clientX - boundingRect.left) * viewToModelX;\n const y = (clientY - boundingRect.top) * viewToModelY;\n this.mousePosition = { x, y };\n }\n\n onMouseLeave(event: MouseEvent) {\n this.mousePosition = null;\n this.render();\n }\n\n onMouseEnterOrMove(event: MouseEvent) {\n this.calculateMousePosition(event.clientX, event.clientY);\n this.render();\n }\n\n onMouseScroll(event: WheelEvent) {\n let newZoomFactor = this.zoomFactor;\n newZoomFactor -= event.deltaY / 1000;\n if (newZoomFactor < this.minZoomFactor) { newZoomFactor = this.minZoomFactor; }\n if (newZoomFactor > this.maxZoomFactor) { newZoomFactor = this.maxZoomFactor; }\n if (this.zoomFactor !== newZoomFactor) {\n this.zoomFactor = newZoomFactor;\n this.render();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ComponentHelper } from '../../classes/component-helper';\nimport { Constants } from '../../core.consts';\nimport { ParamsProductsWithUniqueVariant } from '../../interfaces/paramsInterfaces/paramsProductsWithUniqueVariant';\nimport { Product } from '../../interfaces/product';\nimport { ProductDetailService } from '../../services/products/product-detail.service';\ndeclare var $: any;\n\n@Component({\n selector: 'app-multiple-items-to-cart-ec',\n templateUrl: 'multiple-items-to-cart-ec.component.html',\n styleUrls: ['multiple-items-to-cart-ec.component.scss']\n})\nexport class MultipleItemsToCartEcComponent extends ComponentHelper {\n\n @Input() product: Product;\n @Input() objectWithVariant: ParamsProductsWithUniqueVariant;\n @Output() totalCostItems = new EventEmitter()\n @Output() totalItems = new EventEmitter()\n\n public total = 0\n public countItems = 0\n\n constructor(public consts: Constants, public productService: ProductDetailService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.product.productWithUniqueVariant = this.productService?.getProductWithUniqueVariant(this.product, this.getObjectParamsWithVariant())\n this.ecOnInit()\n }\n\n optionsProductForVariant = () => this.product.productWithUniqueVariant\n\n setQuantity = (value, product: Product) => {\n \n let quantity = Number(value) > product.currentOption.stock ? product.currentOption.stock : Number(value)\n product.productToCartItem = {\n productCode: product.currentOption.productCode,\n variantCode: product.currentOption.variantCode,\n quantity: quantity,\n finalPrice: product.currentOption.finalPrice,\n totalCost: quantity * product.currentOption.finalPrice,\n }\n\n this.total = 0\n this.countItems = 0\n this.product.productWithUniqueVariant.filter(prod => prod.productToCartItem).map(\n prod => {\n this.total += prod.productToCartItem.totalCost\n this.countItems += prod.productToCartItem.quantity\n }\n )\n this.totalCostItems.emit(this.total.toString())\n this.totalItems.emit(this.countItems.toString())\n\n }\n\n condition = (value, product: Product) : boolean => {\n if (Number(value) >= product.currentOption.stock) {\n return false\n }\n return true\n }\n\n allWithoutTracking = () => this.optionsProductForVariant().some( item => item.currentOption?.stock != 9999)\n\n private getObjectParamsWithVariant = (): ParamsProductsWithUniqueVariant => {\n return this.objectWithVariant || this.getObjectWithVariant()\n } \n\n getObjectWithVariant = (): ParamsProductsWithUniqueVariant => {\n return { type: 'color', code: 'color', defaultFirstOption: true , checkIfStock: false }\n } \n\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { RecaptchaSettings } from 'ng-recaptcha/recaptcha/recaptcha-settings';\nimport { BehaviorSubject} from 'rxjs';\nimport { map, filter, concatMap} from 'rxjs/operators';\nimport { ConnectionService } from '../api/connection.service';\nimport { Constants } from '../core.consts';\n//import * from '../assets/ec-i18n'\n@Injectable({\n providedIn: 'root'\n})\nexport class CaptchaService {\n \n private captchaSubject: BehaviorSubject<RecaptchaSettings> = new BehaviorSubject({siteKey:''})\n public captcha = this.captchaSubject.asObservable()\n \n private urlBaseFormat:string\n private testing:string = \"easycommercetech\"\n private productionEnvironment:Boolean = false;\n \n private recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';\n private recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';\n private recaptchaSitesUrlProd = './assets/recaptcha/recaptcha-sites-prod.json'\n\n private RECAPTCHA_SITE_KEYS \n private RECAPTCHA_SITES \n /**\n * @description Carga las configuraciones iniciales\n * @param consts Constantes del core\n * @param connection Servicio para realizar las peticiones HTTP al backend\n * @param http Servicio utilizado para obtener archivos estaticos contenidos dentro de la aplicación\n */\n constructor(private consts: Constants,\n private connection: ConnectionService,\n private http:HttpClient) {\n /**\n * @description Carga la direccion de la pagina actual que sera utilizada como clave para obtener\n * la clave por defecto que pertenece a esta direccion, inicializa la configuracion inicial.\n */\n this.urlBaseFormat = this.formatUrl(location.href)\n this.productionEnvironment = this.isProd()\n this.initializer()\n }\n /**\n * \n * @returns {string} path que contiene la direccion del endpoint referido al captcha\n */\n private captchaApi = () => 'shop-api/channels';\n \n /**\n * @description Devuelve true si la url es de produccion, false en caso contrario. \n * @returns {Boolean}\n */\n private isProd = () => !this.urlBaseFormat.includes(this.testing)\n\n /**\n * @description Carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores\n * de los Json estaticos, para posteriormente obtener la \"siteKey\"(clave del captcha) en caso\n * de que no venga desde el backend. \n */\n private initializer = () => {\n this.getRecaptchaSites().pipe(\n //filter( e => e[this.urlBaseFormat+'ee'] ),\n map(res => this.RECAPTCHA_SITES = res),\n concatMap(e => this.getRecaptchaSiteKeys().pipe(\n map(res => this.RECAPTCHA_SITE_KEYS = res)))).subscribe(\n e => this.getSiteKey())\n }\n /**\n * \n * @returns {Observable<>} Datos obtenidos del archivo con las claves captcha\n */\n private getRecaptchaSiteKeys = () => {\n return this.http.get<any[]>(this.recaptchaSiteKeysUrl)\n }\n\n /**\n * @description Se obtiene los datos segun el entorno en que se ejecute\n * @returns {Observable<>} Datos obtenidos del archivo con las url de los sitios\n */\n private getRecaptchaSites = () => this.productionEnvironment ? this.http.get<any[]>(this.recaptchaSitesUrlProd) : this.http.get<any[]>(this.recaptchaSitesUrl)\n\n /**\n * @description Genera una peticion para recibir la clave del captcha. En caso de no tener exito,\n * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con\n * los datos generados.\n */\n private getSiteKey = () => {\n this.connection.get(this.captchaApi()).toPromise().then(\n res => { console.log(res); this.captchaSubject.next({ siteKey: res.siteKey ? res.siteKey : this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) },\n err => { console.log('ERROR 1', err); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITES[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) }\n ).catch(err => { console.log('ERROR 2 ', err, ' Base url:', this.consts.getUrlBase()); this.captchaSubject.next({ siteKey: this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] }) })\n //console.log(this.captcha)\n }\n\n /**\n * \n * @returns {string} Clave del captcha.\n */\n public getKey = () => {\n return this.captcha.pipe(map((elem) => elem?.siteKey));\n }\n\n /**\n * @description Recibe una url y se encarga de quitarle \"http\", \"/\" y las demas rutas, para devolver la url\n * del sitio con una formato limpio. Ejemplo \"https://ejemplo.com.ar/ruta1/ruta2/\" a \"ejemplo.com.ar\" \n * @param {string} url url que sera formateada \n * @returns {string} url formateada\n */\n private formatUrl = (url:string) => url.split(\"/\").filter(e => e != \"/\").filter(e => !e.includes(\"http\")).filter(e => e.length).slice(0,1).pop()\n\n}","import { ElementRef, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { CaptchaService } from '../../../services/captcha.service';\n\ninterface Size2D { width: number; height: number; }\ntype Point2D = { x: number, y: number } | null;\n\n@Component({\n selector: 're-captcha-ec',\n templateUrl: './re-captcha-ec.component.html',\n styleUrls: ['./re-captcha-ec.component.scss']\n})\nexport class RecaptchaEcComponent implements OnInit {\n \n /**\n * @param form recibe el formulario que contiene al captcha.\n * @param siteKey recibe un string con la clave para el captcha\n */\n @Input() form: any;\n @Input() siteKey: string;\n public captcha:any;\n constructor(public captchaService: CaptchaService){ \n }\n\n ngOnInit(): void {\n // throw new Error('Method not implemented.');\n this.captchaService.captcha.subscribe( res => {\n this.captcha = res;\n this.updateKey()} )\n }\n\n /**\n * @description Carga el campo captcha del formulario pasado con la respuesta luego de completar el captcha.\n * @param {string} captchaResponse obtiene la respuesta que genero el captcha.\n */\n resolved(captchaResponse: string) {\n this.form.catpcha = captchaResponse;\n }\n /**\n * @description Actualiza la clave si está es pasada por parametro en la variable siteKey \n * @returns {null}\n */\n updateKey = () => this.siteKey ? this.captcha.siteKey = this.siteKey : null\n\n \n}\n","import { Component, Output, OnInit, ViewChild, ElementRef, Input, Renderer2, Inject, OnChanges, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { ComponentHelper } from \"../../../classes/component-helper\";\nimport { ConnectionService } from '../../../api/connection.service';\nimport { ToastService } from '../../../utils/toast.service';\nimport { Constants } from '../../../core.consts';\nimport { CartService } from '../../../services/cart.service';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\ndeclare var $: any\n\n@Component({\n selector: 'app-decidir-ec',\n templateUrl: 'decidir-ec.component.html',\n styleUrls: ['decidir-ec.component.scss'],\n providers: [BsModalService]\n})\nexport class DecidirEcComponent extends ComponentHelper implements OnInit, OnDestroy, OnChanges {\n\n @Input() paymentServiceInst;\n @Input() method = null;\n @Input() total_amount = 0;\n @Input() allData;\n @Input() user_data = null;\n @Output() ready = new EventEmitter();\n @ViewChild('template') protected template: TemplateRef<any>;\n protected modalRef: BsModalRef | null;\n protected dataDecidir;\n\n public loading = false;\n public isDobleAuth = false;\n public urls = [];\n public url;\n public closeModal = ''\n public ventana\n protected dataRedirect = () => this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cart_token + '/process-payment';\n\n constructor(public renderer: Renderer2,\n public connection: ConnectionService,\n public toastrService: ToastService,\n public consts: Constants,\n public cartService: CartService,\n public toastr: ToastService,\n public activedRoute: ActivatedRoute,\n public sanitizer: DomSanitizer,\n public modalService: BsModalService) {\n super();\n this.ecOnConstruct()\n }\n\n ngOnInit() {\n this.getCheckoutDecidir()\n this.ecOnInit()\n }\n\n ngOnDestroy() {\n // console.log(\"SE DESTROZA\");\n }\n\n ngOnChanges() {\n // console.log(\"SE CAMBIO\");\n }\n\n openModal(template: TemplateRef<any>) {\n this.clearStorageState()\n localStorage.setItem('dataRedirect', this.dataRedirect())\n localStorage.setItem('dataDecidir', JSON.stringify(this.method))\n console.log('dataaaaa', this.method);\n this.modalRef = this.modalService.show(template, { class: 'modal-xl modal-dialog-centered ', keyboard: false, backdrop: 'static', animated: true });\n this.closeModal = ''\n this.callState()\n }\n\n clearStorageState = () => {\n sessionStorage.removeItem('state')\n localStorage.removeItem('state')\n localStorage.removeItem('dataRedirect')\n localStorage.removeItem('dataDecidir')\n }\n\n clickClose = () => {\n this.closeModal = 'cancel'\n this.modalRef.hide()\n this.processError('Se cancelo el pago con Decidir')\n }\n\n\n callState = () => {\n try {\n let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')\n this.loading = true\n state && console.log(state);\n if (state) {\n this.loading = false\n this.clearStorageState()\n if (state == 'success') {\n this.ready.emit(true)\n }\n if (state == 'cancel') {\n return\n }\n if (state == 'failure') {\n this.processError('')\n }\n this.modalRef.hide()\n return\n }\n setTimeout(() => {\n this.callState()\n }, 5000);\n } catch (error) {\n console.error(error);\n\n }\n }\n\n processError = (err) => {\n this.toastrService.show(err != '' ? err : 'payment-error');\n console.log(\"ERROR ENVIO BACK \", err);\n }\n\n getCheckoutDecidir = () => {\n this.loading = true\n this.dataDecidir = this.method;\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html')\n this.loading = false\n }\n\n resizeIframe = (obj) => {\n obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';\n obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';\n }\n\n}\n\n","// //Component base\n\nimport { AccountEcComponent } from \"./account-ec/account-ec.component\";\nimport { BlockBannerBoxesEcComponent } from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nimport { BlockBannerFullEcComponent } from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nimport { BlockFormContactEcComponent } from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nimport { BlockHtmlEcComponent } from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nimport { ContactFormNewsEcComponent } from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nimport { BlockProductsEcComponent } from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nimport { BlocksEcComponent } from \"./blocks-ec/blocks-ec.component\";\nimport { CartEcComponent } from \"./cart-ec/cart-ec.component\";\nimport { CheckoutEcComponent } from \"./checkout-ec/checkout-ec.component\";\nimport { DataFormEcComponent } from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nimport { PaymentEcComponent } from \"./checkout-ec/payment-ec/payment-ec.component\";\nimport { ShipmentEcComponent } from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nimport { SuccessEcComponent } from \"./checkout-ec/success-ec/success-ec.component\";\nimport { CollectionEcComponent } from \"./collection-ec/collection-ec.component\";\nimport { CouponEcComponent } from \"./coupon-ec/coupon-ec.component\";\nimport { FaqsContentEcComponent } from \"./faqs-content-ec/faqs-content-ec.component\";\nimport { FiltersEcComponent } from \"./filters-ec/filters-ec.component\";\nimport { FiltersTopEcComponent } from \"./filters-top-ec/filters-top-ec.component\";\nimport { FooterEcComponent } from \"./footer-ec/footer-ec.component\";\nimport { HeaderEcComponent } from \"./header-ec/header-ec.component\";\nimport { HomeEcComponent } from \"./home-ec/home-ec.component\";\nimport { LoginEcComponent } from \"./login-ec/login-ec.component\";\nimport { ProductDetailEcComponent } from \"./product-detail-ec/product-detail-ec.component\";\nimport { ProductEcComponent } from \"./product-ec/product-ec.component\";\nimport { RelatedProductsEcComponent } from \"./related-products-ec/related-products-ec.component\";\nimport { SectionContainerEcComponent } from \"./section-container-ec/section-container-ec.component\";\nimport { StoresEcComponent } from \"./stores-ec/stores-ec.component\";\nimport { VariantsEcComponent } from \"./variants-ec/variants-ec.component\";\nimport { SellerDashboardContainerEcComponent } from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nimport { LoadingFullEcComponent } from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nimport { LoadingInlineEcComponent } from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nimport { MPCreditEcComponent } from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nimport { PriceEcComponent } from \"./widgets-ec/price-ec/price-ec.component\";\nimport { RedsysCatchEcComponent } from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nimport { RedSysProEcComponent } from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nimport { RedSysRedirectEcComponent } from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nimport { CecaRedirectEcComponent } from \"./widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nimport { OrdersEcComponent } from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nimport { OrderEcComponent } from \"./account-ec/order-ec/order-ec.component\";\nimport { AuthEcComponent } from \"./auth-ec/auth-ec.component\";\nimport { RegisterFormEcComponent } from \"./auth-ec/register-form-ec/register-form-ec.component\";\nimport { LoginFormEcComponent } from \"./auth-ec/login-form-ec/login-form-ec.component\";\nimport { ForgotPasswordEcComponent } from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nimport { ConfirmAccountEcComponent } from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nimport { PasswordResetEcComponent } from \"./password-reset-ec/password-reset-ec.component\";\nimport { RegisterWholesalerFormEcComponent } from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nimport { ShareBlockEcComponent } from \"./share-block-ec/share-block-ec.component\";\nimport { DetailCheckoutBlockEcComponent } from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nimport { CheckoutErrorComponent } from \"./checkout-error-ec/checkout-error-ec.component\";\nimport { MpRedirectEcComponent } from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nimport { RedSysRedirectOutEcComponent } from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nimport { PaypalExpressEcComponent } from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nimport { MobbexEcComponent } from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nimport { BancardEcComponent } from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nimport { BancardRedirectEcComponent } from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nimport { SelectChannelEcComponent } from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nimport { CartLoadEcComponent } from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nimport { MagnizoomComponent } from \"./widgets-ec/zoom-ec/magnizoom.component\";\nimport { MultipleItemsToCartEcComponent } from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nimport { RecaptchaEcComponent } from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nimport { DecidirEcComponent } from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n\n\nexport const components: any[] = [\n BlockBannerBoxesEcComponent,\n BlockBannerFullEcComponent,\n BlockFormContactEcComponent,\n BlockHtmlEcComponent,\n ContactFormNewsEcComponent,\n BlockProductsEcComponent,\n BlocksEcComponent,\n\n CartEcComponent,\n\n DataFormEcComponent,\n PaymentEcComponent,\n ShipmentEcComponent,\n SuccessEcComponent,\n CheckoutEcComponent,\n \n CollectionEcComponent,\n CouponEcComponent,\n FaqsContentEcComponent,\n FiltersEcComponent,\n FiltersTopEcComponent,\n FooterEcComponent,\n HeaderEcComponent,\n LoginEcComponent,\n ProductEcComponent,\n RelatedProductsEcComponent,\n SectionContainerEcComponent,\n StoresEcComponent,\n VariantsEcComponent,\n SellerDashboardContainerEcComponent,\n \n LoadingInlineEcComponent,\n LoadingFullEcComponent,\n MPCreditEcComponent,\n PriceEcComponent,\n RedsysCatchEcComponent,\n RedSysProEcComponent,\n RedSysRedirectEcComponent,\n HomeEcComponent,\n ProductDetailEcComponent,\n AccountEcComponent,\n OrdersEcComponent,\n OrderEcComponent,\n AuthEcComponent,\n RegisterFormEcComponent,\n LoginFormEcComponent,\n SelectChannelEcComponent,\n ForgotPasswordEcComponent,\n ConfirmAccountEcComponent,\n PasswordResetEcComponent,\n CecaRedirectEcComponent,\n\n RegisterWholesalerFormEcComponent,\n\n ShareBlockEcComponent,\n DetailCheckoutBlockEcComponent,\n\n CheckoutErrorComponent,\n MpRedirectEcComponent,\n RedSysRedirectOutEcComponent,\n PaypalExpressEcComponent,\n\n MobbexEcComponent,\n BancardEcComponent,\n BancardRedirectEcComponent,\n DecidirEcComponent,\n\n CartLoadEcComponent,\n MultipleItemsToCartEcComponent,\n\n MagnizoomComponent,\n RecaptchaEcComponent\n];\n\n\nexport * from \"./blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./blocks-ec/blocks-ec.component\";\nexport * from \"./cart-ec/cart-ec.component\";\nexport * from \"./checkout-ec/checkout-ec.component\";\nexport * from \"./checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./checkout-ec/success-ec/success-ec.component\";\nexport * from \"./collection-ec/collection-ec.component\";\nexport * from \"./coupon-ec/coupon-ec.component\";\nexport * from \"./faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./filters-ec/filters-ec.component\";\nexport * from \"./filters-top-ec/filters-top-ec.component\";\nexport * from \"./footer-ec/footer-ec.component\";\nexport * from \"./header-ec/header-ec.component\";\nexport * from \"./login-ec/login-ec.component\";\nexport * from \"./product-ec/product-ec.component\";\nexport * from \"./related-products-ec/related-products-ec.component\";\nexport * from \"./section-container-ec/section-container-ec.component\";\nexport * from \"./stores-ec/stores-ec.component\";\nexport * from \"./variants-ec/variants-ec.component\";\nexport * from \"./seller-dashboard-container-ec/seller-dashboard-container-ec.component\";\nexport * from \"./widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./widgets-ec/price-ec/price-ec.component\";\nexport * from \"./widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./home-ec/home-ec.component\";\nexport * from \"./product-detail-ec/product-detail-ec.component\";\nexport * from \"./account-ec/account-ec.component\";\nexport * from \"./account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./account-ec/order-ec/order-ec.component\";\nexport * from \"./auth-ec/auth-ec.component\";\nexport * from \"./auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./password-reset-ec/password-reset-ec.component\";\nexport * from \"./auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./share-block-ec/share-block-ec.component\";\nexport * from \"./checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from './widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component';\nexport * from \"./checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./widgets-ec/zoom-ec/magnizoom.component\";\nexport * from \"./multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./widgets-ec/re-captcha-ec/re-captcha-ec.component\";\nexport * from \"./widgets-ec/decidir-ec/decidir-ec.component\";\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { BlocksService } from \"../services/blocks/blocks.service\";\nimport { Router } from \"@angular/router\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecAddActionRedirect]\",\n})\nexport class AddActionRedirectDirective implements OnChanges, OnInit, OnDestroy {\n private banner: any;\n private classStr: \"\";\n private redirectUrl = ''\n private linstenEvent = null\n private transparent = true\n\n @Input()\n set ecAddActionRedirect(value: any) {\n this.banner = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set isTransparent(value: boolean) {\n this.transparent = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private blocksService: BlocksService,\n private router: Router,\n ) { }\n\n ngOnInit() { }\n\n\n ngOnChanges(changes: SimpleChanges) {\n this.transparent && this.renderer.setStyle(this.elementRef.nativeElement, 'color', 'transparent')\n this.renderer.setAttribute(this.elementRef.nativeElement, \"role\", \"button\")\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(this.elementRef.nativeElement, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n this.redirectUrl = this.banner.url ? this.banner.url : this.blocksService.formUrl(this.banner)\n this.banner.url ?\n this.renderer.setProperty(this.elementRef.nativeElement, \"href\", this.banner.url)\n :\n this.linstenEvent = this.renderer.listen(this.elementRef.nativeElement, 'click', this.redirectFromUrl)\n }\n\n redirectFromUrl = (evt) => {\n this.router.navigateByUrl(this.redirectUrl)\n }\n\n ngOnDestroy() {\n this.linstenEvent && this.linstenEvent()\n }\n}\n","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { Product } from '../interfaces/product';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecProductStock]\"\n})\nexport class ProductStockDirective {\n\n private productDirective: Product = null;\n\n @Input()\n ecProductStockElse: TemplateRef<any>\n\n @Input()\n set ecProductStock(product: Product) {\n this.productDirective = product\n this.viewContainer.clear();\n if (this.validateStock()) {\n if (this.ecProductStockElse) {\n this.viewContainer.createEmbeddedView(this.ecProductStockElse);\n }else{\n console.error('falta definir el template de agotado');\n }\n } else {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef, ) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n\n validateStock = () => {\n if (this.productDirective.special_mark == undefined || this.productDirective.variants == undefined) {\n setTimeout(() => {\n return this.validateStock()\n }, 1000);\n } else {\n return this.checkValuesForStock()\n }\n }\n\n checkValuesForStock = () => {\n let existMark = false\n this.productDirective.special_mark.forEach(special_mark => {\n switch (special_mark.type) {\n case 'out_of_stock': existMark = true; break;\n }\n })\n if (!existMark) {\n existMark = this.productDirective.variants.find(v => v.stock > 0) == undefined\n }\n return existMark\n }\n}","import {\n Directive,\n OnInit,\n ViewContainerRef,\n OnDestroy,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\n\nexport class ParamsContext {\n [key: string]: any;\n}\n\n@Directive({\n selector: \"[ecProductOff]\",\n})\nexport class ProductOffDirective implements OnChanges, OnInit, OnDestroy {\n\n private product: any;\n private classStr: \"\";\n private customMessageStr = \"{discount}% OFF\";\n\n @Input()\n set ecProductOff(value: any) {\n this.product = value;\n }\n @Input()\n set classStrSpacing(value: any) {\n this.classStr = value;\n }\n @Input()\n set customMessage(value: string) {\n this.customMessageStr = value;\n }\n\n constructor(\n @Inject(DOCUMENT) private document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit() { }\n hasDiscount = (product) => {\n\n if (!product.saleprice) {\n return null\n }\n if (product.price?.toString().includes(\"-\") && product.saleprice?.toString().includes(\"-\")) {\n let prices = product.price?.toString().split('-')\n let saleprices = product.saleprice?.toString().split('-')\n let saleBf = this.generateDiscount(prices[1]?.trim(), saleprices[1]?.trim())\n let saleLt = this.generateDiscount(prices[0]?.trim(), saleprices[0]?.trim())\n if (!saleBf && !saleLt) {\n return null\n }\n if (saleBf && saleLt && saleBf == saleLt) {\n return `${saleBf}`\n }\n if (saleBf && !saleLt) {\n return `${saleBf}`\n }\n if (!saleBf && saleLt) {\n return `${saleLt}`\n }\n return `${saleBf} - ${saleLt}`\n }else{\n if (parseInt(product.price) > parseInt(product.saleprice)) {\n return this.generateDiscount(product.price, product.saleprice)\n }\n }\n // console.log(product.price?.toString().includes(\"-\"));\n // console.log(product.saleprice?.toString().includes(\"-\"));\n // console.log(' PRECIO ', product.price);\n // console.log(' SALE ', product.saleprice);\n \n // if (\n // !product.price.toString().includes(\"-\") &&\n // product.saleprice &&\n // parseInt(product.price) > parseInt(product.saleprice)\n // ) {\n // let result =\n // ((parseInt(product.price) - parseInt(product.saleprice)) /\n // parseInt(product.price)) *\n // 100;\n // if (Number.isNaN(result)) {\n // return null;\n // } else return Math.floor(result);\n // }\n // return null;\n };\n\n\n generateDiscount = (price, saleprice) => {\n \n if (parseFloat(price) > parseFloat(saleprice) ) {\n let result =\n ((parseFloat(price) - parseFloat(saleprice)) /\n parseFloat(price)) *\n 100;\n if (Number.isNaN(result)) {\n return null;\n } else return Math.round(result)//Math.floor(result);\n }\n return null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.product.price) {\n let discount = this.hasDiscount(this.product);\n this.elementRef.nativeElement.childNodes.forEach(node => {\n this.renderer.removeChild(this.elementRef.nativeElement, node)\n })\n if (discount) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.createImage(discount));\n } \n // else {\n // this.renderer.removeChild(this.elementRef.nativeElement.parentElement, this.elementRef.nativeElement);\n // }\n }\n }\n\n createImage = (discount) => {\n let popover = this.renderer.createElement(\"a\");\n this.customMessageStr = this.customMessageStr.replace('{discount}',discount)\n this.renderer.setProperty(popover, \"innerHTML\", this.customMessageStr);\n this.classStr?.split(\" \").forEach((cl) => {\n try {\n this.renderer.addClass(popover, cl);\n } catch (error) { console.log('add class directive -> ', error) }\n });\n return popover;\n };\n\n ngOnDestroy() { }\n}\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, OnDestroy, Input, ElementRef, Renderer2, Inject, OnChanges, SimpleChanges } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Product } from '../interfaces/product';\nimport { Constants } from '../core.consts';\n\n\n@Directive({\n selector: '[ecProductMiniStandard]'\n})\nexport class ProductMiniStandardDirective implements OnChanges, OnInit, OnDestroy {\n\n private special_marks: any[];\n private product: Product;\n private idConteiner = null\n @Input()\n set ecProductMiniStandard(productParam: Product) {\n this.special_marks = productParam.special_mark\n this.product = productParam\n this.idConteiner = `container-img-marks-standard-${this.product.id}`\n }\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private renderer: Renderer2,\n private constants: Constants,\n ) { }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n (this.special_marks && this.special_marks.length)\n &&\n (this.special_marks.filter(special_mark => special_mark.type.includes('standard')))\n .map(special_mark => this.setMarkStandar(special_mark));\n }\n\n ngOnDestroy() { }\n\n setMarkStandar = (special_mark) => {\n let containerImg = document.getElementById(this.idConteiner);\n if (!containerImg) {\n let containerImg = this.renderer.createElement('div');\n this.renderer.setAttribute(containerImg, 'id', this.idConteiner);\n this.renderer.addClass(containerImg, 'container-img-marks-standard');\n this.renderer.appendChild(this.elementRef.nativeElement, containerImg);\n }\n this.renderer.appendChild(document.getElementById(this.idConteiner), this.createImage(special_mark));\n }\n\n createImage = (data) => {\n let image = (data.images && data.images.length) && data.images[0];\n if (!image) return null;\n let image_view = this.renderer.createElement('img');\n this.renderer.setAttribute(image_view, 'src', this.constants.mediaUrl() + image);\n return image_view;\n }\n\n}","import { Template } from '@angular/compiler/src/render3/r3_ast';\nimport { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef, Renderer2, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { async } from '@angular/core/testing';\nimport { filter } from 'rxjs/operators';\nimport { User } from '../classes/user';\nimport { Product } from '../interfaces/product';\nimport { AuthService } from '../services/auth.service';\nimport { ProductDetailService } from '../services/products/product-detail.service';\n\n@Directive({\n selector: \"[ecAuthWholesaler]\"\n})\nexport class AuthWholesalerDirective {\n\n public auth: boolean = true\n public user: User = null\n private productDirective: Product = null;\n\n\n @Input()\n ecAuthWholesalerElse: TemplateRef<any>\n\n @Input()\n set ecAuthWholesaler(authparams) {\n this.auth = authparams\n if (this.auth) {\n this.authService.userAuth.subscribe(user => {\n this.viewContainer.clear();\n this.user = user\n this.viewContainer.createEmbeddedView(\n user?.isWholesaler() ? this.templateRef : this.ecAuthWholesalerElse\n )\n })\n }else{\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView( this.templateRef )\n }\n }\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private authService: AuthService,) {\n }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n ngOnChanges() { }\n}","//Directives base\n\n// import { ProductButtonBaseDirective } from './product-button-base.directive';\n// import { ProductContactBaseDirective } from './product-contact-base.directive';\n// import { ProductMiniBaseDirective } from './product-mini-base.directive';\n// import { ProductOffDetailBaseDirective } from './product-off-detail-base.directive';\n// import { ProductPriceBaseDirective } from './product-price-base.directive';\n\n\nimport { AddActionRedirectDirective } from './add-action-redirect.directive';\nimport { ProductStockDirective } from './product-stock.directive';\nimport { ProductOffDirective } from './product-off.directive';\nimport { ProductMiniStandardDirective } from './product-mini-standard.directive';\nimport { AuthWholesalerDirective } from './auth-wholesaler.directive';\n\nexport const directives: any[] = [\n // ProductButtonBaseDirective,\n // ProductContactBaseDirective,\n // ProductMiniBaseDirective,\n // ProductOffDetailBaseDirective,\n // ProductPriceBaseDirective,\n\n ProductMiniStandardDirective,\n ProductOffDirective,\n AddActionRedirectDirective,\n ProductStockDirective,\n AuthWholesalerDirective,\n];\n\n// export * from './product-button-base.directive';\n// export * from './product-contact-base.directive';\n// export * from './product-mini-base.directive';\n// export * from './product-off-detail-base.directive';\n// export * from './product-price-base.directive';\n\nexport * from './product-mini-standard.directive';\nexport * from './product-stock.directive';\nexport * from './product-off.directive';\nexport * from './auth-wholesaler.directive';\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { Constants } from '../core.consts';\nimport { ProductsService } from '../services/products/products.service';\n\n@Pipe({\n name: 'ecCurrencySymbol',\n})\nexport class ecCurrencySymbolPipe implements PipeTransform {\n \n\n constructor(public productsService: ProductsService, private currencyPipe: CurrencyPipe, public consts: Constants) { }\n\n transform(\n value: number\n ): string {\n const formatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'USD' });\n return value && this.changeSymbolTransform(formatter.format(value)?.toString()) || ''\n //return value && this.changeSymbolTransform(this.currencyPipe.transform(value,'USD').toString()) || ''\n }\n\n changeSymbolTransform = (valor) => {\n try {\n return this.positionSymbol(this.checkingWithoutDecimals(this.clearSymbol(valor)))\n } catch (error) {\n console.error('Errores en custom pipe -> ',error);\n return valor\n }\n }\n\n clearSymbol = (value) => value.replace('$', '')\n\n positionSymbol = (value) => this.consts?.currency.position.toUpperCase() == 'L' ? `${this.consts?.currency.symbol} ${value?.trim()}` : `${value?.trim()} ${this.consts?.currency.symbol}`\n\n checkingWithoutDecimals = (value) => {\n if (this.consts?.currency.withoutDecimals) {\n let val = value?.split(',')\n return val[1]?.trim() == \"00\" && value.trim().slice(0, value.trim().length - 3) || value\n }\n return value\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerHtml'\n})\nexport class EcSanitizerHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'ecSanitizerUrl'\n})\nexport class EcSanitizerUrlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n\n}\n","//Pipes base\n\nimport { ecCurrencySymbolPipe } from \"./ec-currency-symbol.pipe\";\nimport { EcSanitizerHtmlPipe } from \"./ec-sanitizer-html.pipe\";\nimport { EcSanitizerUrlPipe } from \"./ec-sanitizer-url.pipe\";\n\n\nexport const pipes: any[] = [\n ecCurrencySymbolPipe,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe\n];\n\nexport * from \"./ec-currency-symbol.pipe\";\nexport * from \"./ec-sanitizer-html.pipe\";\nexport * from \"./ec-sanitizer-url.pipe\";\n","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OrderByPipe } from './pipes/order-by.pipe';\nimport { RouterModule } from '@angular/router';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { ToastrModule } from 'ngx-toastr';\nimport { WINDOW_PROVIDERS } from './services/windows.service';\nimport { ProductsService } from './services/products/products.service';\nimport { BannerService } from './services/banner.service';\nimport { CartService } from './services/cart.service';\nimport { OrdersService } from './services/account/orders.service';\nimport { PaginationService } from './interfaces/paginate';\nimport { ConnectionService } from './api/connection.service';\nimport { AuthService } from './services/auth.service';\nimport { OptionsService } from './services/options.service';\nimport { ShipmentService } from './services/checkout/shipment.service';\nimport { CheckoutService } from './services/checkout/checkout.service';\nimport { OptionsOfProductListDataReceiverService } from './utils/options-of-product-list-data.service';\nimport { DataformService } from './services/dataform.service';\nimport { BlocksService } from './services/blocks/blocks.service';\nimport { UtilsService } from './utils/utils.service';\nimport { ShipmentDataTransformer } from './utils/shipment-transformer.service';\nimport { PaymentUtils } from './utils/payment-utils.service';\nimport { ToastService } from './utils/toast.service';\nimport { Constants } from './core.consts';\nimport { AuthGuardService } from './guards/auth-guard.service';\nimport { AbleBuyerGuardService } from './guards/able-buyer-guard.service';\nimport { UserRoleGuardService } from './guards/user-role-guard.service';\nimport { LoggedInGuard } from './guards/loggedin-guard.service';\nimport { CheckoutReadyGuard } from './guards/checkout-ready.service';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { CustomerInterceptor } from './interceptors/customer.interceptor';\nimport { StoresService } from './services/stores.service';\nimport { AddressingService } from './services/checkout/addressing.service';\nimport * as fromComponentsBase from './ec-component/index';\nimport * as fromDirectiveBase from './ec-directive/index';\nimport * as fromPipeBase from './ec-pipe/index';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RecaptchaModule, RecaptchaFormsModule, RECAPTCHA_SETTINGS, RecaptchaSettings, RECAPTCHA_LANGUAGE } from 'ng-recaptcha';\nimport { OrderUtilityService } from './utils/order-util.service';\nimport { FacebookPixelService } from './utils/analytics/facebook-pixel.service';\nimport { GoogleAnalyticsService } from './utils/analytics/google-analytics.service';\nimport { CardModule } from 'ngx-card';\nimport { AnalyticsService } from './services/analytics.service';\nimport { GTMService } from './utils/analytics/gtm.service';\nimport { ChannelConfigService } from './services/channel-config.service';\nimport { BlocksRepositoryService } from './services/blocks/blocks-repository.service';\nimport { ErrorHandlerService } from './services/checkout/error-handler.service';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { EcSanitizerHtmlPipe } from './ec-pipe/ec-sanitizer-html.pipe';\nimport { EcSanitizerUrlPipe } from './ec-pipe/ec-sanitizer-url.pipe';\nimport { CaptchaService } from './services/captcha.service';\nimport { DopplerService } from './utils/analytics/doppler.service';\n\n@NgModule({\n exports: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n ],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n HttpClientModule,\n InfiniteScrollModule,\n ToastrModule,\n FormsModule,\n ReactiveFormsModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n CardModule,\n ModalModule\n ],\n declarations: [\n OrderByPipe,\n fromComponentsBase.components,\n fromDirectiveBase.directives,\n fromPipeBase.pipes,\n EcSanitizerHtmlPipe,\n EcSanitizerUrlPipe,\n ],\n providers: [\n\n ]\n})\nexport class NgEasycommerceModule {\n public static forRoot(environment: any): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: [\n Constants,\n {\n provide: 'env', // you can also use InjectionToken\n useValue: environment\n },\n WINDOW_PROVIDERS,\n ProductsService,\n BannerService,\n CartService,\n OrdersService,\n PaginationService,\n ConnectionService,\n AuthService,\n OptionsService,\n ShipmentService,\n CheckoutService,\n OptionsOfProductListDataReceiverService,\n DataformService,\n BlocksService,\n StoresService,\n AnalyticsService,\n // Utils\n Constants,\n UtilsService,\n ShipmentDataTransformer,\n PaymentUtils,\n OptionsOfProductListDataReceiverService,\n ToastService,\n AddressingService,\n FacebookPixelService,\n GoogleAnalyticsService,\n GTMService,\n DopplerService,\n // Guards\n AuthGuardService,\n AbleBuyerGuardService,\n UserRoleGuardService,\n LoggedInGuard,\n CheckoutReadyGuard,\n OrderUtilityService,\n fromPipeBase.pipes,\n CurrencyPipe,\n ChannelConfigService,\n BlocksRepositoryService,\n ErrorHandlerService,\n CaptchaService,\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: '6LcPPbUZAAAAAB8tKJ-UozPs1PztvGTEXnC26aY3' } as RecaptchaSettings,\n },\n // Others\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CustomerInterceptor,\n multi: true\n }\n ]\n };\n }\n\n public static forChild(): ModuleWithProviders {\n\n return {\n ngModule: NgEasycommerceModule,\n providers: []\n };\n }\n}","import { Injectable } from '@angular/core';\r\nimport { Constants } from '../core.consts';\r\nimport { CartService } from './cart.service';\r\nimport { CheckoutProcessState } from '../classes/checkout-process-state';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ConnectionService } from '../api/connection.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GiftCardService {\r\n\r\n private stateSubject = new BehaviorSubject<CheckoutProcessState>({ doing: false, ok: false, data: null });\r\n\r\n private baseUrl = this.consts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/';\r\n private couponApi = () => this.baseUrl + 'carts/' + this.cartService.getCartToken() + '/coupon';\r\n\r\n public state = this.stateSubject.asObservable();\r\n\r\n constructor(private consts: Constants, private cartService: CartService, private connection: ConnectionService) { }\r\n\r\n setCoupon = (coupon) => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.put(this.couponApi(), { coupon }).subscribe(\r\n res => this.handleResponse(res, coupon)\r\n )\r\n }\r\n\r\n removeCoupon = () => this.stateSubject.getValue().data.coupon && this.deleteCoupon();\r\n\r\n deleteCoupon = () => {\r\n this.stateSubject.next({ doing: true, ok: false, data: null });\r\n this.connection.delete(this.couponApi());\r\n }\r\n\r\n handleResponse = (response, coupon) => {\r\n response.code ?\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: false,\r\n data: { message: response.message, discount: '' }\r\n }) :\r\n this.stateSubject.next({\r\n doing: false,\r\n ok: true,\r\n data: { message: 'coupon-ready', discount: 'APPLIED DISCOUNT', coupon }\r\n });\r\n }\r\n\r\n avoidCoupon = () => {\r\n this.stateSubject.next({ doing: false, ok: true, data: { discount: null, message: 'avoided', coupon: null } })\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { Product } from '../interfaces/product';\nimport { BehaviorSubject, Observable, Subscriber } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\n// Get product from Localstorage\nlet products = JSON.parse(localStorage.getItem(\"wishlistItem\")) || [];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WishlistService {\n \n // wishlist array\n public wishlistProducts: BehaviorSubject<Product[]> = new BehaviorSubject([]);\n public observer : Subscriber<{}>;\n\n // Initialize \n constructor(private toastrService: ToastrService) { \n this.wishlistProducts.subscribe(products => products = products);\n }\n\n // Get wishlist Products\n public getProducts(): Observable<Product[]> {\n const itemsStream = new Observable(observer => {\n observer.next(products);\n observer.complete();\n });\n return <Observable<Product[]>>itemsStream;\n }\n\n // If item is aleready added In wishlist\n public hasProduct(product: Product): boolean {\n const item = products.find(item => item.id === product.id);\n return item !== undefined;\n }\n\n // Add to wishlist\n public addToWishlist(product: Product): Product | boolean {\n var item: Product | boolean = false;\n if (this.hasProduct(product)) {\n item = products.filter(item => item.id === product.id)[0];\n const index = products.indexOf(item);\n } else {\n products.push(product);\n }\n this.toastrService.success('This product added to Wishlist.'); // toasr services\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n return item;\n }\n\n // Removed Product\n public removeFromWishlist(product: Product) {\n if (product === undefined) { return; }\n const index = products.indexOf(product);\n products.splice(index, 1);\n localStorage.setItem(\"wishlistItem\", JSON.stringify(products));\n }\n \n\n}\n","import {Inject, Injectable, OnInit} from '@angular/core';\nimport {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';\nimport {Constants} from '../core.consts';\n\n@Injectable()\nexport class StandardReuseStrategy implements RouteReuseStrategy {\n\n private routes : string[] = [];\n private storedRoutes = new Map<string, DetachedRouteHandle>();\n\n constructor(@Inject('env')private env) {}\n\n shouldDetach(route : ActivatedRouteSnapshot): boolean {\n this.routes = (this.routes.length && this.routes) || (this.env.routes || []);\n let result = route.data.key && this.routes.includes(route.data.key);\n return result;\n }\n\n store(route : ActivatedRouteSnapshot, handle : DetachedRouteHandle): void {\n this.storedRoutes.set(route.data.key, handle);\n }\n\n shouldAttach(route : ActivatedRouteSnapshot): boolean {\n return !!this.storedRoutes.get(route.data.key);\n }\n\n retrieve(route : ActivatedRouteSnapshot): DetachedRouteHandle {\n return this.storedRoutes.get(route.data.key);\n }\n\n shouldReuseRoute(future : ActivatedRouteSnapshot, curr : ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n","/*\n * Public API Surface of ng-easycommerce\n */\n\nexport * from './lib/ng-easycommerce.module';\n\n// Classes\nexport * from './lib/classes/user';\nexport * from './lib/classes/checkout/step';\nexport * from './lib/classes/checkout-process-state';\nexport * from './lib/classes/filters/AttributesFilter';\nexport * from './lib/classes/filters/CategoryFilter';\nexport * from './lib/classes/filters/DinamycsFilter';\nexport * from './lib/classes/filters/Filter';\nexport * from './lib/classes/filters/SortFilter';\n\n// Servicios\nexport * from './lib/services/auth.service';\nexport * from './lib/services/banner.service';\nexport * from './lib/services/cart.service';\nexport * from './lib/services/blocks/blocks.service';\nexport * from './lib/services/dataform.service';\nexport * from './lib/services/gift-card.service';\nexport * from './lib/services/options.service';\nexport * from './lib/services/account/orders.service';\nexport * from './lib/services/pagination.service';\nexport * from './lib/services/parameters.service';\nexport * from './lib/services/windows.service';\nexport * from './lib/services/wishlist.service';\nexport * from './lib/services/checkout/checkout.service';\nexport * from './lib/services/checkout/shipment.service';\nexport * from './lib/services/checkout/addressing.service';\nexport * from './lib/services/checkout/payment.service';\nexport * from './lib/services/stores.service';\nexport * from './lib/services/products/product-detail.service';\nexport * from './lib/services/products/products.service';\nexport * from './lib/services/analytics.service';\nexport * from './lib/services/channel-config.service';\nexport * from './lib/services/captcha.service';\n\n// Interfaces\nexport * from './lib/interfaces/block';\nexport * from './lib/interfaces/cart-item';\nexport * from './lib/interfaces/core.interfaces';\nexport * from './lib/interfaces/filter';\nexport * from './lib/interfaces/coupon';\nexport * from './lib/interfaces/deserializable';\nexport * from './lib/interfaces/navbar-items';\nexport * from './lib/interfaces/paginate';\nexport * from './lib/interfaces/parameters';\nexport * from './lib/interfaces/product';\nexport * from './lib/interfaces/step';\nexport * from './lib/interfaces/selection';\nexport * from './lib/interfaces/checkout-data';\nexport * from './lib/interfaces/faqs';\nexport * from './lib/interfaces/store';\nexport * from './lib/interfaces/choose-options/options-of-product-list';\nexport * from './lib/interfaces/choose-options/filter-option';\n\nexport * from './lib/api/connection.service';\n\n// Guards\nexport * from './lib/guards/auth-guard.service';\nexport * from './lib/guards/able-buyer-guard.service';\nexport * from './lib/guards/user-role-guard.service';\nexport * from './lib/guards/checkout-ready.service';\nexport * from './lib/guards/loggedin-guard.service';\n\n// Interceptors\nexport * from './lib/interceptors/auth.interceptor';\n\n// Pipes\n// export * from './lib/pipes/order-by.pipe';\n\n// Utils\nexport * from './lib/utils/toast.service';\nexport * from './lib/utils/utils.service';\n\nexport * from './lib/core.consts';\n\n// Strategy\nexport * from './lib/strategies/standard.strategy';\n\n// Component Base\nexport * from \"./lib/ec-component/blocks-ec/block-banner-boxes-ec/block-banner-boxes-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-banner-full-ec/block-banner-full-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-form-contact-ec/block-form-contact-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-html-ec/block-html-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-newsletter-ec/contact-form-news-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/block-products-ec/block-products-ec.component\";\nexport * from \"./lib/ec-component/blocks-ec/blocks-ec.component\";\nexport * from \"./lib/ec-component/cart-ec/cart-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/checkout-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/payment-ec/payment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/success-ec/success-ec.component\";\nexport * from \"./lib/ec-component/collection-ec/collection-ec.component\";\nexport * from \"./lib/ec-component/coupon-ec/coupon-ec.component\";\nexport * from \"./lib/ec-component/faqs-content-ec/faqs-content-ec.component\";\nexport * from \"./lib/ec-component/filters-ec/filters-ec.component\";\nexport * from \"./lib/ec-component/filters-top-ec/filters-top-ec.component\";\nexport * from \"./lib/ec-component/footer-ec/footer-ec.component\";\nexport * from \"./lib/ec-component/header-ec/header-ec.component\";\nexport * from \"./lib/ec-component/login-ec/login-ec.component\";\nexport * from \"./lib/ec-component/product-ec/product-ec.component\";\nexport * from \"./lib/ec-component/related-products-ec/related-products-ec.component\";\nexport * from \"./lib/ec-component/section-container-ec/section-container-ec.component\";\nexport * from \"./lib/ec-component/stores-ec/stores-ec.component\";\nexport * from \"./lib/ec-component/variants-ec/variants-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-full-ec/loading-full-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/loading-inline-ec/loading-inline-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mpcredit-ec/mpcredit-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/price-ec/price-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-catch-ec/redsys-catch-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-pro-ec/redsys-pro-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component\";\nexport * from \"./lib/ec-component/home-ec/home-ec.component\";\nexport * from \"./lib/ec-component/product-detail-ec/product-detail-ec.component\";\nexport * from \"./lib/ec-component/account-ec/account-ec.component\";\nexport * from \"./lib/ec-component/account-ec/orders-list-ec/orders-list-ec.component\";\nexport * from \"./lib/ec-component/account-ec/order-ec/order-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/auth-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-form-ec/register-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/login-form-ec/login-form-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component\";\nexport * from \"./lib/ec-component/password-reset-ec/password-reset-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component\";\nexport * from \"./lib/ec-component/share-block-ec/share-block-ec.component\";\nexport * from \"./lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mercadopago-ec/mp-redirect-ec/mp-redirect-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/ceca-redirect-ec/ceca-redirect-ec.component\";\nexport * from \"./lib/ec-component/checkout-error-ec/checkout-error-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/redsys-redirect-out-ec/redsys-redirect-out-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/paypal-express-ec/paypal-express-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-ec/bancard-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/bancard-redirect-ec/bancard-redirect-ec.component\";\nexport * from \"./lib/ec-component/auth-ec/select-channel-ec/select-channel-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/cart-load-ec/cart-load-ec.component\";\nexport * from \"./lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component\";\nexport * from \"./lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component\";\n\n\n// Directive base\n// export * from './lib/ec-directive/product-button-ec.directive'\n// export * from './lib/ec-directive/product-contact-ec.directive'\n// export * from './lib/ec-directive/product-mini-ec.directive'\n// export * from './lib/ec-directive/product-off-detail-ec.directive'\n// export * from './lib/ec-directive/product-price-ec.directive'\n\nexport * from './lib/ec-directive/product-mini-standard.directive'\nexport * from './lib/ec-directive/add-action-redirect.directive';\nexport * from './lib/ec-directive/product-stock.directive';\nexport * from './lib/ec-directive/auth-wholesaler.directive';\n\n\n//Pipes base\nexport * from './lib/ec-pipe/ec-currency-symbol.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-html.pipe';\nexport * from './lib/ec-pipe/ec-sanitizer-url.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {StepService as ɵn} from './lib/classes/checkout/step-service';\nexport {ComponentHelper as ɵf} from './lib/classes/component-helper';\nexport {components as ɵb} from './lib/ec-component/index';\nexport {SellerDashboardContainerEcComponent as ɵc} from './lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component';\nexport {RecaptchaEcComponent as ɵe} from './lib/ec-component/widgets-ec/re-captcha-ec/re-captcha-ec.component';\nexport {MagnizoomComponent as ɵd} from './lib/ec-component/widgets-ec/zoom-ec/magnizoom.component';\nexport {directives as ɵq} from './lib/ec-directive/index';\nexport {ProductOffDirective as ɵr} from './lib/ec-directive/product-off.directive';\nexport {pipes as ɵs} from './lib/ec-pipe/index';\nexport {CustomerInterceptor as ɵv} from './lib/interceptors/customer.interceptor';\nexport {OrderByPipe as ɵa} from './lib/pipes/order-by.pipe';\nexport {BlocksRepositoryService as ɵg} from './lib/services/blocks/blocks-repository.service';\nexport {ErrorHandlerService as ɵo} from './lib/services/checkout/error-handler.service';\nexport {DopplerService as ɵl} from './lib/utils/analytics/doppler.service';\nexport {FacebookPixelService as ɵh} from './lib/utils/analytics/facebook-pixel.service';\nexport {GoogleAnalyticsService as ɵi} from './lib/utils/analytics/google-analytics.service';\nexport {GTMService as ɵj} from './lib/utils/analytics/gtm.service';\nexport {MetricoolPixelService as ɵk} from './lib/utils/analytics/metricool-pixel.service';\nexport {OptionsOfProductListDataReceiverService as ɵt} from './lib/utils/options-of-product-list-data.service';\nexport {OrderUtilityService as ɵm} from './lib/utils/order-util.service';\nexport {PaymentUtils as ɵu} from './lib/utils/payment-utils.service';\nexport {ShipmentDataTransformer as ɵp} from './lib/utils/shipment-transformer.service';"],"names":["Constants","__extends","__param","CheckoutService","AddressingService","ChannelConfigService","AuthService","CartService","OrdersService","StoresService","AuthGuardService","AbleBuyerGuardService","UserRoleGuardService","LoggedInGuard","CheckoutReadyGuard","ParametersService","__decorate","__values","CaptchaService","fromPipeBase.pipes","fromComponentsBase.components","fromDirectiveBase.directives","GiftCardService","products","WishlistService"],"mappings":"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"}
|