{"version":3,"mappings":"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,mBACEA,iBACEA,2KACFA,QACFA,QACFA,QACFA,QACAA,mBACEA,oBACEA,mBACEA,uBAEEA,4EACFA,QACFA,QACFA,QACAA,oBACEA,oBACEA,kBACEA,4IACFA,QACFA,QACFA,QACFA,QACAA,oBACEA,oBACEA,mBACEA,uBAEEA,iDACFA,QACFA,QACFA,QACAA,oBACEA,oBACEA,kBACEA,+KACFA,QACFA,QACFA,QACFA,QACFA,QACFA,QACFA,QACFA,QACFA,QACFA,QAIAA,oBACEA,oBACEA,oBACEA,oBACEA,oBACAA,oBACEA,qBAAwDA,gCAAYA,QACpEA,kBAAoCA,0CAA4BA,QAClEA,QACFA,QACAA,oBACEA,oBACAA,oBACEA,qBAAwDA,2BAAUA,QAClEA,kBAAoCA,uDAAyCA,QAC/EA,QACFA,QACAA,oBACEA,oBACAA,oBACEA,qBAAwDA,yBAAWA,QACnEA,kBAAoCA,gEAA+CA,QACrFA,QACFA,QACAA,oBACEA,oBACAA,oBACEA,qBAAwDA,kCAAiBA,QACzEA,kBAAoCA,iDAAmCA,QACzEA,QACFA,QACFA,QACFA,QAEFA,QAIAA,oBACEA,oBACEA,mBAA4EA,kCAAoBA,QAChGA,oBACEA,oBACEA,kBAA+CA,6BAAeA,gBAC5DA,6CAAwBA,gBACxBA,mCAAoBA,gBACpBA,6CAA2BA,gBAC3BA,2CAAyBA,gBACzBA,qCAAmBA,gBACnBA,+BAAgBA,QAClBA,oBACEA,wBACEA,uBACAA,uBACAA,oBAEFA,QACAA,wBACEA,uBACAA,uBACAA,oBAEFA,QACAA,kBAAyEA,gCAAkBA,gBACzFA,2BAAYA,gBACZA,iCAAkBA,QACtBA,QACFA,QACAA,oBACEA,wBACEA,uBACAA,uBACAA,oBAEFA,QACAA,wBACEA,uBACAA,uBACAA,oBAGFA,QACAA,oBACEA,kBAGEA,oBAEFA,QACAA,kBAGEA,oBAEFA,QACAA,kBAGEA,oBAEFA,QACAA,kBAGEA,oBAEFA,QACFA,QACFA,QAEFA,QACFA,QACFA,QAEFA,QAEAA,qDAtUiBA,wCAOAA,yCAOAA,uCAOAA,qCAOAA,sCAuDcA,+DAA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","names":["AuthGuard","constructor","router","storageService","platformId","this","canActivate","route","state","isPlatformBrowser","isAuthenticated","authorizeSubject","next","authorize","url","data","navigateByUrl","i0","PLATFORM_ID","factory","ShippingAmazonSectionComponent","store","ngOnInit","getAmazonProducts","shipping","provider","ProductProviderEnum","dispatch","searchActions","L","term","navigate","selectors","ctx","reducer","createReducer","isLoading","payload","filter","sortingArgs","pageSize","count","totalCount","configuration","priceFilter","minValue","maxValue","step","on","productsActions","Object","scroll","concat","storesActions","categoryCode","categoryName","categoriesActions","code","name","ordersActions","orderDetailsActions","orderCode","map","x","orderDetails","details","paymentResponse","validateResponse","cancelResponse","paymentsProfileActions","success","initialState","contactsActions","message","updated","PRODUCT_FEATURE","stateKey","STORE_FEATURE_KEY","CATEGORY_FEATURE_KEY","ORDER_FEATURE_KEY","CHECKOUT_FEATURE_KEY","featuresReducers","products_list","fromProductsListReducers","product_details","fromProductDetailsReducers","related_products","fromRelatedProductsReducers","stores","fromStoreReducers","categories","fromCategoryReducers","orders","fromOrdersReducers","store_details","fromStoreDetailsReducers","paymentsProfile","fromPaymentsProfileReducers","checkout","fromCheckoutReducers","address_verification","fromAddressVerificationReducers","getRootReducerState","createFeatureSelector","routerStateConfig","getAuth","createSelector","routerReducerState","auth","selectUser","errorMessage","user","CategoryService","SharedService","httpCLient","super","BehaviorSubject","page","sortColumn","sortDirection","flashOfferSubject","asObservable","_total$","_state","_set","patch","assign","ListCategories","post","GetCategoryTree","get","GET_CATEGORY_TREE","CATEGORY_TREE_LOADED","CATEGORY_TREE_FAILURE","CANCEL_CATEGORY_TREE_REQUEST","createAction","CategoryTreeLoaded","props","UpdateParentCategory","CancelRequestCategoryTree","CategoryTreeFailure","LIST_CATEGORIES","LIST_CATEGORIES_SUCCESS","LIST_CATEGORIES_FAILURE","CANCEL_CATEGORIES_REQUEST","ListCategoriesSuccess","ListProductsByCategory","CancelRequestCategories","ListCategoriesFailure","ClearCategoryFilter","categoriesFeature","selectLoading","P","_a","selectConfiguration","O","_b","selectItems","selectPageSize","selectPageNo","pageIndex","selectTotalData","selectTotalPage","totalPages","selectCount","selectCategoryCode","E","selectCategoryName","LOADING_ADDRESS","GET_ADDRESS","UPDATING_ADDRESS","UPDATED_ADDRESS","CANCEL_ADDRESS_REQUEST","ERROR_ADDRESS_REQUEST","LoadingAddress","GetAddress","UpdatingAddress","UpdatedAddress","CleaningData","LOADING_CHECKOUT","GET_CHECKOUT","CANCEL_CHECKOUT_REQUEST","ERROR_CHECKOUT_REQUEST","LoadingCheckout","GetCheckout","UpdatingContactByDefault","CancelCheckoutRequest","ErrorCheckoutRequest","CleaningCheckout","checkoutFeature","selectResponse","h","l","selectNotifications","notification","summaryItems","selectContact","contact","selectRequeriments","requeriments","selectPaymentMethods","f","paymentMethods","_c","paymentProfiles","selectRequirements","selectSummary","summary","selectSummaryItems","cleanSummaryData","selectShipments","shipments","selectShipmentNotification","index","w","I","notificationItem","_d","messageType","color","selectShipmentsItemNotification","shipment","item","U","Z","items","_e","LOADING_CONTACTS","LIST_CONTACTS","ADDING_CONTACT","ADDED_CONTACT","REMOVING_CONTACT","SELECTING_DEFAULT_CONTACT","SELECTED_DEFAULT_CONTACT","UPDATING_CONTACT","CANCEL_CONTACTS_REQUEST","ERROR_CONTACTS_REQUEST","LoadingContacts","ListContacts","AddingContact","AddedContact","SelectingDefaultContact","SelectedDefaultContact","UpdatingContact","CleaningContacts","RemovingContact","CancelContactsRequest","ErrorContactsRequest","ContactService","AddContact","UpdateContact","RemoveContact","codes","ContactsEffects","actions$","service","createEffect","pipe","ofType","withLatestFrom","select","routerSelectors","action","params","switchMap","locations","customLocation","locationType","q","S","takeUntil","length","type","catchError","error","of","path","mergeMap","list","isDefault","push","checkoutActions","contactId","find","LOADING_PAYMENT_PROFILES","LIST_PAYMENTS_PROFILE","PURCHASE_TOKEN","PURCHASE_NEW_CARD","PAYMENT_RESPONSE","VALIDATING_CARD","VALIDATING_3D_SECURE_CARD","VALIDATE_CARD_RESPONSE","CANCELING_PAYMENT","CANCELED_PAYMENT","CANCEL_PAYMENT_PROFILES_REQUEST","ERROR_PAYMENT_PROFILES_REQUEST","LoadingPaymentsProfile","ListPaymentsProfile","ValidatingCard","Validating3DSecureCard","ValidatedCardResponse","PurchaseToken","PurchaseNewCard","PaymentResponse","CancelingPayment","ClearPayment","CanceledPayment","CloseErrorMessage","ProductProviderMapping","Internal","Amazon","Shein","Walmart","HomeDepot","BestBuy","ViewTypeEnum","GetProvider","value","StyleResources","src","ScriptResources","ResourceManagerService","doc","keys","styles","key","href","forEach","style","head","querySelector","removeChild","loaded","scripts","script","body","unloadStyles","unloadScript","loadStyles","createStyle","link","document","createElement","rel","appendChild","loadScripts","promises","createScript","Promise","all","resolve","reject","status","p","readyState","onreadystatechange","onload","onerror","console","LoaderService","show","isLoading$","hide","ctx_r10","ctx_r12","ctx_r14","ctx_r16","ctx_r18","AmazonWizardComponent","activeModal","deviceService","top","isMobile","isTablet","getElementsByClassName","left","DOCUMENT","DeviceDetectorService","decls","SearchComponent","toastr","modalService","FormControl","Subject","showMegaMenuSubject","environment","provider$","searchSelectors","term$","_subscriptions","searhControl","valueChanges","debounceTime","distinctUntilChanged","subscribe","val","__awaiter","take","toPromise","queryParams","result","stu_provider","showWizard","getRandomInt","Math","floor","random","e","wizard","getAmazonWizard","exp","Date","now","getGoodPosition","stop","position","getElementById","getBoundingClientRect","modalRef","open","size","centered","modalDialogClass","backdropClass","componentInstance","y","finally","setAmazonWizard","search","setProvider","focus","ngOnDestroy","sb","unsubscribe","IsAuthenticatedDirective","viewContainerRef","templateRef","createEmbeddedView","clear","TopbarComponent","LocationTypeEnum","initProvinces","categoryActions","productActions","pagingStrategy","locationResolver","searchTerms","priceRange","low","high","supplierCode","location$","locationSelectors","handleClick","event","preventDefault","currentTarget","getAttribute","showMegaMenu$","megaBox","classList","remove","res","province","municipality","c","children","o","iso","mun","d","t","text","slice","k","addEventListener","onEvent","onEvent1","shoppingCart$","selectorsShoppingCart","events","NavigationStart","isCheckoutPage","megaMenu","gtMenu","add","locationsActions","collapseMenu","removeEventListener","LayoutComponent","loaderService","resourceManager","ngAfterContentInit","cartActions","$","which","info","bind","ngAfterViewInit","unloadResources","trigger","display","opacity","transition","animate","ResourcesResolver","loadResources","then","response","PaymentConfirmationComponent","modal","CategoriesSectionComponent","turnOff","alt","slug","owl","setTimeout","owlCarousel","autoplay","autoplayTimeout","autoplayHoverPause","smartSpeed","loop","responsiveClass","nav","navText","margin","dots","responsive","ProductsSectionComponent","TrackingComponent","urlService","fingerprintService","productService","background","updatePayload","tab","getProducts","loading$","location","getCurrentLocation","isSuccess","ListProducts","finalize","ratingsCounter","Array","Number","rating","toFixed","products","pushToCart","product","itemImg","eq","flyToElement","ShippingSectionComponent","MostPopularSectionComponent","WalmartBannerComponent","HomeDepotBannerComponent","BestBuyBannerComponent","SheinBannerComponent","AmmazonBannerComponent","MarketSeoComponent","titleService","metaService","_injector","_viewRef","_renderer","_compiler","_applicationRef","scroller","DeepLinkType","window","loadStores","loadModule","loadRecommendedProducts","i","passive","updateTag","content","description","keywords","property","title","rsp","paymentConfirmation","setTitle","changeUrl","footer","emit","importModule","element","module","compileModuleAsync","moduleRef","create","_componentRef","componentFactoryResolver","resolveComponentFactory","_bootstrapComponents","attachView","hostView","elementRef","recommended_products_section","stores_section","undefined","nativeElement","catch","CheckoutMarketGuard","shoppingStore","getSavedState","routes","component","resource","categoryTree","loadCategoryTree","CategoryTreeResolver","loadChildren","m","OrdersModule","roles","ProductsModule","CheckoutModule","StoresModule","CategoriesModule","redirectTo","pathMatch","MarketSupplierModule","MarketAmazonModule","MarketSheinModule","MarketWalmartModule","MarketHomeDepotModule","MarketBestBuyModule","LayoutRoutingModule","RouterModule","MarketSeoModule","CommonModule","SharedModule","NgxSkeletonLoaderModule","FormsModule","ReactiveFormsModule","LocationsEffects","tap","startsWith","includes","detailsActions","category","id","_seoContent","sectionId","CartService","Get","Update","CartEffects","storage","JSON","parse","localStorage","getItem","authSelectors","authenticated","basket","getBasket","Q","H","z","fn","hn","R","attributes","entries","v","join","attributesToShow","xn","tags","contactSelectors","detailsSelectors","qty","quantity","viewType","productProvider","shippingType","B","SearchEffects","searhTerm","fromLocation","locationAction","minCount","maxCount","maxPrice","minPrice","totalItems","totalPrice","totalPriceToShow","signature","shopcart","a","_f","A","_g","M","_h","_j","setBasket","targetItem","quantityToShow","amount","price","discount","amountToShow","shortText","priceToShow","oldPriceToShow","supplierLinkToShow","specifications","previewUrl","pictures","allowedShippingTypes","reduce","b","setShippingType","indexOf","splice","setItem","stringify","searchAction","layoutReducer","locationReducers","shoppingCartReducers","searchReducers","contacts","isUpdating","parentCategory","productDetailsReducers","metaReducers","localStorageSync","storageKeySerializer","rehydrate","CategoryTreeEffects","categorySelectors","LayoutModule","imports","StoreModule","LAYOUT_FEATURE_KEY","EffectsModule","ProductsDetailsEffects","NgbDropdownModule","TreeviewItem","model","TreeviewItemLocation","checked","collapsed","UPDATED_LOCATION","UpdatingLocation","UpdatedLocation","locationFeature","selectLocation","LOADING_ORDER_DETAILS","ORDER_DETAILS","ERROR_ORDER_DETAILS","LoadingOrderDetailsAction","GetOrderDetailsAction","CancelOrderDetailsRequestAction","LOADING_ORDERS","LIST_ORDERS","ERROR_ORDERS","CANCEL_ORDERS_REQUEST","LoadingOrdersAction","ListOrdersAction","CancelOrderRequestAction","ProductService","countSubject$","GetProductDetail","GetRelatedProducts","LOADING_PRODUCT_DETAILS","LOADING_PRODUCT_DETAILS_DLG","GET_PRODUCT_DETAILS","ERROR_PRODUCTS_DETAILS","CANCEL_PRODUCTS_DETAILS_REQUEST","LoadingProductDetailAction","LoadingProductDetailDlgAction","ProductDetailsAction","SetShippingType","SetActiveAttributeValue","SetError","CancelProductDetailsRequestAction","ErrorProductDetailsActions","IncreaseQuantityAction","ReduceQuantityAction","ResetQuantityAction","Utils","Y","W","processVariations","relatedActions","nn","productCode","J","ProductProvider","getKey","currents","variations","combinations","val1","combination","val2","currentCombination","val3","currentKey","dimensions","val4","val5","rn","ln","gn","D","_","ShippingTypeEnum","u","s","productAttributes","attrId","attrText","valId","valText","attr","active","values","disable","priceCombinations","availability","flatMap","parent","F","j","availabilityToShow","productsFeature","log","summaryText","split","showDescriptionSummary","selectVariations","selectDimensions","selectAttributes","selectShippings","selectShippingType","selectAttibutes","selectCurrentKey","selectQuantity","LOADING_PRODUCTS","LIST_PRODUCTS","ERROR_PRODUCTS","CANCEL_PRODUCTS_REQUEST","LoadingProductsAction","ListProductsAction","ErrorProductsAction","CancelProductRequestAction","selectTerm","selectProvider","LOADING_RELATED_PRODUCTS","LIST_RELATED_PRODUCTS","ERROR_RELATED_PRODUCTS","CANCEL_RELATED_PRODUCTS_REQUEST","LoadingRelatedProductsAction","ListRelatedProductsAction","ResetRelatedProductsAction","ErrorRelatedProductsAction","CancelRelatedProductRequestAction","getMergedRoute","Start","sanitizer","transform","bypassSecurityTrustHtml","pure","TreeviewModule","STORE_DETAILS","LOADING_STORE_DETAILS","ERROR_STORE_DETAILS","CANCEL_STORE_DETAILS_REQUEST","LoadingStoreDetailsActions","CancelRequestStoreDetailsActions","StoreDetailsActions","ErrorStoreDetailsActions","LIST_STORES","LOADING_STORES","ERROR_STORES","CANCEL_REQUEST","LoadingStoresActions","CancelRequestStoresActions","ListStoresActions","ErrorStoresActions","isUserTimingAPISupported","performance","mark","measure","clearMarks","clearMeasures","isPerformanceObservableSupported","PerformanceObserver","prototype","isNodeJSEnv","toString","call","process","marksMap","marksObserver","getTimeNow","markName","start","obs","getEntries","disconnect","observe","entryTypes","end","markNameToCompare","startTime","duration","entryType","entry","getEntriesByName","pop","NGX_SKELETON_LOADER_CONFIG","InjectionToken","NgxSkeletonLoaderComponent","config","appearance","animation","theme","loadingText","ariaLabel","validateInputValues","test","isDevMode","allowedAnimations","String","ngOnChanges","changes","isFirstChange","previousValue","currentValue","ɵfac","ɵcmp","directives","i1","forRoot","ngModule","providers","provide","useValue","ɵmod","ɵinj"],"sources":["webpack:///src/app/guards/auth.guard.ts","webpack:///src/app/market-amazon/shipping-amazon-section/shipping-amazon-section.component.html","webpack:///src/app/market-amazon/shipping-amazon-section/shipping-amazon-section.component.ts","webpack:///src/app/marketplace/products/state/product-list/list-reducers.ts","webpack:///src/app/marketplace/products/state/related-product/related-reducers.ts","webpack:///src/app/marketplace/stores/state/store/stores-reducers.ts","webpack:///src/app/marketplace/categories/state/category/categories-reducers.ts","webpack:///src/app/marketplace/orders/state/order-list/order-list-reducers.ts","webpack:///src/app/marketplace/stores/state/store-details/store-details-reducers.ts","webpack:///src/app/marketplace/checkout/state/payments-profile/payments-profile-reducers.ts","webpack:///src/app/marketplace/checkout/state/checkout/checkout-reducers.ts","webpack:///src/app/marketplace/checkout/state/address-verification/address-verification-reducers.ts","webpack:///src/app/marketplace/app.state.ts","webpack:///src/app/marketplace/auth/state/auth-selectors.ts","webpack:///src/app/marketplace/categories/_services/category.service.ts","webpack:///src/app/marketplace/categories/state/category-tree/category-tree-actions.ts","webpack:///src/app/marketplace/categories/state/category/categories-actions.ts","webpack:///src/app/marketplace/categories/state/category/categories-selectors.ts","webpack:///src/app/marketplace/checkout/state/address-verification/address-verification-actions.ts","webpack:///src/app/marketplace/checkout/state/checkout/checkout-actions.ts","webpack:///src/app/marketplace/checkout/state/checkout/checkout-selectors.ts","webpack:///src/app/marketplace/checkout/state/contacts/contacts-actions.ts","webpack:///src/app/marketplace/checkout/_services/contact.service.ts","webpack:///src/app/marketplace/checkout/state/contacts/contacts-effects.ts","webpack:///src/app/marketplace/checkout/state/payments-profile/payments-profile-actions.ts","webpack:///src/app/marketplace/core/enum/productProvider.ts","webpack:///src/app/marketplace/core/enum/viewTypeEnum.ts","webpack:///src/app/marketplace/core/helpers/utils.ts","webpack:///src/app/marketplace/core/services/resource/assets-resources.store.ts","webpack:///src/app/marketplace/core/services/resource-manager.service.ts","webpack:///src/app/marketplace/core/services/loader.service.ts","webpack:///src/app/marketplace/layout/search/amazon-wizard/amazon-wizard.component.html","webpack:///src/app/marketplace/layout/search/amazon-wizard/amazon-wizard.component.ts","webpack:///src/app/marketplace/layout/search/search.component.html","webpack:///src/app/marketplace/layout/search/search.component.ts","webpack:///src/app/directives/is-authenticated.directive.ts","webpack:///src/app/marketplace/layout/topbar/topbar.component.html","webpack:///src/app/marketplace/layout/topbar/topbar.component.ts","webpack:///src/app/marketplace/layout/layout/layout.component.ts","webpack:///src/app/marketplace/layout/layout/layout.component.html","webpack:///src/app/marketplace/core/resolvers/resources.resolver.ts","webpack:///src/app/market-seo/payment-confirmation/payment-confirmation.component.ts","webpack:///src/app/market-seo/payment-confirmation/payment-confirmation.component.html","webpack:///src/app/market-seo/categories-section/categories-section.component.html","webpack:///src/app/market-seo/categories-section/categories-section.component.ts","webpack:///src/app/market-seo/products-section/products-section.component.html","webpack:///src/app/market-seo/products-section/products-section.component.ts","webpack:///src/app/market-seo/shipping-section/shipping-section.component.html","webpack:///src/app/market-seo/shipping-section/shipping-section.component.ts","webpack:///src/app/market-seo/most-popular-section/most-popular-section.component.html","webpack:///src/app/market-seo/most-popular-section/most-popular-section.component.ts","webpack:///src/app/market-seo/walmart-banner/walmart-banner.component.ts","webpack:///src/app/market-seo/walmart-banner/walmart-banner.component.html","webpack:///src/app/market-seo/home-depot-banner/home-depot-banner.component.ts","webpack:///src/app/market-seo/home-depot-banner/home-depot-banner.component.html","webpack:///src/app/market-seo/best-buy-banner/best-buy-banner.component.ts","webpack:///src/app/market-seo/best-buy-banner/best-buy-banner.component.html","webpack:///src/app/market-seo/shein-banner/shein-banner.component.ts","webpack:///src/app/market-seo/shein-banner/shein-banner.component.html","webpack:///src/app/market-seo/ammazon-banner/ammazon-banner.component.ts","webpack:///src/app/market-seo/ammazon-banner/ammazon-banner.component.html","webpack:///src/app/market-seo/market-seo.component.html","webpack:///src/app/market-seo/market-seo.component.ts","webpack:///src/app/guards/chekout.market.guard.ts","webpack:///src/app/marketplace/layout/layout-routing.module.ts","webpack:///src/app/marketplace/core/resolvers/category-tree.resolver.ts","webpack:///src/app/market-seo/market-seo.module.ts","webpack:///src/app/marketplace/locations/state/locations-effects.ts","webpack:///src/app/marketplace/products/shopping-cart/_services/cart.service.ts","webpack:///src/app/marketplace/products/state/shopping-cart/cart-effects.ts","webpack:///src/app/marketplace/products/state/shopping-cart/cart-state.ts","webpack:///src/app/marketplace/products/state/product-search/search-effects.ts","webpack:///src/app/marketplace/locations/state/locations-state.ts","webpack:///src/app/marketplace/locations/state/locations-reducers.ts","webpack:///src/app/marketplace/products/state/shopping-cart/cart-reducers.ts","webpack:///src/app/marketplace/products/state/product-search/search-reducers.ts","webpack:///src/app/marketplace/checkout/state/contacts/contacts-reducers.ts","webpack:///src/app/marketplace/storage/storage.reducers.ts","webpack:///src/app/marketplace/categories/state/category-tree/category-tree-reducers.ts","webpack:///src/app/marketplace/categories/state/category-tree/category-tree-effects.ts","webpack:///src/app/marketplace/layout/layout.module.ts","webpack:///src/app/marketplace/locations/locations.ts","webpack:///src/app/marketplace/locations/state/locations-actions.ts","webpack:///src/app/marketplace/locations/state/locations-selectors.ts","webpack:///src/app/marketplace/orders/state/order-details/order-details-actions.ts","webpack:///src/app/marketplace/orders/state/order-list/order-list-actions.ts","webpack:///src/app/marketplace/products/_services/product.service.ts","webpack:///src/app/marketplace/products/state/product-details/details-actions.ts","webpack:///src/app/marketplace/products/state/product-details/details-effects.ts","webpack:///src/app/marketplace/core/enum/shippingType.ts","webpack:///src/app/marketplace/products/state/product-details/details-reducers.ts","webpack:///src/app/marketplace/products/state/product-details/details-selectors.ts","webpack:///src/app/marketplace/products/state/product-list/list-actions.ts","webpack:///src/app/marketplace/products/state/product-search/search-selectors.ts","webpack:///src/app/marketplace/products/state/related-product/related-actions.ts","webpack:///src/app/marketplace/route/router-state.selectors.ts","webpack:///src/app/marketplace/shared/_models/location.model.ts","webpack:///src/app/marketplace/shared/pipes/star.pipe.ts","webpack:///src/app/marketplace/shared/shared.module.ts","webpack:///src/app/marketplace/stores/state/store-details/store-details-actions.ts","webpack:///src/app/marketplace/stores/state/store/stores-actions.ts","webpack:///node_modules/perf-marks/dist/es2015/is-user-timing-api-supported.js","webpack:///node_modules/perf-marks/dist/es2015/is-performance-observable-supported.js","webpack:///node_modules/perf-marks/dist/es2015/is-nodejs-env.js","webpack:///node_modules/perf-marks/dist/es2015/marks.js","webpack:///node_modules/ngx-skeleton-loader/fesm2015/ngx-skeleton-loader.mjs"],"sourcesContent":["/**\r\n * Created by Elaine Lopez on 4/19/2019.\r\n */\r\n\r\nimport { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { StorageService } from '@app/services/storage.service';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private router: Router,\r\n private storageService: StorageService,\r\n @Inject(PLATFORM_ID) private platformId) { }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (this.storageService.isAuthenticated()) {\r\n // logged in so return true\r\n return true;\r\n }\r\n // not logged in so redirect to home page\r\n this.storageService.authorizeSubject.next({ 'authorize': false, 'url': route.data.route });\r\n this.router.navigateByUrl(this.router.url);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Envíos Marítimos\r\n
\r\n
\r\n

Entrega a $2.99 por libra

\r\n

de 15 a 35 días hábiles

\r\n 15 libras mín. recomendado\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Envíos Aéreos\r\n
\r\n
\r\n

Entrega a $3.99 por libra

\r\n

de 7 a 15 días hábiles

\r\n 15 libras mín. recomendado\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport * as searchActions from '@app/marketplace/products/state/product-search/search-actions';\r\nimport {ProductProviderEnum} from '@app/marketplace/core/enum/productProvider';\r\nimport {Store} from '@ngrx/store';\r\nimport {Router} from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-shipping-amazon-section',\r\n templateUrl: './shipping-amazon-section.component.html',\r\n styleUrls: ['./shipping-amazon-section.component.css']\r\n})\r\nexport class ShippingAmazonSectionComponent implements OnInit {\r\n\r\n @Input()\r\n provider: ProductProviderEnum;\r\n @Input() title: string;\r\n\r\n constructor(private store: Store, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n async getAmazonProducts(shipping: number) {\r\n\r\n if (this.provider == ProductProviderEnum.Amazon || this.provider == ProductProviderEnum.Shein || this.provider == ProductProviderEnum.Walmart || this.provider == ProductProviderEnum.HomeDepot) {\r\n this.store.dispatch(searchActions.SetProvider({provider: this.provider}));\r\n if (shipping == 1) {\r\n this.store.dispatch(searchActions.SearchProductsSuccess({term: 'refrigerador'}));\r\n } else {\r\n this.store.dispatch(searchActions.SearchProductsSuccess({term: 'televisores'}));\r\n }\r\n this.router.navigate(['market/productos-compras-cuba-online']);\r\n } else {\r\n this.router.navigate(['market/tienda-online-cuba/productos-envio-cuba']);\r\n }\r\n }\r\n}\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport * as productsActions from './list-actions';\r\nimport * as fromProducts from './list-state';\r\nimport { ProductPagedResponse } from \"../../_models/product.interface\";\r\nimport { ProductProviderEnum } from \"@app/marketplace/core/enum/productProvider\";\r\n\r\nconst initialState: fromProducts.State = {\r\n isLoading:false,\r\n payload:{filter: {sortingArgs: 0},pageSize:8},\r\n data:{\r\n count:0,\r\n totalCount:0,\r\n configuration:{\r\n priceFilter:{\r\n minValue:0,\r\n maxValue:10,\r\n step:10,\r\n }\r\n }\r\n } as ProductPagedResponse};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(productsActions.LoadingProductsAction, (state,data) => {\r\n return {...state,isLoading:true,payload:data.payload}\r\n }),\r\n on(productsActions.ListProductsAction, (state,{data,provider,scroll}) => {\r\n\r\n switch (true)\r\n {\r\n case provider>=2:\r\n {\r\n if(!scroll){\r\n state.data.data=[];\r\n state.data.count=0;\r\n }\r\n if(state.data.count>0){\r\n if(state.data.data[0].provider>=2){\r\n //state.data.data = [...state.data.data,...data.data];\r\n state.data.data = state.data.data.concat(data.data);\r\n state.data.count+=data.count;\r\n return {...state,isLoading:false};\r\n }\r\n return {...state,isLoading:false,data};\r\n }\r\n return {...state,isLoading:false,data};\r\n }\r\n default:\r\n return {...state,isLoading:false,data};\r\n }\r\n }),\r\n on(productsActions.ErrorProductsAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(productsActions.CancelProductRequestAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n);\r\n\r\n/* export function productReducer(state: fromProducts.State, action: Action) {\r\n return reducer(state, action);\r\n} */\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport * as productsActions from './related-actions';\r\nimport * as fromProducts from './related-state';\r\n\r\nconst initialState: fromProducts.State = {\r\n isLoading:false,\r\n payload:{},\r\n data:[]\r\n};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(productsActions.LoadingRelatedProductsAction, (state,payload) => {\r\n return {...state,isLoading:true,payload}\r\n }),\r\n on(productsActions.ResetRelatedProductsAction, (state,payload) => {\r\n return {...state,isLoading:false,data:[]}\r\n }),\r\n on(productsActions.ListRelatedProductsAction, (state,{data}) => {\r\n return {...state,isLoading:false,data};\r\n }),\r\n on(productsActions.ErrorRelatedProductsAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(productsActions.CancelRelatedProductRequestAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n);\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport * as storesActions from './stores-actions';\r\nimport * as fromStores from './stores-state';\r\nimport { StorePagedResponse } from '../../_models/store.interface';\r\n\r\nconst initialState: fromStores.State = {isLoading: false, data:{count:0,totalCount:0} as StorePagedResponse};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(storesActions.LoadingStoresActions, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(storesActions.CancelRequestStoresActions, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(storesActions.ErrorStoresActions, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(storesActions.ListStoresActions, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n })\r\n);\r\n/* export function productReducer(state: fromProducts.State, action: Action) {\r\n return reducer(state, action);\r\n} */\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport * as categoriesActions from './categories-actions';\r\nimport * as fromCategories from './categories-state';\r\nimport {CategoryPagedResponse} from '@app/marketplace/categories/_models/category.interface';\r\n\r\nconst initialState: fromCategories.State = {isLoading: false, data: {count: 0, totalCount: 0} as CategoryPagedResponse, categoryCode: '', categoryName: ''};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(categoriesActions.ListCategories, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n /* on(categoriesActions.LoadCategoryCodeActions, (state, {categoryCode }) => {\r\n return {... state, categoryCode };\r\n }), */\r\n on(categoriesActions.CancelRequestCategories, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(categoriesActions.ListCategoriesSuccess, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(categoriesActions.ListCategoriesFailure, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(categoriesActions.ListProductsByCategory, (state, {code, name}) => {\r\n return {...state, categoryCode: code, categoryName: name};\r\n }),\r\n on(categoriesActions.ClearCategoryFilter, (state) => {\r\n return {...state,categoryCode:\"\",categoryName:\"\"};\r\n })\r\n);\r\n\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as ordersActions from './order-list-actions';\r\nimport * as orderDetailsActions from '../order-details/order-details-actions';\r\nimport * as fromOrders from './order-list-state';\r\nimport {OrderPagedResponse} from '@app/marketplace/orders/_models/order.interface';\r\nimport {state} from '@angular/animations';\r\n\r\nconst initialState: fromOrders.State = {isLoading: false, data: {count: 0, totalCount: 0} as OrderPagedResponse};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(ordersActions.LoadingOrdersAction, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(ordersActions.ListOrdersAction, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(orderDetailsActions.LoadingOrderDetailsAction, (state, {orderCode}) => {\r\n state.data.data.map(x => {\r\n if (x.orderCode == orderCode) {\r\n if (x.orderDetails) {\r\n x.orderDetails.isLoading = true;\r\n } else {\r\n x.orderDetails = { details: null, isLoading: true};\r\n }\r\n }\r\n return x;\r\n });\r\n return {...state};\r\n }),\r\n on(orderDetailsActions.GetOrderDetailsAction, (state, {data, orderCode}) => {\r\n state.data.data.map(x => {\r\n if (x.orderCode == orderCode) {\r\n x.orderDetails.details = data;\r\n x.orderDetails.isLoading = false;\r\n }\r\n return x;\r\n });\r\n return {...state};\r\n }),\r\n on(orderDetailsActions.CancelOrderDetailsRequestAction, (state, {orderCode}) => {\r\n state.data.data.map(x => {\r\n if (x.orderCode == orderCode) {\r\n x.orderDetails.isLoading = false;\r\n }\r\n return x;\r\n });\r\n return {...state};\r\n }),\r\n on(ordersActions.CancelOrderRequestAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n);\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as storesActions from './store-details-actions';\r\nimport * as fromStores from './store-details-state';\r\n\r\nconst initialState: fromStores.State = {isLoading: false, data: null};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(storesActions.LoadingStoreDetailsActions, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(storesActions.CancelRequestStoreDetailsActions, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(storesActions.ErrorStoreDetailsActions, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(storesActions.StoreDetailsActions, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n })\r\n);\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as paymentsProfileActions from './payments-profile-actions';\r\nimport * as fromPaymentsProfile from './payments-profile-state';\r\nimport {PaymentProfileCollection} from '@app/marketplace/checkout/_models/payment-profile.model';\r\n\r\nconst initialState: fromPaymentsProfile.State = {isLoading: false, data: {data: []} as PaymentProfileCollection, paymentResponse: null, validateResponse: null, cancelResponse: null};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(paymentsProfileActions.LoadingPaymentsProfile, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(paymentsProfileActions.ListPaymentsProfile, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(paymentsProfileActions.PurchaseToken, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(paymentsProfileActions.PurchaseNewCard, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(paymentsProfileActions.PaymentResponse, (state, { data}) => {\r\n return {...state, isLoading: false, paymentResponse: data};\r\n }),\r\n on(paymentsProfileActions.ValidatingCard, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(paymentsProfileActions.Validating3DSecureCard, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(paymentsProfileActions.ValidatedCardResponse, (state, { data}) => {\r\n return {...state, isLoading: false, validateResponse: data};\r\n }),\r\non(paymentsProfileActions.CancelingPayment, (state) => {\r\n return {...state, isLoading: true};\r\n}),\r\n on(paymentsProfileActions.CanceledPayment, (state, { data}) => {\r\n return {...state, isLoading: false, cancelResponse: data};\r\n }),\r\n on(paymentsProfileActions.ClearPayment, (state) => {\r\n return {...state, isLoading: false, cancelResponse: null, validateResponse: null, paymentResponse: null};\r\n }),\r\n on(paymentsProfileActions.CloseErrorMessage, ( state) => {\r\n state.paymentResponse.success = true;\r\n return state;\r\n }),\r\n);\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as contactsActions from './checkout-actions';\r\nimport * as fromContacts from './checkout-state';\r\nimport {CheckoutInterface, CheckoutResponse} from '@app/marketplace/checkout/_models/checkout.model';\r\n\r\nconst initialState: fromContacts.State = {isLoading: false, data: {} as CheckoutResponse};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(contactsActions.LoadingCheckout, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.GetCheckout, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(contactsActions.UpdatingContactByDefault, (state, {contactId}) => {\r\n return {...state};\r\n }),\r\n on(contactsActions.CancelCheckoutRequest, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.ErrorCheckoutRequest, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.CleaningCheckout, (state) => {\r\n return initialState;\r\n })\r\n);\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as contactsActions from './address-verification-actions';\r\nimport * as fromAddress from './address-verification-state';\r\nimport {CheckoutInterface} from '@app/marketplace/checkout/_models/checkout.model';\r\nimport {ResponseBaseModel} from '@app/marketplace/core/models/response.model';\r\n\r\nconst initialState: fromAddress.State = {isLoading: false, data: { data: null, message: '', success: false}, updated: null};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(contactsActions.LoadingAddress, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.GetAddress, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(contactsActions.UpdatingAddress, (state, {payload}) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.UpdatedAddress, (state, {data}) => {\r\n return {...state, isLoading: false, updated: data};\r\n }),\r\n on(contactsActions.CleaningData, (state) => {\r\n return initialState;\r\n }),\r\n);\r\n","import * as fromProductsList from './products/state/product-list/list-state';\r\nimport * as fromProductsDetails from './products/state/product-details/details-state';\r\nimport * as fromRelatedProducts from './products/state/related-product/related-state';\r\nimport * as fromCart from './products/state/shopping-cart/cart-state';\r\nimport * as fromStore from './stores/state/store/stores-state';\r\nimport * as fromCategory from './categories/state/category/categories-state';\r\nimport * as fromStoreDetails from './stores/state/store-details/store-details-state';\r\nimport * as fromContacts from './checkout/state/contacts/contacts-state';\r\nimport * as fromPaymentsProfile from './checkout/state/payments-profile/payments-profile-state';\r\nimport * as fromCheckout from './checkout/state/checkout/checkout-state';\r\nimport * as fromAddress from './checkout/state/address-verification/address-verification-state';\r\nimport { ActionReducerMap } from '@ngrx/store';\r\nimport * as fromProductsListReducers from './products/state/product-list/list-reducers';\r\nimport * as fromProductDetailsReducers from './products/state/product-details/details-reducers';\r\nimport * as fromRelatedProductsReducers from './products/state/related-product/related-reducers';\r\nimport * as fromStoreReducers from './stores/state/store/stores-reducers';\r\nimport * as fromCategoryReducers from './categories/state/category/categories-reducers';\r\nimport * as fromOrder from './orders/state/order-list/order-list-state';\r\nimport * as fromOrdersReducers from './orders/state/order-list/order-list-reducers';\r\nimport * as fromStoreDetailsReducers from './stores/state/store-details/store-details-reducers';\r\nimport * as fromContactsReducers from './checkout/state/contacts/contacts-reducers';\r\nimport * as fromPaymentsProfileReducers from './checkout/state/payments-profile/payments-profile-reducers';\r\nimport * as fromCheckoutReducers from './checkout/state/checkout/checkout-reducers';\r\nimport * as fromAddressVerificationReducers from './checkout/state/address-verification/address-verification-reducers';\r\nexport const PRODUCT_FEATURE = {stateKey: 'products-feature'};\r\nexport const STORE_FEATURE_KEY = 'stores-feature';\r\nexport const CATEGORY_FEATURE_KEY = 'categories-feature';\r\nexport const ORDER_FEATURE_KEY = 'order-feature';\r\nexport const CHECKOUT_FEATURE_KEY = 'checkout_feature';\r\n\r\n/*-----------------------App Features State----------------------------*/\r\nexport interface AppState {\r\n products_list: fromProductsList.State;\r\n product_details: fromProductsDetails.State;\r\n related_products: fromRelatedProducts.State;\r\n stores: fromStore.State;\r\n categories: fromCategory.State;\r\n orders: fromOrder.State;\r\n store_details: fromStoreDetails.State;\r\n //contacts: fromContacts.State;\r\n paymentsProfile: fromPaymentsProfile.State;\r\n checkout: fromCheckout.State;\r\n address_verification: fromAddress.State;\r\n}\r\nexport const featuresReducers: ActionReducerMap = {\r\n products_list: fromProductsListReducers.reducer,\r\n product_details: fromProductDetailsReducers.reducer,\r\n related_products:fromRelatedProductsReducers.reducer,\r\n stores: fromStoreReducers.reducer,\r\n categories: fromCategoryReducers.reducer,\r\n orders: fromOrdersReducers.reducer,\r\n store_details: fromStoreDetailsReducers.reducer,\r\n //contacts: fromContactsReducers.reducer,\r\n paymentsProfile: fromPaymentsProfileReducers.reducer,\r\n checkout: fromCheckoutReducers.reducer,\r\n address_verification: fromAddressVerificationReducers.reducer\r\n};\r\n/*-----------------------App Features State----------------------------*/\r\n\r\n","import {createFeatureSelector, createSelector} from '@ngrx/store';\r\nimport {routerStateConfig} from '../../route/ngrx-router.module';\r\nimport * as fromRoot from '../../route/ngrx-router.module';\r\nimport * as fromAuth from '../../auth/auth.state';\r\n\r\nexport const getRootReducerState = createFeatureSelector(routerStateConfig.stateKey);\r\nexport const getAuth= createSelector(getRootReducerState, (routerReducerState) => routerReducerState.auth);\r\nexport const selectIsAuthenticated = createSelector(\r\n getAuth,\r\n (state: fromAuth.State) => state.isAuthenticated\r\n);\r\nexport const selectError = createSelector(\r\n getAuth,\r\n (state: fromAuth.State) => state.errorMessage\r\n);\r\nexport const selectUser = createSelector(\r\n getAuth,\r\n (state: fromAuth.State) => state.user\r\n);\r\n\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\nimport { SharedService } from '@app/services/shared.service';\r\nimport {StorePagedResponse} from '@app/marketplace/stores/_models/store.interface';\r\nimport {CategoryPagedResponse, CategoryTreeResponse} from '@app/marketplace/categories/_models/category.interface';\r\nimport {SortDirection} from '@app/directives/sortable.directive';\r\nimport {debounceTime, delay, switchMap} from 'rxjs/operators';\r\ninterface State {\r\n page: number;\r\n pageSize: number;\r\n sortColumn: string;\r\n sortDirection: SortDirection;\r\n}\r\nfunction compare(v1, v2) {\r\n return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n}\r\n\r\nfunction sort(countries: any[], column: string, direction: string): any[] {\r\n if (direction === '') {\r\n return countries;\r\n } else {\r\n return [...countries].sort((a, b) => {\r\n const res = compare(a[column], b[column]);\r\n return direction === 'ASC' ? res : -res;\r\n });\r\n }\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CategoryService extends SharedService {\r\n\r\n private _total$ = new BehaviorSubject(0);\r\n\r\n private _state: State = {\r\n page: 1,\r\n pageSize: 6,\r\n sortColumn: '',\r\n sortDirection: ''\r\n };\r\n\r\n flashOfferSubject: BehaviorSubject = new BehaviorSubject(false);\r\n flashOffer$ = this.flashOfferSubject.asObservable();\r\n\r\n constructor(\r\n httpCLient: HttpClient\r\n ) {\r\n super(httpCLient);\r\n }\r\n\r\n get total$() { return this._total$.asObservable(); }\r\n get page() { return this._state.page; }\r\n get pageSize() { return this._state.pageSize; }\r\n get state() { return this._state; }\r\n\r\n set page(page: number) { this._set({ page }); }\r\n set pageSize(pageSize: number) { this._set({ pageSize }); }\r\n set sortColumn(sortColumn: string) { this._set({ sortColumn }); }\r\n set sortDirection(sortDirection: SortDirection) { this._set({ sortDirection }); }\r\n set state(state: State) { this._set(state); }\r\n\r\n private _set(patch: Partial) {\r\n Object.assign(this._state, patch);\r\n }\r\n\r\n ListCategories(payload: any) {\r\n const url = 'api/market/category/search';\r\n return this.post(url, payload);\r\n }\r\n\r\n GetCategoryTree() {\r\n const url = 'api/market/category/tree';\r\n return this.get(url);\r\n }\r\n\r\n}\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {CategoryTreeResponse} from '@app/marketplace/categories/_models/category.interface';\r\n\r\nexport const GET_CATEGORY_TREE = '[CATEGORY-TREE] Get category tree';\r\nexport const CATEGORY_TREE_LOADED = 'CATEGORY-TREE] Category tree loaded';\r\nexport const UPDATE_PARENT_CATEGORY = '[CATEGORY-TREE] Update parent category';\r\nexport const CATEGORY_TREE_FAILURE = '[CATEGORY-TREE] Category tree failure';\r\nexport const CANCEL_CATEGORY_TREE_REQUEST = '[CATEGORY-TREE] Cancel category tree request';\r\n\r\nexport const GetCategoryTree = createAction(GET_CATEGORY_TREE);\r\nexport const CategoryTreeLoaded = createAction(CATEGORY_TREE_LOADED,\r\n props<{data: CategoryTreeResponse}>());\r\nexport const UpdateParentCategory = createAction(UPDATE_PARENT_CATEGORY,\r\n props<{parentCategory: string}>());\r\nexport const CancelRequestCategoryTree = createAction(CANCEL_CATEGORY_TREE_REQUEST);\r\nexport const CategoryTreeFailure = createAction(CATEGORY_TREE_FAILURE);\r\n\r\n\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {CategoryPagedResponse, CategoryTreeResponse} from '@app/marketplace/categories/_models/category.interface';\r\n\r\nexport const LIST_CATEGORIES = '[CATEGORIES] List categories';\r\nexport const LIST_CATEGORIES_SUCCESS = '[CATEGORIES] List categories success';\r\nexport const LIST_CATEGORIES_FAILURE = '[CATEGORIES] List categories failure';\r\nexport const CANCEL_CATEGORIES_REQUEST = '[CATEGORIES] Cancel categories request';\r\nexport const LIST_PRODUCTS_BY_CATEGORIES = '[CATEGORIES] List products by category';\r\nexport const CLEAR_CATEGORY_FILTER= '[CATEGORIES] Clear category filter';\r\n\r\n//export const LOAD_CATEGORY_CODE = 'CATEGORIES Load category code by url';\r\n/* export const LoadCategoryCodeActions = createAction(\r\n LOAD_CATEGORY_CODE,\r\n props<{categoryCode: string}>()\r\n); */\r\n\r\nexport const ListCategories = createAction(\r\n LIST_CATEGORIES,\r\n props<{payload: any}>()\r\n);\r\nexport const ListCategoriesSuccess = createAction(\r\n LIST_CATEGORIES_SUCCESS,\r\n props<{data: CategoryPagedResponse}>()\r\n);\r\nexport const ListProductsByCategory = createAction(\r\n LIST_PRODUCTS_BY_CATEGORIES,\r\n props<{code: string, name: string}>()\r\n);\r\nexport const CancelRequestCategories = createAction(CANCEL_CATEGORIES_REQUEST);\r\nexport const ListCategoriesFailure = createAction(LIST_CATEGORIES_FAILURE);\r\nexport const ClearCategoryFilter = createAction(CLEAR_CATEGORY_FILTER);\r\n\r\n\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { AppState, CATEGORY_FEATURE_KEY } from '../../../app.state';\r\nimport { LAYOUT_FEATURE_KEY } from '@app/marketplace/storage/storage.state';\r\nimport * as fromStorage from '@app/marketplace/storage/storage.state';\r\n\r\nexport const categoriesFeature = createFeatureSelector(CATEGORY_FEATURE_KEY);\r\nexport const selectLoading = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.isLoading\r\n);\r\nexport const selectResponse = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data\r\n);\r\nexport const selectConfiguration = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.configuration\r\n);\r\nexport const selectItems = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.data\r\n);\r\nexport const selectPageSize = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.pageSize\r\n);\r\nexport const selectPageNo = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.pageIndex\r\n);\r\nexport const selectTotalData = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.totalCount\r\n);\r\nexport const selectTotalPage = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.totalPages\r\n);\r\nexport const selectCount = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => state.categories?.data?.count\r\n);\r\nexport const selectCategoryCode = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => {\r\n if (state?.categories)\r\n return state.categories.categoryCode;\r\n else return \"\";\r\n }\r\n);\r\nexport const selectCategoryName = createSelector(\r\n categoriesFeature,\r\n (state: AppState) => {\r\n if (state?.categories)\r\n return state.categories.categoryName;\r\n else return \"\";\r\n }\r\n);\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {ContactOutputInterface, ContactPagedResponse, ShortConactInterface} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {ResponseBaseModel} from '@app/marketplace/core/models/response.model';\r\nimport {AddressVerificationResponse, CheckoutInterface} from '@app/marketplace/checkout/_models/checkout.model';\r\nexport const LOADING_ADDRESS = '[Checkout-Address] Loading address';\r\nexport const GET_ADDRESS = '[Checkout-Address] Get address';\r\nexport const UPDATING_ADDRESS = '[Checkout-Address] Updating address';\r\nexport const UPDATED_ADDRESS = '[Checkout-Address] Updated address';\r\nexport const CANCEL_ADDRESS_REQUEST = '[Checkout-Address] cancel request';\r\nexport const ERROR_ADDRESS_REQUEST = '[Checkout-Address] Checkout request error';\r\nexport const CLEAR_DATA = '[Checkout-Address] Clear data';\r\nexport const LoadingAddress = createAction(\r\n LOADING_ADDRESS);\r\nexport const GetAddress = createAction(\r\n GET_ADDRESS,\r\n props<{ data: AddressVerificationResponse}>()\r\n);\r\nexport const UpdatingAddress = createAction(\r\n UPDATING_ADDRESS,\r\n props<{ payload: any }>()\r\n);\r\nexport const UpdatedAddress = createAction(\r\n UPDATED_ADDRESS,\r\n props<{ data: ResponseBaseModel }>()\r\n);\r\nexport const CleaningData = createAction(\r\n CLEAR_DATA);\r\nexport const CancelAddressRequest\r\n = createAction(\r\n CANCEL_ADDRESS_REQUEST\r\n);\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {ContactOutputInterface, ContactPagedResponse, ShortConactInterface} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {ResponseBaseModel} from '@app/marketplace/core/models/response.model';\r\nimport {CheckoutInterface, CheckoutResponse} from '@app/marketplace/checkout/_models/checkout.model';\r\nexport const LOADING_CHECKOUT = '[CHECKOUT] Loading checkout';\r\nexport const GET_CHECKOUT = '[CHECKOUT] Get checkout';\r\nexport const UPDATING_CONTACT_BY_DEFAULT = '[CHECKOUT] Updating contact by default';\r\nexport const CANCEL_CHECKOUT_REQUEST = '[CHECKOUT] Cancel request';\r\nexport const ERROR_CHECKOUT_REQUEST = '[CHECKOUT] Checkout request error';\r\nexport const CLEANING_CHECKOUT = '[CHECKOUT] Cleaning checkout';\r\nexport const LoadingCheckout = createAction(\r\n LOADING_CHECKOUT,\r\n props<{payload: any}>()\r\n);\r\nexport const GetCheckout = createAction(\r\n GET_CHECKOUT,\r\n props<{ data: CheckoutResponse}>()\r\n);\r\nexport const UpdatingContactByDefault = createAction(\r\n UPDATING_CONTACT_BY_DEFAULT,\r\n props<{ contactId: string}>()\r\n);\r\nexport const CancelCheckoutRequest = createAction(CANCEL_CHECKOUT_REQUEST);\r\nexport const ErrorCheckoutRequest = createAction(ERROR_CHECKOUT_REQUEST);\r\nexport const CleaningCheckout = createAction(CLEANING_CHECKOUT);\r\n","import {createFeatureSelector, createSelector} from '@ngrx/store';\r\nimport {AppState, CHECKOUT_FEATURE_KEY} from '../../../app.state';\r\n\r\nexport const checkoutFeature = createFeatureSelector(CHECKOUT_FEATURE_KEY);\r\nexport const selectLoading = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => {\r\n return state.checkout.isLoading;\r\n }\r\n);\r\nexport const selectResponse = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state?.checkout?.data?.data\r\n);\r\nexport const selectNotifications = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state?.checkout?.data?.notification\r\n);\r\nexport const selectItems = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.summaryItems\r\n);\r\nexport const selectContact = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.contact\r\n);\r\nexport const selectRequeriments = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.requeriments\r\n);\r\nexport const selectPaymentMethods = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.paymentMethods?.paymentProfiles\r\n);\r\nexport const selectRequirements = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.requeriments\r\n);\r\nexport const selectSummary = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.summary\r\n);\r\nexport const selectSummaryItems = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.cleanSummaryData\r\n);\r\nexport const selectShipments = createSelector(\r\n checkoutFeature,\r\n (state: AppState) => state.checkout.data?.data?.shipments\r\n);\r\n\r\nexport const selectShipmentNotification = (index: number) => createSelector(\r\n checkoutFeature,\r\n (state: AppState) => {\r\n return state.checkout.data?.data?.shipments[index]?.notificationItem??{\r\n messageType: 0,\r\n message: \"\",\r\n color: \"\"\r\n };\r\n }\r\n);\r\nexport const selectShipmentsItemNotification = (shipment: number,item: number) => createSelector(\r\n checkoutFeature,\r\n (state: AppState) => {\r\n return state.checkout.data?.data?.shipments[shipment]?.items[item]?.notificationItem??{\r\n messageType: 0,\r\n message: \"\",\r\n color: \"\"\r\n };\r\n }\r\n);\r\n\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {ContactOutputInterface, ContactPagedResponse, PutContactModel} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {ResponseBaseModel, ResponseModel} from '@app/marketplace/core/models/response.model';\r\nexport const LOADING_CONTACTS = '[CONTACT] Loading contacts';\r\nexport const LIST_CONTACTS = '[CONTACT] List contacts';\r\nexport const ADDING_CONTACT = '[CONTACT] Adding contact';\r\nexport const ADDED_CONTACT = '[Contacts] Added contact';\r\nexport const REMOVING_CONTACT = '[CONTACT] Removing contact';\r\n// export const REMOVED_CONTACT = '[Contacts] Removed contact';\r\nexport const SELECTING_DEFAULT_CONTACT = '[CONTACT] Selecting default contact';\r\nexport const SELECTED_DEFAULT_CONTACT = '[CONTACT] Selected default contact';\r\n\r\nexport const UPDATING_CONTACT = '[CONTACT] Updating contact';\r\n// export const UPDATED_CONTACT = '[Contacts] Updated contact';\r\nexport const CANCEL_CONTACTS_REQUEST = '[CONTACT] Cancel request';\r\nexport const ERROR_CONTACTS_REQUEST = '[CONTACT] Contact request error';\r\nexport const CLEANING_CONTACTS = '[CONTACT] Cleaning contacts';\r\nexport const LoadingContacts = createAction(\r\n LOADING_CONTACTS,\r\n props<{payload: any}>()\r\n);\r\nexport const ListContacts = createAction(\r\n LIST_CONTACTS,\r\n props<{ data: ContactPagedResponse}>()\r\n);\r\nexport const AddingContact = createAction(\r\n ADDING_CONTACT,\r\n props<{payload: any}>()\r\n);\r\nexport const AddedContact = createAction(\r\n ADDED_CONTACT,\r\n props<{data: ResponseBaseModel}>()\r\n);\r\nexport const SelectingDefaultContact = createAction(\r\n SELECTING_DEFAULT_CONTACT,\r\n props<{data: any}>()\r\n);\r\nexport const SelectedDefaultContact = createAction(\r\n SELECTED_DEFAULT_CONTACT,\r\n props<{data: ResponseBaseModel, code: string}>()\r\n);\r\n\r\nexport const UpdatingContact = createAction(\r\n UPDATING_CONTACT,\r\n props<{payload: any, data: any}>()\r\n);\r\n/*export const UpdatedContact = createAction(\r\n UPDATED_CONTACT,\r\n props<{data: ResponseBaseModel, payload: any}>()\r\n);*/\r\nexport const CleaningContacts = createAction(\r\n CLEANING_CONTACTS\r\n);\r\n\r\nexport const RemovingContact = createAction(\r\n REMOVING_CONTACT,\r\n props<{payload: any, codes: { code: string, isDefault: boolean }[]}>()\r\n);\r\n/*export const RemovedContact = createAction(\r\n REMOVED_CONTACT,\r\n props<{data: ResponseBaseModel, codes: string[]}>()\r\n);*/\r\nexport const CancelContactsRequest = createAction(CANCEL_CONTACTS_REQUEST);\r\nexport const ErrorContactsRequest = createAction(ERROR_CONTACTS_REQUEST);\r\n\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SharedService } from '@app/services/shared.service';\r\nimport {MarketOrderDetails, OrderPagedResponse} from '@app/marketplace/orders/_models/order.interface';\r\nimport {ContactPagedResponse} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {ResponseBaseModel} from '@app/marketplace/core/models/response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContactService extends SharedService {\r\n\r\n constructor(\r\n httpCLient: HttpClient\r\n ) {\r\n super(httpCLient);\r\n }\r\n\r\n ListContacts(payload: any) {\r\n //const url = 'api/v3/contact/search';\r\n const url = 'api/market/contact/search';\r\n return this.post(url, payload);\r\n }\r\n\r\n AddContact(payload: any) {\r\n //const url = 'api/v3/contact/push';\r\n const url = 'api/market/contact/push';\r\n return this.post(url, payload);\r\n }\r\n\r\n UpdateContact(payload: any) {\r\n //const url = 'api/v3/contact/update';\r\n const url = 'api/market/contact/update';\r\n return this.post(url, payload);\r\n }\r\n\r\n RemoveContact(codes: string[]) {\r\n //const url = 'api/v3/contact/remove';\r\n const url = 'api/market/contact/remove';\r\n return this.post(url, codes);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Actions, createEffect, ofType} from '@ngrx/effects';\r\nimport {catchError, exhaustMap, map, mergeMap, switchMap, takeUntil, withLatestFrom} from 'rxjs/operators';\r\nimport {of} from 'rxjs';\r\nimport {Store} from '@ngrx/store';\r\nimport * as contactsActions from './contacts-actions';\r\nimport * as checkoutActions from '../checkout/checkout-actions';\r\nimport {ContactService} from '@app/marketplace/checkout/_services/contact.service';\r\nimport * as ordersActions from '@app/marketplace/orders/state/order-list/order-list-actions';\r\nimport * as routerSelectors from '@app/marketplace/route/router-state.selectors';\r\nimport * as locationSelectors from '@app/marketplace/locations/state/locations-selectors';\r\nimport {ResponseBaseModel, ResponseModel} from '@app/marketplace/core/models/response.model';\r\nimport {PutContactModel} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class ContactsEffects {\r\n constructor(private actions$: Actions, private service: ContactService, private store: Store) {\r\n }\r\n\r\n loadContacts$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(contactsActions.LOADING_CONTACTS),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n (action: any, router: any) => {\r\n return {\r\n payload: action.payload,\r\n params: router.params,\r\n };\r\n }\r\n ),\r\n switchMap((action: any) => {\r\n const payload = {\r\n locations: action.payload?.customLocation ? action.payload?.locations || [] : [],\r\n locationType: action.payload?.customLocation ? action.payload?.locationType || 0 : 0,\r\n };\r\n return this.service.ListContacts({...action.payload, locations: payload.locations, locationType: payload.locationType}).pipe(\r\n takeUntil(\r\n this.actions$.pipe(ofType(contactsActions.CANCEL_CONTACTS_REQUEST))\r\n ),\r\n map((data: any) => {\r\n data.count = data.data.length;\r\n return {type: contactsActions.LIST_CONTACTS, data};\r\n }),\r\n catchError((error) => of({type: contactsActions.ERROR_CONTACTS_REQUEST}))\r\n );\r\n })\r\n )\r\n );\r\n addContact$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(contactsActions.ADDING_CONTACT),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n (action: any, router: any) => {\r\n return {\r\n type: action.type,\r\n payload: action.payload,\r\n data: action.data,\r\n path: router.url\r\n };\r\n }\r\n ),\r\n switchMap((action: any) => {\r\n return this.service.AddContact(action.data).pipe(\r\n takeUntil(\r\n this.actions$.pipe(ofType(contactsActions.CANCEL_CONTACTS_REQUEST))\r\n ),\r\n mergeMap((data: ResponseBaseModel) => {\r\n const list = [];\r\n if (action.data.isDefault) {\r\n list.push({type: contactsActions.ADDED_CONTACT, data});\r\n if (action.path == '/market/revisar-completar-pedido') {\r\n list.push({type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: '' }});\r\n }\r\n } else {\r\n list.push(contactsActions.LoadingContacts({payload: action.payload}));\r\n }\r\n return list;\r\n }),\r\n catchError((error) => of({type: contactsActions.ERROR_CONTACTS_REQUEST}))\r\n );\r\n })\r\n )\r\n );\r\n updateContact$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(contactsActions.SELECTING_DEFAULT_CONTACT, contactsActions.UPDATING_CONTACT),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n (action: any, router: any) => {\r\n return {\r\n type: action.type,\r\n payload: action.payload,\r\n data: action.data,\r\n path: router.url\r\n };\r\n }\r\n ),\r\n switchMap((action: any) => {\r\n return this.service.UpdateContact(action.data).pipe(\r\n takeUntil(\r\n this.actions$.pipe(ofType(contactsActions.CANCEL_CONTACTS_REQUEST))\r\n ),\r\n mergeMap((data: ResponseBaseModel) => {\r\n if (action.type == contactsActions.SELECTING_DEFAULT_CONTACT) {\r\n const list = [];\r\n list.push({type: contactsActions.SELECTED_DEFAULT_CONTACT, data, code: action.data.code });\r\n if (action.path == '/market/revisar-completar-pedido') {\r\n list.push({type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: action.data.code }});\r\n }\r\n return list;\r\n } else {\r\n const list = [];\r\n list.push(contactsActions.LoadingContacts({payload: action.payload}));\r\n if (action.data.isDefault) {\r\n if (action.path == '/market/revisar-completar-pedido') {\r\n list.push({type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: action.data.code }});\r\n }\r\n }\r\n return list;\r\n }\r\n }),\r\n catchError((error) => of({type: contactsActions.ERROR_CONTACTS_REQUEST}))\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteContact$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(contactsActions.REMOVING_CONTACT),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n (action: any, router: any) => {\r\n return {\r\n type: action.type,\r\n payload: action.payload,\r\n codes: action.codes,\r\n path: router.url\r\n };\r\n }\r\n ),\r\n switchMap((action: any) => {\r\n return this.service.RemoveContact(action.codes.map(x => x.code)).pipe(\r\n takeUntil(\r\n this.actions$.pipe(ofType(contactsActions.CANCEL_CONTACTS_REQUEST))\r\n ),\r\n mergeMap((data: ResponseBaseModel) => {\r\n if (data.success) {\r\n const list = [];\r\n list.push(contactsActions.LoadingContacts({payload: action.payload}));\r\n if (action.codes.find(x => x.isDefault)) {\r\n if (action.path == '/market/revisar-completar-pedido') {\r\n list.push({type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: '' }});\r\n }\r\n }\r\n return list;\r\n }\r\n }),\r\n catchError((error) => of({type: contactsActions.ERROR_CONTACTS_REQUEST}))\r\n );\r\n })\r\n )\r\n );\r\n}\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {\r\n AuthorizePaymentResponse, BasePurchaseOutputInterface,\r\n CreditCardPaymentResponse, CreditCardPurchaseInputModel,\r\n PaymentProfileCollection,\r\n PurchaseInputModel,\r\n ValidateCreditCardPaymentModel\r\n} from '@app/marketplace/checkout/_models/payment-profile.model';\r\nimport {ResponseModel} from '@app/marketplace/core/models/response.model';\r\nexport const LOADING_PAYMENT_PROFILES = '[Payments_Profile] Loading payments profile';\r\nexport const LIST_PAYMENTS_PROFILE = '[Payments_Profile] List payments profile';\r\nexport const PURCHASE_TOKEN = '[Payment_Profile_Purchase] Purchase with token';\r\nexport const PURCHASE_NEW_CARD = '[Payment_Profile_Purchase] Purchase with new card';\r\nexport const PAYMENT_RESPONSE = '[Payment_Profile_Purchase] Payment response';\r\nexport const VALIDATING_CARD = '[Payment_Profile_Validate] Validating card';\r\nexport const VALIDATING_3D_SECURE_CARD = '[Payment_Profile_Validate] Validating 3D secure card';\r\nexport const VALIDATE_CARD_RESPONSE = '[Payment_Profile_Validate] Validated card response';\r\nexport const CANCELING_PAYMENT = '[Payment_Profile_Cancel] Canceling payment';\r\nexport const CANCELED_PAYMENT = '[Payment_Profile_Cancel] Canceled payment';\r\nexport const CLEAR_PAYMENT = '[Payment_Profile] Clear payment';\r\nexport const CANCEL_PAYMENT_PROFILES_REQUEST = '[Payments_Profile] cancel request';\r\nexport const ERROR_PAYMENT_PROFILES_REQUEST = '[Payments_Profile] Payments profile request error';\r\nexport const CLOSE_ERROR_MESSAGE = '[Payment_Profile] Close error message';\r\n\r\nexport const LoadingPaymentsProfile = createAction(\r\n LOADING_PAYMENT_PROFILES\r\n);\r\nexport const ListPaymentsProfile = createAction(\r\n LIST_PAYMENTS_PROFILE,\r\n props<{ data: PaymentProfileCollection}>()\r\n);\r\nexport const ValidatingCard = createAction(\r\n VALIDATING_CARD,\r\n props<{payload: ValidateCreditCardPaymentModel}>()\r\n);\r\nexport const Validating3DSecureCard = createAction(\r\n VALIDATING_3D_SECURE_CARD,\r\n props<{orderCode: string; externalData: string; }>()\r\n);\r\nexport const ValidatedCardResponse = createAction(\r\n VALIDATE_CARD_RESPONSE,\r\n props<{data: AuthorizePaymentResponse}>()\r\n);\r\nexport const PurchaseToken = createAction(\r\n PURCHASE_TOKEN,\r\n props<{payload: PurchaseInputModel}>()\r\n);\r\nexport const PurchaseNewCard = createAction(\r\n PURCHASE_NEW_CARD,\r\n props<{payload: CreditCardPurchaseInputModel}>()\r\n);\r\nexport const PaymentResponse = createAction(\r\n PAYMENT_RESPONSE,\r\n props<{data: CreditCardPaymentResponse}>()\r\n);\r\nexport const CancelingPayment = createAction(\r\n CANCELING_PAYMENT,\r\n props<{orderCode: string, token: string}>()\r\n);\r\nexport const ClearPayment = createAction(\r\n CLEAR_PAYMENT);\r\nexport const CanceledPayment = createAction(\r\n CANCELED_PAYMENT,\r\n props<{data: ResponseModel}>()\r\n);\r\nexport const CancelPaymentsProfileRequest = createAction(\r\n CANCEL_PAYMENT_PROFILES_REQUEST\r\n);\r\nexport const CloseErrorMessage = createAction(\r\n CLOSE_ERROR_MESSAGE);\r\n","\r\nexport enum ProductProviderEnum {\r\n Internal = 0,\r\n Amazon = 1,\r\n Shein = 2,\r\n Walmart=3,\r\n HomeDepot=4,\r\n BestBuy=5,\r\n}\r\n\r\nexport const ProductProviderMapping: Record = {\r\n [ProductProviderEnum.Internal]: 'Cubatel',\r\n [ProductProviderEnum.Amazon]: 'Amazon',\r\n [ProductProviderEnum.Shein]: 'Shein',\r\n [ProductProviderEnum.Walmart]: 'Walmart',\r\n [ProductProviderEnum.HomeDepot]: 'HomeDepot',\r\n [ProductProviderEnum.BestBuy]: 'BestBuy'\r\n};\r\n","export enum ViewTypeEnum {\r\n ProductList = 0,\r\n ProductDetails = 1,\r\n StoreDetails= 2,\r\n ShoppingCart = 3,\r\n Checkout= 4,\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class Utils {\r\n static GetProvider(value?: string) {\r\n if (!value) return 0;\r\n switch (value) {\r\n case \"amazon\":\r\n return 1;\r\n case \"shein\":\r\n return 2;\r\n case \"walmart\":\r\n return 3;\r\n case \"homedepot\":\r\n return 4;\r\n case \"bestbuy\":\r\n return 5;\r\n default:\r\n 0;\r\n }\r\n }\r\n static GetProviderName(value?: number) {\r\n if (!value) return 0;\r\n switch (value) {\r\n case 1:\r\n return \"amazon\";\r\n case 2:\r\n return \"shein\";\r\n case 3:\r\n return \"walmart\";\r\n case 4:\r\n return \"homedepot\";\r\n case 5:\r\n return \"bestbuy\";\r\n default:\r\n 0;\r\n }\r\n }\r\n}\r\n","interface IResource {\r\n name: string;\r\n src: string;\r\n}\r\nexport const StyleResources: IResource[] = [\r\n { name: 'bootstrap',src: 'bootstrap.min.css'},\r\n { name: 'font-awesome',src: 'font-awesome.min.css'},\r\n { name: 'animate',src: 'animate.css'},\r\n { name: 'owl-carousel',src: 'owl.carousel.min.css'},\r\n { name: 'normalize',src: 'normalize.css'},\r\n { name: 'style',src: 'xemart.css'},\r\n { name: 'responsive',src: 'responsive.css'},\r\n { name: 'custom-style',src: 'custom-style.css'},\r\n { name: 'custom-responsive',src: 'custom-responsive.css'},\r\n { name: 'countrySelect', src: 'countrySelect.min.css'},\r\n { name: 'dd', src: 'dd.css'}\r\n];\r\nexport const ScriptResources: IResource[] = [\r\n { name: 'jquery',src: 'jquery-1.12.4.min.js'},\r\n { name: 'popper',src: 'popper.min.js'},\r\n { name: 'bootstrap',src: 'bootstrap.min.js'},\r\n { name: 'owl-carousel',src: 'owl.carousel.min.js'},\r\n { name: 'wow',src: 'wow.min.js'},\r\n { name: 'price',src: 'price-filter.js'},\r\n { name: 'meanmenu',src: 'jquery.meanmenu.min.js'},\r\n { name: 'countrySelect', src: 'countrySelect.min.js'},\r\n { name: 'dd', src: 'dd.min.js'}\r\n];\r\n","import {Injectable} from \"@angular/core\";\r\nimport { ScriptResources, StyleResources } from './resource/assets-resources.store';\r\n\r\ndeclare var document: any;\r\n@Injectable({ providedIn: 'root' })\r\nexport class ResourceManagerService {\r\n private styles: any = {};\r\n private scripts: any = {};\r\n constructor() {\r\n ScriptResources.forEach((script: any) => {\r\n this.scripts[script.name] = {\r\n loaded: false,\r\n src: script.src,\r\n };\r\n });\r\n StyleResources.forEach((style: any) => {\r\n this.styles[style.name] = {\r\n loaded: false,\r\n href: style.src,\r\n };\r\n });\r\n }\r\n\r\n loadStyles(...styles: string[]) {\r\n styles.forEach((style) => this.createStyle(style));\r\n }\r\n createStyle(name: string): any {\r\n if (!this.styles[name].loaded) {\r\n var link = document.createElement('link');\r\n link.rel = 'stylesheet';\r\n link.href = this.styles[name].href;\r\n document.head.appendChild(link);\r\n this.styles[name].loaded = true;\r\n }\r\n }\r\n loadScripts(...scripts: string[]) {\r\n var promises: any[] = [];\r\n scripts.forEach((script) => promises.push(this.createScript(script)));\r\n return Promise.all(promises);\r\n }\r\n unloadStyles=(doc: any)=>{\r\n var styles=Object.keys(this.styles).map(key => ({name: key, value: this.styles[key].href}));\r\n styles.forEach((style) => {\r\n var item=doc.head.querySelector(`link[href=\"${style.value}\"`);\r\n if(item){\r\n doc.head.removeChild(item);\r\n this.styles[style.name].loaded = false;\r\n }\r\n });\r\n }\r\n unloadScript=(doc: any)=>{\r\n var scripts=Object.keys(this.scripts).map(key => ({name: key, value: this.scripts[key].src}));\r\n scripts.forEach((script) => {\r\n var item=doc.body.querySelector(`script[src=\"${script.value}\"`);\r\n if(item){\r\n doc.body.removeChild(item);\r\n this.scripts[script.name].loaded = false;\r\n }\r\n });\r\n }\r\n unloadResources=(doc: any)=>{\r\n this.unloadStyles(doc);\r\n this.unloadScript(doc);\r\n }\r\n createScript(name: string) {\r\n try {\r\n return new Promise((resolve, reject) => {\r\n if (this.scripts[name].loaded) {\r\n resolve({script: name, loaded: true, status: 'Already Loaded'});\r\n } else {\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = this.scripts[name].src;\r\n if (script.readyState) { // IE\r\n script.onreadystatechange = () => {\r\n if (script.readyState === 'loaded' || script.readyState === 'complete') {\r\n script.onreadystatechange = null;\r\n this.scripts[name].loaded = true;\r\n resolve({script: name, loaded: true, status: 'Loaded'});\r\n }\r\n };\r\n } else {\r\n script.onload = () => {\r\n this.scripts[name].loaded = true;\r\n resolve({script: name, loaded: true, status: 'Loaded'});\r\n };\r\n }\r\n script.onerror = (error: any) => resolve({script: name, loaded: false, status: 'Loaded'});\r\n document.body.appendChild(script);\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`createScript ${name} ${error}`);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root'})\r\nexport class LoaderService {\r\n public isLoading$ = new BehaviorSubject(true);\r\n constructor() {}\r\n show() {this.isLoading$.next(true);}\r\n hide() {this.isLoading$.next(false);}\r\n}\r\n","
\r\n \"Walmart\"\r\n \"Amazon\"\r\n \"Shein\"/\r\n \"Best\r\n \"Home\r\n
\r\n\r\n
\r\n\r\n

¡Nuevo! Compra productos en {{ProductProviderMapping[(provider$ | async)]}} desde Cubatel
y recíbelos a domicilio en Cuba

\r\n\r\n\r\n
\r\n\r\n","import {Component, Inject, Input, OnInit, PLATFORM_ID} from '@angular/core';\r\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\r\nimport {DeviceDetectorService} from 'ngx-device-detector';\r\nimport {ProductProviderEnum, ProductProviderMapping} from '@app/marketplace/core/enum/productProvider';\r\nimport {Store} from '@ngrx/store';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-amazon-wizard',\r\n templateUrl: './amazon-wizard.component.html',\r\n styleUrls: ['./amazon-wizard.component.css'],\r\n providers: [DeviceDetectorService]\r\n})\r\nexport class AmazonWizardComponent implements OnInit {\r\n\r\n @Input()top: number;\r\n @Input()left: number;\r\n\r\n @Input()\r\n provider$: Observable;\r\n ProductProviderEnum = ProductProviderEnum;\r\n ProductProviderMapping = ProductProviderMapping;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n private store: Store,\r\n @Inject(DOCUMENT) private document,\r\n @Inject(PLATFORM_ID) private platformId,\r\n private deviceService: DeviceDetectorService) {\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n let top = 90;\r\n if (this.deviceService.isMobile() || this.deviceService.isTablet()) {\r\n top += 12;\r\n }\r\n this.document.getElementsByClassName('amazon-dialog-modal')[0].style.top = top + 31 + 'px';\r\n this.document.getElementsByClassName('amazon-dialog-modal')[0].style.left = this.left + 5 + 'px';\r\n }\r\n }\r\n}\r\n\r\n\r\n","
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { ProductProviderEnum } from './../../core/enum/productProvider';\r\nimport {Component, Inject, OnDestroy, OnInit, PLATFORM_ID} from '@angular/core';\r\nimport { Store, select } from '@ngrx/store';\r\nimport {BehaviorSubject, Observable, of, Subject, Subscription} from 'rxjs';\r\nimport * as searchActions from \"@app/marketplace/products/state/product-search/search-actions\";\r\nimport * as searchSelectors from '@app/marketplace/products/state/product-search/search-selectors';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { FormControl } from '@angular/forms';\r\nimport {debounceTime, distinctUntilChanged, take, takeUntil} from 'rxjs/operators';\r\nimport {StorageService} from '@app/services/storage.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport {environment} from '@env/environment';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {AmazonWizardComponent} from '@app/marketplace/layout/search/amazon-wizard/amazon-wizard.component';\r\nimport {ActivePerfRecorder} from '@angular/compiler-cli/src/ngtsc/perf';\r\n\r\n@Component({\r\n selector: 'app-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.css']\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy {\r\n provider$: Observable;\r\n term$: Observable;\r\n searhControl = new FormControl(\"\");\r\n protected _subscriptions: Subscription[] = [];\r\n unsubscribe = new Subject();\r\n stop = false;\r\n provider;\r\n showMegaMenuSubject = new BehaviorSubject({});\r\n showMegaMenu$ = this.showMegaMenuSubject.asObservable();\r\n\r\n turnOnShein = environment.turn_on_shein;\r\n turnOnAmazon = environment.turn_on_amazon;\r\n turnOnWalmart = environment.turn_on_walmart;\r\n turnOnHomeDepot= environment.turn_on_homedepot;\r\n turnOnBestBuy= environment.turn_on_bestbuy;\r\n\r\n constructor(private store: Store,\r\n public storageService: StorageService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private modalService: NgbModal,\r\n @Inject(PLATFORM_ID) private platformId,\r\n @Inject(DOCUMENT) private document) {\r\n this.provider$ = this.store.select(searchSelectors.selectProvider);\r\n this.term$ = this.store.select(searchSelectors.selectTerm);\r\n }\r\n async ngOnInit(): Promise {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this._subscriptions.push(this.searhControl.valueChanges\r\n .pipe(debounceTime(250), distinctUntilChanged())\r\n .subscribe(async (val) => {\r\n const provider = await this.store.pipe(select(searchSelectors.selectProvider), take(1)).toPromise();\r\n this.store.dispatch(searchActions.KeyPressInSearch({term: val}));\r\n if (val.length===0 && provider==0)\r\n this.store.dispatch(searchActions.SearchProducts());\r\n }));\r\n this.route.queryParams.subscribe(result => {\r\n if (result && result.stu_provider && (result.stu_provider == '1' || result.stu_provider == '0' || result.stu_provider == '2' || result.stu_provider == '3' || result.stu_provider == '4'|| result.stu_provider == '5')) {\r\n this.store.dispatch(searchActions.SetProvider({provider: result.stu_provider}));\r\n }\r\n });\r\n if (environment.turn_on_walmart || environment.turn_on_bestbuy || environment.turn_on_homedepot || environment.turn_on_shein || environment.turn_on_amazon) {\r\n this.showWizard();\r\n }\r\n }\r\n }\r\n\r\n getRandomInt(): number {\r\n let provider = Math.floor(Math.random() * 5) + 1;\r\n if (provider == ProductProviderEnum.Amazon && !environment.turn_on_amazon) {\r\n provider = this.getRandomInt();\r\n } else if (provider == ProductProviderEnum.Shein && !environment.turn_on_shein) {\r\n provider = this.getRandomInt();\r\n } else if (provider == ProductProviderEnum.Walmart && !environment.turn_on_walmart) {\r\n provider = this.getRandomInt();\r\n } else if (provider == ProductProviderEnum.HomeDepot && !environment.turn_on_homedepot) {\r\n provider = this.getRandomInt();\r\n } else if (provider == ProductProviderEnum.BestBuy && !environment.turn_on_bestbuy) {\r\n provider = this.getRandomInt();\r\n }\r\n return provider;\r\n }\r\n\r\n showWizard() {\r\n const wizard = this.storageService.getAmazonWizard();\r\n if (!wizard) {\r\n this.getGoodPosition();\r\n } else if ((wizard?.exp + environment.expAmazonWizard) < Date.now()) {\r\n this.getGoodPosition();\r\n }\r\n }\r\n\r\n async getGoodPosition() {\r\n const providerLinks = ['/market/envios/amazon-para-cuba', '/market/envios/walmart-para-cuba', '/market/envios/home-depot-para-cuba', '/market/envios/best-buy-para-cuba', '/market/envios/shein-para-cuba'];\r\n this.stop = true;\r\n const element = this.document.getElementById('show-amazon');\r\n const position = element.getBoundingClientRect();\r\n const modalRef = this.modalService.open(AmazonWizardComponent, {size: 'sm', centered: false, modalDialogClass: 'amazon-dialog-modal', backdropClass: 'background-opacity' });\r\n modalRef.componentInstance.top = position.y;\r\n modalRef.componentInstance.left = position.x;\r\n this.provider = providerLinks.find(x => x == this.router.url) ? this.provider$ : of(this.getRandomInt());\r\n modalRef.componentInstance.provider$ = this.provider;\r\n modalRef.result.finally(() => this.stop = false);\r\n this.storageService.setAmazonWizard();\r\n }\r\n\r\n async search() {\r\n this.store.dispatch(searchActions.KeyPressInSearch({term: this.searhControl.value}));\r\n const provider = await this.store.pipe(select(searchSelectors.selectProvider), take(1)).toPromise();\r\n if (provider>0 && this.searhControl.value.length==0){\r\n this.toastr.error(\"Debe seleccionar un término de búsqueda.\");\r\n return;\r\n }\r\n this.store.dispatch(searchActions.SearchProducts());\r\n }\r\n\r\n async setProvider(provider: ProductProviderEnum){\r\n document.getElementById('search-id').focus();\r\n this.store.dispatch(searchActions.SetProvider({provider}));\r\n const prov = await this.store.pipe(select(searchSelectors.selectProvider), take(1)).toPromise();\r\n this.store.dispatch(searchActions.SearchProducts());\r\n }\r\n ngOnDestroy(): void {this._subscriptions.forEach(sb => sb.unsubscribe());}\r\n}\r\n","import {Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\r\nimport {StorageService} from '@app/services/storage.service';\r\n\r\n\r\n@Directive({\r\n selector: '[isAuthenticated]',\r\n})\r\nexport class IsAuthenticatedDirective implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private templateRef: TemplateRef,\r\n private storageService: StorageService\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (!this.storageService.isAuthenticated()) {\r\n this.viewContainerRef.clear();\r\n return;\r\n }\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \r\n Elegir ubicación\r\n {{municipality}}, {{province}}\r\n {{province}}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{location.text}}\r\n
    \r\n {{municipality.text}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n\r\n
  • \r\n Productos\r\n
  • \r\n
  • \r\n Amazon\r\n
  • \r\n
  • \r\n Shein\r\n
  • \r\n
  • \r\n Walmart

    Nuevo

    \r\n
  • \r\n
  • \r\n Home Depot

    Nuevo

    \r\n
  • \r\n
  • \r\n Best Buy

    Nuevo

    \r\n
  • \r\n\r\n \r\n\r\n
  • \r\n \r\n Ofertas\r\n \r\n
  • \r\n\r\n \r\n \r\n Envíos\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
  • \r\n
    \r\n
    \r\n
      \r\n
    • 0 && isCheckoutPage\" class=\"list-inline-item cup-btn mt-0\">Pagar
    • \r\n
    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n","import {Component, Inject, OnDestroy, OnInit, PLATFORM_ID} from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\r\nimport * as fromShoppingCart from '@app/marketplace/products/state/shopping-cart/cart-state';\r\nimport * as selectorsShoppingCart from '@app/marketplace/products/state/shopping-cart/cart-selectors';\r\nimport * as locationSelectors from '@app/marketplace/locations/state/locations-selectors';\r\nimport * as locationsActions from '@app/marketplace/locations/state/locations-actions';\r\nimport * as searchActions from \"@app/marketplace/products/state/product-search/search-actions\";\r\nimport * as categoryActions from \"@app/marketplace/categories/state/category/categories-actions\";\r\nimport * as productActions from \"@app/marketplace/products/state/product-list/list-actions\";\r\nimport * as searchSelectors from '@app/marketplace/products/state/product-search/search-selectors';\r\nimport { LocationTypeEnum } from '@app/marketplace/shared/_models/location.model';\r\nimport { initProvinces } from '@app/marketplace/locations/locations';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { FormControl } from '@angular/forms';\r\nimport {debounceTime, distinctUntilChanged, takeUntil} from 'rxjs/operators';\r\nimport {StorageService} from '@app/services/storage.service';\r\nimport {NavigationEnd, NavigationStart, Router} from '@angular/router';\r\nimport {environment} from '@env/environment';\r\n\r\n\r\n@Component({\r\n selector: 'app-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.css']\r\n})\r\nexport class TopbarComponent implements OnInit, OnDestroy {\r\n\r\n location$: Observable;\r\n LocationType = LocationTypeEnum;\r\n\r\n locations = initProvinces;\r\n locationType: LocationTypeEnum;\r\n province = '';\r\n municipality = '';\r\n shoppingCart$: Observable;\r\n\r\n payload: any;\r\n searhControl = new FormControl(\"\");\r\n protected _subscriptions: Subscription[] = [];\r\n unsubscribe = new Subject();\r\n stop = false;\r\n showMegaMenuSubject = new BehaviorSubject({});\r\n showMegaMenu$ = this.showMegaMenuSubject.asObservable();\r\n provider$: Observable;\r\n isCheckoutPage = false;\r\n\r\n turnOnShein = environment.turn_on_shein;\r\n turnOnAmazon = environment.turn_on_amazon;\r\n turnOnWalmart = environment.turn_on_walmart;\r\n turnOnHomeDepot = environment.turn_on_homedepot;\r\n turnOnBestBuy = environment.turn_on_bestbuy\r\n\r\n constructor(private store: Store,\r\n public storageService: StorageService,\r\n private router: Router,\r\n @Inject(PLATFORM_ID) private platformId,\r\n @Inject(DOCUMENT) private document) {\r\n this.location$ = this.store.select(locationSelectors.selectLocation);\r\n this.provider$ = this.store.select(searchSelectors.selectProvider);\r\n }\r\n\r\n handleClick(event) {\r\n event.preventDefault();\r\n var href=event.currentTarget.getAttribute('data-href')\r\n if(href){\r\n this.store.dispatch(searchActions.SetProvider({provider:0}));\r\n this.store.dispatch(searchActions.DeleteSearchTerm());\r\n this.router.navigate([href]);\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.showMegaMenu$\r\n .pipe(debounceTime(500))\r\n .subscribe(() => {\r\n if (!this.stop) {\r\n const megaBox = this.document.querySelector('.mega-box.collapse');\r\n if (megaBox) {\r\n megaBox.classList.remove('collapse');\r\n }\r\n } else { this.stop = false; }\r\n });\r\n this._subscriptions.push(this.location$.subscribe((res: any) => {\r\n if (res.locations.length === 0) {\r\n this.province = '';\r\n this.municipality = '';\r\n } else {\r\n this.locationType = res.locationType;\r\n if (res.locationType == LocationTypeEnum.Municipality) {\r\n this.province = this.locations.find(x => x.children.find(o => o.value == res.locations[0]))?.iso || '';\r\n const mun = this.locations.find(x => x.children.find(o => o.value == res.locations[0]))?.children.find(t => t.value == res.locations[0])?.text || '';\r\n if (mun.length > 15) {\r\n this.municipality = `${mun.slice(0, 15)}...`;\r\n } else { this.municipality = mun; }\r\n } else {\r\n this.municipality = '';\r\n this.province = this.locations.find(x => x.value == res.locations[0])?.text || '';\r\n }\r\n }\r\n\r\n }));\r\n\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.document.querySelector('.mega-menu').addEventListener('mouseenter', () => this.onEvent());\r\n this.document.querySelector('.mega-menu').addEventListener('mouseleave', () => { this.stop = true; });\r\n this.document.querySelector('.mega-menu').addEventListener('touchstart', () => this.onEvent1());\r\n this.document.querySelector('.sidemenu').addEventListener('mouseenter', () => this.onEvent(false));\r\n this.document.querySelector('.sidemenu').addEventListener('touchstart', () => this.onEvent(false));\r\n this.shoppingCart$ = this.store.select(selectorsShoppingCart.selectCart);\r\n /* this._subscriptions.push(this.searhControl.valueChanges\r\n .pipe(debounceTime(250), distinctUntilChanged())\r\n .subscribe((val) => {\r\n this.store.dispatch(searchActions.KeyPressInSearch({term: val}));\r\n if(val.length===0)\r\n this.store.dispatch(searchActions.SearchProducts());\r\n })); */\r\n\r\n this._subscriptions.push(this.router.events.subscribe((e: any) => {\r\n if (e instanceof NavigationStart) {\r\n this.isCheckoutPage = e.url !== '/market/revisar-completar-pedido';\r\n if(e.url===\"/market/tienda-online-cuba\"){\r\n this.store.dispatch(categoryActions.ClearCategoryFilter());\r\n let payload= {\r\n \"pageIndex\": 1,\r\n \"pageSize\": 8,\r\n \"pagingStrategy\": 0,\r\n \"locationType\": 0,\r\n \"locations\": null,\r\n \"locationResolver\": false,\r\n \"filter\": {\r\n \"searchTerms\": \"\",\r\n \"sortingArgs\": 0,\r\n \"categories\": null,\r\n \"priceRange\": {\r\n \"low\": 1,\r\n \"high\": 250\r\n }\r\n },\r\n \"categoryCode\": '',\r\n \"supplierCode\": \"\"\r\n };\r\n this.store.dispatch(categoryActions.ListCategories({payload}));\r\n }\r\n }\r\n }));\r\n\r\n }\r\n }\r\n onEvent(megaMenu: boolean = true) {\r\n if (megaMenu) {\r\n this.stop = false;\r\n this.showMegaMenuSubject.next({});\r\n } else {\r\n const gtMenu = this.document.querySelector('.gt-menu.collapse');\r\n if (gtMenu) {\r\n gtMenu.classList.remove('collapse');\r\n }\r\n }\r\n }\r\n\r\n onEvent1(megaMenu: boolean = true) {\r\n if (megaMenu) {\r\n const megaBox = this.document.querySelector('.mega-box.collapse');\r\n if (megaBox) {\r\n megaBox.classList.remove('collapse');\r\n }\r\n } else {\r\n const gtMenu = this.document.querySelector('.gt-menu.collapse');\r\n if (gtMenu) {\r\n gtMenu.classList.remove('collapse');\r\n }\r\n }\r\n }\r\n\r\n /* search=()=>this.store.dispatch(searchActions.SearchProducts()); */\r\n\r\n action(code, locationType: LocationTypeEnum = LocationTypeEnum.Municipality) {\r\n const aux = this.document.getElementsByClassName('mega-box');\r\n aux[0].classList.add('collapse');\r\n this.store.dispatch(locationsActions.UpdatedLocation({ locationType: locationType, locations: [code] }));\r\n //this.router.navigate(['/market/productos-compras-cuba-online']);\r\n }\r\n collapseMenu () {\r\n const aux = this.document.getElementsByClassName('gt-menu');\r\n aux[0].classList.add('collapse');\r\n }\r\n\r\n productRouter=()=>{\r\n this.store.dispatch(searchActions.SetProvider({provider:0}));\r\n this.store.dispatch(searchActions.DeleteSearchTerm());\r\n this.store.dispatch(categoryActions.ClearCategoryFilter());\r\n let payload = {\r\n pageIndex: 0,\r\n pageSize: 12,\r\n pagingStrategy: 0,\r\n locationType: 0,\r\n locations: null,\r\n locationResolver: false,\r\n filter: {\r\n searchTerms: '',\r\n sortingArgs: 0,\r\n categories: null,\r\n priceRange: {\r\n low: 1,\r\n high: 1000,\r\n },\r\n },\r\n categoryCode: '',\r\n supplierCode: '',\r\n };\r\n this.store.dispatch(productActions.LoadingProductsAction({payload}));\r\n this.router.navigate(['market/productos-compras-cuba-online']);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.document.querySelector('.mega-menu').removeEventListener('mouseenter', () => this.onEvent());\r\n this.document.querySelector('.mega-menu').removeEventListener('mouseleave', () => { this.stop = true; });\r\n this.document.querySelector('.mega-menu').removeEventListener('touchstart', () => this.onEvent1());\r\n this.document.querySelector('.sidemenu').removeEventListener('mouseenter', () => this.onEvent(false));\r\n this.document.querySelector('.sidemenu').removeEventListener('touchstart', () => this.onEvent(false));\r\n this._subscriptions.forEach(sb => sb.unsubscribe());\r\n }\r\n}\r\n","import { AfterContentInit, AfterViewInit, Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { ResourceManagerService } from 'src/app/marketplace/core/services/resource-manager.service';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { LazyLoad } from '@app/helpers/lazyload';\r\nimport { LoaderService } from '@app/marketplace/core/services/loader.service';\r\nimport { Observable } from 'rxjs';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport * as cartActions from \"@app/marketplace/products/state/shopping-cart/cart-action\";\r\nimport * as searchActions from \"@app/marketplace/products/state/product-search/search-actions\";\r\nimport { Store } from '@ngrx/store';\r\nconst lazyLoad = LazyLoad;\r\n\r\n@Component({\r\n selector: 'app-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.css'],\r\n animations: [\r\n trigger('fade', [\r\n state('true', style({ display: \"inline\", opacity: 1 })),\r\n state('false', style({ display: \"none\", opacity: 0 })),\r\n transition('true <=> false', animate('1s ease-in-out')),\r\n ]),\r\n ]\r\n})\r\nexport class LayoutComponent implements OnInit, AfterViewInit, AfterContentInit, OnDestroy {\r\n public isLoading$: Observable;\r\n constructor(\r\n private loaderService: LoaderService,\r\n private resourceManager: ResourceManagerService,\r\n private store: Store,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private platformId,\r\n ) { this.isLoading$ = this.loaderService.isLoading$; }\r\n\r\n ngAfterContentInit(): void {\r\n /*this.resourceManager.loadStyles('dd');\r\n this.resourceManager.loadScripts('dd').then(response => {console.info(response)});*/\r\n }\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.store.dispatch(cartActions.FetchCart());\r\n this.store.dispatch(searchActions.DeleteSearchTerm());\r\n $(document).on(\"keypress\", function (e) {\r\n if (e.which == 13) {\r\n e.preventDefault();\r\n console.info(\"keypress\");\r\n this.store.dispatch(searchActions.SearchProducts());\r\n }\r\n }.bind(this));\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this.loaderService.hide();\r\n }\r\n ngOnDestroy(): void {\r\n if (isPlatformBrowser(this.platformId))\r\n this.resourceManager.unloadResources(this.document);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport {\r\n Resolve,\r\n RouterStateSnapshot,\r\n ActivatedRouteSnapshot\r\n} from '@angular/router';\r\nimport { ResourceManagerService } from '../services/resource-manager.service';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { LazyLoad } from '@app/helpers/lazyload';\r\nimport { LoaderService } from '../services/loader.service';\r\ndeclare const $: any;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ResourcesResolver implements Resolve {\r\n constructor(\r\n private loaderService: LoaderService,\r\n private resourceManager: ResourceManagerService,\r\n @Inject(PLATFORM_ID) private platformId,\r\n ) { }\r\n loadResources(): Promise {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.resourceManager.loadStyles('bootstrap', 'font-awesome',\r\n 'animate', 'owl-carousel', 'normalize', 'style',\r\n 'responsive', 'custom-style', 'custom-responsive', 'countrySelect');\r\n return this.resourceManager.loadScripts('jquery').then(response => {\r\n this.loaderService.show();\r\n return this.resourceManager.loadScripts('popper', 'bootstrap','owl-carousel', 'wow', 'price', 'countrySelect');\r\n }).then(response => { });\r\n }\r\n }\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return this.loadResources();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-payment-confirmation',\r\n templateUrl: './payment-confirmation.component.html',\r\n styleUrls: ['./payment-confirmation.component.css']\r\n})\r\nexport class PaymentConfirmationComponent implements OnInit {\r\n\r\n constructor(public modal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
¡Pago procesado correctamente!
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Tu compra se realizó con éxito.\r\n ¡Prepárate para recibir tus productos en breve!\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"{{cat.alt}}\"\r\n
\r\n

Nuevo

\r\n
\r\n
\r\n

{{cat.name}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, ElementRef, Inject, OnInit, PLATFORM_ID, ViewChildren} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {environment} from '@env/environment';\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-categories-section',\r\n templateUrl: './categories-section.component.html',\r\n styleUrls: ['./categories-section.component.css']\r\n})\r\nexport class CategoriesSectionComponent implements OnInit {\r\n\r\n @ViewChildren('tab-item') tabItems: ElementRef;\r\n\r\n categories = [\r\n {name: 'Walmart', turnOff: !environment.turn_on_walmart, alt: 'Walmart', src: 'assets/market-walmart/walmart-category.svg', slug: 'envios/walmart-para-cuba'},\r\n {name: 'Best Buy', turnOff: !environment.turn_on_bestbuy, alt: 'Best Buy', src: 'assets/market-best-buy/best_buy_category.svg', slug: 'envios/best-buy-para-cuba'},\r\n {name: 'Home Depot', turnOff: !environment.turn_on_homedepot, alt: 'Home Depot', src: 'assets/market-home-depot/home_depot_category.svg', slug: 'envios/home-depot-para-cuba'},\r\n {name: 'Amazon', turnOff: !environment.turn_on_amazon, alt: 'Amazon', src: 'assets/market-amazon/amazon.svg', slug: 'envios/amazon-para-cuba'},\r\n {name: 'Shein', turnOff: !environment.turn_on_shein, alt: 'Shein', src: 'assets/market-shein/icon_shein.png', slug: 'envios/shein-para-cuba'},\r\n {name: 'Ofertas', alt: 'Ofertas', src: 'assets/market/oferta.jpg', slug: 'tienda-online-cuba/ofertas-descuentos-tienda-envios-cuba'},\r\n {name: 'Envíos', alt: 'Envíos', src: 'assets/market/envios.jpg', slug: 'tienda-online-cuba/productos-envio-cuba'},\r\n {name: 'Alimentos', alt: 'Alimentos', src: 'assets/market/alimentos.png', slug: 'tienda-online-cuba/comida'},\r\n {name: 'Bebidas', alt: 'Bebidas', src: 'assets/market/bebidas.png', slug: 'tienda-online-cuba/bebida'},\r\n {name: 'Combos', alt: 'Combos', src: 'assets/market/combos1.jpg', slug: 'tienda-online-cuba/combos'},\r\n {name: 'Hogar', alt: 'Hogar', src: 'assets/market/electrodomesticos.jpg', slug: 'tienda-online-cuba/electrodomesticos-hogar'},\r\n {name: 'Tecnología', alt: 'Tecnología', src: 'assets/market/tecnologia.png', slug: 'tienda-online-cuba/celulares-computadoras'},\r\n {name: 'Aseo y Belleza', alt: 'Aseo y Belleza', src: 'assets/market/aseo.png', slug: 'tienda-online-cuba/aseo'},\r\n {name: 'Automotriz', alt: 'Automotriz', src: 'assets/market/automotriz.png', slug: 'tienda-online-cuba/piezas-motos-carros'},\r\n {name: 'Farmacia y Salud', alt: 'Farmacia y Salud', src: 'assets/market/farmacia.jpg', slug: 'tienda-online-cuba/medicamentos'},\r\n {name: 'Ferretería', alt: 'Ferretería', src: 'assets/market/ferreteria.png', slug: 'tienda-online-cuba/ferreteria'},\r\n {name: 'Restaurante', alt: 'Restaurante', src: 'assets/market/restaurante.jpg', slug: 'tienda-online-cuba/comida-restaurante'}];\r\n constructor(@Inject(PLATFORM_ID) private platformId) { }\r\n\r\n ngOnInit(): void {\r\n let owl;\r\n if (isPlatformBrowser(this.platformId)) {\r\n setTimeout(() => {\r\n owl = $('#category-slider').owlCarousel({\r\n autoplay: false,\r\n autoplayTimeout: 7000,\r\n autoplayHoverPause: true,\r\n smartSpeed: 500,\r\n loop: true,\r\n responsiveClass: true,\r\n nav : true,\r\n navText: ['', ''],\r\n margin: 20,\r\n dots: true,\r\n responsive: {\r\n 0: {\r\n items: 3,\r\n },\r\n 576: {\r\n items: 4\r\n },\r\n 768: {\r\n items: 4\r\n },\r\n 992: {\r\n items: 5\r\n },\r\n 1200: {\r\n items: 6\r\n },\r\n 2560: {\r\n items: 6\r\n }\r\n }\r\n });\r\n }, 500);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Mejores productos

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n 0?product.pictures[0].previewUrl:'assets/xemart/images/notImg.png'}}\"\r\n (load)=\"product.loaded=true\">\r\n
\r\n
\r\n

\r\n {{product.name}}\r\n

\r\n
\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
      \r\n
    • {{product.priceToShow}}
    • \r\n
    • {{product.oldPriceToShow}}
    • \r\n
    \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n","import {Component, ElementRef, Inject, OnInit, PLATFORM_ID, ViewChild} from '@angular/core';\r\nimport {DeepLinkType} from '@app/models/deep-link.model';\r\nimport {TrackingComponent} from '@app/shared/components/tracking/tracking.component';\r\nimport {UrlService} from '@app/services/url.service';\r\nimport {FingerprintService} from '@app/services/fingerprint.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {ProductModel} from '@app/market-seo/models/product.model';\r\nimport {LazyLoad} from '@app/helpers/lazyload';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {ProductService} from '@app/marketplace/products/_services/product.service';\r\nimport {Observable} from 'rxjs';\r\nimport {MarketProduct} from '@app/marketplace/products/_models/product.interface';\r\nimport {Store} from '@ngrx/store';\r\nimport {finalize} from 'rxjs/operators';\r\nimport {StorageService} from '@app/services/storage.service';\r\nimport { ViewTypeEnum } from '@app/marketplace/core/enum/viewTypeEnum';\r\n\r\nconst lazyLoad = LazyLoad;\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-products-section',\r\n templateUrl: './products-section.component.html',\r\n styleUrls: ['./products-section.component.css']\r\n})\r\nexport class ProductsSectionComponent extends TrackingComponent implements OnInit {\r\n\r\n products: MarketProduct[] = [];\r\n payload: any;\r\n loading$: boolean;\r\n\r\n theme = { 'min-width': '220px', 'min-height': '219px', background: '#f1f1f1' };\r\n\r\n constructor(private urlService: UrlService,\r\n private fingerprintService: FingerprintService,\r\n private route: ActivatedRoute,\r\n private productService: ProductService,\r\n private storageService: StorageService,\r\n private store: Store,\r\n @Inject(PLATFORM_ID) private platformId) {\r\n super(urlService, fingerprintService, null, route, 'stu_btn_market');\r\n this.payload = {\r\n pageIndex: 1,\r\n pageSize: 12,\r\n pagingStrategy: 0,\r\n locationType: 0,\r\n locations: null,\r\n locationResolver: false,\r\n filter: {\r\n searchTerms: '',\r\n sortingArgs: 0,\r\n categories: null,\r\n priceRange: {\r\n low: 1,\r\n high: 1000,\r\n },\r\n },\r\n categoryCode: '',\r\n supplierCode: '',\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updatePayload(1);\r\n }\r\n\r\n updatePayload(tab: number) {\r\n switch (tab) {\r\n case 1: this.payload.filter.sortingArgs = 0; break;\r\n case 2: this.payload.filter.sortingArgs = 16; break;\r\n case 3: this.payload.filter.sortingArgs = 4; break;\r\n case 4: this.payload.filter.sortingArgs = 128; break;\r\n default: this.payload.filter.sortingArgs = 0;\r\n }\r\n this.getProducts();\r\n }\r\n getProducts() {\r\n this.loading$ = true;\r\n const location = this.storageService.getCurrentLocation('location');\r\n if (location && location.isSuccess == true) {\r\n this.payload.locationType = location?.locationType || 0;\r\n this.payload.locations = location?.locations || null;\r\n }\r\n this.productService.ListProducts(this.payload).pipe(finalize(() => this.loading$ = false)).subscribe((result: any) => {\r\n if (result && result.data) {\r\n result.data.map(data => {\r\n data.ratingsCounter = new Array(Number(data.rating.toFixed(0)));\r\n });\r\n this.products = result.data;\r\n }\r\n });\r\n }\r\n\r\n public pushToCart(product: any, tab) {\r\n const itemImg = $(`#${tab}-${product.code}`).find('img').eq(0);\r\n this.flyToElement($(itemImg), product,ViewTypeEnum.ProductList, this.store);\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n Alimentos
    a Cuba
    \r\n Envía productos
    frescos y en conserva.
    \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Envíos Marítimos
    \r\nA cuba
    \r\n Reciben las compras
    a Cuba online
    \r\nde 4 a 7 semanas.
    \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Tecnología y
    celulares
    \r\n Los dispositivos más
    modernos al mejor precio.
    \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n \r\n \r\n \r\n \"Envíos\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, Inject, OnInit, PLATFORM_ID} from '@angular/core';\r\nimport {TrackingComponent} from '@app/shared/components/tracking/tracking.component';\r\nimport {UrlService} from '@app/services/url.service';\r\nimport {FingerprintService} from '@app/services/fingerprint.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {isPlatformBrowser} from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-shipping-section',\r\n templateUrl: './shipping-section.component.html',\r\n styleUrls: ['./shipping-section.component.css']\r\n})\r\nexport class ShippingSectionComponent extends TrackingComponent implements OnInit {\r\n\r\n constructor(private urlService: UrlService,\r\n private fingerprintService: FingerprintService,\r\n private route: ActivatedRoute,\r\n @Inject(PLATFORM_ID) private platformId) { super(urlService, fingerprintService, null, route, 'stu_btn_market'); }\r\n\r\n ngOnInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n setTimeout(() => {\r\n $('#shipping-slider').owlCarousel({\r\n autoplay: false,\r\n autoplayTimeout: 7000,\r\n autoplayHoverPause: true,\r\n smartSpeed: 500,\r\n loop: true,\r\n responsiveClass: true,\r\n nav: false,\r\n navText: ['', ''],\r\n margin: 20,\r\n dots: true,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n margin: 10\r\n },\r\n 576: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 2\r\n },\r\n 992: {\r\n items: 2\r\n },\r\n 1200: {\r\n items: 3\r\n },\r\n 2560: {\r\n items: 3\r\n }\r\n }\r\n });\r\n }, 800);\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\r\nimport {TrackingComponent} from '@app/shared/components/tracking/tracking.component';\r\nimport {UrlService} from '@app/services/url.service';\r\nimport {FingerprintService} from '@app/services/fingerprint.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-most-popular-section',\r\n templateUrl: './most-popular-section.component.html',\r\n styleUrls: ['./most-popular-section.component.css']\r\n})\r\nexport class MostPopularSectionComponent extends TrackingComponent implements OnInit {\r\n\r\n constructor(private urlService: UrlService,\r\n private fingerprintService: FingerprintService,\r\n private route: ActivatedRoute) { super(urlService, fingerprintService, null, route, 'stu_btn_market'); }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-walmart-banner',\r\n templateUrl: './walmart-banner.component.html',\r\n styleUrls: ['./walmart-banner.component.css']\r\n})\r\nexport class WalmartBannerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
    \r\n
    \r\n
    \r\n \"Cubatel\r\n
    \r\n

    ¡Envía productos de
    \r\n \"Walmart\"\r\n \"Walmart\"\r\n \"Walmart\"\r\n \"Walmart\"\r\n a tus seres queridos en Cuba!

    \r\n \r\n Comprar Ahora\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n \r\n Comprar Ahora\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home-depot-banner',\r\n templateUrl: './home-depot-banner.component.html',\r\n styleUrls: ['./home-depot-banner.component.css']\r\n})\r\nexport class HomeDepotBannerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
    \r\n
    \r\n
    \r\n \"Cubatel\r\n \r\n \r\n \r\n \"Home\r\n \r\n
    \r\n

    \r\n Todos los productos de
    \r\n The Home Depot en Cubatel\r\n The Home Depot en Cubatel\r\n

    \r\n Compra aquí y los entregamos
    \r\nen tu casa en Cuba
    \r\n \r\n Comprar Ahora\r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \"Home\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-best-buy-banner',\r\n templateUrl: './best-buy-banner.component.html',\r\n styleUrls: ['./best-buy-banner.component.css']\r\n})\r\nexport class BestBuyBannerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
    \r\n
    \r\n
    \r\n \"Cubatel\r\n \r\n \r\n \r\n \"Best\r\n \r\n
    \r\n

    \r\n Toda la tecnología de
    \r\n \r\n \r\n Disponible en Cubatel\r\n Disponible
    en Cubatel
    \r\n
    \r\n

    \r\n Compra tablets, laptops
    \r\n y celulares con entrega en Cuba
    \r\n \r\n Comprar Ahora\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Best\r\n \r\n \r\n \r\n \r\n \"Best\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-shein-banner',\r\n templateUrl: './shein-banner.component.html',\r\n styleUrls: ['./shein-banner.component.css']\r\n})\r\nexport class SheinBannerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n
    \r\n \r\n Saber Más\r\n
    \r\n

    ¡NUEVO SERVICIO!
    \r\n Compra en Shein
    y reciben

    DIRECTAMENTE EN CUBA

    \r\n \r\n Saber Más\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ammazon-banner',\r\n templateUrl: './ammazon-banner.component.html',\r\n styleUrls: ['./ammazon-banner.component.css']\r\n})\r\nexport class AmmazonBannerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n
    \r\n
    \r\n

    ¡AHORA PUEDES
    \r\n ENVIAR
    PRODUCTOS

    DE AMAZON A CUBA!

    \r\n \r\n Saber Más\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n \r\n \r\n \r\n \"Amazon\r\n \r\n
    \r\n
    \r\n \r\n Saber Más\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n","
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    Cubatel\r\n Market
    \r\n

    \r\n

    ¡Somos el Amazon cubano con
    entregas a domicilio en todas las provincias!

    \r\n
    \r\n\r\n \"Cubatel\r\n
    \r\n
    \r\n \"Cubatel\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Tiendas populares

    \r\n

    Descubre miles de productos con entrega a domicilio para tu familia en Cuba

    \r\n Ver todas\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Preguntas frecuentes

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Los tiempos de entrega varían según las tiendas online con envío a Cuba.\r\n Pueden demorarse desde 24/48 horas hasta 4 o 7 semanas si se realizan por vía marítima a Cuba.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Antes de agregar el producto, deberás seleccionar la provincia y municipio al que quieres enviar. Si existe disponibilidad para esa ubicación, podrás comprar en enviarlo.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Debes tener una cuenta creada en nuestra plataforma. Una vez seleccionados los productos y elegida la ubicación de entrega, deberás proveer los datos de la persona que lo recibe (nombre, dirección y teléfono de contacto).\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Puedes cancelar tu orden siempre y cuando no la hayamos tramitado con el proveedor. Contacta con nosotros lo antes posible si quieres desistir de la compra.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n No hay límites de envíos. Puedes realizar tantas compras como quieras a través de todas nuestras tiendas asociadas.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Puedes pagar con tus tarjetas de crédito o débito. Si quieres, puedes guardar tu tarjeta una sola vez y pagar automáticamente todas sus compras.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Envío rápido\r\n

    Recibe tu pedido sin demoras

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Protección\r\n

    Protegemos tus compras hasta el domicilio

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Pago seguro\r\n

    Sistema fácil y confiable para cuidar tu dinero

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Atención 24 horas\r\n

    Siempre estamos disponibles para ti

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n

    Descarga nuestra App

    \r\n
    \r\n
    \r\n

    Hemos creado la
    \r\n aplicación más sencilla
    \r\n de servicios a Cuba.
    \r\n LLamadas, envío de dinero,
    \r\n recargas para Cuba y más.
    \r\n Confía en nosotros
    \r\n y hazte Cubatel.

    \r\n
    \r\n \r\n \r\n \r\n \"4.9\"\r\n \r\n \r\n \r\n \r\n \"4.9\"\r\n \r\n

    Somos la App mejor
    \r\n valorada de
    \r\n Recargas para Cuba

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Cubatel\r\n \r\n \r\n \r\n \r\n \"Cubatel\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \"Cargando...\"\r\n \r\n
    \r\n
    \r\n
    \r\n","import {DOCUMENT, isPlatformBrowser, ViewportScroller} from '@angular/common';\r\nimport {AfterViewInit, ApplicationRef, Compiler, Component, ElementRef, Inject, Injector, OnDestroy, OnInit, PLATFORM_ID, Renderer2, ViewChild, ViewContainerRef} from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LazyLoad } from '@app/helpers/lazyload';\r\nimport { DeepLinkType } from '@app/models/deep-link.model';\r\nimport { UrlService } from '@app/services/url.service';\r\nimport { environment } from '@env/environment';\r\nimport { FingerprintService } from '../services/fingerprint.service';\r\nimport { TrackingComponent } from '@app/shared/components/tracking/tracking.component';\r\nimport {ExternalReviews, Review} from '@app/models/external-reviews.model';\r\nimport {Category} from '@app/market-seo/models/category.model';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {PaymentConfirmationComponent} from '@app/market-seo/payment-confirmation/payment-confirmation.component';\r\nimport {StorageService} from '@app/services/storage.service';\r\nimport {ProductProviderEnum} from '@app/marketplace/core/enum/productProvider';\r\nconst lazyLoad = LazyLoad;\r\n\r\n@Component({\r\n selector: 'app-market-seo',\r\n templateUrl: './market-seo.component.html',\r\n styleUrls: ['./market-seo.component.css']\r\n})\r\nexport class MarketSeoComponent extends TrackingComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('recommended_products_section') recommended_products_section: ElementRef;\r\n @ViewChild('stores_section') stores_section: ElementRef;\r\n element: any;\r\n loadRecommendedProducts = false;\r\n loadStores = false;\r\n title = 'Cubatel Market | Tu tienda de envíos a Cuba';\r\n description = '¡Somos el Amazon cubano! Descubre nuestras tiendas online para comprar en Cuba desde el exterior. Entregamos a domicilio en todas las provincias cubanas.';\r\n keywords = 'tiendas online para envíos a cuba, amazon cubano, amazon en cuba, tiendas de envíos a cuba, tienda de envíos a cuba, envío a cuba online, tiendas online con envío a cuba, compras online en cuba desde el exterior, tiendas online en cuba para comprar desde el exterior, tiendas de envíos a cuba online, tiendas virtuales en cuba para comprar desde el exterior, compras online para cuba desde el exterior, tiendas online para comprar en cuba desde el exterior, compras desde el exterior para cuba';\r\n\r\n DeepLinkType = DeepLinkType;\r\n ProviderType = ProductProviderEnum;\r\n\r\n turnOnShein = environment.turn_on_shein;\r\n turnOnAmazon = environment.turn_on_amazon;\r\n turnOnWalmart = environment.turn_on_walmart;\r\n turnOnHomeDepot = environment.turn_on_walmart;\r\n turnOnBestBuy = environment.turn_on_bestbuy;\r\n\r\n private _componentRef;\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private urlService: UrlService,\r\n private titleService: Title,\r\n private metaService: Meta,\r\n private fingerprintService: FingerprintService,\r\n private storageService: StorageService,\r\n private _injector: Injector,\r\n private _viewRef: ViewContainerRef,\r\n private _renderer: Renderer2,\r\n private _compiler: Compiler,\r\n private modalService: NgbModal,\r\n private _applicationRef: ApplicationRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(PLATFORM_ID) private platformId,\r\n private scroller: ViewportScroller\r\n ) { super(urlService, fingerprintService, storageService, route, 'stu_btn_market'); }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n window.scroll(0, 0);\r\n /*setTimeout(() => {\r\n this.scroller.scrollToAnchor('sshipping-section');\r\n }, 1000);*/\r\n document.addEventListener('scroll', (e) => {\r\n if (!this.loadStores && (this.router.url == '/market' || this.router.url == '/market#sshipping-section')) {\r\n this.loadModule(import('@app/market-seo/stores-section/stores-section.module'), 'stores_section');\r\n this.loadStores = true;\r\n }\r\n if (!this.loadRecommendedProducts && (this.router.url == '/market' || this.router.url == '/market#sshipping-section')) {\r\n this.loadModule(import('@app/market-seo/recommended-products-section/recommended-products-section.module'), 'recommended_products_section');\r\n this.loadRecommendedProducts = true;\r\n }\r\n }, {\r\n passive: true\r\n });\r\n }\r\n\r\n this.metaService.updateTag({\r\n name: 'description',\r\n content: this.description,\r\n });\r\n this.metaService.updateTag({ name: 'keywords', content: this.keywords });\r\n this.metaService.updateTag({ name: 'robots', content: 'all' });\r\n this.metaService.updateTag({ property: 'og:title', content: this.title });\r\n this.metaService.updateTag({\r\n property: 'og:description',\r\n content: this.description,\r\n });\r\n this.metaService.updateTag({\r\n property: 'og:url',\r\n content: `${environment.host}${this.router.url}`,\r\n });\r\n this.route.queryParams.subscribe(result => {\r\n if (result['rsp']) {\r\n this.paymentConfirmation();\r\n }\r\n });\r\n this.titleService.setTitle(this.title);\r\n this.urlService.changeUrl(this.router.url);\r\n this.urlService.footer.emit();\r\n }\r\n\r\n private loadModule(importModule: Promise, element: string) {\r\n importModule\r\n .then((module) => module[Object.keys(module)[0]])\r\n .then((module) => this._compiler.compileModuleAsync(module))\r\n .then((factory) => {\r\n const moduleRef = factory.create(this._injector);\r\n const component = (moduleRef as any)._bootstrapComponents[0];\r\n this._componentRef = moduleRef.componentFactoryResolver.resolveComponentFactory(component).create(this._injector, [], null, moduleRef);\r\n // Set component input variables\r\n // this.storageService.loadLoginSubject.next(false);\r\n this._applicationRef.attachView(this._componentRef.hostView);\r\n this._applicationRef.attachView(this._componentRef.hostView);\r\n const elementRef = element === 'recommended_products_section' ? this.recommended_products_section :\r\n element === 'stores_section' ? this.stores_section : undefined;\r\n if (elementRef !== undefined) {\r\n this._renderer.appendChild(elementRef.nativeElement, this._componentRef.location.nativeElement);\r\n }\r\n });\r\n }\r\n\r\n paymentConfirmation() {\r\n const modalRef = this.modalService.open(PaymentConfirmationComponent, {size: 'md'});\r\n modalRef.result.then((result: any) => {\r\n if (result.products) {\r\n this.router.navigate(['market/productos-compras-cuba-online']);\r\n } else {\r\n this.router.navigate(['market/pedidos']);\r\n }\r\n }).catch(() => {});\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loadStores = false;\r\n this.loadRecommendedProducts = false;\r\n }\r\n}\r\n","import {Inject, Injectable, PLATFORM_ID} from '@angular/core';\r\nimport { Router, CanActivate } from '@angular/router';\r\nimport { DataService } from '@app/services/data.service';\r\nimport { map } from 'rxjs/operators';\r\nimport * as selector from '@app/marketplace/products/state/shopping-cart/cart-selectors';\r\nimport {Observable} from 'rxjs';\r\nimport {Store} from '@ngrx/store';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {StorageService} from '@app/services/storage.service';\r\n\r\n@Injectable()\r\nexport class CheckoutMarketGuard implements CanActivate {\r\n\r\n shoppingCart$: Observable;\r\n constructor(private router: Router, private storageService: StorageService) {\r\n }\r\n canActivate() {\r\n const shoppingStore = this.storageService.getSavedState('basket');\r\n if (shoppingStore.data.items.length > 0) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/market/productos-compras-cuba-online']);\r\n return false;\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {RouterModule, Routes} from '@angular/router';\r\nimport {LayoutComponent} from './layout/layout.component';\r\nimport {ResourcesResolver} from '../core/resolvers/resources.resolver';\r\nimport {MarketSeoComponent} from '@app/market-seo/market-seo.component';\r\nimport {AuthGuard} from '@app/guards/auth.guard';\r\nimport {CheckoutMarketGuard} from '@app/guards/chekout.market.guard';\r\nimport {CategoryTreeResolver } from '../core/resolvers/category-tree.resolver';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n resolve: {resource: ResourcesResolver, categoryTree: CategoryTreeResolver},\r\n children: [\r\n {path: '', component: MarketSeoComponent},\r\n {\r\n path: 'pedidos',\r\n canActivate: [AuthGuard],\r\n data: {route: 'market/pedidos'},\r\n loadChildren: () =>\r\n import('../orders/orders.module').then((m) => m.OrdersModule),\r\n },\r\n {\r\n path: 'productos-compras-cuba-online',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () =>\r\n import('../products/products.module').then((m) => m.ProductsModule),\r\n },\r\n {\r\n path: 'revisar-completar-pedido',\r\n canActivate: [AuthGuard, CheckoutMarketGuard],\r\n data: {route: 'market/revisar-completar-pedido'},\r\n loadChildren: () =>\r\n import('../checkout/checkout.module').then((m) => m.CheckoutModule),\r\n },\r\n {\r\n path: 'ofertas-descuentos-tienda-envios-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () =>\r\n import('../products/products.module').then((m) => m.ProductsModule),\r\n },\r\n {\r\n path: 'tiendas-asociadas',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () =>\r\n import('../stores/stores.module').then((m) => m.StoresModule),\r\n },\r\n {\r\n path: 'tiendas-asociadas/:id/productos',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () =>\r\n import('../products/products.module').then((m) => m.ProductsModule),\r\n },\r\n {\r\n path: 'tienda-online-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n children: [\r\n {\r\n path: '',\r\n loadChildren: () => import('../../marketplace/categories/categories.module').then(m => m.CategoriesModule)\r\n },\r\n {\r\n path: ':id',\r\n loadChildren: () =>\r\n import('../products/products.module').then((m) => m.ProductsModule),\r\n },\r\n {path: '**', redirectTo: '', pathMatch: 'full'},\r\n ],\r\n },\r\n {\r\n path: 'vender-mercado-online-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-supplier/market-supplier.module').then(m => m.MarketSupplierModule)\r\n },\r\n {\r\n path: 'envios/amazon-para-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-amazon/market-amazon.module').then(m => m.MarketAmazonModule)\r\n },\r\n {\r\n path: 'envios/shein-para-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-shein/market-shein.module').then(m => m.MarketSheinModule)\r\n },\r\n {\r\n path: 'envios/walmart-para-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-walmart/market-walmart.module').then(m => m.MarketWalmartModule)\r\n },\r\n {\r\n path: 'envios/home-depot-para-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-home-depot/market-home-depot.module').then(m => m.MarketHomeDepotModule)\r\n },\r\n {\r\n path: 'envios/best-buy-para-cuba',\r\n canActivate: [],\r\n data: {roles: []},\r\n loadChildren: () => import('../../market-best-buy/market-best-buy.module').then(m => m.MarketBestBuyModule)\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'error/404',\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class LayoutRoutingModule {\r\n}\r\n","import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router';\r\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {Store} from '@ngrx/store';\r\nimport * as categoriesActions from '@app/marketplace/categories/state/category-tree/category-tree-actions';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CategoryTreeResolver implements Resolve {\r\n constructor(private store: Store,\r\n @Inject(PLATFORM_ID) private platformId) {\r\n }\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\r\n return new Promise((resolve, reject) => {\r\n this.loadCategoryTree();\r\n resolve(true);\r\n });\r\n }\r\n\r\n loadCategoryTree() {\r\n if(isPlatformBrowser(this.platformId)) {\r\n this.store.dispatch(categoriesActions.GetCategoryTree());\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MarketSeoComponent } from './market-seo.component';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ProductsSectionComponent } from './products-section/products-section.component';\r\nimport { ShippingSectionComponent } from './shipping-section/shipping-section.component';\r\nimport { MostPopularSectionComponent } from './most-popular-section/most-popular-section.component';\r\nimport { CategoriesSectionComponent } from './categories-section/categories-section.component';\r\nimport {LoadXemartScriptResolver} from '@app/resolvers/load-xemart-script.resolver';\r\nimport {SharedModule} from '@app/marketplace/shared/shared.module';\r\nimport {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';\r\nimport { PaymentConfirmationComponent } from './payment-confirmation/payment-confirmation.component';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport { AmmazonBannerComponent } from './ammazon-banner/ammazon-banner.component';\r\nimport {LayoutModule} from '@app/marketplace/layout/layout.module';\r\nimport { SheinBannerComponent } from './shein-banner/shein-banner.component';\r\nimport { WalmartBannerComponent } from './walmart-banner/walmart-banner.component';\r\nimport { HomeDepotBannerComponent } from './home-depot-banner/home-depot-banner.component';\r\nimport { BestBuyBannerComponent } from './best-buy-banner/best-buy-banner.component';\r\n\r\n/*const routes: Routes = [\r\n { path: '', component: MarketSeoComponent, resolve: {cres: LoadXemartScriptResolver} },\r\n { path: 'vende-tus-productos', loadChildren: () => import('../market-supplier/market-supplier.module').then(m => m.MarketSupplierModule) },\r\n];*/\r\n\r\n@NgModule({\r\n declarations: [MarketSeoComponent, ProductsSectionComponent, ShippingSectionComponent, MostPopularSectionComponent, CategoriesSectionComponent, PaymentConfirmationComponent, AmmazonBannerComponent, SheinBannerComponent, WalmartBannerComponent, HomeDepotBannerComponent, BestBuyBannerComponent],\r\n exports: [\r\n MostPopularSectionComponent,\r\n HomeDepotBannerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n RouterModule,\r\n NgxSkeletonLoaderModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ]\r\n})\r\nexport class MarketSeoModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport * as productsActions from '../../products/state/product-list/list-actions';\r\nimport * as routerSelectors from '../../route/router-state.selectors';\r\nimport * as locationsActions from './locations-actions';\r\nimport * as locationSelectors from '../../locations/state/locations-selectors';\r\nimport * as detailsActions from '../../products/state/product-details/details-actions';\r\nimport { Store } from '@ngrx/store';\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class LocationsEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private store: Store,\r\n private router: Router,\r\n ) { }\r\n\r\n updatedlocation$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(locationsActions.UPDATED_LOCATION),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n this.store.select(locationSelectors.selectLocation),\r\n (action: any, router: any, location: any) => {\r\n return {\r\n action,\r\n params: router.params,\r\n url: router.url,\r\n location: { type: location.locationType, codes: location.locations },\r\n }\r\n }\r\n ),\r\n tap((data: any) => {\r\n if(!data.url.startsWith('/market/productos-compras-cuba-online') &&\r\n !data.url.startsWith('/market/revisar-completar-pedido'))\r\n this.router.navigate(['/market/productos-compras-cuba-online']);\r\n }),\r\n switchMap((data: any) => {\r\n if (data.url.startsWith('/market/productos-compras-cuba-online')) {\r\n if (!data.url.includes('detalles')) {\r\n let payload = {\r\n pageIndex: 0,\r\n pageSize: 12,\r\n pagingStrategy: 0,\r\n locationType: 0,\r\n locations: null,\r\n locationResolver: false,\r\n filter: {\r\n searchTerms: '',\r\n sortingArgs: 0,\r\n categories: null,\r\n priceRange: {\r\n low: 1,\r\n high: 1000,\r\n },\r\n },\r\n categoryCode: '',\r\n supplierCode: '',\r\n };\r\n payload.categoryCode = \"\";\r\n payload.locationType = 0;\r\n payload.locations = null;\r\n const category = data.params['id'];\r\n if (category) {\r\n const value = _seoContent.find(x => category === x.sectionId || category === x.categoryCode);\r\n payload.categoryCode = value ? value.categoryCode : category;\r\n }\r\n if (data.location.codes.length > 0) {\r\n payload.locationType = data.location.type;\r\n payload.locations = data.location.codes;\r\n }\r\n //dispatch action LOADING_PRODUCTS\r\n return of({ type: productsActions.LOADING_PRODUCTS, payload });\r\n }\r\n else {\r\n let payload = {\r\n code: data.params[\"code\"],\r\n location: 0,\r\n locationResolver: false,\r\n searchTerms: \"\",\r\n };\r\n if (data.location.codes.length > 0 && data.location.type === 0)\r\n payload.location = data.location.codes[0];\r\n //dispatch action LOADING_PRODUCT_DETAILS\r\n return of({ type: detailsActions.LOADING_PRODUCT_DETAILS });\r\n }\r\n }\r\n return of(locationsActions.UpdatingLocation({ locationType: {}, locations: {} }));\r\n })\r\n )\r\n );\r\n\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ICartItemResponse, ICartRequest, ICartUpdateResponse } from '../_models/cart.interface';\r\nimport { SharedService } from '@app/services/shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService extends SharedService {\r\n\r\n flashOfferSubject: BehaviorSubject = new BehaviorSubject(false);\r\n flashOffer$ = this.flashOfferSubject.asObservable();\r\n\r\n constructor(httpCLient: HttpClient) {super(httpCLient);}\r\n\r\n Get() {\r\n //const url = 'api/v3/cart';\r\n const url = 'api/market/cart';\r\n return this.get(url);\r\n }\r\n Update(payload:ICartRequest) {\r\n const url = 'api/market/cart';\r\n return this.post(url,payload);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport * as cartActions from './cart-action';\r\nimport * as checkoutActions from '../../../checkout/state/checkout/checkout-actions';\r\nimport * as authSelectors from '../../../auth/state/auth-selectors';\r\nimport * as contactSelectors from '../../../checkout/state/checkout/checkout-selectors';\r\nimport * as searchSelectors from '../../../products/state/product-search/search-selectors';\r\nimport * as detailsSelectors from '../../../products/state/product-details/details-selectors';\r\nimport { CartService } from \"../../shopping-cart/_services/cart.service\";\r\nimport { catchError, map, mergeMap, switchMap, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { of } from \"rxjs\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { ICartItemResponse, ICartRequest } from \"../../shopping-cart/_models/cart.interface\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { StorageService } from \"@app/services/storage.service\";\r\nimport { BASKET } from \"./cart-state\";\r\nimport * as routerSelectors from '@app/marketplace/route/router-state.selectors';\r\nimport {Router} from '@angular/router';\r\nimport { ViewTypeEnum } from \"@app/marketplace/core/enum/viewTypeEnum\";\r\n\r\n@Injectable()\r\nexport class CartEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private service: CartService,\r\n private store: Store,\r\n private storage: StorageService,\r\n private router: Router,\r\n private toastr: ToastrService) { }\r\n\r\n getBasket=() => JSON.parse(localStorage.getItem(BASKET.Key));\r\n\r\n loadCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.FETCH_CART, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n this.store.select(routerSelectors.getMergedRoute),\r\n (action: any, router: any, auth: any) => {\r\n return {\r\n action,\r\n params: router.params,\r\n authenticated: auth.isAuthenticated\r\n };\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n const user = this.storage.getSavedState('currentUser');\r\n var basket:any;\r\n if (!user){\r\n basket= this.getBasket();\r\n if(basket) return of({ type: cartActions.FETCH_CART_SUCCESS,data:basket});\r\n else of({ type: cartActions.CLEAR_CART});\r\n }\r\n return this.service.Get().pipe(\r\n takeUntil(this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))),\r\n map((response: ICartItemResponse) => {\r\n if(response.data.items.length==0){\r\n basket=this.getBasket();\r\n if(basket?.data?.items?.length>0) {\r\n return { type: cartActions.FETCH_CART_SUCCESS, data:basket };\r\n }\r\n }\r\n else{\r\n response?.data?.items?.map(function (val) {\r\n var attributes= Object.entries(val.attributes);\r\n val.id=attributes.length>0?attributes.map(([k, v]) => `${val.code}${k}${v}`).join(''):val.code;\r\n val.attributesToShow = val.tags?.map(p => `${p.value}`).join('/');\r\n });\r\n }\r\n return { type: cartActions.FETCH_CART_SUCCESS, data:response };\r\n }),\r\n catchError((error) => {\r\n return of({ type: cartActions.FETCH_CART_FAILURE })\r\n })\r\n );\r\n })\r\n )\r\n );\r\n\r\n pushToCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.PUSH_TO_CART, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n this.store.select(contactSelectors.selectResponse),\r\n this.store.select(detailsSelectors.selectQuantity),\r\n (action: any, auth: any,response: any, qty:any) => {\r\n return {\r\n action,\r\n authenticated: auth.isAuthenticated,\r\n contact:response?.contact?.code,\r\n quantity:qty\r\n }\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n //var qty=data.action.viewType==ViewTypeEnum.ProductDetails?data.quantity:1;\r\n var qty=1;\r\n if (data.action.viewType!=ViewTypeEnum.Checkout &&\r\n data.action.viewType!=ViewTypeEnum.ShoppingCart)\r\n data.action.product.productProvider=data.action.product.provider;\r\n const user = this.storage.getSavedState('currentUser');\r\n if (!user)\r\n return of({ type: cartActions.PUSH_TO_CART_SUCCESS, product: data.action.product, viewType:data.action.viewType,quantity:qty});\r\n\r\n var payload: ICartRequest;\r\n if (data.action.type == cartActions.PUSH_TO_CART) {\r\n payload = {\r\n code: data.action.product.code,\r\n quantity: data.action.product.quantity? data.action.product.quantity + qty:qty,\r\n provider:data.action.product.productProvider,\r\n shippingType: data.action.product.shippingType??1,\r\n attributes:data.action.product.attributes\r\n }\r\n if(data.action.viewType<=ViewTypeEnum.StoreDetails)\r\n payload.quantity=null;\r\n }\r\n return this.service.Update(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))),\r\n mergeMap((response: any) => {\r\n if (!response.success) {\r\n this.toastr.error(response.message);\r\n if (data.action.checkout) { window.scroll(0, 0);}\r\n return [{ type: cartActions.UPDATE_CART_SUCCESS, data: response }];\r\n }\r\n if (data.action.viewType!=ViewTypeEnum.Checkout) {\r\n return [\r\n { type: cartActions.PUSH_TO_CART_SUCCESS, product: data.action.product,viewType:data.action.viewType,quantity:qty },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response },\r\n ]\r\n }\r\n else {\r\n return [\r\n { type: cartActions.PUSH_TO_CART_SUCCESS, product: data.action.product,viewType:data.action.viewType,quantity:qty },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response },\r\n { type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: data.contact || '' } }\r\n ]\r\n }\r\n }),\r\n catchError((error) => {\r\n return of({ type: cartActions.UPDATE_CART_FAILURE })\r\n })\r\n );\r\n })\r\n )\r\n );\r\n\r\n pullToCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.PULL_FROM_CART, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n this.store.select(contactSelectors.selectResponse),\r\n (action: any, auth: any,response: any) => {\r\n return {\r\n action,\r\n authenticated: auth.isAuthenticated,\r\n contact:response?.contact?.code,\r\n }\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n if (data.action.viewType!=ViewTypeEnum.Checkout &&\r\n data.action.viewType!=ViewTypeEnum.ShoppingCart)\r\n data.action.product.productProvider=data.action.product.provider;\r\n const user = this.storage.getSavedState('currentUser');\r\n if (!user)\r\n return of({ type: cartActions.PULL_FROM_CART_SUCCESS, product: data.action.product });\r\n\r\n var payload: ICartRequest;\r\n if (data.action.type == cartActions.PULL_FROM_CART) {\r\n payload = {\r\n code: data.action.product.code,\r\n quantity: data.action.product.quantity - 1,\r\n provider: data.action.product.productProvider,\r\n shippingType: data.action.product.shippingType??1,\r\n attributes:data.action.product.attributes\r\n }\r\n }\r\n return this.service.Update(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))),\r\n mergeMap((response: any) => {\r\n if (!response.success) {\r\n this.toastr.error(response.message);\r\n return [{ type: cartActions.UPDATE_CART_SUCCESS, data: response }];\r\n }\r\n\r\n if(data.action.viewType!=ViewTypeEnum.Checkout){\r\n return [\r\n { type: cartActions.PULL_FROM_CART_SUCCESS, product: data.action.product },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response }\r\n ]\r\n }\r\n else {\r\n return [\r\n { type: cartActions.PULL_FROM_CART_SUCCESS, product: data.action.product },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response },\r\n { type: checkoutActions.LOADING_CHECKOUT, payload: {contactId: data.contact || ''}}\r\n ]\r\n }\r\n }),\r\n catchError(() => of({ type: cartActions.UPDATE_CART_FAILURE })\r\n )\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteFromCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.DELETE_FROM_CART, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n this.store.select(contactSelectors.selectResponse),\r\n (action: any, auth: any,response: any) => {\r\n return {\r\n action,\r\n authenticated: auth.isAuthenticated,\r\n contact:response?.contact?.code\r\n }\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n const user = this.storage.getSavedState('currentUser');\r\n if (!user)\r\n return of({ type: cartActions.DELETE_FROM_CART_SUCCESS, product: data.action.product });\r\n\r\n var payload: ICartRequest;\r\n if (data.action.type == cartActions.DELETE_FROM_CART) {\r\n payload = {\r\n code: data.action.product.code,\r\n quantity: 0,\r\n provider: 0,\r\n shippingType:0,\r\n attributes:data.action.product.attributes\r\n }\r\n }\r\n return this.service.Update(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))),\r\n mergeMap((response: any) => {\r\n if (!response.success) {\r\n this.toastr.error(response.message);\r\n return [{ type: cartActions.UPDATE_CART_SUCCESS, data: response }];\r\n }\r\n\r\n if(data.action.viewType!=ViewTypeEnum.Checkout){\r\n return [\r\n { type: cartActions.DELETE_FROM_CART_SUCCESS, product: data.action.product },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response }\r\n ]\r\n }\r\n else {\r\n return [\r\n { type: cartActions.DELETE_FROM_CART_SUCCESS, product: data.action.product },\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response },\r\n { type: checkoutActions.LOADING_CHECKOUT, payload: {contactId: data.contact || ''}}\r\n ]\r\n }\r\n\r\n }),\r\n catchError(() => of({ type: cartActions.UPDATE_CART_FAILURE })\r\n )\r\n );\r\n })\r\n )\r\n );\r\n\r\n SetShippingFromCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.SET_SHIPPINGTYPE, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n this.store.select(contactSelectors.selectResponse),\r\n (action: any, auth: any,response:any) => {\r\n return {\r\n action,\r\n authenticated: auth.isAuthenticated,\r\n contact:response?.contact?.code,\r\n }\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n const user = this.storage.getSavedState('currentUser');\r\n if (!user)\r\n return of({ type: cartActions.SET_SHIPPINGTYPE_SUCCESS});\r\n var payload: ICartRequest;\r\n if (data.action.type == cartActions.SET_SHIPPINGTYPE) {\r\n payload = {\r\n code: data.action.product.code,\r\n quantity: data.action.product.quantity? data.action.product.quantity:1,\r\n provider:data.action.product.productProvider,\r\n shippingType: data.action.shipping,\r\n attributes:data.action.product.attributes\r\n }\r\n }\r\n return this.service.Update(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))),\r\n mergeMap((response: any) => {\r\n if (!response.success) {\r\n this.toastr.error(response.message);\r\n return [{ type: cartActions.SET_SHIPPINGTYPE_FAILURE}];\r\n }\r\n else {\r\n if (data.action.viewType!=ViewTypeEnum.Checkout) {return [{ type: cartActions.SET_SHIPPINGTYPE_SUCCESS}] }\r\n else {\r\n return [\r\n { type: cartActions.SET_SHIPPINGTYPE_SUCCESS},\r\n { type: cartActions.UPDATE_CART_SUCCESS, data: response },\r\n { type: checkoutActions.LOADING_CHECKOUT, payload: { contactId: data.contact || '' } }\r\n ]\r\n }\r\n }\r\n\r\n }),\r\n catchError(() => of({ type: cartActions.UPDATE_CART_FAILURE })\r\n )\r\n );\r\n })\r\n )\r\n );\r\n\r\n\r\n /* updatedCart$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(cartActions.UPDATE_CART, cartActions.CANCEL_CART_REQUEST),\r\n withLatestFrom(\r\n this.store.select(authSelectors.getAuth),\r\n (action: any, auth: any) => {\r\n return {\r\n action,\r\n authenticated: auth.isAuthenticated\r\n }\r\n }\r\n ),\r\n switchMap((data: any) => {\r\n //console.info(data);\r\n if(!data.authenticated)\r\n return EMPTY;\r\n var payload:ICartRequest;\r\n if(data.action.type==cartActions.UPDATE_CART){\r\n payload={\r\n code:data.action.code,\r\n quantity:data.action.quantity\r\n }\r\n }\r\n //console.info(payload);\r\n return this.service.Update(payload).pipe(\r\n takeUntil(\r\n this.actions$.pipe(ofType(cartActions.CANCEL_CART_REQUEST))\r\n ),\r\n map((data: any) => {\r\n console.info(data);\r\n return { type: cartActions.UPDATE_CART_SUCCESS,data };\r\n }),\r\n catchError((error) => {\r\n return of({ type: cartActions.UPDATE_CART_FAILURE })\r\n }\r\n )\r\n );\r\n })\r\n )\r\n ); */\r\n\r\n}\r\n","import { INotification } from \"@app/marketplace/core/models/response.model\";\r\nimport { ICartData } from \"../../shopping-cart/_models/cart.interface\";\r\n\r\nexport const BASKET= {Key: 'basket'};\r\nexport interface State {\r\n data: ICartData;\r\n notification?:INotification;\r\n message?: string;\r\n success?: boolean;\r\n isLoading: boolean;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport * as searchActions from './search-actions';\r\nimport * as productActions from '../product-list/list-actions';\r\nimport * as routerSelectors from '../../../route/router-state.selectors';\r\nimport * as searchSelectors from '../../../products/state/product-search/search-selectors';\r\nimport * as locationSelectors from '../../../locations/state/locations-selectors';\r\nimport { mergeMap, switchMap, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { of } from \"rxjs\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { Router } from \"@angular/router\";\r\nimport {ProductProviderEnum} from '@app/marketplace/core/enum/productProvider';\r\nimport {environment} from '@env/environment.dev';\r\n\r\n@Injectable()\r\nexport class SearchEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private router: Router,\r\n private store: Store) { }\r\n\r\n searhProducts$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(searchActions.SEARCH_PRODUCTS, searchActions.CANCEL_SEARCH_REQUEST),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n this.store.select(locationSelectors.selectLocation),\r\n this.store.select(searchSelectors.selectTerm),\r\n this.store.select(searchSelectors.selectProvider),\r\n (action: any, router: any, location:any, term:any,provider:any) => {\r\n if (provider == ProductProviderEnum.Shein && !environment.turn_on_shein) {\r\n provider = ProductProviderEnum.Internal;\r\n }\r\n return {\r\n action,\r\n payload: action.payload,\r\n url: router.url,\r\n location:{type:location.locationType,codes:location.locations},\r\n term:term.searhTerm,\r\n provider:provider\r\n }\r\n }\r\n ),\r\n tap((data: any) => {\r\n //if(!data.url.startsWith('/market/productos-compras-cuba-online'))\r\n this.router.navigate(['/market/productos-compras-cuba-online']);\r\n }),\r\n mergeMap((data: any) => {\r\n if (data.action.type == searchActions.SEARCH_PRODUCTS) {\r\n let payload = {\r\n provider:data.provider,\r\n pageIndex: 1,\r\n pageSize: 12,\r\n pagingStrategy: 0,\r\n locationType:data.location.codes.length > 0? data.location.type:0,\r\n locations: data.location.codes.length > 0? data.location.codes:null,\r\n locationResolver: false,\r\n filter: {\r\n searchTerms: data.term,\r\n sortingArgs: 0,\r\n categories: null,\r\n priceRange: {\r\n low: 1,\r\n high: 1000,\r\n },\r\n },\r\n categoryCode: '',\r\n supplierCode: ''\r\n };\r\n //console.info(payload);\r\n return [\r\n { type: productActions.LOADING_PRODUCTS, payload}\r\n ];\r\n }\r\n else return [{ type: searchActions.SEARCH_PRODUCTS_FAILURE}];\r\n })\r\n )\r\n );\r\n}\r\n","export interface State {\r\n locationType: LocationTypeEnum;\r\n locations: number[];\r\n isSuccess:boolean;\r\n}\r\nexport enum LocationTypeEnum {\r\n None = -1,\r\n Municipality = 0,\r\n Province = 1\r\n}\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as locationAction from '@app/marketplace/locations/state/locations-actions';\r\nimport * as fromLocation from './locations-state'\r\n\r\nconst initialState: fromLocation.State = {isSuccess:true,locationType: fromLocation.LocationTypeEnum.Municipality, locations: []};\r\nexport const reducer = createReducer(\r\n initialState,\r\n /* on(locationAction.UpdatingLocation, (state) => {\r\n return {...state,isSuccess:false};\r\n }), */\r\n on(locationAction.UpdatedLocation, (state, {locationType,locations}) => {\r\n return {...state, locationType:locationType,locations:locations,isSuccess:true};\r\n }),\r\n);\r\n\r\n","import { ShippingTypeEnum } from './../../../core/enum/shippingType';\r\nimport { createReducer, on } from \"@ngrx/store\";\r\nimport * as fromCart from './cart-state';\r\nimport { BASKET, State } from \"./cart-state\";\r\nimport { MarketProduct } from \"../../_models/product.interface\";\r\nimport * as cartActions from './cart-action';\r\nimport { ICartItemResponse, IItemCart } from \"../../shopping-cart/_models/cart.interface\";\r\nimport { ViewTypeEnum } from '@app/marketplace/core/enum/viewTypeEnum';\r\n\r\nconst initialState: fromCart.State = {\r\n data:{\r\n minCount: 0,\r\n maxCount: 50,\r\n maxPrice: 5000,\r\n minPrice: 0,\r\n totalItems: 0,\r\n totalPrice: 0,\r\n totalPriceToShow: \"\",\r\n signature: null,\r\n items:[],\r\n },\r\n isLoading:false\r\n};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(cartActions.FetchCart, (state) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(cartActions.FetchCartSuccess, (state,{data}) => {\r\n return listCartItems(data);\r\n }),\r\n on(cartActions.FetchCartFailure, (state) => {\r\n return {...state,isLoading:false}\r\n }),\r\n on(cartActions.CancelCartRequest, (state) => {\r\n return {...state,isLoading:false}\r\n }),\r\n on(cartActions.UpdateCart, (state,) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(cartActions.UpdateCartSuccess, (state,{data}) => {\r\n return {...state, data: {...state.data, signature: data?.data?.signature}, message: data?.message, notification: data?.notification, isLoading: false, success: data?.success };\r\n }),\r\n on(cartActions.CloseErrorMessage, (state) => {\r\n state.success = true;\r\n return state;\r\n }),\r\n on(cartActions.PushToCart, (state) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(cartActions.PushToCartSuccess, (state,{product,viewType,quantity}) => {\r\n var shopcart=pushToCart(state,product,viewType,quantity);\r\n state.isLoading=false;\r\n return shopcart;\r\n }),\r\n on(cartActions.PullFromCart, (state) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(cartActions.PullFromCartSuccess, (state,{product}) => {\r\n return pullFromCart(state,product);\r\n }),\r\n on(cartActions.DeleteFromCart, (state) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(cartActions.DeleteFromCartSuccess, (state,{product}) => {\r\n return deleteFromCart(state,product);\r\n }),\r\n on(cartActions.ClearCart, (state) => {\r\n localStorage.setItem(BASKET.Key, JSON.stringify(initialState));\r\n return initialState;\r\n }),\r\n on(cartActions.CloseErrorMessage, (state) => {\r\n return {...state,message:\"\",notification:null}\r\n }),\r\n on(cartActions.SetShippingType, (state,{product,shipping}) => {\r\n return setShippingType(state,product,shipping);\r\n }),\r\n on(cartActions.SetShippingSuccess, (state) => {\r\n return {...state,isLoading:false}\r\n }),\r\n on(cartActions.SetShippingFailure, (state) => {\r\n return {...state,isLoading:false}\r\n }),\r\n);\r\n\r\nfunction setBasket(data:any) {localStorage.setItem(BASKET.Key,JSON.stringify(data));}\r\n\r\nfunction listCartItems(response: ICartItemResponse):State {\r\n var shopcart:fromCart.State = {\r\n data:{\r\n signature: response?.data?.signature,\r\n items: response?.data?.items,\r\n minCount: response?.data?.minCount,\r\n maxCount: response?.data?.maxCount,\r\n maxPrice: response?.data?.maxPrice,\r\n minPrice: response?.data?.minPrice,\r\n totalItems: response?.data?.totalItems,\r\n totalPrice: response?.data?.totalPrice,\r\n totalPriceToShow: response?.data?.totalPriceToShow,\r\n },\r\n success: response?.success,\r\n message:response?.message,\r\n notification:response?.notification,\r\n isLoading:false\r\n };\r\n setBasket(shopcart);\r\n return shopcart;\r\n}\r\n\r\nfunction pushToCart(shopcart: State, product: MarketProduct,viewType:ViewTypeEnum,qty:number=1):State {\r\n if(!shopcart?.data?.items) return shopcart;\r\n shopcart.isLoading=false;\r\n\r\n var attributes=product.attributes? Object.entries(product.attributes):[];\r\n var id=attributes.length>0?attributes.map(([k, v]) => `${product.code}${k}${v}`).join(''):product.code;\r\n //let targetItem: IItemCart = shopcart.data.items.find(x => x.code === product.code);\r\n let targetItem: IItemCart = shopcart.data.items.find(x => x.id === id);\r\n if (targetItem) {\r\n //if(viewType!=ViewTypeEnum.ProductDetails)\r\n targetItem.quantity += qty;\r\n targetItem.quantityToShow=targetItem.quantity>1?`${targetItem.quantity}${\"elementos\"}`:`${targetItem.quantity}${\"elemento\"}`;\r\n targetItem.amount = targetItem.quantity*(product.price-product.discount);\r\n targetItem.amountToShow =`${\"$\"}${Number(targetItem.amount.toFixed(2))}`;\r\n }\r\n else {\r\n var item: IItemCart = {\r\n id,\r\n code: product.code,\r\n name: product.name,\r\n shortText: product.shortText,\r\n priceToShow: product.priceToShow,\r\n oldPriceToShow:product.oldPriceToShow,\r\n price: product.price,\r\n discount: product.discount,\r\n supplierCode: product.supplierCode,\r\n supplierLinkToShow: product.supplierLinkToShow,\r\n specifications:product.specifications,\r\n previewUrl:product.pictures?.length>0?product.pictures[0].previewUrl:\"\",\r\n quantity:qty,\r\n quantityToShow:\"1 elemento\",\r\n amount: product.price - product.discount,\r\n amountToShow:product.priceToShow,\r\n productProvider: product.provider,\r\n shippingType: product.shippingType??1,\r\n allowedShippingTypes: product.allowedShippingTypes,\r\n attributesToShow:product.attributesToShow,\r\n attributes:product.attributes,\r\n tags:[]\r\n };\r\n shopcart.data.items.push(item);\r\n }\r\n shopcart.data.totalItems = shopcart.data.items.length>0? shopcart.data.items.map(a => a.quantity).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPrice = shopcart.data.items.length>0? shopcart.data.items.map(a => a.amount).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPriceToShow =`${\"$\"}${Number(shopcart.data.totalPrice.toFixed(2))}`;\r\n\r\n setShippingType(shopcart,product,product.shippingType??1);\r\n setBasket(shopcart);\r\n return shopcart;\r\n}\r\n\r\nfunction pullFromCart(shopcart: State, product: MarketProduct):State {\r\n\r\n var attributes=product.attributes? Object.entries(product.attributes):[];\r\n var id=attributes.length>0?attributes.map(([k, v]) => `${product.code}${k}${v}`).join(''):product.code;\r\n //let targetItem: IItemCart = shopcart?.data?.items.find(x => x.code === product.code);\r\n let targetItem: IItemCart = shopcart?.data?.items.find(x => x.id ===id);\r\n if (targetItem) {\r\n targetItem.quantity -= 1;\r\n targetItem.quantityToShow=targetItem.quantity>1?`${targetItem.quantity}${\"elementos\"}`:`${targetItem.quantity}${\"elemento\"}`;\r\n targetItem.amount = targetItem.quantity*(product.price-product.discount);\r\n targetItem.amountToShow =`${\"$\"}${Number(targetItem.amount.toFixed(2))}`;\r\n if (targetItem.quantity <= 0) {\r\n var index = shopcart.data.items.indexOf(targetItem);\r\n shopcart.data.items.splice(index, 1);\r\n }\r\n }\r\n shopcart.data.totalItems = shopcart.data.items.length>0? shopcart.data.items.map(a => a.quantity).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPrice = shopcart.data.items.length>0? shopcart.data.items.map(a => a.amount).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPriceToShow =`${\"$\"}${Number(shopcart.data.totalPrice.toFixed(2))}`;\r\n shopcart.isLoading=false;\r\n //localStorage.setItem(BASKET.Key, JSON.stringify(shopcart));\r\n setBasket(shopcart);\r\n return shopcart;\r\n}\r\n\r\nfunction deleteFromCart(shopcart: State, product: any):State {\r\n if(!shopcart?.data?.items) return shopcart;\r\n var attributes=product.attributes? Object.entries(product.attributes):[];\r\n var id=attributes.length>0?attributes.map(([k, v]) => `${product.code}${k}${v}`).join(''):product.code;\r\n //let targetItem: IItemCart= shopcart.data.items.find(x => x.code === product);\r\n let targetItem: IItemCart= shopcart.data.items.find(x => x.id === id);\r\n if (targetItem) {\r\n var index = shopcart.data.items.indexOf(targetItem);\r\n shopcart.data.items.splice(index, 1);\r\n }\r\n shopcart.data.totalItems = shopcart.data.items.length>0? shopcart.data.items.map(a => a.quantity).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPrice = shopcart.data.items.length>0? shopcart.data.items.map(a => a.amount).reduce((a, b) => a + b):0;\r\n shopcart.data.totalPriceToShow =`${\"$\"}${Number(shopcart.data.totalPrice.toFixed(2))}`;\r\n shopcart.isLoading=false;\r\n //localStorage.setItem(BASKET.Key, JSON.stringify(shopcart));\r\n setBasket(shopcart);\r\n return shopcart;\r\n}\r\n\r\nfunction setShippingType(shopcart: State, product: MarketProduct, shipping: ShippingTypeEnum ):State {\r\n shopcart.isLoading=true;\r\n if(!shopcart?.data?.items) return shopcart;\r\n var attributes=product.attributes? Object.entries(product.attributes):[];\r\n var id=attributes.length>0?attributes.map(([k, v]) => `${product.code}${k}${v}`).join(''):product.code;\r\n //let targetItem: IItemCart = shopcart.data.items.find(x => x.code === product.code);\r\n let targetItem: IItemCart= shopcart.data.items.find(x => x.id === id);\r\n if (targetItem){\r\n targetItem.shippingType = shipping;\r\n setBasket(shopcart);\r\n }\r\n return shopcart;\r\n}\r\n\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as searchAction from '@app/marketplace/products/state/product-search/search-actions';\r\nimport * as fromSearch from './search-state'\r\nimport { ProductProviderEnum } from '@app/marketplace/core/enum/productProvider';\r\nconst initialState: fromSearch.State = {\r\n searhTerm:\"\",\r\n provider:ProductProviderEnum.Internal\r\n};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(searchAction.KeyPressInSearch, (state, {term}) => {\r\n return {...state, searhTerm:term};\r\n }),\r\n on(searchAction.SearchProducts, (state) => {\r\n return {...state};\r\n }),\r\n on(searchAction.SearchProductsSuccess, (state, {term}) => {\r\n return {...state, searhTerm:term};\r\n }),\r\n on(searchAction.SearchProductsFailure, (state) => {\r\n return {...state, searhTerm:\"\"};\r\n }),\r\n on(searchAction.SearchProductsError, (state) => {\r\n return {...state, searhTerm:\"\"};\r\n }),\r\n on(searchAction.CancelSearchRequest, (state) => {\r\n return {...state, searhTerm:\"\"};\r\n }),\r\n on(searchAction.CancelSearchRequest, (state) => {\r\n return {...state, searhTerm:\"\"};\r\n }),\r\n on(searchAction.DeleteSearchTerm, (state) => {\r\n return {...state, searhTerm:\"\"};\r\n }),\r\n on(searchAction.SetProvider, (state, {provider}) => {\r\n return {...state, provider};\r\n }),\r\n);\r\n\r\n","import {createReducer, on} from '@ngrx/store';\r\nimport * as contactsActions from './contacts-actions';\r\nimport * as fromContacts from './contacts-state';\r\nimport {ContactPagedResponse} from '@app/marketplace/checkout/_models/contact.model';\r\nimport {initProvinces} from '@app/marketplace/locations/locations';\r\n\r\nconst initialState: fromContacts.State = {isLoading: false, data: {count: 0, totalCount: 0} as ContactPagedResponse};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(contactsActions.LoadingContacts, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(contactsActions.ListContacts, (state, {data}) => {\r\n return {...state, isLoading: false, data};\r\n }),\r\n on(contactsActions.AddingContact, (state) => {\r\n return {...state, isUpdating: true};\r\n }),\r\n on(contactsActions.AddedContact, (state, {data}) => {\r\n return {...state, isUpdating: false};\r\n }),\r\n on(contactsActions.SelectingDefaultContact, (state) => {\r\n return {...state, isUpdating: true};\r\n }),\r\n on(contactsActions.SelectedDefaultContact, (state) => {\r\n return {...state, isUpdating: false};\r\n }),\r\n on(contactsActions.UpdatingContact, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n //on(contactsActions.UpdatedContact, (state, {data, payload}) => {\r\n /*if (data.success) {\r\n const province = initProvinces.find(p => p.children.find(m => m.value == data.data.location));\r\n const municipality = province.children.find(m => m.value == data.data.location);\r\n state.data.data.map(x => { if (x.code == code) {\r\n x.isDefault = data.data.isDefault;\r\n x.address.addressLine1 = data.data.addressLine1;\r\n x.address.addressLine2 = data.data.addressLine1;\r\n x.address.zipCode = data.data.zipCode;\r\n x.address.state = province.text || '';\r\n x.address.city = municipality.text || '';\r\n x.phone = data.data.phone;\r\n x.firstName = data.data.firstName;\r\n x.lastName = data.data.lastName;\r\n x.email = data.data.email;\r\n x.identity = data.data.identity;\r\n x.note = data.data.note;\r\n x.town = data.data.town;\r\n x.municipality = data.data.location;\r\n x.province = province?.value;\r\n }});\r\n }*/\r\n /*const items = state.data.data;\r\n return {...state, isLoading: false, data: {data: items}};\r\n }),*/\r\n on(contactsActions.CleaningContacts, (state) => {\r\n return initialState;\r\n }),\r\n on(contactsActions.RemovingContact, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n /*on(contactsActions.RemovedContact, (state, {data, codes}) => {\r\n const items = state.data.data.filter(x => !codes.includes(x.code));\r\n return {...state, isLoading: false, data: {data: items}};\r\n }),*/\r\n on(contactsActions.ErrorContactsRequest, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(contactsActions.CancelContactsRequest, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n\r\n);\r\n","import { ActionReducer, ActionReducerMap, MetaReducer } from '@ngrx/store';\r\nimport { localStorageSync } from 'ngrx-store-localstorage';\r\nimport * as locationReducers from '../locations/state/locations-reducers';\r\nimport * as shoppingCartReducers from '../products/state/shopping-cart/cart-reducers';\r\nimport * as searchReducers from '../products/state/product-search/search-reducers';\r\nimport * as fromStorage from '../storage/storage.state';\r\nimport * as contactsReducers from '@app/marketplace/checkout/state/contacts/contacts-reducers';\r\nimport * as categoryTreeReducers from '@app/marketplace/categories/state/category-tree/category-tree-reducers';\r\nimport * as productDetailsReducers from '@app/marketplace/products/state/product-details/details-reducers';\r\n\r\n\r\nexport const layoutReducer: ActionReducerMap = {\r\n location: locationReducers.reducer, //key: location\r\n basket: shoppingCartReducers.reducer, //key: shoppingcart\r\n search: searchReducers.reducer, //key: search\r\n contacts: contactsReducers.reducer, //key contacts\r\n categoryTree: categoryTreeReducers.reducer,\r\n product_details: productDetailsReducers.reducer //key product_details\r\n};\r\n\r\nexport function locationStorageSyncReducer(reducer: ActionReducer) {\r\n return localStorageSync({\r\n //keys: Object.keys(layoutReducer),\r\n //keys: ['location','search'],\r\n keys: ['location'],\r\n storageKeySerializer: (key: string) =>{ return `${key}`},\r\n rehydrate: true,\r\n storage: window.localStorage,\r\n })(reducer);\r\n}\r\nexport const metaReducers: MetaReducer[] = typeof window !== 'undefined' ? [locationStorageSyncReducer] : [];\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as categoriesActions from './category-tree-actions';\r\nimport * as fromCategories from './category-tree-state';\r\n\r\nconst initialState: fromCategories.State = {isLoading: false, data: null, parentCategory: ''};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(categoriesActions.CancelRequestCategoryTree, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(categoriesActions.CategoryTreeFailure, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(categoriesActions.GetCategoryTree, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(categoriesActions.CategoryTreeLoaded, (state, {data}) => {\r\n return {...state, isLoading: false, data}\r\n }),\r\n on(categoriesActions.UpdateParentCategory, (state, {parentCategory}) => {\r\n return {...state, parentCategory}\r\n })\r\n);","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport * as categoriesActions from '../category-tree/category-tree-actions';;\r\nimport { catchError, map, switchMap, takeUntil, withLatestFrom} from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport { CategoryService } from '@app/marketplace/categories/_services/category.service';\r\nimport { Store } from '@ngrx/store';\r\nimport * as categorySelectors from '../category/categories-selectors';\r\n\r\n@Injectable()\r\nexport class CategoryTreeEffects {\r\n\r\n constructor(\r\n private actions$: Actions,\r\n private service: CategoryService,\r\n private store: Store) { }\r\n\r\n getCategoryTree$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(categoriesActions.GET_CATEGORY_TREE),\r\n withLatestFrom(\r\n this.store.select(categorySelectors.selectCategoryCode),\r\n (action: any, parentCategory: any) => {\r\n return {\r\n action,\r\n parentCategory\r\n };\r\n }\r\n ),\r\n switchMap((action: any) => {\r\n return this.service.GetCategoryTree().pipe(\r\n takeUntil(this.actions$.pipe(ofType(categoriesActions.CANCEL_CATEGORY_TREE_REQUEST))),\r\n map((data: any) => {\r\n return ({ type: categoriesActions.CATEGORY_TREE_LOADED, data, parentCategory: action.parentCategory });\r\n }),\r\n catchError((error) => {\r\n return of({ type: categoriesActions.CATEGORY_TREE_FAILURE });\r\n })\r\n );\r\n })\r\n )\r\n );\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LayoutRoutingModule } from './layout-routing.module';\r\nimport { LayoutComponent } from './layout/layout.component';\r\nimport { TopbarComponent } from './topbar/topbar.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport {MarketSeoModule} from '@app/market-seo/market-seo.module';\r\nimport {StoreModule} from '@ngrx/store';\r\nimport {EffectsModule} from '@ngrx/effects';\r\nimport {LocationsEffects} from '@app/marketplace/locations/state/locations-effects';\r\nimport {CartEffects} from '@app/marketplace/products/state/shopping-cart/cart-effects';\r\nimport {SearchEffects} from '@app/marketplace/products/state/product-search/search-effects';\r\nimport {layoutReducer, metaReducers} from '@app/marketplace/storage/storage.reducers';\r\nimport {LAYOUT_FEATURE_KEY} from '@app/marketplace/storage/storage.state';\r\nimport {IsAuthenticatedDirective} from '@app/directives/is-authenticated.directive';\r\nimport {CheckoutMarketGuard} from '@app/guards/chekout.market.guard';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\nimport {ContactsEffects} from '@app/marketplace/checkout/state/contacts/contacts-effects';\r\nimport { CategoryTreeEffects } from '../categories/state/category-tree/category-tree-effects';\r\nimport { SearchComponent } from './search/search.component';\r\nimport {AmazonWizardComponent} from '@app/marketplace/layout/search/amazon-wizard/amazon-wizard.component';\r\nimport {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ProductsDetailsEffects} from '@app/marketplace/products/state/product-details/details-effects';\r\n@NgModule({\r\n declarations: [\r\n LayoutComponent,\r\n TopbarComponent,\r\n SearchComponent,\r\n FooterComponent,\r\n IsAuthenticatedDirective,\r\n AmazonWizardComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MarketSeoModule,\r\n LayoutRoutingModule,\r\n StoreModule.forFeature(LAYOUT_FEATURE_KEY, layoutReducer, {metaReducers}),\r\n EffectsModule.forFeature([LocationsEffects, CartEffects, SearchEffects, CategoryTreeEffects, ContactsEffects, ProductsDetailsEffects]),\r\n SharedModule,\r\n ReactiveFormsModule,\r\n NgbDropdownModule\r\n ],\r\n exports: [\r\n LayoutComponent,\r\n TopbarComponent,\r\n SearchComponent,\r\n FooterComponent,\r\n IsAuthenticatedDirective\r\n ],\r\n providers: [\r\n CheckoutMarketGuard\r\n ]\r\n})\r\nexport class LayoutModule { }\r\n","import {TreeviewItem} from 'ngx-treeview';\r\n\r\nexport class TreeviewItemLocation extends TreeviewItem {\r\n iso: string;\r\n\r\n constructor(model) {\r\n super(model);\r\n this.iso = model.iso;\r\n }\r\n}\r\n\r\nexport const initProvinces: TreeviewItemLocation[] = [\r\n new TreeviewItemLocation({\r\n value: 21, text: 'Pinar del Río', iso: 'PR', checked: false, collapsed: true, children: [\r\n {value: 2101, text: 'Sandino', checked: false},\r\n {value: 2102, text: 'Mantua', checked: false},\r\n {value: 2103, text: 'Minas de Matahambre', checked: false},\r\n {value: 2104, text: 'Consolación', checked: false},\r\n {value: 2105, text: 'La Palma', checked: false},\r\n {value: 2106, text: 'Los Palacios', checked: false},\r\n {value: 2107, text: 'Consolación del Sur', checked: false},\r\n {value: 2108, text: 'Municipio Pinar del Río', checked: false},\r\n {value: 2109, text: 'San Luis', checked: false},\r\n {value: 2110, text: 'San Juan y Martínez', checked: false},\r\n {value: 2111, text: 'Guane', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 22, text: 'Artemisa', iso: 'ART', checked: false, collapsed: true, children: [\r\n {value: 2201, text: 'Bahía Honda', checked: false},\r\n {value: 2202, text: 'Mariel', checked: false},\r\n {value: 2203, text: 'Guanajay', checked: false},\r\n {value: 2204, text: 'Caimito', checked: false},\r\n {value: 2205, text: 'Bauta', checked: false},\r\n {value: 2206, text: 'San Antonio de los Baños', checked: false},\r\n {value: 2207, text: 'Güira de Melena', checked: false},\r\n {value: 2208, text: 'Alquízar', checked: false},\r\n {value: 2209, text: 'Artemisa', checked: false},\r\n {value: 2210, text: 'Candelaria', checked: false},\r\n {value: 2211, text: 'San Cristóbal', checked: false}\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 23, text: 'La Habana', iso: 'HAB', checked: false, collapsed: true, children: [\r\n {value: 2301, text: 'Playa', checked: false},\r\n {value: 2302, text: 'Plaza de la Revolución', checked: false},\r\n {value: 2303, text: 'Centro Habana', checked: false},\r\n {value: 2304, text: 'La Habana Vieja', checked: false},\r\n {value: 2305, text: 'Regla', checked: false},\r\n {value: 2306, text: 'Habana del Este', checked: false},\r\n {value: 2307, text: 'Guanabacoa', checked: false},\r\n {value: 2308, text: 'San Miguel del Padrón', checked: false},\r\n {value: 2309, text: 'Diez de Octubre', checked: false},\r\n {value: 2310, text: 'Cerro', checked: false},\r\n {value: 2311, text: 'Marianao', checked: false},\r\n {value: 2312, text: 'La Lisa', checked: false},\r\n {value: 2313, text: 'Boyeros', checked: false},\r\n {value: 2314, text: 'Arroyo Naranjo', checked: false},\r\n {value: 2315, text: 'Cotorro', checked: false}\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 24, text: 'Mayabeque', iso: 'MAY', checked: false, collapsed: true, children: [\r\n {value: 2401, text: 'Bejucal', checked: false},\r\n {value: 2402, text: 'San José de las Lajas', checked: false},\r\n {value: 2403, text: 'Jaruco', checked: false},\r\n {value: 2404, text: 'Santa Cruz del Norte', checked: false},\r\n {value: 2405, text: 'Madruga', checked: false},\r\n {value: 2406, text: 'Nueva Paz', checked: false},\r\n {value: 2407, text: 'San Nicolás', checked: false},\r\n {value: 2408, text: 'Güines', checked: false},\r\n {value: 2409, text: 'Melena del Sur', checked: false},\r\n {value: 2410, text: 'Batabanó', checked: false},\r\n {value: 2411, text: 'Quivicán', checked: false}\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 25, text: 'Matanzas', iso: 'MTZ', checked: false, collapsed: true, children: [\r\n {value: 2501, text: 'Municipio Matanzas', checked: false},\r\n {value: 2502, text: 'Cárdenas', checked: false},\r\n {value: 2503, text: 'Martí', checked: false},\r\n {value: 2504, text: 'Colón', checked: false},\r\n {value: 2505, text: 'Perico', checked: false},\r\n {value: 2506, text: 'Jovellanos', checked: false},\r\n {value: 2507, text: 'Pedro Betancourt', checked: false},\r\n {value: 2508, text: 'Limonar', checked: false},\r\n {value: 2509, text: 'Unión de Reyes', checked: false},\r\n {value: 2510, text: 'Ciénaga de Zapata', checked: false},\r\n {value: 2511, text: 'Jagüey Grande', checked: false},\r\n {value: 2512, text: 'Calimete', checked: false},\r\n {value: 2513, text: 'Los Arabos', checked: false}\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 26, text: 'Villa Clara', iso: 'VCL', checked: false, collapsed: true, children: [\r\n {value: 2601, text: 'Corralillo', checked: false},\r\n {value: 2602, text: 'Quemado de Güines', checked: false},\r\n {value: 2603, text: 'Sagua la Grande', checked: false},\r\n {value: 2604, text: 'Encrucijada', checked: false},\r\n {value: 2605, text: 'Camajuaní', checked: false},\r\n {value: 2606, text: 'Caibarién', checked: false},\r\n {value: 2607, text: 'Remedios', checked: false},\r\n {value: 2608, text: 'Placetas', checked: false},\r\n {value: 2609, text: 'Santa Clara', checked: false},\r\n {value: 2610, text: 'Cifuentes', checked: false},\r\n {value: 2611, text: 'Santo Domingo', checked: false},\r\n {value: 2612, text: 'Ranchuelo', checked: false},\r\n {value: 2613, text: 'Manicaragua', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 27, text: 'Cienfuegos', iso: 'CFG', checked: false, collapsed: true, children: [\r\n {value: 2701, text: 'Aguada de Pasajeros', checked: false},\r\n {value: 2702, text: 'Rodas', checked: false},\r\n {value: 2703, text: 'Palmira', checked: false},\r\n {value: 2704, text: 'Lajas', checked: false},\r\n {value: 2705, text: 'Cruces', checked: false},\r\n {value: 2706, text: 'Cumanayagua', checked: false},\r\n {value: 2707, text: 'Cienfuegos', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 28, text: 'Sancti Spíritus', iso: 'SSP', checked: false, collapsed: true, children: [\r\n {value: 2801, text: 'Yaguajay', checked: false},\r\n {value: 2802, text: 'Jatibonico', checked: false},\r\n {value: 2803, text: 'Taguasco', checked: false},\r\n {value: 2804, text: 'Cabaiguán', checked: false},\r\n {value: 2805, text: 'Fomento', checked: false},\r\n {value: 2806, text: 'Trinidad', checked: false},\r\n {value: 2807, text: 'Sancti Spíritus', checked: false},\r\n {value: 2808, text: 'La Sierpe', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 29, text: 'Ciego de Ávila', iso: 'CAV', checked: false, collapsed: true, children: [\r\n {value: 2901, text: 'Chambas', checked: false},\r\n {value: 2902, text: 'Morón', checked: false},\r\n {value: 2903, text: 'Bolivia', checked: false},\r\n {value: 2904, text: 'Primero de Enero', checked: false},\r\n {value: 2905, text: 'Ciro Redondo', checked: false},\r\n {value: 2906, text: 'Florencia', checked: false},\r\n {value: 2907, text: 'Majagua', checked: false},\r\n {value: 2908, text: 'Ciego de Ávila', checked: false},\r\n {value: 2909, text: 'Venezuela', checked: false},\r\n {value: 2910, text: 'Baraguá', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 30, text: 'Camagüey', iso: 'CAM', checked: false, collapsed: true, children: [\r\n {value: 3001, text: 'Carlos Manuel de Céspedes', checked: false},\r\n {value: 3002, text: 'Esmeralda', checked: false},\r\n {value: 3003, text: 'Sierra de Cubitas', checked: false},\r\n {value: 3004, text: 'Minas', checked: false},\r\n {value: 3005, text: 'Nuevitas', checked: false},\r\n {value: 3006, text: 'Guaimaro', checked: false},\r\n {value: 3007, text: 'Sibanicú', checked: false},\r\n {value: 3008, text: 'Camagüey', checked: false},\r\n {value: 3009, text: 'Florida', checked: false},\r\n {value: 3010, text: 'Vertientes', checked: false},\r\n {value: 3011, text: 'Jimaguayú', checked: false},\r\n {value: 3012, text: 'Najasa', checked: false},\r\n {value: 3013, text: 'Santa Cruz', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 31, text: 'Las Tunas', iso: 'LTU', checked: false, collapsed: true, children: [\r\n {value: 3101, text: 'Manatí', checked: false},\r\n {value: 3102, text: 'Puerto Padre', checked: false},\r\n {value: 3103, text: 'Jesús Manéndez', checked: false},\r\n {value: 3104, text: 'Majibacoa', checked: false},\r\n {value: 3105, text: 'Las Tunas', checked: false},\r\n {value: 3106, text: 'Jobabo', checked: false},\r\n {value: 3107, text: 'Colombia', checked: false},\r\n {value: 3108, text: 'Amancio', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 32, text: 'Holguín', iso: 'HOG', checked: false, collapsed: true, children: [\r\n {value: 3201, text: 'Gibara', checked: false},\r\n {value: 3202, text: 'Rafael Freyre', checked: false},\r\n {value: 3203, text: 'Banes', checked: false},\r\n {value: 3204, text: 'Antilla', checked: false},\r\n {value: 3205, text: 'Báguanos', checked: false},\r\n {value: 3206, text: 'Holguín', checked: false},\r\n {value: 3207, text: 'Calixto García', checked: false},\r\n {value: 3208, text: 'Cacocum', checked: false},\r\n {value: 3209, text: 'Urbano Noris', checked: false},\r\n {value: 3210, text: 'Cueto', checked: false},\r\n {value: 3211, text: 'Mayarí', checked: false},\r\n {value: 3212, text: 'Frank País', checked: false},\r\n {value: 3213, text: 'Sagua de Tánamo', checked: false},\r\n {value: 3214, text: 'Moa', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 33, text: 'Granma', iso: 'GRM', checked: false, collapsed: true, children: [\r\n {value: 3301, text: 'Rio Cauto', checked: false},\r\n {value: 3302, text: 'Cauto Cristo', checked: false},\r\n {value: 3303, text: 'Jiguaní', checked: false},\r\n {value: 3304, text: 'Bayamo', checked: false},\r\n {value: 3305, text: 'Yara', checked: false},\r\n {value: 3306, text: 'Manzanillo', checked: false},\r\n {value: 3307, text: 'Campechuela', checked: false},\r\n {value: 3308, text: 'Media Luna', checked: false},\r\n {value: 3309, text: 'Niquero', checked: false},\r\n {value: 3310, text: 'Pilón', checked: false},\r\n {value: 3311, text: 'Bartolome Masó', checked: false},\r\n {value: 3312, text: 'Buey Arriba', checked: false},\r\n {value: 3313, text: 'Guisa', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 34, text: 'Santiago de Cuba', iso: 'SCU', checked: false, collapsed: true, children: [\r\n {value: 3401, text: 'Contramaestre', checked: false},\r\n {value: 3402, text: 'Mella', checked: false},\r\n {value: 3403, text: 'San Luis', checked: false},\r\n {value: 3404, text: 'Santiago de Cuba', checked: false},\r\n {value: 3405, text: 'Segundo Frente', checked: false},\r\n {value: 3406, text: 'Songo la Maya', checked: false},\r\n {value: 3407, text: 'Palma Soriano', checked: false},\r\n {value: 3408, text: 'Tercer Frente', checked: false},\r\n {value: 3409, text: 'Guamá', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 35, text: 'Guantánamo', iso: 'GUM', checked: false, collapsed: true, children: [\r\n {value: 3501, text: 'El Salvador', checked: false},\r\n {value: 3502, text: 'Manuel Tames', checked: false},\r\n {value: 3503, text: 'Yateras', checked: false},\r\n {value: 3504, text: 'Baracoa', checked: false},\r\n {value: 3505, text: 'Maisí', checked: false},\r\n {value: 3506, text: 'Imías', checked: false},\r\n {value: 3507, text: 'San Antonio del Sur', checked: false},\r\n {value: 3508, text: 'Caimanera', checked: false},\r\n {value: 3509, text: 'Guantánamo', checked: false},\r\n {value: 3510, text: 'Niceto Pérez', checked: false},\r\n ]\r\n }),\r\n new TreeviewItemLocation({\r\n value: 40, text: 'Isla de la Juventud', iso: 'ISJ', checked: false, collapsed: true, children: []\r\n }),\r\n];\r\n","import {createAction, props} from '@ngrx/store';\r\nimport * as fromLocation from './locations-state';\r\nimport { LocationTypeEnum } from './locations-state';\r\nexport const UPDATING_LOCATION = '[LOCATION] updating locations';\r\nexport const UPDATED_LOCATION = '[LOCATION] updated locations';\r\nexport const LOCATIONS = '[LOCATION] current location';\r\nexport const UpdatingLocation = createAction(\r\n UPDATING_LOCATION,\r\n props<{locationType: any,locations: any}>()\r\n);\r\n\r\nexport const UpdatedLocation = createAction(\r\n UPDATED_LOCATION,\r\n props<{locationType: any,locations: any}>()\r\n);\r\n\r\nexport const LocationsAction = createAction(\r\n LOCATIONS,\r\n props<{location: any}>()\r\n);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { LAYOUT_FEATURE_KEY} from '@app/marketplace/storage/storage.state';\r\nimport * as fromStorage from '../../storage/storage.state'\r\n\r\nexport const locationFeature = createFeatureSelector(LAYOUT_FEATURE_KEY);\r\nexport const selectLocation = createSelector(\r\n locationFeature,\r\n (state: fromStorage.AppStorageState) =>{\r\n return state.location\r\n }\r\n);\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {MarketOrderDetails, OrderPagedResponse} from '@app/marketplace/orders/_models/order.interface';\r\n\r\nexport const LOADING_ORDER_DETAILS = '[Order-Details] Loading order details';\r\nexport const ORDER_DETAILS = '[Order-Details] get order details';\r\nexport const ERROR_ORDER_DETAILS = '[Order-Details] Order Details Loaded Error';\r\nexport const CANCEL_ORDER_DETAILS_REQUEST = '[Order-Details] Cancel order details request';\r\n\r\nexport const LoadingOrderDetailsAction = createAction(\r\n LOADING_ORDER_DETAILS,\r\n props<{ orderCode: string }>()\r\n);\r\nexport const GetOrderDetailsAction = createAction(\r\n ORDER_DETAILS,\r\n props<{ data: MarketOrderDetails, orderCode: string }>()\r\n);\r\nexport const CancelOrderDetailsRequestAction = createAction(\r\n CANCEL_ORDER_DETAILS_REQUEST,\r\n props<{ orderCode: string }>()\r\n);\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {OrderPagedResponse} from '@app/marketplace/orders/_models/order.interface';\r\n\r\nexport const LOADING_ORDERS = '[Orders] Loading orders items';\r\nexport const LIST_ORDERS = '[Orders] List orders items';\r\nexport const ERROR_ORDERS = '[Orders] Orders Loaded Error';\r\nexport const CANCEL_ORDERS_REQUEST = '[Orders] Cancel orders request';\r\n\r\nexport const LoadingOrdersAction = createAction(\r\n LOADING_ORDERS,\r\n props<{ payload: any }>()\r\n);\r\nexport const ListOrdersAction = createAction(\r\n LIST_ORDERS,\r\n props<{ data: OrderPagedResponse }>()\r\n);\r\nexport const CancelOrderRequestAction = createAction(CANCEL_ORDERS_REQUEST);\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { ProductPagedResponse } from \"../_models/product.interface\";\r\nimport { SharedService } from \"@app/services/shared.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ProductService extends SharedService {\r\n flashOfferSubject: BehaviorSubject = new BehaviorSubject(false);\r\n flashOffer$ = this.flashOfferSubject.asObservable();\r\n\r\n countSubject$ = new BehaviorSubject(0);\r\n count$ = this.countSubject$.asObservable();\r\n\r\n constructor(httpCLient: HttpClient) {\r\n super(httpCLient);\r\n }\r\n\r\n //https://localhost:5001/market/Product/Related\r\n\r\n ListProducts(payload:any) {\r\n const url = 'api/market/product/search';\r\n return this.post(url, payload);\r\n }\r\n\r\n GetProductDetail(payload:any) {\r\n const url = 'api/market/product/details';\r\n return this.post(url, payload);\r\n }\r\n\r\n /* ListProducts(payload: any) {\r\n const url = \"https://localhost:5001/market/product/search\";\r\n return this.postFake(url, payload);\r\n }\r\n GetProductDetail(payload: any) {\r\n const url = \"https://localhost:5001/market/product/details\";\r\n return this.postFake(url, payload);\r\n }\r\n */\r\n GetRelatedProducts(payload: any) {\r\n const url = \"api/market/product/related\";\r\n return this.post(url, payload);\r\n }\r\n}\r\n","import { ShippingTypeEnum } from '@app/marketplace/core/enum/shippingType';\r\nimport {createAction,props} from '@ngrx/store';\r\nimport { ProductAttribute } from '../../_models/product.interface';\r\nexport const LOADING_PRODUCT_DETAILS = '[PRODUCT-DETAILS] Loading products details';\r\nexport const LOADING_PRODUCT_DETAILS_DLG = '[PRODUCT-DETAILS-DLG] Loading products details';\r\nexport const GET_PRODUCT_DETAILS = '[PRODUCT-DETAILS] Get Product details';\r\nexport const SET_SHIPPINGTYPE= '[PRODUCT-DETAILS] Set Shipping Type';\r\nexport const SET_ACTIVEATTRIBUTEVALUE= '[PRODUCT-DETAILS] Set Active Attribute Value';\r\nexport const SET_ERROR= '[PRODUCT-DETAILS] Set Error';\r\nexport const ERROR_PRODUCTS_DETAILS = '[PRODUCT-DETAILS] Products details loaded Error';\r\nexport const CANCEL_PRODUCTS_DETAILS_REQUEST = '[PRODUCT-DETAILS] Cancel products details request';\r\nexport const INCREASE_QUANTITY_DETAILS = '[PRODUCT-DETAILS] Increase quantity';\r\nexport const REDUCE_QUANTITY_DETAILS = '[PRODUCT-DETAILS] Reduce quantity';\r\nexport const RESET_QUANTITY_DETAILS = '[PRODUCT-DETAILS] Reset quantity';\r\n\r\nexport const LoadingProductDetailAction = createAction(LOADING_PRODUCT_DETAILS);\r\nexport const LoadingProductDetailDlgAction = createAction(\r\n LOADING_PRODUCT_DETAILS_DLG,\r\n props<{code: string,provider:number}>()\r\n);\r\nexport const ProductDetailsAction = createAction(\r\n GET_PRODUCT_DETAILS,\r\n props<{data: any}>()\r\n);\r\nexport const SetShippingType= createAction(\r\n SET_SHIPPINGTYPE,\r\n props<{shippingType:ShippingTypeEnum}>()\r\n);\r\n\r\nexport const SetActiveAttributeValue = createAction(\r\n SET_ACTIVEATTRIBUTEVALUE,\r\n props<{\r\n attr:ProductAttribute,\r\n active:boolean}>()\r\n);\r\n\r\nexport const SetError= createAction(\r\n SET_ERROR,\r\n props<{message:string}>()\r\n);\r\nexport const CancelProductDetailsRequestAction = createAction(CANCEL_PRODUCTS_DETAILS_REQUEST);\r\nexport const ErrorProductDetailsActions = createAction(ERROR_PRODUCTS_DETAILS);\r\nexport const IncreaseQuantityAction = createAction(INCREASE_QUANTITY_DETAILS);\r\nexport const ReduceQuantityAction = createAction(REDUCE_QUANTITY_DETAILS);\r\nexport const ResetQuantityAction = createAction(RESET_QUANTITY_DETAILS);\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport * as detailsActions from './details-actions';\r\nimport * as searchActions from \"@app/marketplace/products/state/product-search/search-actions\";\r\nimport * as relatedActions from \"@app/marketplace/products/state/related-product/related-actions\";\r\nimport { ProductService } from \"../../_services/product.service\";\r\nimport { catchError, withLatestFrom, map, switchMap, takeUntil, mergeMap } from \"rxjs/operators\";\r\nimport { of } from \"rxjs\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport * as routerSelectors from '../../../route/router-state.selectors';\r\nimport * as locationSelectors from '../../../locations/state/locations-selectors';\r\nimport * as searchSelectors from '../../../products/state/product-search/search-selectors';\r\nimport { Utils } from \"@app/marketplace/core/helpers/utils\";\r\n\r\n@Injectable()\r\nexport class ProductsDetailsEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private service: ProductService,\r\n private store: Store,) { }\r\n\r\n getProductDetails$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(detailsActions.LOADING_PRODUCT_DETAILS, detailsActions.CANCEL_PRODUCTS_DETAILS_REQUEST),\r\n withLatestFrom(\r\n this.store.select(routerSelectors.getMergedRoute),\r\n this.store.select(locationSelectors.selectLocation),\r\n this.store.select(searchSelectors.selectProvider),\r\n (action: any, router: any, location: any, provider: any) => {\r\n return {\r\n action,\r\n params: router.params,\r\n location: { type: location.locationType, codes: location.locations },\r\n provider: provider,\r\n }\r\n }\r\n ),\r\n switchMap(data => {\r\n var payload = {\r\n code:data.params[\"code\"],\r\n provider:Utils.GetProvider(data.params[\"provider\"]),\r\n location: 0,\r\n locationResolver: false,\r\n searchTerms: \"\"\r\n };\r\n //this.store.dispatch(searchActions.SetProvider({provider:payload.provider}));\r\n if (data.location.codes.length > 0 && data.location.type === 0)\r\n payload.location = data.location.codes[0];\r\n\r\n\r\n /* return this.service.GetProductDetail(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(detailsActions.CANCEL_PRODUCTS_DETAILS_REQUEST))),\r\n map((data: any) => {\r\n if(data?.data?.provider)\r\n this.store.dispatch(searchActions.SetProvider({provider:data?.data?.provider}));\r\n this.processVariations(data);\r\n return { type: detailsActions.GET_PRODUCT_DETAILS, data };\r\n }),\r\n catchError((error) => of({ type: detailsActions.ERROR_PRODUCTS_DETAILS }))\r\n ); */\r\n\r\n return this.service.GetProductDetail(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(detailsActions.CANCEL_PRODUCTS_DETAILS_REQUEST))),\r\n mergeMap((data: any) => {\r\n if(data?.data?.provider)\r\n this.store.dispatch(searchActions.SetProvider({provider:data?.data?.provider}));\r\n this.processVariations(data);\r\n if(data?.success){\r\n if(payload.provider>0){\r\n return [\r\n { type: detailsActions.GET_PRODUCT_DETAILS, data },\r\n { type: relatedActions.LOADING_RELATED_PRODUCTS, payload:{\r\n searchTerms:data?.data?.name,\r\n productCode: data?.data?.code,\r\n ProductProvider:payload.provider\r\n }}\r\n ]\r\n }\r\n else{\r\n return [\r\n { type: detailsActions.GET_PRODUCT_DETAILS, data },\r\n ]\r\n }\r\n\r\n }\r\n else return [{type: detailsActions.GET_PRODUCT_DETAILS, data }]\r\n\r\n }),\r\n catchError((error) => of({ type: detailsActions.ERROR_PRODUCTS_DETAILS }))\r\n );\r\n\r\n })\r\n )\r\n );\r\n\r\n getProductDetailsDlg$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(detailsActions.LOADING_PRODUCT_DETAILS_DLG),\r\n withLatestFrom(\r\n this.store.select(locationSelectors.selectLocation),\r\n (action: any, location: any) => {\r\n return {\r\n action,\r\n location: { type: location.locationType, codes: location.locations }\r\n }\r\n }\r\n ),\r\n switchMap(data => {\r\n var payload = {\r\n code:data.action.code,\r\n provider:data.action.provider,\r\n location: 0,\r\n locationResolver: false,\r\n searchTerms: \"\"\r\n };\r\n if (data.location.codes.length > 0 && data.location.type === 0)\r\n payload.location = data.location.codes[0];\r\n return this.service.GetProductDetail(payload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(detailsActions.CANCEL_PRODUCTS_DETAILS_REQUEST))),\r\n map((data: any) => {\r\n if(data?.data?.provider)\r\n this.store.dispatch(searchActions.SetProvider({provider:data?.data?.provider}));\r\n this.processVariations(data);\r\n return { type: detailsActions.GET_PRODUCT_DETAILS, data };\r\n }),\r\n catchError((error) => of({ type: detailsActions.ERROR_PRODUCTS_DETAILS }))\r\n );\r\n })\r\n )\r\n );\r\n\r\n public getKey(index: any, value: any, currents: any) {\r\n let key = \"\";\r\n if (currents?.length > 0) {\r\n currents.map(function (v, i) {\r\n if (index === i)\r\n key = key ? `${key}${i}${value}` : `${i}${value}`;\r\n else\r\n key = key ? `${key}${i}${v.value}` : `${i}${v.value}`;\r\n })\r\n }\r\n return key;\r\n }\r\n private processVariations(response: any) {\r\n //set combinations key\r\n response?.data?.variations?.combinations?.forEach(function (val1) {\r\n val1.combination.map(function (val2) {\r\n val1.key = val1.key ? `${val1.key}${val2.index}${val2.value}` : `${val2.index}${val2.value}`;\r\n })\r\n });\r\n //set current Key\r\n if (response?.data?.variations) {\r\n response?.data?.variations?.currentCombination?.map(function (val3) {\r\n if (response.data.variations.currentKey)\r\n response.data.variations.currentKey = `${response.data.variations.currentKey}${val3.index}${val3.value}`;\r\n else\r\n response.data.variations.currentKey = `${val3.index}${val3.value}`;\r\n })\r\n }\r\n //set dimension Key\r\n if (response?.data?.variations?.dimensions) {\r\n response.data.variations.dimensions.map(function (val4) {\r\n val4.data.map(function (val5) {\r\n if(val5.value==-1) return;\r\n let key = \"\";\r\n let currents= response.data.variations.currentCombination??[];\r\n let combinations= response?.data?.variations?.combinations;\r\n currents.map(function (v, i) {\r\n if (val4.index === i)\r\n key = key ? `${key}${i}${val5.value}` : `${i}${val5.value}`;\r\n else\r\n key = key ? `${key}${i}${v.value}` : `${i}${v.value}`;\r\n });\r\n val5.key=key;\r\n val5.product=combinations.find(i => i.key === key)?.productCode??\"\";\r\n })\r\n })\r\n }\r\n }\r\n\r\n /* getProductDetails$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(ROUTER_NAVIGATION),\r\n filter((r: RouterNavigatedAction) => {\r\n return r.payload.routerState.url.startsWith('/market/productos-compras-cuba-online/details');\r\n }),\r\n map((r: RouterNavigatedAction) => {\r\n return {\r\n code: r.payload.routerState['params']['code'],\r\n location: r.payload.routerState['params']['location']\r\n }\r\n }),\r\n switchMap(payload => {\r\n var newPayload = {\r\n code: payload.code,\r\n location: payload.location,\r\n locationResolver: false,\r\n searchTerms: \"\",\r\n };\r\n return this.service.GetProductDetail(newPayload).pipe(\r\n takeUntil(this.actions$.pipe(ofType(detailsActions.CANCEL_PRODUCTS_DETAILS_REQUEST))),\r\n map((data: any) => {\r\n return { type: detailsActions.GET_PRODUCT_DETAILS, data };\r\n }),\r\n catchError((error) => of({ type: detailsActions.ERROR_PRODUCTS_DETAILS }))\r\n );\r\n })\r\n )\r\n ); */\r\n}\r\n","\r\nexport enum ShippingTypeEnum {\r\n None = 0,\r\n Air = 1,\r\n Sea = 2\r\n}\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport * as productsActions from './details-actions';\r\nimport * as fromProducts from './details-state';\r\nimport { ShippingTypeEnum } from \"@app/marketplace/core/enum/shippingType\";\r\n\r\nconst initialState: fromProducts.State = {\r\n isLoading:false,\r\n shippingType:ShippingTypeEnum.None,\r\n message:\"\",\r\n data:{},\r\n quantity:1,\r\n combination:\"\",\r\n attributes:[]\r\n};\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(productsActions.LoadingProductDetailAction, (state) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(productsActions.LoadingProductDetailDlgAction, (state,{code,provider}) => {\r\n return {...state,isLoading:true}\r\n }),\r\n on(productsActions.ProductDetailsAction, (state,{data}) => {\r\n state.attributes = [];\r\n data?.data?.productAttributes?.map(function (item) {\r\n state.attributes.push({attrId:item.id,attrText:item.text,valId:\"\",valText:\"\"});\r\n });\r\n return {...state,isLoading:false,data}\r\n }),\r\n on(productsActions.SetShippingType, (state, {shippingType}) => {\r\n return {...state, shippingType};\r\n }),\r\n\r\n on(productsActions.SetActiveAttributeValue, (state, {attr,active}) => {\r\n var attrId=attr.attrId;var valId=attr.valId; var valText=attr.valText;\r\n if (!active) {\r\n state.data?.data?.productAttributes?.forEach(function (item) {\r\n if (item.id == attrId) {\r\n item.values.map(function (val) {\r\n /* if (val.active) val.active = !val.active;\r\n else */\r\n val.active = val.id == valId;\r\n })\r\n }\r\n });\r\n state.attributes = state.attributes.map(function(value){\r\n if(value.attrId === attrId){\r\n value.valId=valId;\r\n value.valText=valText;\r\n } return value;\r\n })\r\n state.combination = state.attributes.map(o => o.valId).join('');\r\n checkAvailability(state,attrId,valId);\r\n let item=state.data?.data?.priceCombinations?.find(x => x.id === state.combination);\r\n if(item){\r\n state.data.data.price=item.price;\r\n state.data.data.discount=item.discount;\r\n state.data.data.priceToShow=item.priceToShow;\r\n state.data.data.oldPriceToShow=item.oldPriceToShow;\r\n state.data.data.availability=item.availability;\r\n state.data.data.availabilityToShow={\r\n value: item.availabilityToShow,\r\n color: \"\",\r\n style: 0\r\n };\r\n }\r\n }\r\n else{\r\n state.data?.data?.productAttributes?.forEach(function (item) {\r\n item.values.map(function (val) {\r\n val.active = false;\r\n val.disable = false;\r\n })\r\n });\r\n state.combination =\"\";\r\n state.attributes = state.attributes.map(function(value){\r\n value.valId=\"\";\r\n value.valText=\"\";\r\n return value;\r\n })\r\n }\r\n return {...state};\r\n }),\r\n\r\n on(productsActions.SetError, (state, {message}) => {\r\n return {...state, message};\r\n }),\r\n on(productsActions.ErrorProductDetailsActions, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(productsActions.CancelProductDetailsRequestAction, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(productsActions.IncreaseQuantityAction, (state) => {\r\n return {...state,quantity:state.quantity<10?state.quantity += 1:10};\r\n }),\r\n on(productsActions.ReduceQuantityAction, (state) => {\r\n return {...state,quantity:state.quantity==1?1:state.quantity -= 1};\r\n }),\r\n on(productsActions.ResetQuantityAction, (state) => {\r\n return {...state,quantity: 1};\r\n }),\r\n);\r\n\r\nfunction checkAvailability(state: fromProducts.State, attrId:string,valId: string) {\r\n let result= state.data?.data?.priceCombinations.filter((p) =>p.availability>0 && p.attributes.find((d) => d.id==valId)).flatMap(function (item) {\r\n return item.attributes.filter((p) => p.parent!=attrId).map((val)=>val)\r\n });\r\n state.data?.data?.productAttributes?.filter((p) => p.id!=attrId).forEach(function (item) {\r\n item.values.map(function (val) {\r\n val.disable = !result.find((d) => d.id==val.id);\r\n })\r\n });\r\n}\r\n","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { AppState, PRODUCT_FEATURE} from \"../../../app.state\";\r\n\r\n export const productsFeature = createFeatureSelector(PRODUCT_FEATURE.stateKey);\r\n export const selectLoading = createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.isLoading\r\n);\r\n /* export const selectResponse = createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.data\r\n); */\r\n\r\nexport const selectResponse = createSelector(\r\n productsFeature,\r\n (state: AppState) => {\r\n console.log(state.product_details)\r\n if(state.product_details.data.data){\r\n if (state.product_details.data.data.shortText) {\r\n state.product_details.data.data[\"summaryText\"] = state.product_details.data.data.shortText.split(' ').slice(0, 40).join(' ') + '...';\r\n state.product_details.data.data[\"showDescriptionSummary\"] = true;\r\n } else {\r\n state.product_details.data.data[\"summaryText\"] = '';\r\n state.product_details.data.data[\"showDescriptionSummary\"] = false;\r\n }\r\n }\r\n return state.product_details.data;\r\n }\r\n);\r\n\r\n\r\nexport const selectVariations = createSelector(\r\n productsFeature,\r\n (state: AppState) =>{\r\n if (state.product_details.data?.data?.variations)\r\n return state.product_details.data?.data?.variations;\r\n else return [];\r\n }\r\n);\r\nexport const selectDimensions = createSelector(\r\n selectVariations,\r\n (state: any) =>{\r\n if (state.dimensions)\r\n return state.dimensions;\r\n else return [];\r\n }\r\n);\r\n\r\nexport const selectAttributes = createSelector(\r\n productsFeature,\r\n (state: AppState) =>{\r\n if (state.product_details.data?.data?.productAttributes)\r\n return state.product_details.data?.data?.productAttributes;\r\n else return [];\r\n }\r\n);\r\nexport const selectPriceCombinations = createSelector(\r\n productsFeature,\r\n (state: AppState) =>{\r\n if (state.product_details.data?.data?.priceCombinations)\r\n return state.product_details.data?.data?.priceCombinations;\r\n else return [];\r\n }\r\n);\r\nexport const selectShippings= createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.data.data.allowedShippingTypes\r\n);\r\nexport const selectShippingType= createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.shippingType\r\n);\r\nexport const selectAttibutes= createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.attributes\r\n);\r\n\r\nexport const selectError= createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details?.message??\"\"\r\n);\r\n\r\nexport const selectCurrentKey= createSelector(\r\n selectVariations,\r\n (state: any) =>{\r\n if (state.currentKey)\r\n return state.currentKey;\r\n else return \"\";\r\n }\r\n);\r\nexport const selectQuantity= createSelector(\r\n productsFeature,\r\n (state: AppState) => state?.product_details?.quantity??1\r\n);\r\n","import {createAction,props} from '@ngrx/store';\r\nimport {ProductPagedResponse } from '../../_models/product.interface';\r\n\r\nexport const LOADING_PRODUCTS = '[PRODUCTS] Loading products items';\r\nexport const LIST_PRODUCTS = '[PRODUCTS] List products items';\r\nexport const ERROR_PRODUCTS = '[PRODUCTS] Products Loaded Error';\r\nexport const CANCEL_PRODUCTS_REQUEST = '[PRODUCTS] Cancel products request';\r\n\r\nexport const LoadingProductsAction = createAction(\r\n LOADING_PRODUCTS,\r\n props<{payload:any}>()\r\n);\r\nexport const ListProductsAction = createAction(\r\n LIST_PRODUCTS,\r\n props<{data: ProductPagedResponse,provider:number,scroll:boolean}>()\r\n);\r\nexport const ErrorProductsAction = createAction(LIST_PRODUCTS);\r\nexport const CancelProductRequestAction = createAction(CANCEL_PRODUCTS_REQUEST);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { LAYOUT_FEATURE_KEY} from '@app/marketplace/storage/storage.state';\r\nimport * as fromStorage from '@app/marketplace/storage/storage.state'\r\n\r\nexport const locationFeature = createFeatureSelector(LAYOUT_FEATURE_KEY);\r\nexport const selectTerm = createSelector(\r\n locationFeature,\r\n (state: fromStorage.AppStorageState) =>{\r\n return state.search\r\n });\r\n\r\nexport const selectProvider = createSelector(\r\n locationFeature,\r\n (state: fromStorage.AppStorageState) =>{\r\n return state.search?.provider\r\n });\r\n\r\nexport const selectSearh= createSelector(\r\n locationFeature,\r\n (state: fromStorage.AppStorageState) =>{\r\n return state.search?.searhTerm\r\n });\r\n","import {createAction,props} from '@ngrx/store';\r\n\r\n\r\nexport const LOADING_RELATED_PRODUCTS = '[RELATED-PRODUCTS] Loading related products items';\r\nexport const LIST_RELATED_PRODUCTS = '[RELATED-PRODUCTS] List related products items';\r\nexport const ERROR_RELATED_PRODUCTS = '[RELATED-PRODUCTS] Related Products Loaded Error';\r\nexport const CANCEL_RELATED_PRODUCTS_REQUEST = '[RELATED-PRODUCTS] Cancel related products request';\r\nexport const RESET_RELATED_PRODUCTS = '[RELATED-PRODUCTS] Reset related products items';\r\n\r\nexport const LoadingRelatedProductsAction = createAction(\r\n LOADING_RELATED_PRODUCTS,\r\n props<{payload:any}>()\r\n);\r\nexport const ListRelatedProductsAction = createAction(\r\n LIST_RELATED_PRODUCTS,\r\n props<{data: any}>()\r\n);\r\nexport const ResetRelatedProductsAction = createAction(RESET_RELATED_PRODUCTS);\r\nexport const ErrorRelatedProductsAction = createAction(ERROR_RELATED_PRODUCTS);\r\nexport const CancelRelatedProductRequestAction = createAction(CANCEL_RELATED_PRODUCTS_REQUEST);\r\n","import {createFeatureSelector, createSelector} from '@ngrx/store';\r\nimport {routerStateConfig} from './ngrx-router.module';\r\nimport {MergedRouteReducerState} from './merged-route';\r\nimport { getSelectors } from '@ngrx/router-store';\r\nimport * as fromRoot from './ngrx-router.module';\r\n\r\nexport const getRootReducerState = createFeatureSelector(routerStateConfig.stateKey);\r\nexport const getMergedRoute = createSelector(getRootReducerState, (routerReducerState) => routerReducerState.router.state);\r\n\r\n//export const getRouterReducerState = createFeatureSelector(routerStateConfig.stateKey);\r\n//export const getMergedRoute = createSelector(getRouterReducerState, (routerReducerState) => routerReducerState.state);\r\n/* export const {\r\n selectQueryParams, // select the current route query params\r\n selectQueryParam, // factory function to select a query param\r\n selectRouteParams, // select the current route params\r\n selectRouteParam, // factory function to select a route param\r\n selectRouteData, // select the current route data\r\n selectUrl, // select the current url\r\n} = getSelectors(getRouterReducerState);\r\n */\r\n","export class LocationModel {\r\n province: string;\r\n provinceCode: string;\r\n municipality: string;\r\n municipalityCode: string;\r\n}\r\n\r\nexport enum LocationTypeEnum {\r\n None = -11,\r\n Municipality = 0,\r\n Province = 1\r\n}\r\n","import { Pipe, PipeTransform} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n@Pipe({name: 'start'})\r\nexport class Start implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(value: number): SafeHtml {\r\n let res = '';\r\n switch (true) {\r\n case value >= 1 && value < 1.5: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 1.5 && value < 2: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 2 && value < 2.5: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 2.5 && value < 3: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 3 && value < 3.5: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 3.5 && value < 4: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 4 && value < 4.5: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 4.5 && value < 4.9: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n case value >= 4.9 && value < 5: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n default: {\r\n res =\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • '+\r\n '
  • ';\r\n return this.sanitizer.bypassSecurityTrustHtml(res);\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Start } from './pipes/star.pipe';\r\nimport { DropdownTreeviewSelectComponent } from './_components/dropdown-treeview-select/dropdown-treeview-select.component';\r\nimport { TreeviewModule} from 'ngx-treeview';\r\nimport { FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport { NotifyAlertComponent } from './_components/notify-alert/notify-alert.component';\r\nimport {ShippingAmazonSectionComponent} from '@app/market-amazon/shipping-amazon-section/shipping-amazon-section.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n Start,\r\n DropdownTreeviewSelectComponent,\r\n NotifyAlertComponent,\r\n ShippingAmazonSectionComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n TreeviewModule.forRoot(),\r\n ],\r\n exports: [\r\n Start,\r\n DropdownTreeviewSelectComponent,\r\n NotifyAlertComponent,\r\n ShippingAmazonSectionComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {StorePagedResponse} from '@app/marketplace/stores/_models/store.interface';\r\n\r\nexport const STORE_DETAILS = '[Stores-Details] item details';\r\nexport const LOADING_STORE_DETAILS = '[Stores-Details] Loading item details';\r\nexport const ERROR_STORE_DETAILS = '[Stores-Details] Loaded Error';\r\nexport const CANCEL_STORE_DETAILS_REQUEST = '[Stores-Details] Cancel request';\r\nexport const LoadingStoreDetailsActions = createAction(\r\n LOADING_STORE_DETAILS\r\n);\r\nexport const CancelRequestStoreDetailsActions = createAction(CANCEL_STORE_DETAILS_REQUEST);\r\nexport const StoreDetailsActions = createAction(\r\n STORE_DETAILS,\r\n props<{data: any}>()\r\n);\r\nexport const ErrorStoreDetailsActions = createAction(ERROR_STORE_DETAILS);\r\n","import {createAction, props} from '@ngrx/store';\r\nimport {StorePagedResponse} from '@app/marketplace/stores/_models/store.interface';\r\n\r\nexport const LIST_STORES = '[Stores] List items';\r\nexport const LOADING_STORES = '[Stores] Loading items';\r\nexport const ERROR_STORES = '[Stores] Loaded Error';\r\nexport const CANCEL_REQUEST = '[Stores] Cancel request';\r\nexport const LoadingStoresActions = createAction(\r\n LOADING_STORES,\r\n props<{payload: any}>()\r\n);\r\nexport const CancelRequestStoresActions = createAction(CANCEL_REQUEST);\r\nexport const ListStoresActions = createAction(\r\n LIST_STORES,\r\n props<{data: StorePagedResponse}>()\r\n);\r\nexport const ErrorStoresActions = createAction(ERROR_STORES);\r\n","/**\n * Boolean with the result of the check if User Timing API\n * is supported for the current browser/NodeJS version\n *\n * @returns boolean\n *\n */\nconst isUserTimingAPISupported = typeof performance !== 'undefined' &&\n typeof performance.now !== 'undefined' &&\n typeof performance.mark === 'function' &&\n typeof performance.measure === 'function' &&\n (typeof performance.clearMarks === 'function' || typeof performance.clearMeasures === 'function');\nexport { isUserTimingAPISupported };\n","/**\n * Boolean with the result of the check if PerformanceObservable\n * is supported for the current browser/NodeJS version\n *\n * @returns boolean\n *\n */\nconst isPerformanceObservableSupported = typeof PerformanceObserver !== 'undefined' &&\n // eslint-disable-next-line compat/compat\n typeof PerformanceObserver.prototype !== 'undefined' &&\n // eslint-disable-next-line compat/compat\n typeof PerformanceObserver.prototype.constructor === 'function';\nexport { isPerformanceObservableSupported };\n","/**\n * Boolean with the result of the check if package\n * is running on the browser or in a NodeJS environment\n *\n * @returns boolean\n *\n */\nconst isNodeJSEnv = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n// Interesting fact:\n// Some bundlers are resolving `process`, so it needs to check for process.release.name\n// since it's a NodeJS only environment value.\n// More details in https://nodejs.org/api/process.html#process_process_release\nexport { isNodeJSEnv };\n","import { isUserTimingAPISupported } from './is-user-timing-api-supported';\nimport { isPerformanceObservableSupported } from './is-performance-observable-supported';\nimport { isNodeJSEnv } from './is-nodejs-env';\n// Map() is not used in order to decrease the bundle\nlet marksMap = {};\nlet marksObserver = {};\n/**\n * Get the current time based on User Timing API or Date\n *\n * @returns number\n *\n */\nconst getTimeNow = () => (isUserTimingAPISupported ? performance.now() : Date.now());\n/**\n * Clear marks and measure of performance event\n *\n * @param markName - Performance marker to be checked\n *\n * @returns void\n *\n */\nconst clear = (markName) => {\n marksMap[markName] = undefined;\n // Removes PerformanceObserver references from memory\n if (!!marksObserver[markName]) {\n marksObserver[markName] = undefined;\n }\n if (!isUserTimingAPISupported) {\n return;\n }\n // Some versions of NodeJS doesn't support this method\n if (!isNodeJSEnv) {\n performance.clearMeasures(markName);\n }\n performance.clearMarks(markName);\n};\n/**\n * Start performance measure of event\n *\n * @param markName - Performance marker to be started\n *\n * @returns number\n *\n */\nconst start = (markName) => {\n if (isUserTimingAPISupported) {\n if (isNodeJSEnv && isPerformanceObservableSupported) {\n // eslint-disable-next-line compat/compat\n const obs = new PerformanceObserver(list => {\n marksObserver[markName] = list.getEntries().find(f => f.name === markName);\n obs.disconnect();\n });\n obs.observe({ entryTypes: ['measure'] });\n }\n performance.mark(markName);\n }\n marksMap[markName] = getTimeNow();\n};\n/**\n * Finishes performance measure of event and\n * clear marks and measure if applicable\n *\n * @param markName - Performance marker to be checked\n * @param markNameToCompare - Optional mark to compare to\n *\n * @returns PerfMarksPerformanceEntry\n *\n */\nconst end = (markName, markNameToCompare) => {\n try {\n const startTime = marksMap[markName];\n if (!isUserTimingAPISupported) {\n return startTime\n ? { duration: getTimeNow() - startTime, startTime, entryType: 'measure', name: markName }\n : {};\n }\n // If there's no User Timing mark to be compared with,\n // the package will create one to be used for better comparison\n if (!markNameToCompare) {\n performance.mark(`${markName}-end`);\n }\n performance.measure(markName, markName, markNameToCompare || `${markName}-end`);\n if (isNodeJSEnv) {\n if (!!marksObserver[markName]) {\n return marksObserver[markName];\n }\n return startTime\n ? { duration: getTimeNow() - startTime, startTime, entryType: 'measure', name: markName }\n : {};\n }\n const entry = performance.getEntriesByName(markName).pop();\n return entry || {};\n }\n catch (e) {\n // If previous mark was missing for some reason, this will throw.\n // This could only happen if something in event loop crashed\n // in an unexpected place earlier.\n // Don't pile on with more errors.\n return {};\n }\n finally {\n // Clear marks immediately to avoid growing buffer.\n clear(markName);\n // Clear marks used for comparison in case of it's value was passed\n // If the mark to compare is not passed, it should remove the one we create with `-end` suffix\n clear(markNameToCompare || `${markName}-end`);\n }\n};\n/**\n * Clear all marks and measures of performance event\n *\n * @returns void\n *\n */\nconst clearAll = () => {\n marksMap = {};\n marksObserver = {};\n if (!isUserTimingAPISupported) {\n return;\n }\n // Some versions of NodeJS doesn't support this method\n if (!isNodeJSEnv) {\n performance.clearMeasures();\n }\n performance.clearMarks();\n};\nexport { start, end, clear, clearAll, isUserTimingAPISupported, isPerformanceObservableSupported };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, isDevMode, Component, ChangeDetectionStrategy, Inject, Optional, Input, NgModule } from '@angular/core';\nimport { start, end } from 'perf-marks/marks';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nconst NGX_SKELETON_LOADER_CONFIG = new InjectionToken('ngx-skeleton-loader.config');\n\nclass NgxSkeletonLoaderComponent {\n constructor(config) {\n const { appearance = 'line', animation = 'progress', theme = null, loadingText = 'Loading...', count = 1, ariaLabel = 'loading', } = config || {};\n this.appearance = appearance;\n this.animation = animation;\n this.theme = theme;\n this.loadingText = loadingText;\n this.count = count;\n this.items = [];\n this.ariaLabel = ariaLabel;\n }\n ngOnInit() {\n start('NgxSkeletonLoader:Rendered');\n start('NgxSkeletonLoader:Loaded');\n this.validateInputValues();\n }\n validateInputValues() {\n // Checking if it's receiving a numeric value (string having ONLY numbers or if it's a number)\n if (!/^\\d+$/.test(`${this.count}`)) {\n // Shows error message only in Development\n if (isDevMode()) {\n console.error(`\\`NgxSkeletonLoaderComponent\\` need to receive 'count' a numeric value. Forcing default to \"1\".`);\n }\n this.count = 1;\n }\n this.items.length = this.count;\n const allowedAnimations = ['progress', 'progress-dark', 'pulse', 'false'];\n if (allowedAnimations.indexOf(String(this.animation)) === -1) {\n // Shows error message only in Development\n if (isDevMode()) {\n console.error(`\\`NgxSkeletonLoaderComponent\\` need to receive 'animation' as: ${allowedAnimations.join(', ')}. Forcing default to \"progress\".`);\n }\n this.animation = 'progress';\n }\n if (['circle', 'line', ''].indexOf(String(this.appearance)) === -1) {\n // Shows error message only in Development\n if (isDevMode()) {\n console.error(`\\`NgxSkeletonLoaderComponent\\` need to receive 'appearance' as: circle or line or empty string. Forcing default to \"''\".`);\n }\n this.appearance = '';\n }\n }\n ngOnChanges(changes) {\n // Avoiding multiple calls for the same input in case there's no changes in the fields\n // Checking if the fields that require validation are available and if they were changed\n // In case were not changed, we stop the function. Otherwise, `validateInputValues` will be called.\n if (['count', 'animation', 'appearance'].find(key => changes[key] && (changes[key].isFirstChange() || changes[key].previousValue === changes[key].currentValue))) {\n return;\n }\n this.validateInputValues();\n }\n ngAfterViewInit() {\n end('NgxSkeletonLoader:Rendered');\n }\n ngOnDestroy() {\n end('NgxSkeletonLoader:Loaded');\n }\n}\n/** @nocollapse */ /** @nocollapse */ NgxSkeletonLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderComponent, deps: [{ token: NGX_SKELETON_LOADER_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ /** @nocollapse */ NgxSkeletonLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.1\", type: NgxSkeletonLoaderComponent, selector: \"ngx-skeleton-loader\", inputs: { count: \"count\", loadingText: \"loadingText\", appearance: \"appearance\", animation: \"animation\", ariaLabel: \"ariaLabel\", theme: \"theme\" }, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\", styles: [\".skeleton-loader{box-sizing:border-box;overflow:hidden;position:relative;background:#eff1f6 no-repeat;border-radius:4px;width:100%;height:20px;display:inline-block;margin-bottom:10px;will-change:transform}.skeleton-loader:after,.skeleton-loader:before{box-sizing:border-box}.skeleton-loader.circle{width:40px;height:40px;margin:5px;border-radius:50%}.skeleton-loader.progress,.skeleton-loader.progress-dark{transform:translate(0)}.skeleton-loader.progress:after,.skeleton-loader.progress:before,.skeleton-loader.progress-dark:after,.skeleton-loader.progress-dark:before{box-sizing:border-box}.skeleton-loader.progress:before,.skeleton-loader.progress-dark:before{-webkit-animation:progress 2s ease-in-out infinite;animation:progress 2s ease-in-out infinite;background-size:200px 100%;position:absolute;z-index:1;top:0;left:0;width:200px;height:100%;content:\\\"\\\"}.skeleton-loader.progress:before{background-image:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.6),rgba(255,255,255,0))}.skeleton-loader.progress-dark:before{background-image:linear-gradient(90deg,transparent,rgba(0,0,0,.2),transparent)}.skeleton-loader.pulse{-webkit-animation:pulse 1.5s cubic-bezier(.4,0,.2,1) infinite;animation:pulse 1.5s cubic-bezier(.4,0,.2,1) infinite;-webkit-animation-delay:.5s;animation-delay:.5s}@media (prefers-reduced-motion: reduce){.skeleton-loader.pulse,.skeleton-loader.progress-dark,.skeleton-loader.progress{-webkit-animation:none;animation:none}.skeleton-loader.progress,.skeleton-loader.progress-dark{background-image:none}}@-webkit-keyframes progress{0%{transform:translate(-200px)}to{transform:translate(calc(200px + 100vw))}}@keyframes progress{0%{transform:translate(-200px)}to{transform:translate(calc(200px + 100vw))}}@-webkit-keyframes pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}\\n\"], directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-skeleton-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n\", styles: [\".skeleton-loader{box-sizing:border-box;overflow:hidden;position:relative;background:#eff1f6 no-repeat;border-radius:4px;width:100%;height:20px;display:inline-block;margin-bottom:10px;will-change:transform}.skeleton-loader:after,.skeleton-loader:before{box-sizing:border-box}.skeleton-loader.circle{width:40px;height:40px;margin:5px;border-radius:50%}.skeleton-loader.progress,.skeleton-loader.progress-dark{transform:translate(0)}.skeleton-loader.progress:after,.skeleton-loader.progress:before,.skeleton-loader.progress-dark:after,.skeleton-loader.progress-dark:before{box-sizing:border-box}.skeleton-loader.progress:before,.skeleton-loader.progress-dark:before{-webkit-animation:progress 2s ease-in-out infinite;animation:progress 2s ease-in-out infinite;background-size:200px 100%;position:absolute;z-index:1;top:0;left:0;width:200px;height:100%;content:\\\"\\\"}.skeleton-loader.progress:before{background-image:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.6),rgba(255,255,255,0))}.skeleton-loader.progress-dark:before{background-image:linear-gradient(90deg,transparent,rgba(0,0,0,.2),transparent)}.skeleton-loader.pulse{-webkit-animation:pulse 1.5s cubic-bezier(.4,0,.2,1) infinite;animation:pulse 1.5s cubic-bezier(.4,0,.2,1) infinite;-webkit-animation-delay:.5s;animation-delay:.5s}@media (prefers-reduced-motion: reduce){.skeleton-loader.pulse,.skeleton-loader.progress-dark,.skeleton-loader.progress{-webkit-animation:none;animation:none}.skeleton-loader.progress,.skeleton-loader.progress-dark{background-image:none}}@-webkit-keyframes progress{0%{transform:translate(-200px)}to{transform:translate(calc(200px + 100vw))}}@keyframes progress{0%{transform:translate(-200px)}to{transform:translate(calc(200px + 100vw))}}@-webkit-keyframes pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}\\n\"] }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [NGX_SKELETON_LOADER_CONFIG]\n }, {\n type: Optional\n }] }];\n }, propDecorators: { count: [{\n type: Input\n }], loadingText: [{\n type: Input\n }], appearance: [{\n type: Input\n }], animation: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], theme: [{\n type: Input\n }] } });\n\nclass NgxSkeletonLoaderModule {\n static forRoot(config) {\n return {\n ngModule: NgxSkeletonLoaderModule,\n providers: [{ provide: NGX_SKELETON_LOADER_CONFIG, useValue: config }],\n };\n }\n}\n/** @nocollapse */ /** @nocollapse */ NgxSkeletonLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ /** @nocollapse */ NgxSkeletonLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderModule, declarations: [NgxSkeletonLoaderComponent], imports: [CommonModule], exports: [NgxSkeletonLoaderComponent] });\n/** @nocollapse */ /** @nocollapse */ NgxSkeletonLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgxSkeletonLoaderModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [NgxSkeletonLoaderComponent],\n imports: [CommonModule],\n exports: [NgxSkeletonLoaderComponent],\n }]\n }] });\n\n/*\n * Public API Surface of ngx-skeleton-loader\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NGX_SKELETON_LOADER_CONFIG, NgxSkeletonLoaderComponent, NgxSkeletonLoaderModule };\n"]}