{"version":3,"sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/app.settings.model.ts","./src/app/app.settings.ts","./src/app/service/cart.service.ts","./src/app/service/encryption.service.ts","./src/app/service/general.service.ts","./src/app/theme/components/menu/menu.model.ts","./src/app/theme/components/menu/menu.ts","./src/app/theme/components/menu/menu.service.ts","./src/app/theme/pipes/pipes.module.ts","./src/app/theme/components/messages/messages.service.ts","./src/app/service/notification.service.ts","./src/app/theme/components/messages/messages.component.html","./src/app/theme/components/messages/messages.component.ts","./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.ts","./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.html","./src/app/theme/components/menu/vertical-menu/vertical-menu.component.ts","./src/app/theme/components/header/header.component.html","./src/app/theme/components/menu/vertical-menu/vertical-menu.component.html","./src/app/theme/components/header/header.component.ts","./src/app/theme/components/side-chat/side-chat.model.ts","./src/app/theme/components/side-chat/side-chat.service.ts","./src/app/theme/pipes/search/chat-person-search.pipe.ts","./src/app/theme/components/side-chat/side-chat.component.html","./src/app/theme/components/side-chat/side-chat.component.ts","./src/app/theme/components/breadcrumb/breadcrumb.component.html","./src/app/theme/components/breadcrumb/breadcrumb.component.ts","./src/app/theme/components/footer/footer.component.ts","./src/app/theme/components/footer/footer.component.html","./src/app/theme/components/back-top/back-top.component.ts","./src/app/theme/components/sidebar/sidebar.component.html","./src/app/theme/components/sidebar/sidebar.component.ts","./src/app/pages/pages.component.html","./src/app/pages/pages.component.ts","./src/app/pages/blank/blank.component.ts","./src/app/pages/search/search.component.ts","./src/app/pages/search/search.component.html","./src/app/pages/errors/not-found/not-found.component.ts","./src/app/pages/errors/not-found/not-found.component.html","./src/app/service/wishlist.service.ts","./src/app/page-layout/page-header/page-header.component.html","./src/app/page-layout/page-header/page-header.component.ts","./src/app/page-layout/page-footer/page-footer.component.ts","./src/app/page-layout/page-footer/page-footer.component.html","./src/app/page-layout/page-layout.component.ts","./src/app/page-layout/home/home.component.html","./src/app/page-layout/page-layout.component.html","./src/app/page-layout/home/home.component.ts","./src/app/page-layout/categories/categories.component.html","./src/app/page-layout/categories/categories.component.ts","./src/app/page-layout/customer-login/customer-login.component.html","./src/app/page-layout/customer-login/customer-login.component.ts","./src/app/page-layout/about-us/about-us.component.ts","./src/app/page-layout/about-us/about-us.component.html","./src/app/page-layout/contact-us/contact-us.component.html","./src/app/page-layout/contact-us/contact-us.component.ts","./src/app/page-layout/blog/blog.component.html","./src/app/page-layout/blog/blog.component.ts","./src/app/page-layout/cart/cart.component.html","./src/app/page-layout/cart/cart.component.ts","./src/app/page-layout/wishlist/wishlist.component.html","./src/app/page-layout/wishlist/wishlist.component.ts","./src/app/page-layout/add-address/add-address.component.html","./src/app/page-layout/add-address/add-address.component.ts","./src/app/page-layout/goals/goals.component.html","./src/app/page-layout/goals/goals.component.ts","./src/app/page-layout/farmer-produces/farmer-produces.component.html","./src/app/page-layout/farmer-produces/farmer-produces.component.ts","./src/app/Uvideosafe.ts","./src/app/page-layout/product-enquiry/product-enquiry.component.html","./src/app/page-layout/product-enquiry/product-enquiry.component.ts","./src/app/page-layout/my-orders/my-orders.component.html","./src/app/page-layout/my-orders/my-orders.component.ts","./src/app/page-layout/order-invoice/order-invoice.component.html","./src/app/page-layout/order-invoice/order-invoice.component.ts","./src/app/page-layout/my-enquiries/my-enquiries.component.html","./src/app/page-layout/my-enquiries/my-enquiries.component.ts","./src/app/page-layout/privacy-policy/privacy-policy.component.ts","./src/app/page-layout/popular-purchase/popular-purchase.component.html","./src/app/page-layout/privacy-policy/privacy-policy.component.html","./src/app/page-layout/popular-purchase/popular-purchase.component.ts","./src/app/page-layout/related-products/related-products.component.html","./src/app/page-layout/related-products/related-products.component.ts","./src/app/theme/pipes/search/safe-pipe.pipe.ts","./src/app/page-layout/product-information/product-information.component.html","./src/app/page-layout/product-information/product-information.component.ts","./src/app/page-layout/termsand-conditions/termsand-conditions.component.ts","./src/app/page-layout/customer-registration/customer-registration.component.html","./src/app/page-layout/termsand-conditions/termsand-conditions.component.html","./src/app/page-layout/customer-registration/customer-registration.component.ts","./src/app/app.routing.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","Settings","name","title","theme","AppSettings","settings","menu","menuType","showMenu","navbarIsFixed","footerIsFixed","sidebarIsFixed","showSideChat","sideChatIsHoverable","skin","_window","CartService","cartItemList","ordeDetails","relatedProductDetails","prodctList","orderList","relatedProdList","this","asObservable","product","push","next","products","getTotalPrice","grandTotal","map","a","MRp","index","splice","orders","productId","EncryptionService","encryptionPassword","data","undefined","trim","toString","GeneralService","http","categoryId","prodData","client","clientData","categoryIDarr","productArr","get","subscribe","HomeURL","Webservice","text","type","html","confirmButtonText","url","reject","urlname","err","PostParam","post","PostParam2","Menu","routerLink","href","icon","target","hasSubMenu","parentId","verticalMenuItems","horizontalMenuItems","MenuService","location","renderer2","router","translateService","nativeElement","createVerticalMenu","createHorizontalMenu","menu0","createElement","setAttribute","forEach","menuItem","subMenu","createVerticalMenuItem","appendChild","nav","ul","addClass","createHorizontalMenuItem","div","link","instant","span","menuText","createText","listen","navigate","setActiveLink","closeOtherSubMenus","caret","collapse","createSubMenu","li","menuItemId","parentElement","filter","item","elem","children","parentNode","i","length","child","nextSibling","removeClass","path","activeMenuItem","document","querySelector","activeLink","classList","contains","remove","parent","parentMenu","activeParentLink","newMenuItem","menu_wrapper","getElementById","firstChild","removeChild","createMenu","PipesModule","MessagesService","messages","time","files","size","value","class","meetings","day","month","color","NotificationService","window","Notification","requestPermission","permission","console","log","options","MessagesComponent","messagesService","notificationService","generalService","orderStatus","ordersList","showDetails","ordersList12","LoginDetails","JSON","parse","localStorage","getItem","getFiles","getMeetings","jQuery","on","setTimeout","closest","getAllAdminOrders","count","notificationCount","arr","TokenID","Token","UserId","Id","formData","FormData","append","stringify","PostData","todayDate","Date","order","OrderDate","toISOString","split","updateNotificationCount","clickedOrder","showNotificationDetails","HorizontalMenuComponent","appSettings","menuService","elementRef","events","event","scrollTo","getActiveLink","menuItems","tooltip","sanitize","sanitizeFn","content","VerticalMenuComponent","innerWidth","showActiveSubMenu","HeaderComponent","showHorizontalMenu","showInfoContent","getHorizontalMenuItems","add","closeSubMenus","transform","SideChat","image","author","authorStatus","date","side","getDate","getMonth","year","getFullYear","hour","getHours","minute","getMinutes","chats","talks","SideChatService","ChatPersonSearchPipe","args","searchText","RegExp","message","search","SideChatComponent","sideChatService","showHoverableChatItem","showChatWindow","newChatText","getChats","getTalk","shift","chat","interlocutor","unshift","$event","which","chatContainer","nodes","querySelectorAll","newChatTextHeight","scrollTop","scrollHeight","clientHeight","back","addChatItem","BreadcrumbComponent","activatedRoute","breadcrumbs","parseRoute","routerState","snapshot","root","pageTitle","breadcrumb","setTitle","node","urlSegments","pathFromRoot","concat","urlSegment","join","FooterComponent","BackTopComponent","position","showSpeed","moveSpeed","_onWindowScroll","animate","duration","el","_selector","scrollY","fadeIn","fadeOut","SidebarComponent","getVerticalMenuItems","sessionStorage","ids","newArr","mail","PagesComponent","userIdle","encryptionService","showSetting","menus","menuTypes","signinvalue","startWatching","onTimerStart","body","addEventListener","resetTimer","onTimeout","stopWatching","removeItem","ShowAlert","menuOption","menuTypeOption","_showMenu","showMenuStateChange","changeTheme","BlankComponent","SearchComponent","NotFoundComponent","searchResult","WishlistService","wishlistItem","BehaviorSubject","PageHeaderComponent","cartService","wishlistService","customerWishlistItems","currentCartItems","customerCartItems","Producttoggle","getCartItemsListbasedonUserId","getWishListItemsListbasedonUserId","GetGoals","GetCategoryforHeader","GetFarmingProduces","getProducts","res","cartItemsCount","wishlistItemsCount","onscroll","pageYOffset","sticky","header","offsetTop","UploadFile","Categories","catarr","carName","ngOnInit","A","CategoryName","str","setCategoryid","query","searchedProducts","prodName","prodarr","productname","setProducts","SpecialityId","logedinUser","removeAllcart","removeAllWishlistItems","userid","k","addtoCart","GetData","Goals","GoalName","FarmingProduces","SpecialityName","filterProducts","navigateToCategoryProducts","navigateToFarmingProducts","PageFooterComponent","open","PageLayoutComponent","HomeComponent","navigator","geolocation","getCurrentPosition","GetBannerImagesforHome","GetPopularCategoriesforHome","GetProductsforHome","Banners","Category","Products","navigateBasedOnCategoryId","CategoriesComponent","activeroute","selectedCategory","paramMap","replace","getCategoryid","GetCategoryforfiltercatidWhilecopyURL","CategoryId","getCategoryBasedonCategoryID","setItem","GetCategoryforsideBar","displayCards","CategoryData","catData","CategoryProducts","reload","navigateTobestSeller","CustomerLoginComponent","fb","cookieService","CartItems","passwordshow","encryptedData","logindetails","decrypt","form","group","email","controls","password","check","cookieEmailValue","cookiePWDValue","setValue","Remember","reset","values","valid","LoginType","FarmerName","x","ResetForm","Loginform","MobileNo","OTP","Pwd","Confirmpassword","$","modal","ev","checked","set","CheckBox","deleteAll","alert","SendOtpForMobile","randomnumber","Math","floor","random","msg","otp","confirmpassword","insertCartItems","m","String","onSubmit","RememberMe","ForgotPassword","CheckMobile","VerifyOtp","ChangePassword","AboutUsComponent","ContactUsComponent","EnquiryAry","spinner","ContactUsForm","Name","Mobile","Email","Message","sendsms","admin","TemplateId","MessageText","formdata","BlogComponent","sanitizer","showindividualImage","Blogdata","HomeUrl","GetBlogDetails","blogDetails","Description","decodeURIComponent","BlogName","CartComponent","toast","offerPrice","WishListitemmsforloginusers","seletedItemforWishlist","wishListItems","subTotal","plus","cartItems","changeQuantity","loginStatus","getCustomerAddress","GetAllOffers","addressDetails","addressId","totalPrice","Price","deliveryCharge","removeCartItems","ItemId","itemSize","Productid","Pack","severity","summary","life","detail","insertWishListItems","deleteCartfromTable","CartId","Address","addressDetails1","Area","sendsms2","val","OrderID","City","cartIndex","CartProducts","n","cancel","data1","OrderDetails","TransactionStatus","sendsmsToAdmin","sendsmsToAdmin1","sendsms1","d","getTime","CustomerID","AddressId","PaymentType","ProductId","Quantity","Size","TransactionID","GstPrice","OfferPrice","DeliveryCharge","TotalPrice","CreatedBy","Device","RedirectToPaymentGateway","sendMailToAdmin","pType","deleteFromCart","wishlist","offerDetails","offersdata","PromoCode","MaxAmount","ApplicableAmount","subTotaloff","totalPriceoff","amount","OfferType","Status","TaxnId","description","currency","key","payment_id","payment_capture","prefill","contact","handler","razorPayHandler","bind","Razorpay","response","razorpay_payment_id","InsertUSer","changeData","checkOfferisValidorNot","getPaymentType","RazorPayPayment","WishlistComponent","Wishlistitmesforloginusers","selectedItemforCart","Image","removeWishlistItems","deleteFromwishList","WishlistId","wishlistId","wishlistIndex","AddAddressComponent","insertingData","logindata","mobile","lt","coords","latitude","ln","longitude","lat","lng","center","zoom","initOverlays","infoWindow","google","maps","InfoWindow","getLocation","HNo","Landmark","State","Pincode","Section","Class","AddressType","Latitude","Longitude","ADDRESS1","Name1","mobile1","HNo1","Area1","Landmark1","City1","State1","Pincode1","Section1","Password","overlays","Marker","Polyline","geodesic","strokeColor","strokeOpacity","strokeWeight","dialogVisible","selectedPosition","latLng","Polygon","paths","fillColor","fillOpacity","overlay","getTitle","setContent","setCenter","getPosition","markerTitle","draggable","long","geocoder","Geocoder","request","LatLng","geocode","results","status","GeocoderStatus","OK","result","formatted_address","address_components","find","types","long_name","handleMapClick","handleOverlayClick","handleDragEnd","GoalsComponent","selectedGoal","goalId","getGoalBasedProductsBasedongoalId","GetGoalforsideBar","GoalProducts","obj","TopicName","clearCategoryid","FarmerProducesComponent","selectedFarmerProducts","GetFarmerProducesMasterfilterspecialityidWhilecopyURL","getSpecialProductsBasedonSpecialityId","GetSpecialforsideBar","SpecialitieData","Specialities","FarmerProducts","UVideoSafe","bypassSecurityTrustResourceUrl","Pack2","Price2","Pack3","Price3","Pack4","Price4","ProductEnquiryComponent","Cartimesforloginusers","ProductName","GetProductDetailsbasedonProductName","currentPrice","Price1","currntPacksize","Pack1","productDetails","videoUrl","VideoLink","ProductInfo","recomendedCrops","RecommendedCrops","benefits","Benefits","dosage","Dosage","clearFields","ingrediants","price","whatsAppProductURL","Customerid","TotalProducts","TotalAmount","AdminAmount","CustomerName","Comments","catName","LandMark","navigatingtoFarmerProduces","sendWhatsapp","selectPrice","MyOrdersComponent","stars","getCustomerOrderDetails","details","OrderedProductList","orderid","orderDetails","star","selectedValue","Product","Comment","CustomerId","Starscount","filtered","prList","toLowerCase","indexOf","filterGroupsSingleforGoal","rattingSubmit","OrderInvoiceComponent","orderNo","getOrdersbasedOnOrderDetails","orderDate","CreatedDate","billNo","reduce","total","offerAmount","printContents","popupWin","innerHTML","write","close","print","MyEnquiriesComponent","getCustomerEnquiryDetails","EnquiryProductList","PrivacyPolicyComponent","PopularPurchaseComponent","someEvent","GetPopularPurchaseProducts","PopularProducts","RelatedProductsComponent","cart","getrelatedProdNumber","GetrelatedProducts","relatedProducts","SafePipe","GstAmount2","GstAmount3","GstAmount4","ProductInformationComponent","addNew","video","reviewandrating","setRelatedproductId","gstAmount","GstAmount1","Ingredients","GetProductimages","imageUrl","subTotal1","scrollIntoView","ReviewsData","logedin","object","Pid","ProductImages","productFrameImage","UImage","imgPath","navigatingtoCategory","rating","Addtocart","navigatingToPopularProd","GST","TermsandConditionsComponent","CustomerRegistrationComponent","passwordKey","passwordConfirmationKey","confirmpasswordshow","confirmPassword","validator","passwordConfirmation","setErrors","mismatchedPasswords","navigateByUrl","Sendsms","onSubmitLogin","regxml","mob","checkNo","SignUp","CheckMobileNo","CheckOtp","routes","redirectTo","pathMatch","component","loadChildren","DashboardModule","DynamicMenuModule","AdminModule","LoginModule","RegisterModule","AppRoutingModule","useHash","AppComponent","translate","addLangs","setDefaultLang","use","evt","AppModule","provide","useValue","suppressScrollX","idle","timeout","ping","apiKey","useFactory","loader","httpClient","deps","bootstrapModule","catch","error"],"mappings":"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","file":"main.e4e22172680584563524.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 8255;\nmodule.exports = webpackEmptyAsyncContext;","export class Settings {\r\n constructor(public name: string,\r\n public title: string,\r\n public theme:{\r\n menu: string,\r\n menuType: string,\r\n showMenu: boolean,\r\n navbarIsFixed: boolean,\r\n footerIsFixed: boolean,\r\n sidebarIsFixed: boolean,\r\n showSideChat: boolean,\r\n sideChatIsHoverable: boolean,\r\n skin:string\r\n }) { }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Settings } from './app.settings.model';\r\n\r\n@Injectable()\r\nexport class AppSettings {\r\n public settings = new Settings(\r\n 'StartNG',\r\n 'Angular Admin Template with Bootstrap 4',\r\n {\r\n menu: 'vertical', //horizontal , vertical\r\n menuType: 'default', //default, compact, mini\r\n showMenu: true,\r\n navbarIsFixed: true,\r\n footerIsFixed: false,\r\n sidebarIsFixed: true,\r\n showSideChat: false,\r\n sideChatIsHoverable: true,\r\n skin:'combined' //light , dark, blue, green, combined, purple, orange, brown, grey, pink \r\n }\r\n )\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport Swal from 'sweetalert2';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\n\r\n\r\n\r\nfunction _window(): any {\r\n return _window;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CartService {\r\n\r\n get nativeWindow(): any {\r\n return _window();\r\n }\r\n\r\n public cartItemList: any = []\r\n public ordeDetails: any = []\r\n public relatedProductDetails:any=[]\r\n public prodctList = new BehaviorSubject([]);\r\n public orderList = new BehaviorSubject([]);\r\n public relatedProdList = new BehaviorSubject([]);\r\n\r\n constructor() { }\r\n\r\n getProducts() {\r\n return this.prodctList.asObservable();\r\n }\r\n setProducts(product: any) {\r\n this.cartItemList.push(...product);\r\n this.prodctList.next(product)\r\n }\r\n addtoCart(products: any) {\r\n debugger\r\n this.cartItemList.push(products)\r\n this.prodctList.next(this.cartItemList);\r\n this.getTotalPrice();\r\n }\r\n getTotalPrice() {\r\n let grandTotal = 0;\r\n this.cartItemList.map((a: any) => {\r\n grandTotal += a.MRp * 1;\r\n })\r\n return grandTotal;\r\n }\r\n\r\n removeCartItems(index: any) { \r\n this.cartItemList.splice(index, 1)\r\n this.prodctList.next(this.cartItemList);\r\n }\r\n\r\n removeAllcart() {\r\n this.cartItemList = [];\r\n this.prodctList.next(this.cartItemList);\r\n }\r\n\r\n showOrderdetails(orders: any) { \r\n this.ordeDetails = []\r\n this.ordeDetails.push(orders)\r\n this.orderList.next(this.ordeDetails)\r\n }\r\n getOrderNumber() {\r\n return this.orderList.asObservable();\r\n }\r\n\r\n setRelatedproductId(productId: any) {\r\n this.relatedProductDetails = []\r\n this.relatedProductDetails.push(productId)\r\n this.relatedProdList.next(this.relatedProductDetails)\r\n }\r\n getrelatedProdNumber() {\r\n return this.relatedProdList.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EncryptionService {\r\n encryptionPassword: string = \"Gagri^2020\";\r\n\r\n encrypt(data) {\r\n if (data != null || data != undefined) {\r\n var conversionEncryptOutput = CryptoJS.AES.encrypt(data.trim(), this.encryptionPassword.trim()).toString();\r\n return conversionEncryptOutput;\r\n }\r\n }\r\n\r\n decrypt(data) {\r\n if (data != null || data != undefined) {\r\n var conversionDecryptOutput = CryptoJS.AES.decrypt(data.trim(), this.encryptionPassword.trim()).toString(CryptoJS.enc.Utf8);\r\n return conversionDecryptOutput;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport Swal from 'sweetalert2';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n HomeURL: any;\r\n url: any;\r\n urlname: any;\r\n categoryId: any = []\r\n prodData:any=[]\r\n private client = new BehaviorSubject('');\r\n clientData = this.client.asObservable();\r\n public categoryIDarr = new BehaviorSubject([]);\r\n public productArr = new BehaviorSubject([]);\r\n\r\n constructor(public http: HttpClient) {\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n getClientData(data: any) { \r\n this.client.next(data);\r\n }\r\n /*\r\n Below method is for getting category id from throug services\r\n */\r\n getCategoryid() {\r\n return this.categoryIDarr.asObservable();\r\n }\r\n /*\r\n Below method is for setting category id from throug services\r\n */\r\n setCategoryid(data: any) { \r\n this.categoryId=[]\r\n this.categoryId.push(...data)\r\n this.categoryIDarr.next(this.categoryId)\r\n }\r\n /**\r\n * clear category Id\r\n */\r\n clearCategoryid() {\r\n this.categoryId = []\r\n this.categoryIDarr.next(this.categoryId)\r\n }\r\n\r\n /*\r\n Below method is for getting Products from throug services\r\n */\r\n getProducts() { \r\n return this.productArr.asObservable();\r\n }\r\n\r\n /*\r\n Below method is for setting Products from throug services\r\n */\r\n setProducts(data: any) { \r\n this.prodData = []\r\n this.prodData.push(...data)\r\n this.productArr.next(this.prodData)\r\n }\r\n\r\n\r\n ShowAlert(title, text, type) {\r\n Swal.fire({\r\n title: title,\r\n html: text,\r\n //icon: type,\r\n confirmButtonText: 'Ok'\r\n })\r\n }\r\n ShowAlert1(title, text, type) {\r\n Swal.fire({\r\n title: title,\r\n html: text,\r\n //icon: type,\r\n confirmButtonText: 'Print',\r\n //confirmButtonText1: 'Cancel'\r\n })\r\n }\r\n //Global Method to retrieve data \r\n GetData(url) {\r\n return new Promise((resolve, reject) => {\r\n \r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n \r\n this.urlname = data.Webservice;\r\n this.url = this.urlname + url\r\n this.http.get(this.url).subscribe(data => {\r\n\r\n resolve(data)\r\n }, err => {\r\n reject(err)\r\n })\r\n }, err => {\r\n reject(err)\r\n })\r\n });\r\n }\r\n PostData(url, PostParam) {\r\n \r\n return new Promise((resolve, reject) => {\r\n \r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n \r\n this.urlname = data.Webservice;\r\n url = data.Webservice + url\r\n this.http.post(url, PostParam).subscribe(data => {\r\n \r\n resolve(data)\r\n }, err => {\r\n reject(err)\r\n })\r\n }, err => {\r\n reject(err)\r\n })\r\n });\r\n }\r\n PostData2(url, PostParam, PostParam2) {\r\n ;\r\n return new Promise((resolve, reject) => {\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n url = data.Webservice + url\r\n this.http.post(url, PostParam, PostParam2).subscribe(data => {\r\n resolve(data)\r\n }, err => {\r\n reject(err)\r\n })\r\n }, err => {\r\n reject(err)\r\n })\r\n });\r\n }\r\n}\r\n","export class Menu {\r\n constructor(public id: number,\r\n public title: string,\r\n public routerLink: string,\r\n public href: string,\r\n public icon: string,\r\n public target: string,\r\n public hasSubMenu: boolean,\r\n public parentId: number) { }\r\n} ","import { Menu } from './menu.model';\r\n \r\nexport const verticalMenuItems = [ \r\n new Menu(1, 'Dashboard', '/Dashboard', null, 'table', null, false, 0),\r\n new Menu(2, 'Products', 'Admin/Products', null, 'cube', null, false, 0),\r\n new Menu(3, 'Orders', 'Admin/Orders', null, 'address-card-o', null, false,0),\r\n new Menu(4, 'Offers', 'Admin/Offers', null, 'percent', null, false, 0),\r\n new Menu(5, 'Customer/Employee List', 'Admin/CustomerList', null, 'user-md', null, false, 0),\r\n new Menu(6, 'Blogs', 'Admin/Blogs', null, 'newspaper-o', null, false, 0),\r\n new Menu(7, 'Master Tables', '', null, 'table', null, true, 0),\r\n new Menu(8, 'Category Master', 'Admin/CategoryMaster', null, 'table', null, false, 7),\r\n new Menu(9, 'Goal Master', 'Admin/GoalMaster', null, 'table', null, false, 7),\r\n new Menu(10, 'Farming Produces Master', 'Admin/FarmingProduceMaster', null, 'table', null, false, 7),\r\n new Menu(11, 'Enquiries', 'Admin/EnquiryDetails', null, 'volume-control-phone', null, false, 0),\r\n new Menu(12, 'Sales Report', 'Admin/SalesReport', null, 'money', null, false, 0),\r\n new Menu(13, 'Farming Produces', 'Admin/FoarmingProduces', null, 'cube', null, false, 0),\r\n new Menu(14, 'Notifications', 'Admin/Notifications', null, 'cube', null, false, 0),\r\n new Menu(15, 'Courier Service', 'Admin/Courierservice', null, 'address-card-o', null, false, 7),\r\n new Menu(16, 'Referral Amount', 'Admin/Referrelamount', null, 'money', null, false, 0),\r\n \r\n //new Menu(5, 'Notifications', 'Admin/Notifications', null, 'laptop', null, false, 0),\r\n \r\n\r\n //new Menu (2, 'ADMIN_NAV.MEMBERSHIP', '/membership', null, 'users', null, false, 0), \r\n //new Menu (3, 'ADMIN_NAV.UI_FEATURES', null, null, 'laptop', null, true, 0), \r\n //new Menu (4, 'Buttons', '/ui/buttons', null, 'keyboard-o', null, false, 3), \r\n //new Menu (5, 'Cards', '/ui/cards', null, 'address-card-o', null, false, 3), \r\n //new Menu (6, 'Components', '/ui/components', null, 'creative-commons', null, false, 3),\r\n //new Menu (7, 'Icons', '/ui/icons', null, 'font-awesome', null, false, 3), \r\n //new Menu (8, 'List Group', '/ui/list-group', null, 'th-list', null, false, 3), \r\n //new Menu (9, 'Media Objects', '/ui/media-objects', null, 'object-group', null, false, 3), \r\n //new Menu (10, 'Tabs & Accordions', '/ui/tabs-accordions', null, 'server', null, false, 3),\r\n //new Menu (11, 'Typography', '/ui/typography', null, 'font', null, false, 3),\r\n //new Menu (15, 'ADMIN_NAV.DYNAMIC_MENU', '/dynamic-menu', null, 'list-ul', null, false, 0), \r\n //new Menu (16, 'ADMIN_NAV.MAILBOX', '/mailbox', null, 'envelope-o', null, false, 0),\r\n //new Menu (20, 'ADMIN_NAV.FORM_ELEMENTS', null, null, 'pencil-square-o', null, true, 0), \r\n //new Menu (21, 'Form Controls', '/form-elements/controls', null, 'check-square-o', null, false, 20),\r\n //new Menu (22, 'Form Layouts', '/form-elements/layouts', null, 'th-large', null, false, 20),\r\n //new Menu (24, 'Form Wizard', '/form-elements/wizard', null, 'magic', null, false, 20),\r\n //new Menu (25, 'Editor', '/form-elements/editor', null, 'pencil', null, false, 20),\r\n //new Menu (26, 'ADMIN_NAV.TABLES', null, null, 'table', null, true, 0),\r\n //new Menu (27, 'Basic Tables', '/tables/basic-tables', null, 'th', null, false, 26), \r\n //new Menu (28, 'Dynamic Tables', null, null, 'th-large', null, true, 26), \r\n //new Menu (30, 'NGX DataTable', '/tables/dynamic-tables/ngx', null, 'caret-right', null, false, 28), \r\n //new Menu (31, 'ADMIN_NAV.TOOLS', null, null, 'wrench', null, true, 0),\r\n //new Menu (32, 'Drag & Drop', '/tools/drag-drop', null, 'hand-paper-o', null, false, 31), \r\n //new Menu (33, 'Resizable', '/tools/resizable', null, 'expand', null, false, 31), \r\n //new Menu (34, 'Toaster', '/tools/toaster', null, 'bell-o', null, false, 31), \r\n //new Menu (40, 'ADMIN_NAV.PAGES', null, null, 'file-text-o', null, true, 0),\r\n //new Menu (43, 'LOGIN', '/login', null, 'sign-in', null, false, 40), \r\n //new Menu (44, 'REGISTER', '/register', null, 'registered', null, false, 40),\r\n //new Menu (45, 'ADMIN_NAV.BLANK', '/blank', null, 'file-o', null, false, 40),\r\n //new Menu (46, 'ADMIN_NAV.ERROR', '/pagenotfound', null, 'exclamation-circle', null, false, 40),\r\n //new Menu (47, 'Profile', null, null, 'user', null, true, 40),\r\n //new Menu (48, 'Projects', '/profile/projects', null, 'file-o', null, false, 47), \r\n //new Menu (49, 'User Info', '/profile/user-info', null, 'address-card-o', null, false, 47),\r\n //new Menu (50, 'ADMIN_NAV.CALENDAR', '/calendar', null, 'calendar', null, false, 0),\r\n //new Menu (66, 'ADMIN_NAV.MAPS', null, null, 'globe', null, true, 0),\r\n //new Menu (67, 'Google Maps', '/maps/googlemaps', null, 'map-marker', null, false, 66),\r\n //new Menu (68, 'Leaflet Maps', '/maps/leafletmaps', null, 'map-o', null, false, 66),\r\n //new Menu (70, 'ADMIN_NAV.CHARTS', null, null, 'area-chart', null, true, 0),\r\n //new Menu (71, 'Bar Charts', '/charts/bar', null, 'bar-chart', null, false, 70),\r\n //new Menu (72, 'Pie Charts', '/charts/pie', null, 'pie-chart', null, false, 70),\r\n //new Menu (73, 'Line Charts', '/charts/line', null, 'line-chart', null, false, 70),\r\n //new Menu (74, 'Bubble Charts', '/charts/bubble', null, 'comment-o', null, false, 70), \r\n //new Menu (140, 'Level 1', null, null, 'folder-open-o', null, true, 0),\r\n //new Menu (141, 'Level 2', null, null, 'folder-open-o', null, true, 140),\r\n //new Menu (142, 'Level 3', null, null, 'folder-open-o', null, true, 141),\r\n //new Menu (143, 'Level 4', null, null, 'folder-open-o', null, true, 142),\r\n //new Menu (144, 'Level 5', null, null, 'folder-o', null, false, 143),\r\n //new Menu (200, 'ADMIN_NAV.EXTERNAL_LINK', null, 'http://themeseason.com', 'external-link', '_blank', false, 0)\r\n]\r\n\r\nexport const horizontalMenuItems = [ \r\n //new Menu (1, 'ADMIN_NAV.DASHBOARD', '/', null, 'tachometer', null, false, 0),\r\n //new Menu (2, 'ADMIN_NAV.MEMBERSHIP', '/membership', null, 'users', null, false, 0), \r\n //new Menu (3, 'ADMIN_NAV.UI_FEATURES', null, null, 'laptop', null, true, 0), \r\n //new Menu (4, 'Buttons', '/ui/buttons', null, 'keyboard-o', null, false, 3), \r\n //new Menu (5, 'Cards', '/ui/cards', null, 'address-card-o', null, false, 3), \r\n //new Menu (6, 'Components', '/ui/components', null, 'creative-commons', null, false, 3),\r\n //new Menu (7, 'Icons', '/ui/icons', null, 'font-awesome', null, false, 3), \r\n //new Menu (8, 'List Group', '/ui/list-group', null, 'th-list', null, false, 3), \r\n //new Menu (9, 'Media Objects', '/ui/media-objects', null, 'object-group', null, false, 3), \r\n //new Menu (10, 'Tabs & Accordions', '/ui/tabs-accordions', null, 'server', null, false, 3),\r\n //new Menu (11, 'Typography', '/ui/typography', null, 'font', null, false, 3),\r\n //new Menu (31, 'ADMIN_NAV.TOOLS', null, null, 'wrench', null, true, 3),\r\n //new Menu (32, 'Drag & Drop', '/tools/drag-drop', null, 'hand-paper-o', null, false, 31), \r\n //new Menu (33, 'Resizable', '/tools/resizable', null, 'expand', null, false, 31), \r\n //new Menu (34, 'Toaster', '/tools/toaster', null, 'bell-o', null, false, 31), \r\n //new Menu (20, 'ADMIN_NAV.FORM_ELEMENTS', null, null, 'pencil-square-o', null, true, 0), \r\n //new Menu (21, 'Form Controls', '/form-elements/controls', null, 'check-square-o', null, false, 20),\r\n //new Menu (22, 'Form Layouts', '/form-elements/layouts', null, 'th-large', null, false, 20),\r\n //new Menu (24, 'Form Wizard', '/form-elements/wizard', null, 'magic', null, false, 20),\r\n //new Menu (25, 'Editor', '/form-elements/editor', null, 'pencil', null, false, 20),\r\n //new Menu (26, 'ADMIN_NAV.TABLES', null, null, 'table', null, true, 20),\r\n //new Menu (27, 'Basic Tables', '/tables/basic-tables', null, 'th', null, false, 26), \r\n //new Menu (28, 'Dynamic Tables', null, null, 'th-large', null, true, 26), \r\n //new Menu (30, 'NGX DataTable', '/tables/dynamic-tables/ngx', null, 'caret-right', null, false, 28), \r\n //new Menu (40, 'ADMIN_NAV.PAGES', null, null, 'file-text-o', null, true, 0),\r\n //new Menu (15, 'ADMIN_NAV.DYNAMIC_MENU', '/dynamic-menu', null, 'list-ul', null, false, 40), \r\n //new Menu (43, 'LOGIN', '/login', null, 'sign-in', null, false, 40), \r\n //new Menu (44, 'REGISTER', '/register', null, 'registered', null, false, 40),\r\n //new Menu (45, 'ADMIN_NAV.BLANK', '/blank', null, 'file-o', null, false, 40),\r\n //new Menu (46, 'ADMIN_NAV.ERROR', '/pagenotfound', null, 'exclamation-circle', null, false, 40),\r\n //new Menu (47, 'Profile', null, null, 'user', null, true, 40),\r\n //new Menu (48, 'Projects', '/profile/projects', null, 'file-o', null, false, 47), \r\n //new Menu (49, 'User Info', '/profile/user-info', null, 'address-card-o', null, false, 47),\r\n //new Menu (50, 'ADMIN_NAV.CALENDAR', '/calendar', null, 'calendar', null, false, 40),\r\n //new Menu (16, 'ADMIN_NAV.MAILBOX', '/mailbox', null, 'envelope-o', null, false, 40), \r\n //new Menu (200, 'ADMIN_NAV.EXTERNAL_LINK', null, 'http://themeseason.com', 'external-link', '_blank', false, 40),\r\n //new Menu (66, 'ADMIN_NAV.MAPS', null, null, 'globe', null, true, 0),\r\n //new Menu (67, 'Google Maps', '/maps/googlemaps', null, 'map-marker', null, false, 66),\r\n //new Menu (68, 'Leaflet Maps', '/maps/leafletmaps', null, 'map-o', null, false, 66),\r\n //new Menu (70, 'ADMIN_NAV.CHARTS', null, null, 'area-chart', null, true, 0),\r\n //new Menu (71, 'Bar Charts', '/charts/bar', null, 'bar-chart', null, false, 70),\r\n //new Menu (72, 'Pie Charts', '/charts/pie', null, 'pie-chart', null, false, 70),\r\n //new Menu (73, 'Line Charts', '/charts/line', null, 'line-chart', null, false, 70),\r\n //new Menu (74, 'Bubble Charts', '/charts/bubble', null, 'comment-o', null, false, 70)\r\n]\r\n","import { Injectable, Renderer2 } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { Menu } from './menu.model';\r\nimport { verticalMenuItems } from './menu';\r\nimport { horizontalMenuItems } from './menu';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n\r\n constructor(private location:Location, \r\n private renderer2:Renderer2,\r\n private router:Router,\r\n public translateService: TranslateService){ } \r\n\r\n\r\n public getVerticalMenuItems():Array {\r\n return verticalMenuItems;\r\n }\r\n\r\n public getHorizontalMenuItems():Array {\r\n return horizontalMenuItems;\r\n }\r\n\r\n public createMenu(menu:Array, nativeElement, type){ \r\n if(type=='vertical'){\r\n this.createVerticalMenu(menu, nativeElement);\r\n }\r\n if(type=='horizontal'){\r\n this.createHorizontalMenu(menu, nativeElement);\r\n }\r\n }\r\n\r\n public createVerticalMenu(menu:Array, nativeElement){ \r\n let menu0 = this.renderer2.createElement('div');\r\n this.renderer2.setAttribute(menu0, 'id', 'menu0');\r\n menu.forEach((menuItem) => {\r\n if(menuItem.parentId == 0){\r\n let subMenu = this.createVerticalMenuItem(menu, menuItem);\r\n this.renderer2.appendChild(menu0, subMenu);\r\n }\r\n });\r\n this.renderer2.appendChild(nativeElement, menu0); \r\n }\r\n\r\n public createHorizontalMenu(menu:Array, nativeElement){\r\n let nav = this.renderer2.createElement('div');\r\n this.renderer2.setAttribute(nav, 'id', 'navigation');\r\n let ul = this.renderer2.createElement('ul');\r\n this.renderer2.addClass(ul, 'menu');\r\n this.renderer2.appendChild(nav, ul);\r\n menu.forEach((menuItem) => {\r\n if(menuItem.parentId == 0){\r\n let subMenu = this.createHorizontalMenuItem(menu, menuItem);\r\n this.renderer2.appendChild(ul, subMenu);\r\n }\r\n });\r\n this.renderer2.appendChild(nativeElement, nav); \r\n }\r\n\r\n public createVerticalMenuItem(menu:Array, menuItem){\r\n let div = this.renderer2.createElement('div');\r\n this.renderer2.addClass(div, 'card'); \r\n this.renderer2.setAttribute(div, 'id', 'menu'+menuItem.id);\r\n let link = this.renderer2.createElement('a');\r\n this.renderer2.addClass(link, 'menu-item-link');\r\n this.renderer2.setAttribute(link, 'data-toggle', 'tooltip');\r\n this.renderer2.setAttribute(link, 'data-placement', 'right');\r\n this.renderer2.setAttribute(link, 'data-animation', 'false');\r\n this.renderer2.setAttribute(link, 'data-container', '.vertical-menu-tooltip-place'); \r\n this.renderer2.setAttribute(link, 'data-original-title', this.translateService.instant(menuItem.title));\r\n let icon = this.renderer2.createElement('i');\r\n this.renderer2.addClass(icon, 'fa');\r\n this.renderer2.addClass(icon, 'fa-'+menuItem.icon);\r\n this.renderer2.appendChild(link, icon);\r\n let span = this.renderer2.createElement('span');\r\n this.renderer2.addClass(span, 'menu-title');\r\n this.renderer2.appendChild(link, span);\r\n let menuText = this.renderer2.createText(this.translateService.instant(menuItem.title));\r\n this.renderer2.appendChild(span, menuText);\r\n this.renderer2.setAttribute(link, 'id', 'link'+menuItem.id);\r\n this.renderer2.addClass(link, 'transition');\r\n this.renderer2.appendChild(div, link);\r\n if(menuItem.routerLink){ \r\n this.renderer2.listen(link, \"click\", () => { \r\n this.router.navigate([menuItem.routerLink]);\r\n this.setActiveLink(menu,link);\r\n this.closeOtherSubMenus(div);\r\n });\r\n }\r\n if(menuItem.href){\r\n this.renderer2.setAttribute(link, 'href', menuItem.href);\r\n }\r\n if(menuItem.target){\r\n this.renderer2.setAttribute(link, 'target', menuItem.target);\r\n }\r\n if(menuItem.hasSubMenu){\r\n this.renderer2.addClass(link, 'collapsed'); \r\n let caret = this.renderer2.createElement('b');\r\n this.renderer2.addClass(caret, 'fa');\r\n this.renderer2.addClass(caret, 'fa-angle-up');\r\n this.renderer2.appendChild(link, caret);\r\n this.renderer2.setAttribute(link, 'data-toggle', 'collapse'); \r\n this.renderer2.setAttribute(link, 'href', '#collapse'+menuItem.id);\r\n let collapse = this.renderer2.createElement('div');\r\n this.renderer2.setAttribute(collapse, 'id', 'collapse'+menuItem.id);\r\n this.renderer2.setAttribute(collapse, 'data-parent', '#menu'+menuItem.parentId);\r\n this.renderer2.addClass(collapse, 'collapse');\r\n this.renderer2.appendChild(div, collapse); \r\n this.createSubMenu(menu, menuItem.id, collapse, 'vertical');\r\n }\r\n return div;\r\n }\r\n\r\n public createHorizontalMenuItem(menu:Array, menuItem){\r\n let li = this.renderer2.createElement('li');\r\n this.renderer2.addClass(li, 'menu-item');\r\n let link = this.renderer2.createElement('a');\r\n this.renderer2.addClass(link, 'menu-item-link');\r\n this.renderer2.setAttribute(link, 'data-toggle', 'tooltip');\r\n this.renderer2.setAttribute(link, 'data-placement', 'top');\r\n this.renderer2.setAttribute(link, 'data-animation', 'false');\r\n this.renderer2.setAttribute(link, 'data-container', '.horizontal-menu-tooltip-place'); \r\n this.renderer2.setAttribute(link, 'data-original-title', this.translateService.instant(menuItem.title));\r\n let icon = this.renderer2.createElement('i');\r\n this.renderer2.addClass(icon, 'fa');\r\n this.renderer2.addClass(icon, 'fa-'+menuItem.icon);\r\n this.renderer2.appendChild(link, icon);\r\n let span = this.renderer2.createElement('span');\r\n this.renderer2.addClass(span, 'menu-title');\r\n this.renderer2.appendChild(link, span);\r\n let menuText = this.renderer2.createText(this.translateService.instant(menuItem.title));\r\n this.renderer2.appendChild(span, menuText);\r\n this.renderer2.appendChild(li, link);\r\n this.renderer2.setAttribute(link, 'id', 'link'+menuItem.id);\r\n this.renderer2.addClass(link, 'transition');\r\n if(menuItem.routerLink){ \r\n this.renderer2.listen(link, \"click\", () => { \r\n this.router.navigate([menuItem.routerLink]);\r\n this.setActiveLink(menu, link);\r\n });\r\n }\r\n if(menuItem.href){\r\n this.renderer2.setAttribute(link, 'href', menuItem.href);\r\n }\r\n if(menuItem.target){\r\n this.renderer2.setAttribute(link, 'target', menuItem.target);\r\n }\r\n if(menuItem.hasSubMenu){\r\n this.renderer2.addClass(li, 'menu-item-has-children');\r\n let subMenu = this.renderer2.createElement('ul');\r\n this.renderer2.addClass(subMenu, 'sub-menu');\r\n this.renderer2.appendChild(li, subMenu);\r\n this.createSubMenu(menu, menuItem.id, subMenu, 'horizontal');\r\n }\r\n return li;\r\n }\r\n\r\n private createSubMenu(menu:Array, menuItemId, parentElement, type){\r\n let menus = menu.filter(item => item.parentId === menuItemId);\r\n menus.forEach((menuItem) => {\r\n let subMenu = null;\r\n if(type=='vertical'){\r\n subMenu = this.createVerticalMenuItem(menu, menuItem);\r\n }\r\n if(type=='horizontal'){\r\n subMenu = this.createHorizontalMenuItem(menu, menuItem);\r\n } \r\n this.renderer2.appendChild(parentElement, subMenu);\r\n });\r\n } \r\n\r\n private closeOtherSubMenus(elem){\r\n let children = (this.renderer2.parentNode(elem)).children;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = this.renderer2.nextSibling(children[i].children[0]);\r\n if(child){\r\n this.renderer2.addClass(children[i].children[0], 'collapsed'); \r\n this.renderer2.removeClass(child, 'show'); \r\n }\r\n }\r\n }\r\n\r\n public getActiveLink(menu:Array){\r\n let url = this.location.path();\r\n let routerLink = (url) ? url : '/'; // url.substring(1, url.length);\r\n let activeMenuItem = menu.filter(item => item.routerLink === routerLink);\r\n if(activeMenuItem[0]){\r\n let activeLink = document.querySelector(\"#link\"+activeMenuItem[0].id);\r\n return activeLink;\r\n }\r\n return false;\r\n }\r\n\r\n public setActiveLink(menu:Array, link){\r\n if(link){\r\n menu.forEach((menuItem) => {\r\n let activeLink = document.querySelector(\"#link\"+menuItem.id);\r\n if(activeLink){\r\n if(activeLink.classList.contains('active-link')){\r\n activeLink.classList.remove('active-link');\r\n }\r\n } \r\n });\r\n this.renderer2.addClass(link, 'active-link'); \r\n } \r\n } \r\n\r\n public showActiveSubMenu(menu:Array){\r\n let url = this.location.path();\r\n let routerLink = url; //url.substring(1, url.length);\r\n let activeMenuItem = menu.filter(item => item.routerLink === routerLink);\r\n if(activeMenuItem[0]){\r\n let activeLink = document.querySelector(\"#link\"+activeMenuItem[0].id); \r\n let parent = this.renderer2.parentNode(activeLink);\r\n \r\n while (this.renderer2.parentNode(parent)){ \r\n parent = this.renderer2.parentNode(parent); \r\n if(parent.classList.contains('collapse')){\r\n let parentMenu = menu.filter(item => item.id === activeMenuItem[0].parentId); \r\n let activeParentLink = document.querySelector(\"#link\"+parentMenu[0].id);\r\n this.renderer2.removeClass(activeParentLink, 'collapsed');\r\n this.renderer2.addClass(parent, 'show'); \r\n }\r\n if(parent.classList.contains('menu-wrapper')){\r\n break;\r\n }\r\n }\r\n } \r\n }\r\n\r\n public addNewMenuItem(menu:Array, newMenuItem, type){\r\n menu.push(newMenuItem);\r\n if(newMenuItem.parentId != 0){\r\n let parentMenu = menu.filter(item => item.id === newMenuItem.parentId);\r\n if(parentMenu.length){\r\n if(!parentMenu[0].hasSubMenu){\r\n parentMenu[0].hasSubMenu = true;\r\n // parentMenu[0].routerLink = null;\r\n } \r\n } \r\n }\r\n let menu_wrapper = null;\r\n if(type=='vertical'){\r\n menu_wrapper = document.getElementById('vertical-menu');\r\n }\r\n if(type=='horizontal'){\r\n menu_wrapper = document.getElementById('horizontal-menu');\r\n }\r\n while (menu_wrapper.firstChild) {\r\n menu_wrapper.removeChild(menu_wrapper.firstChild);\r\n } \r\n this.createMenu(menu, menu_wrapper, type);\r\n } \r\n \r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ProfilePicturePipe } from './profilePicture/profilePicture.pipe';\r\nimport { ChatPersonSearchPipe } from './search/chat-person-search.pipe';\r\nimport { UserSearchPipe } from './search/user-search.pipe';\r\nimport { TruncatePipe } from './truncate/truncate.pipe';\r\nimport { MailSearchPipe } from './search/mail-search.pipe';\r\nimport { SafePipe } from './search/safe-pipe.pipe';\r\n@NgModule({\r\n imports: [ \r\n CommonModule \r\n ],\r\n declarations: [\r\n ProfilePicturePipe,\r\n ChatPersonSearchPipe,\r\n UserSearchPipe,\r\n TruncatePipe,\r\n MailSearchPipe,\r\n SafePipe\r\n ],\r\n exports: [\r\n ProfilePicturePipe,\r\n ChatPersonSearchPipe,\r\n UserSearchPipe,\r\n TruncatePipe,\r\n MailSearchPipe,\r\n SafePipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import {Injectable} from '@angular/core'\r\n\r\n@Injectable()\r\nexport class MessagesService {\r\n\r\n private messages = [\r\n {\r\n name: 'ashley',\r\n text: 'After you get up and running, you can place Font Awesome icons just about...',\r\n time: '1 min ago'\r\n },\r\n {\r\n name: 'michael',\r\n text: 'You asked, Font Awesome delivers with 40 shiny new icons in version 4.2.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n name: 'julia',\r\n text: 'Want to request new icons? Here\\'s how. Need vectors or want to use on the...',\r\n time: '10 hrs ago'\r\n },\r\n {\r\n name: 'bruno',\r\n text: 'Explore your passions and discover new ones by getting involved. Stretch your...',\r\n time: '1 day ago'\r\n },\r\n {\r\n name: 'tereza',\r\n text: 'Get to know who we are - from the inside out. From our history and culture, to the...',\r\n time: '1 day ago'\r\n },\r\n {\r\n name: 'adam',\r\n text: 'Need some support to reach your goals? Apply for scholarships across a variety of...',\r\n time: '2 days ago'\r\n },\r\n {\r\n name: 'michael',\r\n text: 'Wrap the dropdown\\'s trigger and the dropdown menu within .dropdown, or...',\r\n time: '1 week ago'\r\n }\r\n ]; \r\n\r\n private files = [ \r\n {\r\n text:'startng.zip',\r\n size: '~7.2 MB',\r\n value: '47%',\r\n class: 'danger'\r\n },\r\n {\r\n text: 'documentation.pdf',\r\n size: '~14.6 MB',\r\n value: '33%',\r\n class: 'info'\r\n },\r\n {\r\n text: 'wallpaper.jpg',\r\n size: '~558 KB',\r\n value: '60%',\r\n class: 'success'\r\n },\r\n {\r\n text: 'letter.doc',\r\n size: '~57 KB',\r\n value: '80%',\r\n class: 'warning'\r\n },\r\n {\r\n text: 'azimuth.zip',\r\n size: '~10.2 MB',\r\n value: '55%',\r\n class: 'primary'\r\n },\r\n {\r\n text: 'contacts.xlsx',\r\n size: '~96 KB',\r\n value: '75%',\r\n class: 'info'\r\n }\r\n ];\r\n\r\n private meetings = [\r\n {\r\n day: '09',\r\n month: 'May',\r\n title: 'Meeting with Bruno',\r\n text: 'Fusce ut condimentum velit, quis egestas eros. Quisque sed condimentum neque.',\r\n color: 'danger'\r\n }, \r\n {\r\n day: '15',\r\n month: 'May',\r\n title: 'Training course',\r\n text: 'Fusce arcu tortor, tempor aliquam augue vel, consectetur vehicula lectus.',\r\n color: 'primary'\r\n },\r\n {\r\n day: '12',\r\n month: 'June',\r\n title: 'Dinner with Ashley',\r\n text: 'Curabitur rhoncus facilisis augue sed fringilla.',\r\n color: 'info'\r\n },\r\n {\r\n day: '14',\r\n month: 'June',\r\n title: 'Sport time',\r\n text: 'Vivamus tristique enim eros, ac ultricies sem ultrices vitae.',\r\n color: 'warning'\r\n },\r\n {\r\n day: '29',\r\n month: 'July',\r\n title: 'Birthday of Julia',\r\n text: 'Nam porttitor justo nec elit efficitur vestibulum.',\r\n color:'success'\r\n }\r\n ];\r\n\r\n public getMessages():Array {\r\n return this.messages;\r\n }\r\n\r\n public getFiles():Array {\r\n return this.files;\r\n }\r\n\r\n public getMeetings():Array {\r\n return this.meetings;\r\n } \r\n\r\n}","// notification.service.ts\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationService {\r\n requestPermission(): void {\r\n if ('Notification' in window) {\r\n Notification.requestPermission().then((permission) => {\r\n console.log('Notification permission:', permission);\r\n });\r\n }\r\n }\r\n\r\n showNotification(title: string, options?: NotificationOptions): void {\r\n if ('Notification' in window && Notification.permission === 'granted') {\r\n new Notification(title, options);\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n
\r\n \r\n \r\n 0\" class=\"badge badge-danger\">{{ notificationCount }}\r\n \r\n
\r\n
\r\n Order ID:
{{ order.OrderID }}
\r\n \r\n
\r\n
\r\n No new orders.\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MessagesService } from './messages.service';\r\nimport { GeneralService } from '../../../service/general.service';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { NotificationService } from '../../../service/notification.service';\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MessagesService ]\r\n})\r\nexport class MessagesComponent implements OnInit {\r\n Count: any;\r\n pendingBookingDetails: any;\r\n LoginDetails: any;\r\n public messages:Array;\r\n public files:Array;\r\n public meetings: Array;\r\n orderStatus: any = 1;\r\n ordersList: any = [];\r\n notificationCount: number;\r\n showDetails: boolean = false;\r\n oder: any;\r\n ordersList12: any[] = [];\r\n constructor(private messagesService: MessagesService, private notificationService: NotificationService,public generalService: GeneralService, public router: Router) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n //================Condition for not allowed users without login=================//\r\n if (localStorage.getItem(\"LoginDetails\") == null) {\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n //this.messages = messagesService.getMessages();\r\n this.files = messagesService.getFiles();\r\n this.meetings = messagesService.getMeetings();\r\n \r\n }\r\n\r\n ngOnInit() {\r\n jQuery('#messagesTabs').on('click', '.nav-item a', function(){ \r\n setTimeout(() => jQuery(this).closest('.dropdown').addClass('show')); \r\n })\r\n this.getAllAdminOrders();\r\n }\r\n updateNotificationCount(count: number) {\r\n \r\n this.notificationCount = count;\r\n }\r\n\r\n\r\n\r\n // Assuming this.ordersList contains the list of orders\r\n\r\n showNotificationDetails() {\r\n if (this.notificationCount > 0) {\r\n // Toggle the visibility of the dropdown menu on each click\r\n this.showDetails = !this.showDetails;\r\n\r\n // If the dropdown is opened, you might want to reset the notification count\r\n if (this.showDetails) {\r\n this.notificationCount = 0;\r\n }\r\n }\r\n }\r\n\r\n getAllAdminOrders() {\r\n var arr = [];\r\n arr.push({\r\n TokenID: this.LoginDetails.Token,\r\n UserId: this.LoginDetails.Id\r\n });\r\n\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Get_All_Orders\";\r\n\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data !== \"\") {\r\n const todayDate = new Date(); // Get today's date\r\n\r\n // Filter orders that belong to today's date\r\n this.ordersList = data.filter((order: any) => {\r\n const orderDate = new Date(order.OrderDate); // Assuming OrderDate is a valid date string\r\n const orderDateOnly = orderDate.toISOString().split('T')[0]; // Get date part only\r\n\r\n const todayDateOnly = todayDate.toISOString().split('T')[0]; // Get today's date part\r\n\r\n return orderDateOnly === todayDateOnly;\r\n });\r\n\r\n // Update notification count after filtering orders\r\n this.updateNotificationCount(this.ordersList.length);\r\n\r\n // Call showNotification if you want to display a notification here\r\n }\r\n });\r\n }\r\n\r\n\r\n // Inside your component\r\n\r\n // Assuming 'ordersList' is an array of orders with 'OrderID' and 'showDetails' properties\r\n // Assuming 'ordersList' is initialized\r\n\r\n toggleBookingDetails(clickedOrder: any) {\r\n // Toggle the 'showDetails' property of the clicked order\r\n clickedOrder.showDetails = !clickedOrder.showDetails;\r\n\r\n // Clear other orders' 'showDetails' property\r\n this.ordersList12.forEach(order => {\r\n if (order !== clickedOrder) {\r\n order.showDetails = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n //=========navigation while clicking on Booking details in toggle=======/\r\n setbookingDetails() {\r\n debugger\r\n this.router.navigate(['/Admin/Orders']);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ElementRef, Input } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MenuService } from '../menu.service';\r\nimport { AppSettings } from '../../../../app.settings';\r\nimport { Settings } from '../../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-horizontal-menu',\r\n templateUrl: './horizontal-menu.component.html',\r\n styleUrls: ['./horizontal-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MenuService ]\r\n})\r\nexport class HorizontalMenuComponent implements OnInit {\r\n @Input('menuItems') menuItems;\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings, \r\n private menuService:MenuService, \r\n private router: Router, \r\n private elementRef:ElementRef) {\r\n \r\n this.settings = this.appSettings.settings;\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n window.scrollTo(0, 0);\r\n let activeLink = this.menuService.getActiveLink(this.menuItems);\r\n this.menuService.setActiveLink(this.menuItems, activeLink);\r\n jQuery('.tooltip').tooltip({\r\n sanitize: false,\r\n sanitizeFn: function (content) {\r\n return null;\r\n }\r\n }); \r\n jQuery('.tooltip').tooltip('hide'); \r\n } \r\n }); \r\n }\r\n\r\n ngOnInit() {\r\n let menu_wrapper = this.elementRef.nativeElement.children[0];\r\n this.menuService.createMenu(this.menuItems, menu_wrapper, 'horizontal'); \r\n\r\n if(this.settings.theme.menuType == 'mini'){\r\n jQuery('.menu-item-link').tooltip({\r\n sanitize: false,\r\n sanitizeFn: function (content) {\r\n return null;\r\n }\r\n });\r\n jQuery('.menu-item-link').tooltip(); \r\n }\r\n \r\n }\r\n\r\n ngAfterViewInit(){\r\n let activeLink = this.menuService.getActiveLink(this.menuItems);\r\n this.menuService.setActiveLink(this.menuItems, activeLink); \r\n } \r\n\r\n}","
\r\n","import { Component, OnInit, ViewEncapsulation, ElementRef, Input } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MenuService } from '../menu.service';\r\nimport { AppSettings } from '../../../../app.settings';\r\nimport { Settings } from '../../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-vertical-menu',\r\n templateUrl: './vertical-menu.component.html',\r\n styleUrls: ['./vertical-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MenuService ]\r\n})\r\nexport class VerticalMenuComponent implements OnInit {\r\n @Input('menuItems') menuItems;\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings, \r\n private menuService:MenuService, \r\n private router: Router, \r\n private elementRef:ElementRef) {\r\n \r\n this.settings = this.appSettings.settings;\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n window.scrollTo(0, 0);\r\n let activeLink = this.menuService.getActiveLink(this.menuItems);\r\n this.menuService.setActiveLink(this.menuItems, activeLink);\r\n jQuery('.tooltip').tooltip({\r\n sanitize: false,\r\n sanitizeFn: function (content) {\r\n return null;\r\n }\r\n }); \r\n jQuery('.tooltip').tooltip('hide');\r\n if(window.innerWidth <= 768){\r\n this.settings.theme.showMenu = false; \r\n } \r\n } \r\n }); \r\n }\r\n \r\n ngOnInit() { \r\n let menu_wrapper = this.elementRef.nativeElement.children[0];\r\n this.menuService.createMenu(this.menuItems, menu_wrapper, 'vertical');\r\n \r\n if(this.settings.theme.menuType == 'mini'){\r\n jQuery('.menu-item-link').tooltip({\r\n sanitize: false,\r\n sanitizeFn: function (content) {\r\n return null;\r\n }\r\n });\r\n jQuery('.menu-item-link').tooltip();\r\n }\r\n \r\n }\r\n\r\n ngAfterViewInit(){\r\n this.menuService.showActiveSubMenu(this.menuItems);\r\n let activeLink = this.menuService.getActiveLink(this.menuItems);\r\n this.menuService.setActiveLink(this.menuItems, activeLink); \r\n } \r\n\r\n}","\r\n","
","import { Component, OnInit, ViewEncapsulation, HostListener } from '@angular/core';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\nimport { MenuService } from '../menu/menu.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MenuService ],\r\n animations: [\r\n trigger('showInfo', [\r\n state('1' , style({ transform: 'rotate(180deg)' })),\r\n state('0', style({ transform: 'rotate(0deg)' })),\r\n transition('1 => 0', animate('400ms')),\r\n transition('0 => 1', animate('400ms'))\r\n ])\r\n ]\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n public showHorizontalMenu:boolean = true; \r\n public showInfoContent:boolean = false;\r\n public settings: Settings;\r\n public menuItems:Array;\r\n constructor(public appSettings:AppSettings, public menuService:MenuService) {\r\n this.settings = this.appSettings.settings;\r\n this.menuItems = this.menuService.getHorizontalMenuItems();\r\n }\r\n \r\n ngOnInit() {\r\n if(window.innerWidth <= 768) \r\n this.showHorizontalMenu = false;\r\n }\r\n\r\n\r\n public closeSubMenus(){\r\n let menu = document.querySelector(\"#menu0\"); \r\n if(menu){\r\n for (let i = 0; i < menu.children.length; i++) {\r\n let child = menu.children[i].children[1];\r\n if(child){ \r\n if(child.classList.contains('show')){ \r\n child.classList.remove('show');\r\n menu.children[i].children[0].classList.add('collapsed'); \r\n } \r\n }\r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onWindowResize():void {\r\n if(window.innerWidth <= 768){\r\n this.showHorizontalMenu = false;\r\n } \r\n else{\r\n this.showHorizontalMenu = true;\r\n }\r\n }\r\n \r\n}\r\n","export class SideChat {\r\n constructor(public image: string,\r\n public author: string,\r\n public authorStatus: string,\r\n public text: string,\r\n public date: Date,\r\n public side: string) { }\r\n} ","import { Injectable } from '@angular/core'\r\nimport { SideChat } from './side-chat.model';\r\n\r\nlet date = new Date(),\r\n day = date.getDate(),\r\n month = date.getMonth(),\r\n year = date.getFullYear(),\r\n hour = date.getHours(),\r\n minute = date.getMinutes();\r\n\r\nlet chats = [\r\n new SideChat(\r\n 'assets/img/profile/ashley.jpg',\r\n 'Ashley Ahlberg', \r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/profile/bruno.jpg',\r\n 'Bruno Vespa',\r\n 'Do not disturb',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-3.png',\r\n 'Andy Warhol',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/profile/julia.jpg',\r\n 'Julia Aniston',\r\n 'Away',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/profile/adam.jpg',\r\n 'Adam Sandler',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-7.png',\r\n 'Lusia Manuel',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/profile/tereza.jpg',\r\n 'Tereza Stiles',\r\n 'Offline',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ), \r\n new SideChat(\r\n 'assets/img/users/default-user.jpg',\r\n 'unknown',\r\n 'Offline',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-1.png',\r\n 'Jeremi Powell',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-8.png',\r\n 'Calico Jack',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/profile/michael.jpg',\r\n 'Michael Blair',\r\n 'Online',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-5.png',\r\n 'Michelle Ormond',\r\n 'Away',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n ),\r\n new SideChat(\r\n 'assets/img/avatars/avatar-6.png',\r\n 'Sean Connery',\r\n 'Offline',\r\n 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n new Date(year, month, day-2, hour, minute),\r\n 'left'\r\n )\r\n]\r\n\r\nlet talks = [\r\n new SideChat(\r\n 'assets/img/users/user.jpg',\r\n 'Emilio Verdines', \r\n 'Online',\r\n 'Hi, StartNG is a fully responsive, organized folder structure, clean & customizable code, easy to use and much more...',\r\n new Date(year, month, day-2, hour, minute+2),\r\n 'right'\r\n ), \r\n new SideChat(\r\n 'assets/img/profile/ashley.jpg',\r\n 'Ashley Ahlberg', \r\n 'Online',\r\n 'Great, then I\\'ll definitely buy this theme. Thanks!',\r\n new Date(year, month, day-2, hour, minute+3),\r\n 'left'\r\n ),\r\n]\r\n\r\n@Injectable()\r\nexport class SideChatService {\r\n\r\n public getChats():Array {\r\n return chats;\r\n }\r\n\r\n public getTalk():Array {\r\n return talks;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\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 {Injectable} from '@angular/core'\r\n\r\n// let date = new Date(),\r\n// day = date.getDate(),\r\n// month = date.getMonth(),\r\n// year = date.getFullYear(),\r\n// hour = date.getHours(),\r\n// minute = date.getMinutes();\r\n\r\n// @Injectable()\r\n// export class SideChatService {\r\n \r\n\r\n// private chats = [\r\n// {\r\n// image: 'assets/img/profile/ashley.jpg',\r\n// author: 'Ashley Ahlberg', \r\n// authorStatus: 'Online',\r\n// text: 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n// date: new Date(year, month, day-2, hour, minute),\r\n// time: '1 min ago'\r\n// },\r\n// {\r\n// image: 'assets/img/profile/bruno.jpg',\r\n// author: 'Bruno Vespa', \r\n// authorStatus: 'Do not disturb',\r\n// text: 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n// date: new Date(year, month, day-2, hour, minute),\r\n// time: '1 min ago'\r\n// },\r\n// {\r\n// image: 'assets/img/profile/julia.jpg',\r\n// author: 'Julia Aniston', \r\n// authorStatus: 'Away',\r\n// text: 'Hi, I\\'m looking for admin template with bootstrap 4. What do you think about StartNG Admin Template?',\r\n// date: new Date(year, month, day-2, hour, minute),\r\n// time: '1 min ago'\r\n// },\r\n// {\r\n// image: 'assets/img/users/default-user.jpg',\r\n// author: 'unknown',\r\n// authorStatus: 'Offline',\r\n// text: 'After you get up and running, you can place Font Awesome icons just about...',\r\n// time: '1 min ago'\r\n// },\r\n\r\n\r\n\r\n// // {\r\n// // image: 'michael',\r\n// // author: 'Michael Blair',\r\n// // text: 'You asked, Font Awesome delivers with 40 shiny new icons in version 4.2.',\r\n// // time: '2 hrs ago'\r\n// // },\r\n// // {\r\n// // image: 'julia',\r\n// // author: 'Julia Aniston',\r\n// // text: 'Want to request new icons? Here\\'s how. Need vectors or want to use on the...',\r\n// // time: '10 hrs ago'\r\n// // },\r\n// // {\r\n// // image: 'bruno',\r\n// // author: 'Bruno Vespa',\r\n// // text: 'Explore your passions and discover new ones by getting involved. Stretch your...',\r\n// // time: '1 day ago'\r\n// // },\r\n// // {\r\n// // image: 'tereza',\r\n// // author: 'Tereza Stiles',\r\n// // text: 'Get to know who we are - from the inside out. From our history and culture, to the...',\r\n// // time: '1 day ago'\r\n// // },\r\n// // {\r\n// // image: 'adam',\r\n// // author: 'Adam Sandler',\r\n// // text: 'Need some support to reach your goals? Apply for scholarships across a variety of...',\r\n// // time: '2 days ago'\r\n// // },\r\n\r\n \r\n// ]; \r\n// public getChats():Array {\r\n// return this.chats;\r\n// }\r\n\r\n// }","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'ChatPersonSearchPipe' })\r\nexport class ChatPersonSearchPipe implements PipeTransform {\r\n transform(value, args?): Array {\r\n let searchText = new RegExp(args, 'ig');\r\n if (value) {\r\n return value.filter(message => {\r\n if (message.author) {\r\n return message.author.search(searchText) !== -1;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{chat.author}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{chat.authorStatus}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
{{interlocutor}}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{talk.text}}\r\n {{talk.date | date:\"dd MMMM, yyyy 'at' HH:mm\"}} \r\n
\r\n \r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\nimport { SideChatService } from './side-chat.service';\r\nimport { SideChat } from './side-chat.model';\r\n\r\n@Component({\r\n selector: 'app-side-chat',\r\n templateUrl: './side-chat.component.html',\r\n styleUrls: ['./side-chat.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ SideChatService ]\r\n})\r\nexport class SideChatComponent implements OnInit {\r\n public settings: Settings;\r\n public showHoverableChatItem: boolean = false;\r\n public showChatWindow: boolean = false;\r\n public chats: Array;\r\n public talks: Array;\r\n public interlocutor: string; \r\n public searchText: string;\r\n public newChatText: string = '';\r\n\r\n constructor(public appSettings:AppSettings, private sideChatService:SideChatService) { \r\n this.settings = this.appSettings.settings;\r\n this.chats = sideChatService.getChats();\r\n this.talks = this.sideChatService.getTalk();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n public back(){\r\n this.showChatWindow = false\r\n this.talks.shift();\r\n this.talks.length = 2;\r\n }\r\n public getChat(chat){\r\n this.searchText = '';\r\n this.showChatWindow = true;\r\n this.interlocutor = chat.author; \r\n this.talks.forEach(item => {\r\n if(item.side == 'left'){\r\n item.image = chat.image;\r\n }\r\n });\r\n this.talks.unshift(chat); \r\n }\r\n\r\n public addChatItem($event) { \r\n if (($event.which === 1 || $event.which === 13) && this.newChatText.trim() != '') { \r\n this.talks.push(\r\n new SideChat(\r\n 'assets/img/users/user.jpg', \r\n 'Emilio Verdines', \r\n 'online', \r\n this.newChatText,\r\n new Date(), \r\n 'right')\r\n )\r\n this.newChatText = '';\r\n let chatContainer = document.querySelector('.chat-talk-list');\r\n setTimeout(() => {\r\n var nodes = chatContainer.querySelectorAll('.media');\r\n let newChatTextHeight = nodes[nodes.length- 1];\r\n chatContainer.scrollTop = chatContainer.scrollHeight + newChatTextHeight.clientHeight;\r\n }); \r\n }\r\n }\r\n\r\n}","
    \r\n
  1. \r\n Home\r\n
  2. \r\n
  3. \r\n {{breadcrumb.name}} \r\n {{breadcrumb.name}}\r\n
  4. \r\n
\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, Router, ActivatedRouteSnapshot, UrlSegment, NavigationEnd } from \"@angular/router\"; \r\nimport { Title } from '@angular/platform-browser';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './breadcrumb.component.html'\r\n})\r\nexport class BreadcrumbComponent {\r\n public settings: Settings;\r\n public pageTitle:string;\r\n public breadcrumbs: {\r\n name: string;\r\n url: string\r\n }[] = [];\r\n\r\n constructor(public appSettings:AppSettings, \r\n public router: Router, \r\n public activatedRoute: ActivatedRoute, \r\n public title:Title) {\r\n \r\n this.settings = this.appSettings.settings;\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.breadcrumbs = []; \r\n this.parseRoute(this.router.routerState.snapshot.root); \r\n this.pageTitle = \"\";\r\n this.breadcrumbs.forEach(breadcrumb => {\r\n this.pageTitle += ' > ' + breadcrumb.name;\r\n }) \r\n this.title.setTitle(this.settings.name + this.pageTitle);\r\n }\r\n }) \r\n }\r\n\r\n parseRoute(node: ActivatedRouteSnapshot) { \r\n if (node.data['breadcrumb']) {\r\n if(node.url.length){\r\n let urlSegments: UrlSegment[] = [];\r\n node.pathFromRoot.forEach(routerState => {\r\n urlSegments = urlSegments.concat(routerState.url);\r\n });\r\n let url = urlSegments.map(urlSegment => {\r\n return urlSegment.path;\r\n }).join('/');\r\n this.breadcrumbs.push({\r\n name: node.data['breadcrumb'],\r\n url: '/' + url\r\n }) \r\n } \r\n }\r\n if (node.firstChild) {\r\n this.parseRoute(node.firstChild);\r\n }\r\n }\r\n\r\n public closeSubMenus(){\r\n let menu = document.querySelector(\"#menu0\"); \r\n if(menu){\r\n for (let i = 0; i < menu.children.length; i++) {\r\n let child = menu.children[i].children[1];\r\n if(child){ \r\n if(child.classList.contains('show')){ \r\n child.classList.remove('show');\r\n menu.children[i].children[0].classList.add('collapsed'); \r\n } \r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\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, ViewEncapsulation } from '@angular/core';\r\n\r\n// import { AppState } from \"../../../app.state\";\r\n\r\n// @Component({\r\n// selector: 'az-breadcrumb',\r\n// encapsulation: ViewEncapsulation.None,\r\n// styleUrls: ['./breadcrumb.component.scss'],\r\n// templateUrl: './breadcrumb.component.html'\r\n// })\r\n\r\n// export class BreadcrumbComponent {\r\n\r\n// public activePageTitle:string = '';\r\n\r\n// constructor(private _state:AppState){\r\n// this._state.subscribe('menu.activeLink', (activeLink) => {\r\n// if (activeLink) {\r\n// this.activePageTitle = activeLink;\r\n// }\r\n// });\r\n// }\r\n\r\n// public ngOnInit():void {\r\n// if (!this.activePageTitle) {\r\n// this.activePageTitle = 'dashboard';\r\n// }\r\n \r\n// }\r\n\r\n// }","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","","import {Component, ViewEncapsulation, ViewChild, HostListener, Input, ElementRef} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-back-top',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./back-top.component.scss'],\r\n template: `\r\n \r\n `\r\n})\r\nexport class BackTopComponent {\r\n\r\n @Input() position:number = 400;\r\n @Input() showSpeed:number = 500;\r\n @Input() moveSpeed:number = 700;\r\n\r\n @ViewChild('backTop') private _selector:ElementRef;\r\n\r\n ngAfterViewInit () {\r\n this._onWindowScroll();\r\n }\r\n\r\n @HostListener('click')\r\n _onClick():boolean {\r\n jQuery('html, body').animate({scrollTop:0}, {duration:this.moveSpeed});\r\n return false;\r\n }\r\n\r\n @HostListener('window:scroll')\r\n _onWindowScroll():void {\r\n let el = this._selector.nativeElement;\r\n window.scrollY > this.position ? jQuery(el).fadeIn(this.showSpeed) : jQuery(el).fadeOut(this.showSpeed);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewEncapsulation, HostListener } from '@angular/core';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\nimport { MenuService } from '../menu/menu.service';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MenuService ]\r\n})\r\nexport class SidebarComponent implements OnInit { \r\n public settings: Settings;\r\n public menuItems:Array;\r\n constructor(public appSettings:AppSettings, public menuService:MenuService) {\r\n this.settings = this.appSettings.settings;\r\n this.menuItems = this.menuService.getVerticalMenuItems();\r\n }\r\n\r\n ngOnInit() { \r\n if(sessionStorage[\"userMenuItems\"]) {\r\n let ids = JSON.parse(sessionStorage.getItem(\"userMenuItems\"));\r\n let newArr = [];\r\n ids.forEach(id => {\r\n let newMenuItem = this.menuItems.filter(mail => mail.id == id);\r\n newArr.push(newMenuItem[0]);\r\n });\r\n this.menuItems = newArr; \r\n }\r\n }\r\n\r\n public closeSubMenus(){\r\n let menu = document.querySelector(\"#menu0\");\r\n for (let i = 0; i < menu.children.length; i++) {\r\n let child = menu.children[i].children[1]; \r\n if(child){\r\n if(child.classList.contains('show')){\r\n child.classList.remove('show');\r\n menu.children[i].children[0].classList.add('collapsed'); \r\n } \r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n Settings\r\n
\r\n
\r\n
Choose menu
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Choose menu type
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Choose theme skin
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Other theme options
\r\n
\r\n \r\n \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, ViewEncapsulation, HostListener } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppSettings } from '../app.settings';\r\nimport { Settings } from '../app.settings.model';\r\nimport { EncryptionService } from '../service/encryption.service';\r\nimport { GeneralService } from '../service/general.service';\r\nimport { UserIdleService } from 'angular-user-idle';\r\n\r\n@Component({\r\n selector: 'app-pages',\r\n templateUrl: './pages.component.html',\r\n styleUrls: ['./pages.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PagesComponent implements OnInit {\r\n public showMenu:boolean = false;\r\n public showSetting:boolean = false;\r\n public menus = ['vertical', 'horizontal'];\r\n public menuOption:string;\r\n public menuTypes = ['default', 'compact', 'mini'];\r\n public menuTypeOption:string;\r\n signinvalue: any;\r\n Logindet: any;\r\n public settings: Settings;\r\n constructor(public userIdle: UserIdleService, public appSettings: AppSettings,\r\n public router: Router, public encryptionService: EncryptionService, public generalService: GeneralService, ) {\r\n this.settings = this.appSettings.settings;\r\n this.signinvalue = localStorage.getItem(\"keepsignin\");\r\n if (sessionStorage[\"skin\"]) {\r\n this.settings.theme.skin = sessionStorage[\"skin\"];\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.signinvalue != \"true\") {\r\n //Start watching for user inactivity.\r\n this.userIdle.startWatching();\r\n // Start watching when user idle is starting and reset if user action is there.\r\n this.userIdle.onTimerStart().subscribe(count => {\r\n var eventList = [\"click\", \"mouseover\", \"keydown\", \"DOMMouseScroll\", \"mousewheel\", \"mousedown\", \"touchstart\", \"touchmove\", \"scroll\", \"keyup\"];\r\n for (let event of eventList) {\r\n document.body.addEventListener(event, () => this.userIdle.resetTimer());\r\n }\r\n });\r\n // Start watch when time is up.\r\n this.userIdle.onTimeout().subscribe(() => {\r\n this.userIdle.stopWatching();\r\n localStorage.removeItem(\"LoginDetails\");\r\n localStorage.removeItem(\"keepsignin\");\r\n this.router.navigate(['/login']);\r\n this.generalService.ShowAlert('INFO', 'Your Session has been expired.', 'info');\r\n });\r\n }\r\n if(window.innerWidth <= 768){\r\n this.settings.theme.showMenu = false;\r\n this.settings.theme.sideChatIsHoverable = false;\r\n }\r\n this.showMenu = this.settings.theme.showMenu;\r\n this.menuOption = this.settings.theme.menu;\r\n this.menuTypeOption = this.settings.theme.menuType; \r\n }\r\n\r\n public chooseMenu(menu){\r\n this.settings.theme.menu = menu; \r\n this.router.navigate(['/']); \r\n }\r\n\r\n public chooseMenuType(menuType){\r\n this.settings.theme.menuType = menuType;\r\n jQuery('.menu-item-link').tooltip({\r\n sanitize: false,\r\n sanitizeFn: function (content) {\r\n return null;\r\n }\r\n });\r\n if(menuType=='mini'){\r\n jQuery('.menu-item-link').tooltip('enable');\r\n }else{\r\n jQuery('.menu-item-link').tooltip('disable');\r\n }\r\n }\r\n\r\n public changeTheme(theme){\r\n this.settings.theme.skin = theme;\r\n sessionStorage[\"skin\"] = theme; \r\n }\r\n \r\n ngAfterViewInit(){\r\n document.getElementById('preloader').classList.add('hide');\r\n }\r\n\r\n\r\n @HostListener('window:resize')\r\n public onWindowResize():void {\r\n let showMenu= !this._showMenu();\r\n\r\n if (this.showMenu !== showMenu) {\r\n this.showMenuStateChange(showMenu);\r\n }\r\n this.showMenu = showMenu;\r\n }\r\n\r\n public showMenuStateChange(showMenu:boolean):void {\r\n this.settings.theme.showMenu = showMenu;\r\n }\r\n\r\n private _showMenu():boolean {\r\n return window.innerWidth <= 768;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-blank',\r\n templateUrl: './blank.component.html',\r\n styleUrls: ['./blank.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BlankComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

Search results...

","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NotFoundComponent {\r\n\r\n router: Router;\r\n \r\n constructor(router: Router) {\r\n this.router = router;\r\n }\r\n\r\n searchResult(): void {\r\n this.router.navigate(['/search']);\r\n }\r\n\r\n ngAfterViewInit(){\r\n document.getElementById('preloader').classList.add('hide'); \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n

404

\r\n
Opps, it seems that this page does not exist.
\r\n

If you are sure it should, search for it.

\r\n\r\n
\r\n
\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 { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport Swal from 'sweetalert2';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WishlistService {\r\n public wishlistItem: any = []\r\n public prodctList = new BehaviorSubject([]);\r\n\r\n constructor() { }\r\n\r\n getProducts() {\r\n return this.prodctList.asObservable();\r\n }\r\n setProducts(product: any) {\r\n this.wishlistItem.push(product);\r\n this.prodctList.next(this.wishlistItem)\r\n }\r\n removeWishlistItems(index: any) { \r\n this.wishlistItem.splice(index, 1)\r\n this.prodctList.next(this.wishlistItem);\r\n }\r\n removeAllWishlistItems() {\r\n this.wishlistItem=[]\r\n this.prodctList.next(this.wishlistItem);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n  \r\n info@ykmart.in\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    {{country.productname}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n ({{countReturn()}})\r\n  \r\n\r\n \r\n
    \r\n
    \r\n
  • \r\n\r\n
  • \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
    • \r\n
      \r\n  Login\r\n
      \r\n \r\n
    • \r\n
    • \r\n
      \r\n \r\n \r\n
      \r\n
    • \r\n
    \r\n
  • \r\n
\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 { GeneralService } from 'src/app/service/general.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { WishlistService } from 'src/app/service/wishlist.service'\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-page-header',\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.scss']\r\n})\r\nexport class PageHeaderComponent implements OnInit {\r\n customerWishlistItems: any=[];\r\n FarmingProduces: any;\r\n Goals: any;\r\n currentCartItems: any=[];\r\n customerCartItems: any=[];\r\n wishlistItemsCount: any;\r\n logedinUser: string;\r\n LoginDetails: any;\r\n cartItemsCount: any;\r\n HomeURL: any;\r\n carDropdown: any;\r\n Categories: any;\r\n selectedProduct: any;\r\n public router: Router;\r\n\r\n searchedProducts: any;\r\n value1: any //=\"Shop By Products\";\r\n Producttoggle: boolean = false;\r\n constructor(public generalService: GeneralService, public http: HttpClient, router: Router,\r\n public cartService: CartService, public wishlistService: WishlistService) {\r\n this.router = router;\r\n\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n if (this.LoginDetails) { \r\n this.getCartItemsListbasedonUserId(this.LoginDetails.Id)\r\n this.getWishListItemsListbasedonUserId(this.LoginDetails.Id)\r\n }\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetGoals()\r\n this.GetCategoryforHeader()\r\n this.GetFarmingProduces()\r\n this.cartService.getProducts().subscribe(res => {/*getting cart product list count from cartservice*/\r\n this.cartItemsCount = res.length\r\n })\r\n this.wishlistService.getProducts().subscribe(res => {/*getting wish list count from wishlist service*/ \r\n this.wishlistItemsCount = res.length\r\n })\r\n window.onscroll = function () { myFunction() };\r\n\r\n var header = document.getElementById(\"myHeader\");\r\n var sticky = header.offsetTop;\r\n\r\n function myFunction() {\r\n if (window.pageYOffset > sticky) {\r\n header.classList.add(\"sticky\");\r\n } else {\r\n header.classList.remove(\"sticky\");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * cart count return function\r\n */\r\n countReturn() {\r\n this.cartService.getProducts().subscribe(res => {/*getting cart product list count from cartservice*/\r\n \r\n this.cartItemsCount = res.length\r\n return this.cartItemsCount\r\n })\r\n return this.cartItemsCount\r\n }\r\n /*\r\n* Below method is used to get the Category with images from Server with reference of database path\r\n*/\r\n GetCategoryforHeader() {\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetProductCategories\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.Categories = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Navigating to selected category in header page\r\n */\r\n navigateToCategoryProducts(data) {\r\n debugger\r\n var carName = \"\"; var catarr=[]\r\n this.ngOnInit()\r\n catarr = this.Categories.filter(A => A.CategoryName == data)//Filtering Categories data based on selected chemical name for getting category id \r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n carName += \"_\"+str[i];\r\n }\r\n this.generalService.setCategoryid(catarr)\r\n this.router.navigate(['/Category/' + carName]);\r\n }\r\n\r\n /**\r\n filtering products method\r\n **/\r\n filterProducts(event) {\r\n debugger\r\n //in a real application, make a request to a remote url with the query and return filtered results, for demo we filter at client side\r\n let query = event.query;\r\n if (event.query.length > 2) {\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"productName\", query)\r\n var url = \"/api/Products/GetAll_SearchingProducts\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.searchedProducts = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n } \r\n }\r\n\r\n /*navigating to customer search products*/\r\n navigatingToSearchedProduct(data) {\r\n debugger\r\n var prodName = \"\"; var prodarr = []\r\n prodarr.push(data)\r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.generalService.setProducts(prodarr)\r\n if (data.SpecialityId == 0) {\r\n this.router.navigate(['/Product/' + prodName]);\r\n }\r\n else {\r\n this.router.navigate(['/EnquiryProducts/' + prodName])\r\n }\r\n }\r\n\r\n /**\r\n * below method is for getting loged in user name\r\n */\r\n logedin() {\r\n this.logedinUser = localStorage.getItem('token');\r\n return this.logedinUser;\r\n }\r\n\r\n /*Below method will call at the time of user clicks on logout*/\r\n logout() {\r\n this.cartService.removeAllcart();\r\n this.wishlistService.removeAllWishlistItems();\r\n this.router.navigate(['/CustomerLogin']);\r\n }\r\n\r\n /*method is for getting customer cart items based on the user id*/\r\n getCartItemsListbasedonUserId(userid) {\r\n this.customerCartItems = []\r\n this.currentCartItems = []\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n var url = \"api/Products/GetAllCartItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => { \r\n this.cartService.removeAllcart();\r\n if (data != null) { \r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerCartItems.push(data[k])\r\n this.cartService.addtoCart(this.customerCartItems[k])\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n /*method is for getting customer cart items based on the user id*/\r\n getWishListItemsListbasedonUserId(userid) {\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n var url = \"api/Products/GetAllWishListItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => { \r\n this.wishlistService.removeAllWishlistItems();\r\n if (data != null) { \r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerWishlistItems.push(data[k])\r\n this.wishlistService.setProducts(this.customerWishlistItems[k])\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n /*\r\n* Below method is used to get the Goals list for left side menu \r\n*/\r\n GetGoals() {\r\n var url = \"/api/Products/GetGoals\"\r\n this.generalService.GetData(url).then(data => {\r\n this.Goals = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n \r\n /**\r\n * Navigating to selected Goal in header page\r\n */\r\n navigateToGoalProducts(data) {\r\n debugger\r\n var carName = \"\"; var catarr = []\r\n this.ngOnInit()\r\n catarr = this.Goals.filter(A => A.GoalName == data)//Filtering Categories data based on selected chemical name for getting category id \r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n carName += \"_\" + str[i];\r\n }\r\n this.generalService.setCategoryid(catarr)\r\n this.router.navigate(['/Goals/' + carName]);\r\n }\r\n\r\n /**\r\n * Navigating to selected Goal in header page\r\n */\r\n navigateToFarmingProducts(data) {\r\n debugger\r\n var carName = \"\"; var catarr = []\r\n this.ngOnInit()\r\n catarr = this.FarmingProduces.filter(A => A.SpecialityName == data)//Filtering Categories data based on selected chemical name for getting category id \r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n carName += \"_\" + str[i];\r\n }\r\n this.generalService.setCategoryid(catarr)\r\n this.router.navigate(['/FarmerProduces/' + carName]);\r\n }\r\n\r\n /*\r\n* Below method is used to get the Goals list for left side menu \r\n*/\r\n GetFarmingProduces() {\r\n var url = \"/api/Products/GetFarmingProducesMaster\"\r\n this.generalService.GetData(url).then(data => {\r\n this.FarmingProduces = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-footer',\r\n templateUrl: './page-footer.component.html',\r\n styleUrls: ['./page-footer.component.scss']\r\n})\r\nexport class PageFooterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n navigate() {\r\n window.open(\"www.yklaboratories.com\")\r\n }\r\n\r\n}\r\n","\r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EncryptionService } from '../service/encryption.service';\r\nimport { GeneralService } from '../service/general.service';\r\nimport { UserIdleService } from 'angular-user-idle';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-page-layout',\r\n templateUrl: './page-layout.component.html',\r\n styleUrls: ['./page-layout.component.scss']\r\n})\r\nexport class PageLayoutComponent implements OnInit {\r\n signinvalue: any;\r\n\r\n constructor(public userIdle: UserIdleService, public router: Router,public encryptionService: EncryptionService, public generalService: GeneralService, ) {\r\n this.signinvalue = localStorage.getItem(\"keepsignin\");\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.signinvalue != \"true\") {\r\n //Start watching for user inactivity.\r\n this.userIdle.startWatching();\r\n // Start watching when user idle is starting and reset if user action is there.\r\n this.userIdle.onTimerStart().subscribe(count => {\r\n var eventList = [\"click\", \"mouseover\", \"keydown\", \"DOMMouseScroll\", \"mousewheel\", \"mousedown\", \"touchstart\", \"touchmove\", \"scroll\", \"keyup\"];\r\n for (let event of eventList) {\r\n document.body.addEventListener(event, () => this.userIdle.resetTimer());\r\n }\r\n });\r\n // Start watch when time is up.\r\n this.userIdle.onTimeout().subscribe(() => {\r\n this.userIdle.stopWatching();\r\n localStorage.removeItem(\"LoginDetails\");\r\n localStorage.removeItem(\"keepsignin\");\r\n this.router.navigate(['/CustomerLogin']);\r\n this.generalService.ShowAlert('INFO', 'Your Session has been expired.', 'info');\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
    \r\n
  1. \r\n
  2. \r\n
  3. \r\n
  4. \r\n
  5. \r\n
  6. \r\n
  7. \r\n
  8. \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \"Y\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n Shop by categorytt\r\n
\r\n
\r\n \r\n
\r\n
\r\n Farming Produces\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
SHOP BY CATEGORIES
\r\n

POPULAR CATEGORIES

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"/\r\n \r\n\r\n
YK LABORATORIES SPECIAL
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \"\"\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n
FARMING PRODUCE
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n
ORGANIC MANURE
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \"\"\r\n
ORGANIC SUCKING PEST
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

OUR PRODUCTS

\r\n
\r\n\r\n
\r\n
\r\n
New
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \"...\"\r\n
\r\n\r\n
\r\n {{item.productname}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{item.Price1 | currency:'INR'}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n

PROUDLY MADE IN INDIA

\r\n
\r\n \r\n
\r\n
\r\n \"\"/\r\n\r\n
\r\n
\r\n \"\"/\r\n\r\n
\r\n
\r\n \"\"/\r\n\r\n\r\n
\r\n
\r\n \"\"/\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\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 { GeneralService } from '../../service/general.service'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n FarmingProduces: any;\r\n Products: any;\r\n public router: Router;\r\n Categories: any;\r\n HomeURL: any;\r\n Banners: any;\r\n\r\n constructor(public generalService: GeneralService, public http: HttpClient, router: Router, ) {\r\n this.router = router\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n navigator.geolocation.getCurrentPosition(position => {\r\n var lt = position\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetBannerImagesforHome()\r\n this.GetPopularCategoriesforHome()\r\n this.GetProductsforHome()\r\n this.GetFarmingProduces()\r\n }\r\n\r\n /*\r\n * Below method is used to get the Banner images from Server with reference of database path\r\n */\r\n GetBannerImagesforHome() { \r\n let arr = [];\r\n arr.push({ UserId:0,TokenID:null})\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"userCredentials\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAll_HomepageBannerImages\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.Banners = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n * Below method is used to get the Popular Categories with images from Server with reference of database path\r\n */\r\n GetPopularCategoriesforHome() { \r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetProductCategories\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.Categories = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*Below method is for navigating to selected category in home page for*/\r\n navigateBasedOnCategoryId(Category) {\r\n this.router.navigate(['/Category/' + Category]); \r\n }\r\n\r\n /*\r\n* Below method is used to get the Products with images from Server with reference of database path\r\n*/\r\n GetProductsforHome() { \r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAllProductDetails\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.Products = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*navigating to customer selected products from our products*/\r\n navigatingToSelectedProduct(data) {\r\n var prodName = \"\"; var prodarr = []\r\n prodarr.push(data)\r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.generalService.setProducts(prodarr)\r\n this.router.navigate(['/Product/' + prodName]);\r\n }\r\n\r\n /*\r\n* Below method is used to get the Goals list for left side menu \r\n*/\r\n GetFarmingProduces() {\r\n var url = \"/api/Products/GetFarmingProducesMaster\"\r\n this.generalService.GetData(url).then(data => {\r\n this.FarmingProduces = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /**\r\n * Navigating to selected Goal in header page\r\n */\r\n navigateToFarmingProducts(data) {\r\n debugger\r\n var carName = \"\"; var catarr = []\r\n this.ngOnInit()\r\n catarr = this.FarmingProduces.filter(A => A.SpecialityName == data)//Filtering Categories data based on selected chemical name for getting category id \r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n carName += \"_\" + str[i];\r\n }\r\n this.generalService.setCategoryid(catarr)\r\n this.router.navigate(['/FarmerProduces/' + carName]);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Categories
\r\n \r\n
\r\n
\r\n {{item.CategoryName | lowercase | titlecase}}\r\n
\r\n
\r\n
\r\n
\r\n
Categories
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n {{item.CategoryName | lowercase | titlecase}}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n

\r\n
\r\n
Best Seller
\r\n\r\n
\r\n \"...\"\r\n \r\n \r\n
\r\n Vaayu\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ 500.00\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
New
\r\n
\r\n \r\n \r\n \r\n
\r\n \"...\"\r\n
\r\n {{item.productname}}\r\n

Yklaboratories

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ {{item.Price1}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Best Seller
\r\n
\r\n \"...\"\r\n \r\n \r\n
\r\n Vaayu\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ 500.00\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
New
\r\n
\r\n \r\n \r\n \r\n
\r\n \"...\"\r\n
\r\n {{item.productname}}
\r\n

Yklaboratories

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ {{item.Price1}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\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 { GeneralService } from '../../service/general.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\n@Component({\r\n selector: 'app-categories',\r\n templateUrl: './categories.component.html',\r\n styleUrls: ['./categories.component.scss']\r\n})\r\nexport class CategoriesComponent implements OnInit {\r\n CategoryName: any;\r\n HomeURL: any;\r\n CategoryProducts: any;\r\n selectedCategory=[];\r\n Categories: any;\r\n CategoryData: any;\r\n categoryId: any;\r\n displayCards: boolean;\r\n CategoryId: any;\r\n public router: Router;\r\n constructor(public generalService: GeneralService, public http: HttpClient,\r\n router: Router, public activeroute: ActivatedRoute) {\r\n /*below categry name is invoked from the above url from the browser in that '-' is replaced with \" \" and trim for whaite spaces*/\r\n this.CategoryName = this.activeroute.snapshot.paramMap.get('ProductName').replace(/\\_/g, \" \").trim(); \r\n this.router = router\r\n /*By using below service we can get the category id from page header*/\r\n this.generalService.getCategoryid().subscribe(res => { \r\n if (res.length == 0) {//if category id is null\r\n this.GetCategoryforfiltercatidWhilecopyURL() \r\n }\r\n else {//it will execute when we select header categories\r\n this.categoryId = res[0].CategoryId\r\n this.CategoryName=res[0].CategoryName\r\n this.getCategoryBasedonCategoryID()\r\n }\r\n \r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n ngOnInit(): void\r\n {\r\n localStorage.setItem('Goal', '');///sandhya\r\n this.GetCategoryforsideBar()\r\n }\r\n\r\n\r\n test() {\r\n debugger\r\n this.displayCards = true;\r\n }\r\n \r\n /*\r\n* Below method is used to get the Category product details from url\r\n categoryname while category id is null this method i invoked\r\n*/\r\n GetCategoryforfiltercatidWhilecopyURL() {\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetProductCategories\"\r\n this.generalService.PostData(url, UploadFile).then(data => { \r\n this.CategoryData = data\r\n var catData = this.CategoryData.filter(A => A.CategoryName === this.CategoryName)\r\n this.categoryId = catData[0].CategoryId\r\n this.getCategoryBasedonCategoryID()\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n* Below method is used to get the Category list for left side menu \r\n*/\r\n GetCategoryforsideBar() {\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetProductCategories\"\r\n this.generalService.PostData(url, UploadFile).then(data => { \r\n this.Categories = data \r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*\r\n* Below method is used to get the Categories based on category Id\r\n*/\r\n getCategoryBasedonCategoryID() {\r\n debugger\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null, CategoryId: this.categoryId })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAll_CategorywiseProductsBasedOnCategoryID\"\r\n this.generalService.PostData(url, UploadFile).then(data => { \r\n this.CategoryProducts = data\r\n \r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /**\r\n * Below method is call when customer clicks on side bar categories\r\n */\r\n onclickmethodforLeftsideCategories(categoryId,name) {\r\n this.categoryId = categoryId\r\n this.CategoryName=name\r\n this.getCategoryBasedonCategoryID()\r\n // this.GetCategoryforsideBar()\r\n }\r\n\r\n /**\r\n * Navigating to selected Products page regarding category\r\n */\r\n navigatingToProduct(data) {\r\n debugger\r\n var prodName = \"\";var prodarr=[]\r\n prodarr = this.CategoryProducts.filter(A => A.productname == data.productname)//Filtering Categories data based on selected chemical name for getting category id \r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.generalService.setProducts(prodarr);\r\n this.router.navigate(['/Product/' + prodName]);\r\n }\r\n\r\n /*navigate To best Seller*/\r\n navigateTobestSeller() {\r\n\r\n this.router.navigate(['/Product/_VAAYU'])\r\n .then(() => {\r\n window.location.reload();\r\n });\r\n\r\n //this.router.navigate(['/Product/_VAAYU'])\r\n //location.reload();\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n

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

Purchase Pure Organic YK Products

\r\n
\r\n

\r\n\r\n         We aim to give high-performance organic manure to farmers for achieving a significant and sustainable\r\n increase in agriculture production through environmental free and pollinators free products.\r\n

\r\n

\r\n       We YK Mart celling of certified organic products especially Botanical Virucide, Fungicide water base and\r\n Botanical Insecticide & Sucking pest oil base, with the aid of Medicinal plants and related alkaloids which\r\n controls and suppress the multiplication of Bacterial and Fungal growth.\r\n

\r\n

      Morever we are also farming produces organic turmeric,organic chilli,organic papaya and organic millets.



\r\n\r\n\r\n
\r\n \r\n
Version: Beta 1.0.0
\r\n
copyright @ 2022 YK Mart.in
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n

Hello Customer/Employee...!

\r\n
\r\n \r\n \r\n Don't have an account? Sign up now!\r\n
\r\n
\r\n
\r\n \r\n Email Id is required\r\n Invalid EmailId address\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n Password is required\r\n Password isn't long enough, minimum of 6 characters\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Forgot password?\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Enter Mobile

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

Enter Otp

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Resend OTP\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Change Password

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \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 { GeneralService } from '../../service/general.service';\r\nimport { Component, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';import { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport Swal from 'sweetalert2';\r\nimport { window } from 'rxjs/operators';\r\nimport { EmailValidators } from 'ngx-validators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { WishlistService } from 'src/app/service/wishlist.service'\r\ndeclare var $;\r\nimport { EncryptionService } from '../../service/encryption.service'\r\n\r\n\r\n@Component({\r\n selector: 'app-customer-login',\r\n templateUrl: './customer-login.component.html',\r\n styleUrls: ['./customer-login.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CustomerLoginComponent {\r\n customerWishlistItems: any=[];\r\n CartItems: any=[];\r\n itemSize: string;\r\n ItemId: number;\r\n public router: Router;\r\n public form: FormGroup;\r\n public email: AbstractControl;\r\n public password: AbstractControl;\r\n logindata: any;\r\n passwordshow: boolean = true;\r\n ResetForm: boolean;\r\n Loginform: boolean;\r\n MobileNo: string;\r\n Mobile: any;\r\n OTP: string;\r\n Pwd: string;\r\n Confirmpassword: string;\r\n randomnumber: any;\r\n customerCartItems: any = []\r\n currentCartItems: any = []\r\n CheckBox: string;\r\n Remember: boolean;\r\n cookieEmailValue: string;\r\n cookiePWDValue: string;\r\n logindetails: any;\r\n RoleID: any;\r\n\r\n constructor(router: Router, fb: FormBuilder, public generalService: GeneralService, public encryptionService: EncryptionService,\r\n public cartService: CartService, private cookieService: CookieService, \r\n public wishlistService: WishlistService) {\r\n localStorage.removeItem(\"LoginDetails\");\r\n localStorage.removeItem(\"token\");\r\n var encryptedData = localStorage.getItem('LoginDetails');\r\n if (encryptedData != null || encryptedData != undefined) {\r\n this.logindetails = JSON.parse(this.encryptionService.decrypt(encryptedData));\r\n }\r\n this.router = router;\r\n this.form = fb.group({\r\n 'email': ['', Validators.compose([Validators.required])],\r\n 'password': ['', Validators.compose([Validators.required, Validators.minLength(6)])]\r\n });\r\n\r\n // this.email = this.form.controls['email'];\r\n // this.password = this.form.controls['password'];\r\n //}\r\n this.email = this.form.controls['email'];\r\nthis.password = this.form.controls['password'];\r\nconst cookieExists: boolean = cookieService.check('RememberMe');\r\nif (cookieExists) {\r\n this.cookieEmailValue = this.cookieService.get('email');\r\n this.cookiePWDValue = this.cookieService.get('password');\r\n\r\n this.form.controls.email.setValue(this.cookieEmailValue)\r\n this.form.controls.password.setValue(this.cookiePWDValue)\r\n this.Remember = true;\r\n\r\n}\r\nelse {\r\n this.form.reset();\r\n}\r\n\r\n }\r\n\r\n //This code customer login page you have previously registered to input your cellphone number and password.\r\n //If you do not register, the page will display the(NOT EXIST) alert message.\r\n public onSubmit(values: any): void {\r\n debugger\r\n if (this.form.valid) {\r\n var url = \"api/Products/Login\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", values.email);\r\n UploadFile.append(\"Password\", values.password);\r\n // UploadFile.append(\"RoleID\", '3');\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n if (data != null) {\r\n if (data == \"NOT EXIST\") {\r\n this.generalService.ShowAlert('WARNING', 'Please Enter Valid Credentials.', 'warning');\r\n }\r\n else { \r\n if (data[0].LoginType == 4) {\r\n /*Below method is calling to get custsomer cart items*/\r\n this.getCartItemsListbasedonUserId(data[0].Id)\r\n this.getWishListItemsListbasedonUserId(data[0].Id)\r\n this.router.navigate(['/Home']);\r\n localStorage.setItem(\"token\", data[0].FarmerName);\r\n localStorage.setItem(\"LoginDetails\", JSON.stringify(data[0]));\r\n \r\n }\r\n else {\r\n this.generalService.ShowAlert('WARNING', 'Please Enter Valid Credentials/Customer Cannot Login Into Web', 'warning');\r\n }\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n }\r\n /*Show passwords*/\r\n ShowPassword(id) {\r\n debugger;\r\n var x;\r\n x = document.getElementById(\"myInput\");\r\n if (x.type === \"password\") {\r\n x.type = \"text\";\r\n this.passwordshow = false;\r\n } else {\r\n x.type = \"password\";\r\n this.passwordshow = true;\r\n }\r\n\r\n }\r\n /*end code*/\r\n ngAfterViewInit() {\r\n document.getElementById('preloader').classList.add('hide');\r\n }\r\n\r\n\r\n \r\n /*end code*/\r\n signOut() {\r\n sessionStorage.removeItem(\"LoginDetails\");\r\n this.router.navigate['/Home']\r\n }\r\n\r\n //openResetpassword\r\n OpenResetPwd() {\r\n this.ResetForm = true;\r\n this.Loginform = false;\r\n }\r\n \r\n /*forgot password*/\r\n ForgotPassword() {\r\n this.MobileNo = \"\";\r\n this.OTP = \"\";\r\n this.Pwd = \"\";\r\n this.Confirmpassword = \"\";\r\n $('#myModal2').modal('show');\r\n }\r\n /*end code*/\r\n //Rememberb password\r\n RememberMe(ev) {\r\n debugger\r\n if (ev.target.checked == true) {\r\n this.Remember = true;\r\n this.cookieService.set('email', this.form.value.email);\r\n this.cookieService.set('password', this.form.value.password);\r\n this.cookieService.set('RememberMe', 'Checked');\r\n this.CheckBox = 'Checked'\r\n }\r\n else if (ev.target.checked == false) {\r\n // this.cookieService.set('RememberMe', 'UnChecked');\r\n this.CheckBox = ''\r\n this.Remember = false;\r\n this.cookieService.deleteAll();\r\n\r\n }\r\n }\r\n /*Check mobile there or not*/\r\n CheckMobile(MobileNo) {\r\n debugger;\r\n if (MobileNo == undefined || MobileNo == \"\" || MobileNo == null) {\r\n debugger;\r\n alert(\"Please Enter Mobile Number\")\r\n // this.openToast();\r\n }\r\n else {\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", MobileNo);\r\n UploadFile.append(\"Flag\", \"1\");\r\n var url = \"api/Products/CheckMobileandEmail\"\r\n debugger;\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n debugger;\r\n if (data == 'EXIST') {\r\n this.OTP = \"\"\r\n this.MobileNo = MobileNo;\r\n this.SendOtpForMobile();\r\n $('#myModal2').modal('hide');\r\n $('#myModal3').modal('show');\r\n }\r\n else {\r\n\r\n alert(\"Please Enter Valid Mobile Number\")\r\n }\r\n }, err => { \r\n });\r\n }\r\n\r\n }\r\n /*end code*/\r\n\r\n /* send otp for registration */\r\n SendOtpForMobile() {\r\n debugger\r\n this.randomnumber = Math.floor(1000 + Math.random() * 9000);\r\n var msg = \"Your Customer OTP is:\" + this.randomnumber + \" YKmart\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", this.MobileNo);\r\n UploadFile.append(\"SMS\", msg);\r\n UploadFile.append(\"OTP\", this.randomnumber);\r\n var url = 'api/Products/SendOtpToMobile';\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n if (data == \"SUCCESS\") {\r\n\r\n }\r\n else {\r\n \r\n }\r\n });\r\n }\r\n /*end code*/\r\n /*keep me signed in*/\r\n keepmesignin(e) {\r\n debugger;\r\n var a = e.target.checked;\r\n if (a == true) {\r\n localStorage.setItem(\"keepsignin\", a);\r\n }\r\n else {\r\n localStorage.removeItem(\"keepsignin\");\r\n }\r\n }\r\n\r\n /*verifyotp for forgotpassword*/\r\n VerifyOtp(otp) {\r\n debugger\r\n if (this.randomnumber = otp) {\r\n $('#myModal3').modal('hide');\r\n $('#myModal4').modal('show');\r\n }\r\n else {\r\n alert(\"Invalid OTP\");\r\n }\r\n }\r\n /*end region*/\r\n\r\n /*Change password*/\r\n ChangePassword(password, confirmpassword) {\r\n if (password == undefined || password == null || password == \"\" || confirmpassword == undefined || confirmpassword == null || confirmpassword == \"\") {\r\n alert(\"Please enter password\");\r\n }\r\n else {\r\n if (password != confirmpassword) {\r\n alert(\"password and confirmpassword must be same\");\r\n }\r\n else {\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", this.MobileNo);\r\n UploadFile.append(\"Password\", password);\r\n var url = \"api/Products/Forgot_Password\"\r\n debugger;\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n debugger;\r\n if (data == 'SUCCESS') {\r\n this.generalService.ShowAlert('SUCCESS', 'Change Password Successfully.', 'success')\r\n $('#myModal4').modal('hide');\r\n }\r\n }, err => {\r\n $('#myModal4').modal('hide');\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n }\r\n }\r\n /*endregion*/\r\n\r\n /*method is for getting customer cart items based on the user id*/\r\n getCartItemsListbasedonUserId(userid) { \r\n this.customerCartItems = []\r\n this.CartItems = [];\r\n this.currentCartItems = []\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n this.cartService.getProducts().subscribe(res => {\r\n this.currentCartItems = res;\r\n })\r\n var url = \"api/Products/GetAllCartItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger\r\n if (data != null) { \r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerCartItems.push(data[k])\r\n this.cartService.addtoCart(data[k])\r\n } \r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n\r\n if (this.customerCartItems.length == 0 && this.currentCartItems.length >= 1) {\r\n this.insertCartItems(userid) /*we need to insert the new cart items when user added in without login*/\r\n }\r\n }\r\n\r\n /*method is for getting customer wishList items based on the user id*/\r\n getWishListItemsListbasedonUserId(userid) {\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n var url = \"api/Products/GetAllWishListItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n this.wishlistService.removeAllWishlistItems();\r\n if (data != null) {\r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerWishlistItems.push(data[k])\r\n this.wishlistService.setProducts(this.customerWishlistItems[k])\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n /*\r\n Below method is for Inserting customer cart items\r\n */\r\n insertCartItems(userid) { \r\n for (var m = 0; m < this.currentCartItems.length; m++) {\r\n this.currentCartItems[m].UserId = String(userid)\r\n } \r\n var url = \"api/Products/Insert_Cart_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(this.currentCartItems));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n this.cartService.removeAllcart();\r\n for (var k = 0; k < data.length; k++) {\r\n this.cartService.addtoCart(data[k])\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-about-us',\r\n templateUrl: './about-us.component.html',\r\n styleUrls: ['./about-us.component.scss']\r\n})\r\nexport class AboutUsComponent 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
\r\n\r\n \r\n
\r\n
\r\n

ABOUT  YKmart

\r\n \r\n

\r\n

We YK Laboratories manufacturing of certified organic inputs especially Botanical Virucide, Fungicide water base and\r\n Botanical Insecticide & Sucking pest oil base, with the aid of Medicinal plants and related alkaloids which controls and\r\n suppress the multiplication of Bacterial and Fungal growth.

\r\n

\r\n We have developed the capability to match international quality standards stringent user requirements through\r\n continuous Field trials on my YK Farm Land which we cultivate organically all vegetables and flowers and cereals,\r\n horticulture crops, located in Hyderabad, INDIA. It improves the product quality and batch to batch consistency and\r\n reproducibility according to the climatic conditions.\r\n

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

\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n

Contact Form

\r\n
\r\n
\r\n \r\n \r\n
\r\n Field is required\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Field is required\r\n
\r\n
\r\n Incorrect email format.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Field is required\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Field is required\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

Reach Us

\r\n
    \r\n \r\n\r\n SY.NO. 255, PLOT NO.3, EAST PART, KUNTLOOR (V), HAYATHNAGAR, R.R. DIST. TELANGANA - 501505. INDIA.\r\n\r\n
\r\n
\r\n info@ykmart.in\r\n
\r\n
\r\n \r\n 970 512 9639 (Or)\r\n 949 141 81819\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\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 { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\nimport Swal from 'sweetalert2';\r\nimport { GeneralService } from '../../service/general.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n@Component({\r\n selector: 'app-contact-us',\r\n templateUrl: './contact-us.component.html',\r\n styleUrls: ['./contact-us.component.scss']\r\n})\r\nexport class ContactUsComponent implements OnInit {\r\n EnquiryAry: any = [];\r\n formGroup: any;\r\n admin: any;\r\n TemplateId: any;\r\n MessageText: any;\r\n //ApiURL: any;\r\n ContactUsForm: FormGroup;\r\n spinner: boolean = false;\r\n constructor(public generalService: GeneralService, public router: Router, public fb: FormBuilder, public http: HttpClient) {\r\n \r\n debugger\r\n \r\n\r\n }\r\n\r\n ngOnInit() {\r\n debugger\r\n\r\n this.ContactUsForm = this.fb.group({\r\n Name: ['', Validators.required],\r\n \r\n Mobile: ['', [Validators.required, Validators.pattern(\"^((\\\\+91-?)|0)?[0-9]{10}$\")]],\r\n Email: ['', Validators.compose([Validators.required, Validators.email])],\r\n Message: ['', Validators.required]\r\n });\r\n }\r\n \r\n // When a consumer submits an inquiry, it is forwarded to the administrator( EnquiryMailToAdmin)\r\n onSubmit(form: any) {\r\n debugger;\r\n //this.sendsms();\r\n this.EnquiryAry = []; this.EnquiryAry.push({ Name: form.Name, Mobile: form.Mobile, Email: form.Email, Message: form.Message })\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Ticket1\", JSON.stringify(this.EnquiryAry));\r\n var url = \"api/Products/EnquiryMailToAdmin\"\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n\r\n debugger;\r\n this.ContactUsForm.reset();\r\n Swal.fire(\r\n 'SUCCESS',\r\n 'Your Enquiry has been submitted successfully. Our Team will contact you soon.',\r\n 'success'\r\n \r\n )\r\n this.sendsms();\r\n });\r\n\r\n }\r\n\r\n //onSubmit() {\r\n // debugger;\r\n \r\n // var FromMail = 'info@gagri.net';\r\n // var FromName='jagan'\r\n // var tomail = 'kolasrinivas114@gmail.com';\r\n // var toName='bhanu'\r\n // var subject = 'testing';\r\n // var ContentType = 'this text';\r\n // //var mailjson = '';\r\n // var HTML_Content = \"

This is a test email sent with the SendLayer API!

\";\r\n // var PlainContent = 'This is the plain text email.';\r\n // var auth = '64927AD7-773BB6E3-663CC339-AF67D435';\r\n \r\n // let mailjson= {\r\n \r\n\r\n // \"From\": {\r\n // \"name\": FromName,\r\n // \"email\": FromMail\r\n // },\r\n // \"To\": [\r\n // {\r\n // \"name\": toName,\r\n // \"email\": tomail\r\n // }\r\n // ],\r\n // \"Subject\": subject,\r\n // \"ContentType\": ContentType,\r\n // \"HTMLContent\": HTML_Content,\r\n // \"PlainContent\": PlainContent,\r\n // \"auth\": auth,\r\n // \"Tags\": [\r\n // \"newsletter\",\r\n // \"daily\"\r\n // ],\r\n // \"Headers\": {\r\n // \"X-Mailer\": \"Test mailer\",\r\n // \"X-Test\": \"test header\"\r\n\r\n // }\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n // this.http.post('https://console.sendlayer.com/api/v1/email', mailjson\r\n // ).subscribe(data => {\r\n // //var url = 'https://console.sendlayer.com/api/v1/email' ;\r\n // // var url = '\\\"https://sendlayer.com\\\"' + mailjson;\r\n // //this.http.post(url, mailjson).then(obj => {\r\n // // this.generalService.PostData(url,mailjson).then((data: any) => {\r\n // //UploadFile.append(\"userdata\", JSON.stringify(arr));\r\n // //this.http.post(url, UploadFile).subscribe((data: any) => {\r\n \r\n // debugger;\r\n // this.ContactUsForm.reset();\r\n // Swal.fire(\r\n // 'SUCCESS',\r\n // 'Your Enquiry has been submitted successfully. Our Team will contact you soon.',\r\n // 'success'\r\n\r\n // )\r\n // this.sendsms();\r\n // });\r\n\r\n //}\r\n sendsms() {\r\n debugger\r\n this.admin = 9866041417;\r\n this.TemplateId = 1207164812642544439;\r\n this.MessageText = \"Thank you for your enquiry, we will contact you soon Company mobile number \" + this.admin + \" Ykmart \";\r\n var url = 'api/Products/raisenquiry_sendsms_customer';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"admin\", this.admin)\r\n formdata.append(\"Mobile\", this.EnquiryAry[0].Mobile) \r\n formdata.append(\"SMS\", this.MessageText)\r\n formdata.append(\"TemplateId\", this.TemplateId)\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n })\r\n }\r\n\r\n \r\n ngAfterViewInit() {\r\n document.getElementById('preloader').classList.add('hide');\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n

{{item.BlogName}}

\r\n
{{item.CreatedDate | date:'dd-MMM-yyyy'}}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\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 { GeneralService } from '../../service/general.service'\r\nimport { HttpClient, HttpHandler, HttpResponse, HttpRequest } from '@angular/common/http';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { Router } from '@angular/router';\r\n@Component({\r\n selector: 'app-blog',\r\n templateUrl: './blog.component.html',\r\n styleUrls: ['./blog.component.scss']\r\n})\r\nexport class BlogComponent implements OnInit {\r\n blogDetails: any;\r\n Description: any;\r\n Image: any;\r\n BlogName: any;\r\n public router: Router;\r\n showindividualImage: boolean = true;\r\n Blogdata: any = [];\r\n Products: any;\r\n HomeUrl: any;\r\n\r\n\r\n constructor(public generalService: GeneralService, private sanitizer: DomSanitizer, public http: HttpClient, router: Router, ) {\r\n this.router = router\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeUrl = data.Webservice;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetBlogDetails()\r\n }\r\n\r\n /*\r\n * Below method is used to get the Blog details from Server with reference of database path\r\n */\r\n GetBlogDetails() {\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n var url = \"/api/Products/GetBlogDetails\"\r\n this.generalService.GetData(url).then(data => {\r\n this.blogDetails = data\r\n console.log(this.blogDetails)\r\n for (var i = 0; i < this.blogDetails.length; i++) {\r\n this.blogDetails[i].Description = decodeURIComponent(this.blogDetails[i].Description);\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n\r\n navigatingToSelectedProduct(data) {\r\n var prodName = \"\"; var prodarr = []\r\n prodarr.push(data)\r\n var str = data.BlogName.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n //this.generalService.setProducts(prodarr)\r\n //this.router.navigate(['/Blog/' + data.BlogId]);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Shopping Cart
\r\n\r\n
\r\n
\r\n
Price
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{items.productname}}-{{items.CategoryName}}-{{items.Pack}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
Size : {{items.Pack}}
\r\n
\r\n Qty\r\n \r\n   \r\n \r\n \r\n \r\n Move to wishlist\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
₹{{items.Price*items.Quantity}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
Payment Details
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Subtotal
: ₹{{subTotal}}.00
\r\n
\r\n
\r\n Delivery Charge
\r\n : ₹{{deliveryCharge}}.00\r\n
\r\n
\r\n\r\n
\r\n Total price
\r\n : ₹{{totalPrice}}.00\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Subtotal₹{{offerDetails.subTotaloff}}\r\n
\r\n
\r\n Offer price:₹{{offerPrice}}\r\n
\r\n
\r\n Delivery Charge:₹{{deliveryCharge}}\r\n
\r\n
\r\n Total price:₹{{offerDetails.totalPriceoff}}\r\n
\r\n
\r\n
\r\n Offer Code: \r\n   Check\r\n
{{alert}}
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n My Address {{i+1}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n {{item.Area}}, {{item.HNo}}, {{item.Landmark}}, {{item.City}}, {{item.State}}, {{item.Pincode}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n Address {{i+1}}\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {{item.Area}}, {{item.HNo}}, {{item.Landmark}}, {{item.City}}, {{item.State}}, {{item.Pincode}}\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Select Delivery mode

\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n    Online payment\r\n
\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 { CartService } from 'src/app/service/cart.service';\r\nimport { WishlistService } from 'src/app/service/wishlist.service'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MessageService } from 'primeng/api';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { debuglog } from 'util';\r\ndeclare var Razorpay: any;\r\n/*import { NgxSpinnerService } from \"ngx-spinner\";*/\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-cart',\r\n templateUrl: './cart.component.html',\r\n styleUrls: ['./cart.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class CartComponent implements OnInit {\r\n totalPrice: any;\r\n OrderDetails: any;\r\n Id: any;\r\n deliveryCharge: any;\r\n offerPrice: any = 0;\r\n GstPrice: any;\r\n offerDetails: any;\r\n offerCode: any;\r\n WishListitemmsforloginusers: any = [];\r\n cartIndex: any;\r\n n: any;\r\n val: number;\r\n arr: any = [];\r\n PaymentType: any;\r\n addressId: any;\r\n currentCartItems: any = [];\r\n customerCartItems: any = [];\r\n loginStatus: boolean;\r\n addressDetails: any;\r\n addressDetails1: any;\r\n LoginDetails: any;\r\n itemSize: any;\r\n ItemId: any;\r\n seletedItemforWishlist: any = [];\r\n wishListItems: any = [];\r\n subTotal: any = 0;\r\n HomeURL: any;\r\n cartItems: any;\r\n Quantity: any;\r\n offersdata: any;\r\n offerId: any;\r\n alert: any;\r\n //getAllAdminOrders: any;\r\n plus: boolean = true;\r\n TransactionStatus: any;\r\n admin: any;\r\n TaxnId:any;\r\n\r\n constructor(public cartService: CartService, public http: HttpClient,\r\n public wishlistService: WishlistService, public toast: MessageService,\r\n public generalService: GeneralService, public router: Router) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n\r\n this.cartService.getProducts().subscribe(res => {/*this is a service call for getting cart items*/\r\n this.cartItems = res\r\n this.changeQuantity()//method will called for getting subtotal amount initially\r\n })\r\n this.wishlistService.getProducts().subscribe(res => {/*this is a service call for getting wishlist items*/\r\n this.wishListItems = res\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {/* this service call is for getting Homeurl*/\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n debugger\r\n if (this.LoginDetails) {\r\n this.loginStatus = true;\r\n this.getCustomerAddress();\r\n this.GetAllOffers();\r\n // this.getAllAdminOrders();\r\n //this.getAllAdminOrders()\r\n }\r\n else {\r\n this.loginStatus = false;\r\n }\r\n\r\n }\r\n\r\n /*\r\n Below procedtoBuy() method will fire when the user click on proced to by button\r\n */\r\n procedtoBuy() {\r\n debugger\r\n if (this.LoginDetails) {\r\n if (this.addressDetails) {\r\n if (!this.addressId) {\r\n this.generalService.ShowAlert('Warning', 'Please select or add address for Delivery.', 'warning');\r\n }\r\n else {\r\n \r\n $('#myModal').modal('show');\r\n \r\n }\r\n } else {\r\n this.generalService.ShowAlert('Warning', 'Please add address for Delivery.', 'warning');\r\n this.router.navigate(['/Address']);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n /*\r\n Below changeQuantity() method will fire when user change the quantity of the product\r\n */\r\n changeQuantity() {\r\n debugger\r\n this.subTotal = 0\r\n this.totalPrice = 0\r\n this.cartItems.map((a: any) => { /*this is looping for getiing total amount*/\r\n this.subTotal += (a.Price * 1) * (a.Quantity)\r\n })\r\n this.totalPrice = this.subTotal\r\n //if (this.totalPrice < 5000) {\r\n this.deliveryCharge = 0;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n //}\r\n //else {\r\n // this.deliveryCharge = 0;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n //}\r\n }\r\n\r\n /*Below deleteFromCart() method will fire when user delete the product from the cart*/\r\n deleteFromCart(index) {\r\n this.cartService.removeCartItems(index)\r\n this.changeQuantity()\r\n }\r\n\r\n\r\n /*Below addToWishlist() method will fire when user click on save to wishlist from the cart*/\r\n addToWishlist(data: any, index) {\r\n debugger\r\n this.seletedItemforWishlist = []\r\n this.seletedItemforWishlist.push(data)\r\n this.ItemId = 0;\r\n this.itemSize = \"\";\r\n\r\n if (this.wishListItems.length != 0 && this.wishListItems != \"\" && this.wishListItems != undefined && this.wishListItems != null) {\r\n this.wishListItems.map((a: any) => {\r\n if (a.Productid == this.seletedItemforWishlist[0].Productid) {//checking if the product is existing in the cartlist with same id\r\n if (a.Pack == this.seletedItemforWishlist[0].Pack) {//checking if the product is existing in the cartlist with same pack\r\n this.ItemId = a.Productid\r\n this.itemSize = a.Pack\r\n }\r\n }\r\n })\r\n\r\n if (this.itemSize == this.seletedItemforWishlist[0].Pack) { //if product with same size then we show toast msg like below\r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 1000, detail: 'Product already exist in wishlist' });\r\n }\r\n else {\r\n this.wishlistService.setProducts(this.seletedItemforWishlist[0])\r\n this.insertWishListItems(this.seletedItemforWishlist[0])\r\n this.deleteCartfromTable(index, this.seletedItemforWishlist[0].CartId)/*after adding to wishlist remove from the cart*/\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to wishlist successfully' });\r\n }\r\n }\r\n else {\r\n this.wishlistService.setProducts(this.seletedItemforWishlist[0])\r\n this.insertWishListItems(this.seletedItemforWishlist[0])\r\n this.deleteCartfromTable(index, this.seletedItemforWishlist[0].CartId)/*after adding to wishlist remove from the cart*/\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to wishlist successfully' });\r\n }\r\n this.seletedItemforWishlist = []\r\n //this.wishlistService.setProducts(this.seletedItemforWishlist)\r\n //this.deleteFromCart(index)/*after adding to wishlist remove from the cart*/\r\n //this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to wishlist successfully' });\r\n }\r\n\r\n\r\n /*\r\n *Get Customer Delivery Address \r\n */\r\n getCustomerAddress() {\r\n debugger\r\n let Address = [{\r\n UserId: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(Address));\r\n var url = \"/api/Products/Get_Customer_Address_Based_On_Id\"\r\n \r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.addressDetails = data;\r\n this.plus = false\r\n }\r\n });\r\n }\r\n sendsmsToAdmin() {\r\n debugger\r\n this.addressDetails1 = this.addressDetails\r\n\r\n var AdMobile = '9866041417'\r\n var MessageText = \"A new order has been placed by the customer\" +':'+ this.LoginDetails.FarmerName + ':' + this.LoginDetails.MobileNo + ':'+ this.addressDetails1[0].Area + \".\" + \"Ykmart\";\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Customer_new_orderPlacement\"\r\n debugger\r\n UploadFile.append(\"Name\", this.LoginDetails.FarmerName);\r\n UploadFile.append(\"Mobile\", this.LoginDetails.MobileNo);\r\n UploadFile.append(\"ID\", this.addressDetails1[0].Area);\r\n UploadFile.append(\"AdMobile\", AdMobile);\r\n UploadFile.append(\"Text\", MessageText);\r\n\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n })\r\n }\r\n\r\n sendsmsToAdmin1() {\r\n debugger\r\n this.addressDetails1 = this.addressDetails\r\n\r\n var AdMobile = '8008336307'\r\n var MessageText = \"A new order has been placed by the customer\" + ':' + this.LoginDetails.FarmerName + ':' + this.LoginDetails.MobileNo + ':' + this.addressDetails1[0].Area + \".\" + \"Ykmart\";\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Customer_new_orderPlacement\"\r\n debugger\r\n UploadFile.append(\"Name\", this.LoginDetails.FarmerName);\r\n UploadFile.append(\"Mobile\", this.LoginDetails.MobileNo);\r\n UploadFile.append(\"ID\", this.addressDetails1[0].Area);\r\n UploadFile.append(\"AdMobile\", AdMobile);\r\n UploadFile.append(\"Text\", MessageText);\r\n\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n })\r\n }\r\n\r\n \r\n sendsms1() {\r\n debugger\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n this.admin = '8008336307/9866041417'\r\n this.addressDetails1 = this.arr[0].Price\r\n\r\n var url = 'api/Products/Send_sms_custuomer_orderplaced'; \r\n\r\n let formdata = new FormData();\r\n formdata.append(\"details\", this.addressDetails1)\r\n formdata.append(\"order\", this.admin)\r\n formdata.append(\"mobile\", this.LoginDetails.MobileNo)\r\n\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n })\r\n }\r\n sendsms2() {\r\n debugger\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n this.admin = '9866041417/8008336307'\r\n this.addressDetails1 = this.arr[0].Price\r\n\r\n var url = 'api/Products/Send_sms_custuomer_orderplaced2';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"details\", this.addressDetails1)\r\n formdata.append(\"order\", this.admin)\r\n formdata.append(\"mobile\", this.LoginDetails.MobileNo)\r\n\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n this.sendsms2();\r\n })\r\n }\r\n sendMailToAdmin(val) {\r\n debugger\r\n\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n let arr = [];\r\n arr.push({\r\n OrderID: this.addressDetails1[0].OrderID,\r\n FarmerName: this.addressDetails1[0].FarmerName,\r\n MobileNo: this.addressDetails1[0].MobileNo,\r\n Area: this.addressDetails1[0].Area,\r\n City: this.addressDetails1[0].City,\r\n Email: this.addressDetails1[0].Email,\r\n //ProductName: this.orderDetails[0].ProductName,\r\n\r\n })\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Assginoredr_aftersend_mailToAdmin\"\r\n\r\n UploadFile.append(\"Xml\", JSON.stringify(arr));\r\n UploadFile.append(\"flag\", val);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n })\r\n }\r\n\r\n deleteaddress(index, Id) {\r\n this.cartIndex = 0;\r\n this.cartIndex = index;\r\n let formData: FormData = new FormData();\r\n formData.append('Id', Id);\r\n var url = \"api/Products/DeleteAddress\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n\r\n this.getCustomerAddress();\r\n }\r\n });\r\n }\r\n /**\r\n * below place order method will called when the custor click to place order\r\n */\r\n\r\n /*rediret payment gateway*/\r\n RedirectToPaymentGateway(CartProducts, n) {\r\n debugger\r\n // alert('hello')\r\n var UploadFile = new FormData();\r\n this.subTotal = this.totalPrice + this.deliveryCharge;\r\n // this.subTotal = this.subTotal + this.deliveryCharge\r\n UploadFile.append('Name', this.LoginDetails.FarmerName);\r\n UploadFile.append('Mobile', this.LoginDetails.MobileNo);\r\n UploadFile.append('Email', this.LoginDetails.Email);\r\n UploadFile.append('Amount', this.subTotal);\r\n UploadFile.append('Productinfo', \"Product\");\r\n UploadFile.append('TransactionId', n);\r\n UploadFile.append('BookingDetails', JSON.stringify(CartProducts));\r\n //alert('Start')\r\n var url = \"/api/Products/PaymentGateWayWEB\";\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger\r\n\r\n \r\n window.location.href = data.toString();\r\n \r\n\r\n\r\n\r\n this.cancel()\r\n // alert ('hello')\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Your order placed successfully' });\r\n\r\n this.cartService.removeAllcart()\r\n this.val = 1\r\n \r\n this.router.navigate['/Home'];\r\n debugger\r\n \r\n \r\n\r\n\r\n }, err => {\r\n this.router.navigate['/Cart'];\r\n });\r\n var arr = [];\r\n arr.push({\r\n TokenID: this.LoginDetails.Token,\r\n UserId: this.LoginDetails.Id\r\n })\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Get_All_Orders\"\r\n this.generalService.PostData(url, formData).then((data1: any) => {\r\n debugger\r\n\r\n if (data1 != \"\") {\r\n debugger\r\n this.OrderDetails = data1;\r\n this.plus = false;\r\n if (this.OrderDetails[0].TransactionStatus == 'Success') {\r\n this.sendsmsToAdmin();\r\n this.sendsmsToAdmin1();\r\n this.sendsms1();\r\n this.sendsms2();\r\n }\r\n }\r\n });\r\n }\r\n /*end*/\r\n\r\n\r\n PlaceOrder() {\r\n debugger\r\n\r\n this.arr = [];\r\n this.n = \"\"\r\n var d = new Date();\r\n this.n = d.getTime();\r\n\r\n //this.offerPrice = !this.offerPrice ? 0 : !this.offerPrice;\r\n for (var i = 0; i < this.cartItems.length; i++) {\r\n this.arr.push({\r\n CustomerID: this.addressDetails[0].UserId,\r\n AddressId: this.addressId,\r\n PaymentType: this.PaymentType,\r\n ProductId: this.cartItems[i].Productid,\r\n Quantity: this.cartItems[i].Quantity,\r\n Size: this.cartItems[i].Pack,\r\n Price: this.cartItems[i].Price,\r\n TransactionID: this.n,\r\n GstPrice: this.cartItems[i].GstPrice, OfferPrice: this.offerPrice,\r\n DeliveryCharge: this.deliveryCharge,\r\n TotalPrice: this.cartItems[i].Price * this.cartItems[i].Quantity,\r\n // TotalPrice: this.totalPrice,\r\n CreatedBy: this.LoginDetails.Id,\r\n Device:'Web'\r\n })\r\n }\r\n this.RedirectToPaymentGateway(this.arr, this.n)\r\n let formData: FormData = new FormData();\r\n \r\n formData.append('Param', JSON.stringify(this.arr));\r\n var url = \"/api/Products/Insert_Customer_Orders\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n\r\n //if (this.PaymentType != \"CashOnDelivery\") {\r\n // this.RedirectToPaymentGateway(this.arr, this.n)\r\n\r\n //}\r\n\r\n\r\n if (this.PaymentType = \"CashOnDelivery\") {\r\n this.cancel()\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Your order placed successfully' });\r\n // this.sendsms1();\r\n // this.sendsmsToAdmin();\r\n \r\n // this.sendsms2();\r\n this.cartService.removeAllcart();\r\n this.val = 1\r\n\r\n\r\n this.sendMailToAdmin(this.val)\r\n this.router.navigate['/Home'];\r\n }\r\n //else {\r\n // this.RedirectToPaymentGateway(this.arr, this.n)\r\n\r\n //}\r\n\r\n }\r\n \r\n });\r\n }\r\n\r\n cancel() {\r\n $('#myModal').modal('hide');\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n /*\r\n Below method will fire when the user selected address \r\n */\r\n getSelectedAddress(addressId: any) {\r\n //this.addressId = addressId;\r\n //console.log(addressId)\r\n }\r\n\r\n /*\r\n Below method is used to call the delivery mode whether it is online or offline\r\n */\r\n getPaymentType(pType) {\r\n this.PaymentType = pType\r\n }\r\n\r\n\r\n\r\n getAllAdminOrders() {\r\n debugger\r\n var arr = [];\r\n arr.push({\r\n TokenID: this.LoginDetails.Token,\r\n UserId: this.LoginDetails.Id\r\n })\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Get_All_Orders\"\r\n this.generalService.PostData(url, formData).then((data1: any) => {\r\n if (data1 != \"\") {\r\n debugger\r\n this.OrderDetails = data1;\r\n this.plus = false\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n \r\n\r\n /*below method is called when the user delete product when he is login*/\r\n deleteCartfromTable(index, CartId) {\r\n debugger\r\n console.log(CartId);\r\n this.cartIndex = 0;\r\n this.cartIndex = index;\r\n let formData: FormData = new FormData();\r\n formData.append('Cartid', CartId);\r\n var url = \"/api/Products/DeleteCartItems\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.deleteFromCart(this.cartIndex)\r\n this.getCustomerAddress();\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n /* * Navigating to selected Products page regarding category\r\n */\r\n navigatingToProduct(data) {\r\n var prodName = \"\";\r\n var str = data.split(\" \")//spliting the product name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.router.navigate(['/Product/' + prodName]); ///sandhya\r\n }\r\n\r\n /*\r\n Below method is for Inserting customer WishList items\r\n */\r\n insertWishListItems(wishlist) {\r\n debugger\r\n this.WishListitemmsforloginusers = []\r\n //this.WishListitemmsforloginusers.push(wishlist)\r\n this.WishListitemmsforloginusers.push({\r\n UserId: String(this.LoginDetails.Id),\r\n Productid: wishlist.Productid,\r\n Quantity: wishlist.Quantity,\r\n Price: wishlist.Price,\r\n Pack: wishlist.Pack\r\n })\r\n var url = \"api/Products/Insert_WishList_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(this.WishListitemmsforloginusers));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) {\r\n\r\n }\r\n })\r\n }\r\n\r\n ////sandhya for offer calculation start\r\n /*Below method is called when the user check for the offer is valid or not*/\r\n checkOfferisValidorNot(code) {\r\n //let formData: FormData = new FormData();\r\n //formData.append('Param', code);\r\n //var url = \"/api/Products/Get_Offers_Details_Basedon_OfferCode\"\r\n //// this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n //this.generalService.PostData(url, formData).then((data: any) => {\r\n // if (data != \"\") {\r\n // this.offerDetails = data;\r\n // this.offerPrice = (this.subTotal * this.offerDetails[0].Discount) / 100\r\n // this.totalPrice = (this.subTotal - this.offerPrice)\r\n // if (this.totalPrice < 5000) {\r\n // this.deliveryCharge = 200;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n // }\r\n // else {\r\n // this.deliveryCharge = 0;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n // }\r\n // }\r\n // else {\r\n // this.offerDetails = null;\r\n // this.offerPrice = 0;\r\n // this.totalPrice = this.subTotal\r\n // if (this.totalPrice < 5000) {\r\n // this.deliveryCharge = 200;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n // }\r\n // else {\r\n // this.deliveryCharge = 0;\r\n // this.totalPrice = this.totalPrice + this.deliveryCharge\r\n // }\r\n // }\r\n //});\r\n this.offerDetails = this.offersdata.filter(a => a.PromoCode == code);\r\n this.alert = \"\";\r\n if (this.offerDetails.length > 0) {\r\n this.offerDetails = this.offerDetails[0];\r\n if (this.offerDetails.MaxAmount <= this.subTotal) {\r\n this.offerPrice = this.offerDetails.ApplicableAmount;\r\n this.offerDetails.subTotaloff = this.subTotal - this.offerPrice;\r\n this.offerDetails.totalPriceoff = this.totalPrice - this.offerPrice;\r\n } else {\r\n let amount = this.offerDetails.MaxAmount - this.subTotal;\r\n this.alert = \"Shop for \" + amount + \" more to apply offer\";\r\n }\r\n } else {\r\n this.alert = \"Not Available\";\r\n }\r\n }\r\n\r\n /*getting offers*/\r\n GetAllOffers() {\r\n var url = \"api/Products/GetAllOffers\"\r\n this.generalService.GetData(url).then(data => {\r\n this.offersdata = data;\r\n this.offersdata = this.offersdata.filter(a => a.OfferType != \"EXPIRED\" && a.Status);\r\n console.log(this.offersdata)\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*end code*/\r\n changeData() {\r\n this.offerPrice = 0;\r\n this.offerDetails = \"\";\r\n }\r\n ////sandhya for offer calculation end\r\n\r\n RazorPayPayment() {\r\n debugger\r\n var d = new Date(),\r\n n = d.getTime();\r\n this.TaxnId = n;\r\n var options: any = {\r\n description: 'YKMart ',\r\n image: 'https://ykmart.in/assets/img/IMG-20220210-WA0049a.jpg',\r\n currency: 'INR',\r\n //key: 'rzp_test_PKZRt4NGyfabME',// Test key\r\n // key: 'rzp_live_LnpQ4EQWubWJOo',// Ggari key\r\n key: 'rzp_live_VcpmG5M8UJUp01',// Ykmart\r\n payment_id: n,\r\n payment_capture: '1',\r\n amount: this.totalPrice*100,\r\n //callback_url:\"https://ykmart.in//\",\r\n name: \"YKMart \",\r\n prefill: {\r\n // email: this.LoginDetails.Email,\r\n contact: +91 + \"\" + this.LoginDetails.MobileNo,\r\n name: this.LoginDetails.FarmerName\r\n },\r\n theme: {\r\n color: '#008cb3'\r\n },\r\n handler: this.razorPayHandler.bind(this) // Define handler function\r\n }\r\n debugger\r\n var rzp1 = new Razorpay(options);\r\n //options['handler'] = this.razorPaySuccessHandler.bind(this);\r\n rzp1.open();\r\n //rzp1.on();\r\n }\r\n\r\n// Define handler function to capture payment response\r\n razorPayHandler(response: any){\r\n console.log(response);\r\n debugger\r\n if(response.razorpay_payment_id){\r\n localStorage.setItem(\"PaymentId\",response.razorpay_payment_id);\r\n console.log('Payment Succesfull:',response.razorpay_payment_id);\r\n this.InsertUSer();\r\n }else{\r\n console.log('payment failed or cancelled')\r\n }\r\n\r\n }\r\n\r\n\r\nInsertUSer(){\r\n debugger\r\n this.arr = [];\r\n this.n = \"\"\r\n var d = new Date();\r\n this.n = d.getTime();\r\n \r\n for (var i = 0; i < this.cartItems.length; i++) {\r\n this.arr.push({\r\n CustomerID: this.addressDetails[0].UserId,\r\n AddressId: this.addressId,\r\n PaymentType: this.PaymentType,\r\n ProductId: this.cartItems[i].Productid,\r\n Quantity: this.cartItems[i].Quantity,\r\n Size: this.cartItems[i].Pack,\r\n Price: this.cartItems[i].Price,\r\n TransactionID: this.n,\r\n GstPrice: this.cartItems[i].GstPrice, OfferPrice: this.offerPrice,\r\n DeliveryCharge: this.deliveryCharge,\r\n TotalPrice: this.cartItems[i].Price * this.cartItems[i].Quantity,\r\n // TotalPrice: this.totalPrice,\r\n CreatedBy: this.LoginDetails.Id,\r\n Device:'Web' , TransactionStatus:'Success'\r\n })\r\n }\r\n \r\n \r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(this.arr));\r\n var url = \"/api/Products/Insert_Customer_Orders\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n debugger\r\n if (data != \"\") {\r\n if (data == \"SUCCESS\") {\r\n this.sendsms1();\r\n this.sendsms2();\r\n this.sendsmsToAdmin();\r\n this.sendsmsToAdmin1();\r\n this.generalService.ShowAlert('Success','Your Order Placed Succesfully','success')\r\n this.router.navigate(['/MyOrders']);\r\n }\r\n else {\r\n $('#myModal').modal('hide');\r\n this.sendsms1();\r\n this.sendsmsToAdmin();\r\n this.sendsmsToAdmin1();\r\n this.generalService.ShowAlert('SUCCESS','Your Order Placed Succesfully','success')\r\n this.router.navigate(['/MyOrders']);\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Wishlist items({{wishListItems.length}})
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{item.productname}}-{{item.CategoryName}}-{{item.Pack}}.\r\n
\r\n
\r\n Price: ₹{{item.Price*item.Quantity}}.00\r\n
\r\n
\r\n Sold by: YK Laboratories\r\n
\r\n \r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { WishlistService } from 'src/app/service/wishlist.service'\r\nimport { GeneralService } from 'src/app/service/general.service'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MessageService } from 'primeng/api';\r\n@Component({\r\n selector: 'app-wishlist',\r\n templateUrl: './wishlist.component.html',\r\n styleUrls: ['./wishlist.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class WishlistComponent implements OnInit {\r\n LoginDetails: any;\r\n Wishlistitmesforloginusers: any=[];\r\n wishlistIndex: any;\r\n cartItemList: any=[];\r\n selectedItemforCart: any=[];\r\n itemSize: any;\r\n ItemId: any;\r\n HomeURL: any;\r\n wishListItems: any = []\r\n\r\n constructor(public cartService: CartService, public http: HttpClient,\r\n public generalService: GeneralService, public router: Router,\r\n public wishlistService: WishlistService, public toast: MessageService) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n this.wishlistService.getProducts().subscribe(res => {/*this is a service call for getting wishlist items*/\r\n this.wishListItems = res\r\n console.log(this.wishListItems)\r\n })\r\n this.cartService.getProducts().subscribe(res => {/*this is a service call for getting cart items*/\r\n this.cartItemList = res\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {/* this service call is for getting Homeurl*/\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /*\r\n Below method fires when the user clicks on add to cart page\r\n */\r\n movetoCart(item: any, index) {\r\n \r\n this.ItemId = 0;\r\n this.itemSize = \"\";\r\n // this.selectedItemforCart.push(item)\r\n this.selectedItemforCart.push({\r\n Productid: item.Productid, productname: item.productname, CategoryName: item.CategoryName,\r\n Image: item.Image, Price: item.Price, Pack: item.Pack, Quantity: item.Quantity,\r\n UserId: \"\"\r\n })\r\n if (this.cartItemList.length != 0 && this.cartItemList != \"\" && this.cartItemList != undefined && this.cartItemList != null) {\r\n for (var i = 0; i < this.cartItemList.length; i++) {\r\n if (this.cartItemList[i].Productid == this.selectedItemforCart[0].Productid) {//checking if the product is existing in the cartlist with same id\r\n if (this.cartItemList[i].Pack == this.selectedItemforCart[0].Pack) {//checking if the product is existing in the cartlist with same pack\r\n this.ItemId = this.cartItemList[i].Productid\r\n this.itemSize = this.cartItemList[i].Pack\r\n }\r\n }\r\n }\r\n if (this.itemSize == this.selectedItemforCart[0].Pack) { //if product with same size then we show toast msg like below\r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 1000, detail: 'Product already exist in cart' });\r\n this.wishlistService.removeWishlistItems(index)\r\n }\r\n else {\r\n this.cartService.addtoCart(this.selectedItemforCart[0]);\r\n this.insertCartItems(this.selectedItemforCart)\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Move to Cart Successfully' });\r\n // this.wishlistService.removeWishlistItems(index\r\n this.deleteFromwishList(index, item.WishlistId)\r\n }\r\n }\r\n else {\r\n this.cartService.addtoCart(this.selectedItemforCart[0]);\r\n this.insertCartItems(this.selectedItemforCart);\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Move to Cart Successfully' });\r\n // this.wishlistService.removeWishlistItems(index)\r\n this.deleteFromwishList(index, item.WishlistId)\r\n }\r\n this.selectedItemforCart = []\r\n }\r\n\r\n /*\r\n Below method is called when the customer delete the product from the cart\r\n */\r\n deleteFromwishList(index, wishlistId) {\r\n debugger\r\n this.wishlistIndex = 0;\r\n this.wishlistIndex = index;\r\n let formData: FormData = new FormData();\r\n formData.append('wishListid', wishlistId);\r\n var url = \"/api/Products/DeleteWishlistItems\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.wishlistService.removeWishlistItems(this.wishlistIndex)\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'product deleted successfully' });\r\n }\r\n });\r\n }\r\n\r\n /*\r\n Below method is called when the customer clicks on product it will navigating to product details page\r\n */\r\n navigatingToProduct(data) {\r\n debugger\r\n var prodName = \"\"; var prodarr = []\r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.generalService.setProducts(prodarr);\r\n this.router.navigate(['/Product/' + prodName]);\r\n }\r\n\r\n /*\r\n Below method is for Inserting customer cart items\r\n */\r\n insertCartItems(cartItems) {\r\n debugger\r\n this.Wishlistitmesforloginusers = []\r\n this.Wishlistitmesforloginusers.push(cartItems)\r\n cartItems[0].UserId = String(this.LoginDetails.Id)\r\n var url = \"api/Products/Insert_Cart_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(cartItems));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) { \r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to Cart Successfully' });\r\n }\r\n })\r\n }\r\n\r\n }\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
ADD ADDRESS
\r\n
Please Enter The Below Fields
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\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 { GMapModule } from 'primeng/gmap'\r\nimport { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ToastModule } from 'primeng/toast';\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-add-address',\r\n templateUrl: './add-address.component.html',\r\n styleUrls: ['./add-address.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class AddAddressComponent implements OnInit {\r\n insertingData: boolean=false;\r\n image: any;\r\n lat: any;\r\n lng: any;\r\n map: any;\r\n options: any;\r\n imagefile: any;\r\n overlays: any[];\r\n Id: any;\r\n dialogVisible: boolean;\r\n\r\n markerTitle: string;\r\n\r\n selectedPosition: any;\r\n\r\n infoWindow: any;\r\n\r\n draggable: boolean;\r\n\r\n HomeURL: any;\r\n logindata: boolean;\r\n LoginDetails: any;\r\n ADDRESS_Parts1: {};\r\n ADDRESS1: any;\r\n Longitude: any;\r\n Latitude: any;\r\n Name: any;\r\n mobile: any;\r\n HNo: any;\r\n Area: any;\r\n Landmark: any;\r\n City: any;\r\n Pincode: any;\r\n State: any;\r\n Section: any;\r\n Name1: any; mobile1: any; HNo1: any; Area1: any; Landmark1: any; City1: any; State1: any; Pincode1: any; Section1: any; \r\n constructor(public cartService: CartService, public router: Router, public http: HttpClient,\r\n public generalService: GeneralService, private toast: MessageService) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n if (this.LoginDetails != null) {\r\n this.logindata = true;\r\n this.Name = this.LoginDetails.FarmerName\r\n this.mobile = this.LoginDetails.MobileNo\r\n } else {\r\n this.logindata = false;\r\n }\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n\r\n navigator.geolocation.getCurrentPosition(position => { \r\n var lt = position.coords.latitude\r\n var ln = position.coords.longitude\r\n this.lat = (lt)*1\r\n this.lng = (ln)*1\r\n });\r\n\r\n this.options = {\r\n center: { lat: this.lat, lng: this.lng },\r\n zoom: 15\r\n };\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n /*using geolocation for get exact current position by using @ng-web-apis/geolocation Module*/\r\n navigator.geolocation.getCurrentPosition(position => { \r\n var lt = position.coords.latitude\r\n var ln = position.coords.longitude\r\n this.lat = (lt) * 1\r\n this.lng = (ln) * 1\r\n this.initOverlays();\r\n this.options = {\r\n center: { lat: this.lat, lng: this.lng },\r\n zoom: 15\r\n };\r\n this.infoWindow = new google.maps.InfoWindow();\r\n this.getLocation(this.lat, this.lng)\r\n });\r\n \r\n //navigator.geolocation.getCurrentPosition(resp => {})\r\n }\r\n\r\n /*Method for Insert customer Address in DB*/\r\n InsertAdderss(Name, mobile, HNo, Area, Landmark, City, State, Pincode, Section) { \r\n this.insertingData = true;\r\n // this.geoCode(HNo + \",\" + Area + \",\") + Landmark + \",\" + City + \",\" + State + \",\" + Pincode;\r\n if (Name == '' || Name == undefined || Name == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your name.', 'warning')\r\n }\r\n else if (mobile == undefined || mobile == undefined || mobile == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your mobile.', 'warning')\r\n }\r\n else if (HNo == undefined || HNo == '' || HNo == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your hno.', 'warning')\r\n }\r\n else if (Area == undefined || Area == '' || Area == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your area.', 'warning')\r\n }\r\n else if (Landmark == '' || Landmark == undefined || Landmark == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your landmark.', 'warning')\r\n }\r\n else if (City == undefined || City == '' || City == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your city.', 'warning')\r\n }\r\n else if (State == undefined || State == '' || State == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your state.', 'warning')\r\n }\r\n else if (Pincode == undefined || Pincode == '' || Pincode == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your pincode.', 'warning')\r\n }\r\n\r\n else {\r\n let Address = [{\r\n Name: Name,\r\n Mobile: mobile,\r\n UserId: this.LoginDetails.Id,\r\n HNo: HNo,\r\n Area: Area,\r\n Landmark: Landmark,\r\n City: City,\r\n State: State,\r\n Pincode: Pincode,\r\n Class: Section,\r\n AddressType: 'Home',\r\n Latitude: this.lat,\r\n Longitude: this.lng,\r\n Address: this.ADDRESS1\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(Address));\r\n var url = \"/api/Products/Add_Customer_Address\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data == 'SUCCESS') {\r\n this.generalService.ShowAlert('Success', 'Your delivery address added successfully.', 'success')\r\n this.router.navigate(['Cart'])\r\n // this.navCtrl.pop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n InsertAdderss1(Name1, mobile1, HNo1, Area1, Landmark1, City1, State1, Pincode1, Section1) {\r\n debugger\r\n this.insertingData = true;\r\n // this.geoCode(HNo + \",\" + Area + \",\") + Landmark + \",\" + City + \",\" + State + \",\" + Pincode;\r\n if (Name1 == '' || Name1 == undefined || Name1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your name.', 'warning')\r\n }\r\n else if (mobile1 == undefined || mobile1 == undefined || mobile1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your mobile.', 'warning')\r\n }\r\n else if (HNo1 == undefined || HNo1 == '' || HNo1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your hno.', 'warning')\r\n }\r\n else if (Area1 == undefined || Area1 == '' || Area1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your area.', 'warning')\r\n }\r\n else if (Landmark1 == '' || Landmark1 == undefined || Landmark1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your landmark.', 'warning')\r\n }\r\n else if (City1 == undefined || City1 == '' || City1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your city.', 'warning')\r\n }\r\n else if (State1 == undefined || State1 == '' || State1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your state.', 'warning')\r\n }\r\n else if (Pincode1 == undefined || Pincode1 == '' || Pincode1 == null) {\r\n this.generalService.ShowAlert('Warning', 'Please enter your pincode.', 'warning')\r\n }\r\n\r\n else {\r\n let Address = [{\r\n FarmerName: this.Name1,\r\n MobileNo: this.mobile1,\r\n Password: this.mobile1,\r\n UserId: this.Id,\r\n // Id: this.Id,\r\n HNo: this.HNo1,\r\n Area: this.Area1,\r\n Landmark: this.Landmark1,\r\n City: this.City1,\r\n State: this.State1,\r\n Pincode: this.Pincode1,\r\n Class: this.Section1,\r\n AddressType: 'Home',\r\n Latitude: this.lat,\r\n Longitude: this.lng,\r\n Address: this.ADDRESS1,\r\n CreatedBy: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(Address));\r\n var url = \"/api/Products/Add_Emp_Customer_Address\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data == 'SUCCESS') {\r\n this.generalService.ShowAlert('Success', 'Your delivery address added successfully.', 'success')\r\n this.router.navigate(['Cart'])\r\n // this.navCtrl.pop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n\r\n /**\r\n * initially loading method for bindin current customer position\r\n */\r\n initOverlays() {\r\n debugger\r\n if (!this.overlays || !this.overlays.length) {\r\n this.overlays = [\r\n new google.maps.Marker({ position: { lat: this.lat, lng:this.lng }, title: \"Current\" }),\r\n //new google.maps.Polygon({\r\n // paths: [\r\n // { lat: this.lat, lng: this.lng },\r\n // { lat: this.lat, lng: this.lng },\r\n // { lat: this.lat, lng: this.lng },\r\n // { lat: this.lat, lng: this.lng }\r\n // ], strokeOpacity: 0.5, strokeWeight: 1, fillColor: '#1976D2', fillOpacity: 0.35\r\n //}),\r\n // new google.maps.Circle({ center: { lat: this.lat, lng: this.lng }, fillColor: '#1976D2', fillOpacity: 0.35, strokeWeight: 1, radius: 1500 }),\r\n new google.maps.Polyline({ path: [{ lat: this.lat, lng: this.lng }, { lat: this.lat, lng: this.lng }], geodesic: true, strokeColor: '#FF0000', strokeOpacity: 0.5, strokeWeight: 2 })\r\n ];\r\n }\r\n }\r\n\r\n /**\r\n * handleMapClick Method for getting lat and lng by click on map\r\n * @param event\r\n */\r\n handleMapClick(event) {\r\n debugger\r\n this.dialogVisible = true;\r\n this.selectedPosition = event.latLng;\r\n this.getLocation(this.selectedPosition.lat(), this.selectedPosition.lng())\r\n this.lat = this.selectedPosition.lat()\r\n this.lng = this.selectedPosition.lng()\r\n this.overlays = [\r\n new google.maps.Marker({ position: { lat: this.lat, lng: this.lng }, title: \"Current\" }),\r\n new google.maps.Polygon({\r\n paths: [\r\n { lat: this.lat, lng: this.lng }, { lat: this.lat, lng: this.lng }, { lat: this.lat, lng: this.lng },\r\n { lat: this.lat, lng: this.lng }\r\n ], strokeOpacity: 0.5, strokeWeight: 1, fillColor: '#1976D2', fillOpacity: 0.35\r\n }),\r\n // new google.maps.Circle({ center: { lat: this.lat, lng: this.lng }, fillColor: '#1976D2', fillOpacity: 0.35, strokeWeight: 1, radius: 1500 }),\r\n new google.maps.Polyline({ path: [{ lat: this.lat, lng: this.lng }, { lat: this.lat, lng: this.lng }], geodesic: true, strokeColor: '#FF0000', strokeOpacity: 0.5, strokeWeight: 2 })\r\n ];\r\n }\r\n\r\n /**\r\n * /Method for ovelay click event on Gmap\r\n * @param event\r\n */\r\n handleOverlayClick(event) {\r\n let isMarker = event.overlay.getTitle != undefined;\r\n if (isMarker) {\r\n let title = event.overlay.getTitle();\r\n this.infoWindow.setContent('' + title + '');\r\n this.infoWindow.open(event.map, event.overlay);\r\n event.map.setCenter(event.overlay.getPosition());\r\n\r\n this.toast.add({ severity: 'info', summary: 'Marker Selected', detail: title });\r\n }\r\n else {\r\n this.toast.add({ severity: 'info', summary: 'Shape Selected', detail: '' });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Gmap Handle Drag End Point @param from gmap\r\n * @param event\r\n */\r\n handleDragEnd(event) {\r\n this.toast.add({ severity: 'info', summary: 'Marker Dragged', detail: event.overlay.getTitle() });\r\n }\r\n\r\n /**\r\n * Add Marker On GMap\r\n */\r\n addMarker() {\r\n this.overlays.push(new google.maps.Marker({ position: { lat: this.selectedPosition.lat(), lng: this.selectedPosition.lng() }, title: this.markerTitle, draggable: this.draggable }));\r\n this.markerTitle = null;\r\n }\r\n\r\n\r\n\r\n /**Get Formated Addreess using this method*\r\n *@param lat\r\n * @param long\r\n */\r\n getLocation(lat, long) {\r\n var geocoder = new google.maps.Geocoder();\r\n this.Latitude = lat; this.Longitude = long;\r\n let latlng = new google.maps.LatLng(lat, long);\r\n\r\n let request = { latLng: latlng };\r\n geocoder.geocode(request, async (results, status) => {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n let result = results[0];\r\n this.ADDRESS1 = result.formatted_address;\r\n this.Pincode = result.address_components.find(x => x.types == 'postal_code').long_name;\r\n this.State = result.address_components.find(x => x.types[0] == 'administrative_area_level_1').long_name;\r\n this.City = result.address_components.find(x => x.types[0] == 'locality').long_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
\r\n
\r\n
Goals
\r\n \r\n
\r\n
\r\n {{item.GoalName}}\r\n
\r\n
\r\n
\r\n

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \"...\"\r\n
\r\n {{item.productname}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ {{item.Price1}}\r\n
\r\n
\r\n \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 { GeneralService } from '../../service/general.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { Local } from 'protractor/built/driverProviders';\r\n\r\n@Component({\r\n selector: 'app-goals',\r\n templateUrl: './goals.component.html',\r\n styleUrls: ['./goals.component.scss']\r\n})\r\nexport class GoalsComponent implements OnInit {\r\n GoalName: any;\r\n HomeURL: any;\r\n GoalProducts: any;\r\n selectedGoal = [];\r\n Goals: any;\r\n CategoryData: any;\r\n goalId: any;\r\n public router: Router;\r\n constructor(public generalService: GeneralService, public http: HttpClient, router: Router, public activeroute: ActivatedRoute) {\r\n /*below categry name is invoked from the above url from the browser in that '-' is replaced with \" \" and trim for whaite spaces*/\r\n this.GoalName = this.activeroute.snapshot.paramMap.get('Name').replace(/\\_/g, \" \").trim();\r\n this.router = router\r\n /*By using below service we can get the category id from page header*/\r\n this.generalService.getCategoryid().subscribe(res => {\r\n if (res.length == 0) {//if category id is null\r\n this.GetCategoryforfiltercatidWhilecopyURL()\r\n }\r\n else {//it will execute when we select header Goals\r\n this.goalId = res[0].Id\r\n this.GoalName = res[0].GoalName;\r\n this.getGoalBasedProductsBasedongoalId()\r\n }\r\n\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.GetGoalforsideBar()\r\n }\r\n\r\n /*\r\n* Below method is used to get the Category product details from url\r\n GoalName while category id is null this method i invoked\r\n*/\r\n GetCategoryforfiltercatidWhilecopyURL() {\r\n var url = \"/api/Products/GetGoals\"\r\n this.generalService.GetData(url).then(data => {\r\n this.CategoryData = data\r\n var catData = this.CategoryData.filter(A => A.GoalName === this.GoalName)\r\n this.goalId = catData[0].Id\r\n this.getGoalBasedProductsBasedongoalId()\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n* Below method is used to get the Category list for left side menu \r\n*/\r\n GetGoalforsideBar() {\r\n var url = \"/api/Products/GetGoals\"\r\n this.generalService.GetData(url).then(data => {\r\n this.Goals = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*\r\n * Below method is used to get the Goals based on category Id\r\n */\r\n getGoalBasedProductsBasedongoalId() {\r\n debugger\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null, Id: this.goalId })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAll_GoalWiseProductsBasedOnGoalID\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.GoalProducts = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /**\r\n * Below method is call when customer clicks on side bar Goals\r\n */\r\n onclickmethodforLeftsideGoals(goalId, name) {\r\n this.goalId = goalId\r\n this.GoalName = name\r\n this.getGoalBasedProductsBasedongoalId()\r\n // this.GetCategoryforsideBar()\r\n }\r\n\r\n /**\r\n * Navigating to selected Products page regarding category\r\n */\r\n navigatingToProduct(data) {\r\n debugger\r\n var prodName = \"\"; var prodarr = []\r\n prodarr = this.GoalProducts.filter(A => A.productname == data.productname)//Filtering Goals data based on selected chemical name for getting category id \r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n var obj = prodarr;\r\n obj[0].TopicName = this.GoalName;\r\n localStorage.setItem('Goal', this.GoalName);\r\n this.generalService.setProducts(obj);\r\n this.generalService.clearCategoryid()\r\n this.router.navigate(['/Product/' + prodName]);\r\n \r\n }\r\n\r\n /**\r\n * navigate To best Seller\r\n */\r\n navigateTobestSeller() {\r\n this.router.navigate(['/Product/_VAAYU'])\r\n }\r\n}\r\n","\r\n
\r\n

\r\n \r\n
\r\n
\r\n
\r\n
Farming produces
\r\n\r\n
\r\n
\r\n {{item.SpecialityName}} \r\n
\r\n
\r\n
\r\n
\r\n
Categories
\r\n
\r\n\r\n
    \r\n
  • \r\n \r\n {{item.SpecialityName}}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n

\r\n
\r\n
Best Seller
\r\n
\r\n \"...\"\r\n
\r\n Vaayu\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ 500.00\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \"...\"\r\n
\r\n {{item.productname}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n

Best Seller:

\r\n
\r\n \"...\"\r\n
\r\n Vaayu\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ₹ 500.00\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\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 { GeneralService } from '../../service/general.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-farmer-produces',\r\n templateUrl: './farmer-produces.component.html',\r\n styleUrls: ['./farmer-produces.component.scss']\r\n})\r\nexport class FarmerProducesComponent implements OnInit {\r\n SpecialityName: any;\r\n HomeURL: any;\r\n FarmerProducts: any;\r\n selectedFarmerProducts = [];\r\n Specialities: any;\r\n SpecialitieData: any;\r\n SpecialityId: any;\r\n public router: Router;\r\n constructor(public generalService: GeneralService, public http: HttpClient, router: Router, public activeroute: ActivatedRoute) {\r\n /*below categry name is invoked from the above url from the browser in that '-' is replaced with \" \" and trim for whaite spaces*/\r\n this.SpecialityName = this.activeroute.snapshot.paramMap.get('Name').replace(/\\_/g, \" \").trim();\r\n this.router = router\r\n /*By using below service we can get the category id from page header*/\r\n this.generalService.getCategoryid().subscribe(res => {\r\n if (res.length == 0) {//if category id is null\r\n this.GetFarmerProducesMasterfilterspecialityidWhilecopyURL()\r\n }\r\n else {//it will execute when we select header Specialities\r\n this.SpecialityId = res[0].Id\r\n this.SpecialityName = res[0].SpecialityName\r\n this.getSpecialProductsBasedonSpecialityId()\r\n }\r\n\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.GetSpecialforsideBar()\r\n }\r\n\r\n /*\r\n* Below method is used to get the Category product details from url\r\n GoalName while category id is null this method i invoked\r\n*/\r\n GetFarmerProducesMasterfilterspecialityidWhilecopyURL() {\r\n var url = \"/api/Products/GetFarmingProducesMaster\"\r\n this.generalService.GetData(url).then(data => {\r\n this.SpecialitieData = data\r\n var catData = this.SpecialitieData.filter(A => A.SpecialityName === this.SpecialityName)\r\n this.SpecialityId = catData[0].Id\r\n this.getSpecialProductsBasedonSpecialityId()\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n* Below method is used to get the Category list for left side menu \r\n*/\r\n GetSpecialforsideBar() {\r\n var url = \"/api/Products/GetFarmingProducesMaster\"\r\n this.generalService.GetData(url).then(data => {\r\n this.Specialities = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*\r\n * Below method is used to get the Specialities based on category Id\r\n */\r\n getSpecialProductsBasedonSpecialityId() { \r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null, Id: this.SpecialityId })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAll_FarmingProductsBasedOnSpecialityId\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.FarmerProducts = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /**\r\n * Below method is call when customer clicks on side bar Specialities\r\n */\r\n onclickmethodforLeftsideSpecialities(SpecialityId, name) {\r\n debugger\r\n this.SpecialityId = SpecialityId\r\n this.SpecialityName = name\r\n this.getSpecialProductsBasedonSpecialityId()\r\n // this.GetCategoryforsideBar()\r\n }\r\n\r\n /**\r\n * Navigating to selected Products page regarding category\r\n */\r\n navigatingToProduct(data) {\r\n debugger\r\n var prodName = \"\"; var prodarr = []\r\n prodarr = this.FarmerProducts.filter(A => A.productname == data.productname)//Filtering Specialities data based on selected chemical name for getting category id \r\n var str = data.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.generalService.setProducts(prodarr);\r\n this.router.navigate(['/EnquiryProducts/' + prodName]);\r\n }\r\n\r\n /**\r\n * navigate To best Seller\r\n */\r\n navigateTobestSeller() {\r\n this.router.navigate(['/Product/_VAAYU'])\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'uvideosafe'\r\n})\r\nexport class UVideoSafe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
    \r\n
  1. \r\n Home\r\n
  2. \r\n
  3. \r\n {{productDetails[0].SpecialityName}}\r\n
  4. \r\n
  5. \r\n {{ProductName}}\r\n
  6. \r\n
\r\n\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n

{{productDetails[0].productname}}

\r\n \r\n \r\n
\r\n Share\r\n\r\n  \r\n
\r\n\r\n \r\n
\r\n Size : {{currntPacksize}}\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
{{productDetails[0].Pack1}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack2}}
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack3}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack4}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Product Information\r\n
\r\n

\r\n \r\n

\r\n \r\n
\r\n Benefits\r\n
\r\n

\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
CART FOR ENQUIRY
\r\n\r\n \r\n
\r\n \r\n
\r\n Quantity\r\n \r\n \r\n \r\n

\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Quantity\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n

\r\n \r\n

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

\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n My Address {{i+1}}\r\n
\r\n \r\n {{item.Area}}, {{item.HNo}}, {{item.Landmark}}, {{item.City}}, {{item.State}}, {{item.Pincode}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n YKmart youtube Video\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { CartService } from 'src/app/service/cart.service'\r\nimport { MessageService } from 'primeng/api';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { WishlistService } from 'src/app/service/wishlist.service';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\ndeclare var google: any;\r\n@Component({\r\n selector: 'app-product-enquiry',\r\n templateUrl: './product-enquiry.component.html',\r\n styleUrls: ['./product-enquiry.component.scss'],\r\n providers: [MessageService],\r\n})\r\nexport class ProductEnquiryComponent implements OnInit {\r\n Pincode: any;\r\n Name: any;\r\n lat: any;\r\n lng: any;\r\n addressDetails: any;\r\n addressId: any;\r\n Cartimesforloginusers: any = [];\r\n ProductInfo: any;\r\n recomendedCrops: any;\r\n benefits: any;\r\n ingrediants: any;\r\n dosage: any;\r\n logedinUser: any;\r\n LoginDetails: any;\r\n seletedItemforWishlist: any = [];\r\n wishListItems: any = [];\r\n whatsAppProductURL: string;\r\n Quantity: any = 1;\r\n itemSize: any;\r\n ItemId: any;\r\n currntPacksize: any;\r\n currentPrice: any;\r\n ProductName: any;\r\n HomeURL: any;\r\n productDetails: any;\r\n cartItemList: any = []\r\n selectedItemforCart: any = [];\r\n Mobile: any;\r\n HNo: any;\r\n Area: any;\r\n Landmark: any;\r\n City: any;\r\n State: any;\r\n Comments: any;\r\n videoUrl: any;\r\n constructor(public generalService: GeneralService, public http: HttpClient,\r\n public activeroute: ActivatedRoute, public cartService: CartService, public router: Router,\r\n public toast: MessageService, public wishlistService: WishlistService, private sanitizer: DomSanitizer) { \r\n this.ProductName = this.activeroute.snapshot.paramMap.get('jame').replace(/\\_/g, \" \").trim();\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\")); \r\n this.generalService.getProducts().subscribe(res => { \r\n if (res.length == 0) {//if category id is null\r\n this.GetProductDetailsbasedonProductName()\r\n }\r\n else {\r\n this.ProductName = res[0].productname\r\n this.currentPrice = res[0].Price1\r\n this.currntPacksize = res[0].Pack1\r\n this.productDetails = res;\r\n this.videoUrl = res[0].VideoLink;\r\n this.ProductInfo = decodeURIComponent(res[0].ProductInfo)\r\n this.recomendedCrops = decodeURIComponent(this.productDetails[0].RecommendedCrops)\r\n this.benefits = decodeURIComponent(this.productDetails[0].Benefits)\r\n this.dosage = decodeURIComponent(this.productDetails[0].Dosage)\r\n }\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n navigator.geolocation.getCurrentPosition(position => { \r\n this.lat = (position.coords.latitude)*1\r\n this.lng = (position.coords.longitude) * 1\r\n this.getLocation(this.lat, this.lng)\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.cartService.getProducts().subscribe(res => {\r\n this.cartItemList = res /*Getting current cart item lists*/\r\n })\r\n this.wishlistService.getProducts().subscribe(res => {\r\n this.wishListItems = res /*this is a service call for getting wishlist items*/\r\n })\r\n if (this.LoginDetails) {\r\n this.getCustomerAddress()\r\n }\r\n this.clearFields()\r\n console.log(this.videoUrl);\r\n\r\n }\r\n /*\r\n Getting product details based on their product name which was getting from active routs in url\r\n */\r\n GetProductDetailsbasedonProductName() {\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"ProductName\", this.ProductName)\r\n var url = \"/api/Products/GetAllCategoryWiseProductsBasedOnProductName\"\r\n this.generalService.PostData(url, UploadFile).then(data => { \r\n this.productDetails = data\r\n this.ProductInfo = null;\r\n this.recomendedCrops = null;\r\n this.benefits = null;\r\n this.ingrediants = null;\r\n this.dosage = null\r\n this.videoUrl = this.productDetails[0].VideoLink\r\n this.currentPrice = this.productDetails[0].Price1\r\n this.currntPacksize = this.productDetails[0].Pack1\r\n this.ProductInfo = decodeURIComponent(this.productDetails[0].ProductInfo)\r\n this.recomendedCrops = decodeURIComponent(this.productDetails[0].RecommendedCrops)\r\n this.benefits = decodeURIComponent(this.productDetails[0].Benefits)\r\n this.dosage = decodeURIComponent(this.productDetails[0].Dosage)\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n below method fires when the user clicks on size pack along with price\r\n */\r\n selectPrice(size, price) {\r\n this.currntPacksize = size\r\n this.currentPrice = price\r\n }\r\n \r\n /*\r\n *Below method is for sharing url on whatsapp \r\n */\r\n sendWhatsapp(item) {\r\n var prodName = \"\"\r\n var str = item.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.whatsAppProductURL = \"https://ykmart.breakingindiaapp.com/%23/Product/\" + prodName\r\n window.open(\"https://api.whatsapp.com/send?&text=\" + this.whatsAppProductURL)\r\n }\r\n\r\n \r\n /** \r\n * below method is for getting loged in user name\r\n */\r\n logedin() {\r\n this.logedinUser = localStorage.getItem('token');\r\n return this.logedinUser;\r\n }\r\n /*\r\n *Get Customer Delivery Address \r\n */\r\n getCustomerAddress() {\r\n let Address = [{\r\n UserId: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(Address));\r\n var url = \"/api/Products/Get_Customer_Address_Based_On_Id\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.addressDetails = data;\r\n }\r\n });\r\n }\r\n\r\n /*\r\n get selected addresss of customers\r\n */\r\n getSelectedAddress(item) {\r\n // this.addressId=item\r\n }\r\n\r\n /**\r\n * Below method fired when the user raises an enquiry\r\n */\r\n PlaceEnquiry() {\r\n var arr = [];\r\n if (!this.addressId) { \r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 2000, detail: 'Please select address for enquiry' });\r\n }\r\n else {\r\n for (var i = 0; i < this.productDetails.length; i++) {\r\n arr.push({\r\n Customerid: this.LoginDetails.Id, AddressId: this.addressId,\r\n ProductId: this.productDetails[i].Productid, TotalProducts: this.Quantity,\r\n Size: this.currntPacksize, TotalAmount: this.productDetails[i].Price,\r\n AdminAmount: this.productDetails[i].Price, CustomerName: this.LoginDetails.FarmerName,\r\n Mobile: this.LoginDetails.MobileNo, Latitude: this.lat, Longitude: this.lng,\r\n Comments: this.Comments\r\n })\r\n }\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Insert_Customer_Enquires\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.addressId=\"\"\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 2000, detail: 'Your enquiry placed successfully Ykmart team get you soon' });\r\n this.ngOnInit()\r\n }\r\n });\r\n }\r\n }\r\n\r\n /* ProductName for navigation*/\r\n navigatingtoFarmerProduces(data) { \r\n var catName = \"\";\r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n catName += \"_\" + str[i];\r\n }\r\n this.router.navigate(['/FarmerProduces/' + catName]);\r\n }\r\n\r\n /**\r\n * Below method fired when the user raises an enquiry With out login\r\n */\r\n PlaceEnquiryNormalUser() {\r\n if (!this.LoginDetails) {\r\n if (!this.Name || !this.Mobile) {\r\n this.generalService.ShowAlert('WARNING', 'Please fill Name and Mobile No.', 'warning');\r\n // this.toast.add({ severity: 'warning', summary: 'Warning', life: 2000, detail: 'Please fill Name and Mobile No.' });\r\n return false;\r\n }\r\n }\r\n var arr = [];\r\n for (var i = 0; i < this.productDetails.length; i++) {\r\n arr.push({\r\n AddressId: this.addressId,\r\n ProductId: this.productDetails[i].Productid, TotalProducts: this.Quantity,\r\n Size: this.currntPacksize, TotalAmount: this.productDetails[i].Price,\r\n AdminAmount: this.productDetails[i].Price,\r\n City: this.City, HNo: this.HNo, Area: this.Area, LandMark: this.Landmark,\r\n State: this.State, Mobile: this.Mobile, Latitude: this.lat, Longitude: this.lng,\r\n Pincode: this.Pincode, CustomerName: this.Name, Comments: this.Comments\r\n })\r\n }\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Insert_Customer_Enquires\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.addressId = \"\"\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 2000, detail: 'Your enquiry placed successfully Ykmart team get you soon' });\r\n this.ngOnInit()\r\n }\r\n });\r\n }\r\n /**Get Formated Addreess using this method*\r\n *@param lat\r\n * @param long\r\n */\r\n getLocation(lat, long) {\r\n var geocoder = new google.maps.Geocoder();\r\n let latlng = new google.maps.LatLng(lat, long);\r\n let request = { latLng: latlng };\r\n geocoder.geocode(request, async (results, status) => {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n let result = results[0];\r\n // this.ADDRESS1 = result.formatted_address;\r\n this.Pincode = result.address_components.find(x => x.types == 'postal_code').long_name;\r\n this.State = result.address_components.find(x => x.types[0] == 'administrative_area_level_1').long_name;\r\n this.City = result.address_components.find(x => x.types[0] == 'locality').long_name;\r\n }\r\n })\r\n }\r\n\r\n /*Clear all enquiry fields*/\r\n clearFields() {\r\n this.HNo = \"\"\r\n this.Area = \"\"\r\n this.Landmark = \"\"\r\n this.Pincode = \"\"\r\n this.Name = \"\"\r\n this.Mobile = \"\"\r\n this.Comments=\"\"\r\n }\r\n}\r\n","\r\n
\r\n\r\n\r\n
\r\n
My Orders
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{item1.OrderID}}\r\n
\r\n
\r\n
\r\n
\r\n {{item1.CreatedDate | date:'dd-MMM-yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{item1.StatusName}}

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

\r\n Order Amount:{{item1.TotalPrice}}/-\r\n

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

Review Your Purchases

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n {{autofillCustomers.ProductName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \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 orders available\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\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 { GeneralService } from 'src/app/service/general.service';\r\nimport { Router } from '@angular/router';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-my-orders',\r\n templateUrl: './my-orders.component.html',\r\n styleUrls: ['./my-orders.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class MyOrdersComponent implements OnInit {\r\n orderDetails: any;\r\n productDetails: any;\r\n OrderedProductList: any;\r\n LoginDetails: any;\r\n stars: number[] = [1, 2, 3, 4, 5];\r\n selectedValue: any;\r\n ProductName: any;\r\n Comments: any;\r\n prList: any[];\r\n products: any;\r\n Comment: any;\r\n Product: any;\r\n constructor(public generalService: GeneralService, public router: Router, public toast: MessageService, ) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCustomerOrderDetails()\r\n \r\n }\r\n /*\r\n *Geting customer order details by sending customer id to the server \r\n */\r\n getCustomerOrderDetails() {\r\n let details = [{\r\n CustomerID: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(details));\r\n var url = \"/api/Products/Get_All_Customer_Orders_Basedon_CustomerID\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.OrderedProductList = data;\r\n }\r\n });\r\n }\r\n\r\n /*Below method is used to navigating to order invoice page*/\r\n navigateToInvoice(orderid) {\r\n this.router.navigate(['/Invoice/' + orderid]);\r\n }\r\n getProductDetails(obj: any) {\r\n debugger\r\n this.productDetails = obj;\r\n var arr = [];\r\n arr.push({\r\n TokenID: this.LoginDetails.Token,\r\n UserId: this.LoginDetails.Id,\r\n OrderID: this.productDetails.OrderID\r\n })\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Get_Admin_Orderdetails_BasedOn_OrderId\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n debugger\r\n if (data != \"\") {\r\n this.orderDetails = [];\r\n this.orderDetails = data;\r\n //console.log(this.orderDetails);\r\n }\r\n });\r\n //console.log(this.productDetails);\r\n }\r\n countStar(star) {\r\n this.selectedValue = star;\r\n //console.log('Value of star', star);\r\n }\r\n rattingSubmit(Product,Comment) {\r\n debugger\r\n let details = [{\r\n \r\n Id: 0,\r\n CustomerId: this.LoginDetails.Id,\r\n ProductId: Product.ProductId,\r\n Starscount: this.selectedValue ,\r\n Comments: Comment,\r\n Status: 1,\r\n CreatedBy: 1\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(details));\r\n var url = \"api/Products/SaveCustomerRating\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n debugger\r\n //this.OrderedProductList = data;\r\n this.Product = '';\r\n this.Comment = '';\r\n\r\n this.selectedValue = '';\r\n \r\n \r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Submit Successfully' });\r\n\r\n //this.generalService.ShowAlert('SUCCESS', 'Submit Successfully.', 'success')\r\n \r\n \r\n }\r\n });\r\n }\r\n // The dropdown and search filter order products are linked by this code.\r\n filterGroupsSingleforGoal(event) {\r\n debugger\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n {\r\n this.prList = [];\r\n for (let i = 0; i < this.orderDetails.length; i++) {\r\n let order = this.orderDetails[i];\r\n if (order.ProductName.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n filtered.push(order);\r\n }\r\n }\r\n this.prList = filtered;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Tax Invoice
\r\n \r\n
\r\n
\r\n Bill To:
\r\n {{orderDetails[0].FarmerName}} - {{orderDetails[0].MobileNo}} \r\n
\r\n {{orderDetails[0].HNo}}, {{orderDetails[0].Landmark}}, {{orderDetails[0].Area}},\r\n
\r\n {{orderDetails[0].City}}, {{orderDetails[0].State}} - {{orderDetails[0].Pincode}}
\r\n \r\n \n\r\n
\r\n\r\n
\r\n\r\n
YK mart
\r\n
\r\n Herbal House, road no 3,servey no 255, Kuntloor\r\n
\r\n
\r\n Telangana\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Order Id: {{orderNo}}
Order Date: {{orderDate | date:'dd-MMM-yyyy'}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Invoice No:IN{{billNo}}
Invoice Date: {{orderDate | date:'dd-MMM-yyyy'}}
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n
S NoDescriptionHSNDocketNumberQtyunitsBase Price(₹)GST RateGST AmountAmount
{{i+1}}{{item1.ProductName}}{{item1.HSN}}{{item1.DocketNumber }}{{item1.Quantity}}{{item1.Size}}{{(item1.Price-item1.GstPrice ) | currency:'INR'}}{{item1.GST}}%₹{{item1.GstPrice}}.00{{item1.Price | currency:'INR'}}
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Actual Price: {{grandTotal+offerAmount-deliveryCharge | currency:'INR'}}
\r\n
Offer Amount: {{offerAmount | currency:'INR'}}
\r\n
Delivery Charge: {{deliveryCharge | currency:'INR'}}
\r\n
Total Amount: {{grandTotal | currency:'INR'}}
\r\n
\r\n
\r\n
\r\n We declare that this invoice shows the actual price of the goods described and that all
\r\n particulars are true and correct.\r\n
\r\n
\r\n Authorized Signatory\r\n
\r\n
This is computer generated invoice
\r\n

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

\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\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 { GeneralService } from '../../service/general.service'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n@Component({\r\n selector: 'app-order-invoice',\r\n templateUrl: './order-invoice.component.html',\r\n styleUrls: ['./order-invoice.component.scss']\r\n})\r\nexport class OrderInvoiceComponent implements OnInit {\r\n deliveryCharge: any;\r\n offerAmount: any;\r\n grandTotal: any;\r\n billNo: any;\r\n orderDate: any;\r\n orderDetails: any = [];\r\n orderNo: string;\r\n LoginDetails: any;\r\n\r\n constructor(public generalService: GeneralService, public activeroute: ActivatedRoute) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n this.orderNo = this.activeroute.snapshot.paramMap.get('No')\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getOrdersbasedOnOrderDetails()\r\n }\r\n\r\n getOrdersbasedOnOrderDetails() {\r\n debugger\r\n \r\n var arr = [];\r\n arr.push({\r\n TokenID: this.LoginDetails.Token,\r\n UserId: this.LoginDetails.Id,\r\n OrderID: this.orderNo\r\n })\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(arr));\r\n var url = \"/api/Products/Get_Admin_Orderdetails_BasedOn_OrderId\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.orderDetails = []\r\n this.orderDetails = data\r\n this.orderDate = data[0].CreatedDate\r\n this.billNo = data[0].TransactionID\r\n \r\n let grandTotal = data.reduce((total, order) => total + order.TotalPrice, 0);\r\n this.grandTotal = grandTotal\r\n this.offerAmount = data[0].OfferPrice\r\n this.deliveryCharge = 0\r\n }\r\n });\r\n }\r\n\r\n print():\r\n void {\r\n let printContents, popupWin;\r\n printContents = document.getElementById('print-section').innerHTML;\r\n //popupWin = window.open('','_blank', 'top=0,left=0,height=100%,width=auto');\r\n popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n \r\n \r\n Print tab\r\n \r\n \r\n ${printContents}\r\n `\r\n );\r\n popupWin.document.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
My Enquiries
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{item1.EnquiryNumber}}\r\n
\r\n
\r\n
\r\n
\r\n {{item1.EnquireDate | date:'dd-MMM-yyyy H:m'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{item1.ProductName}}-{{item1.Size}}

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

\r\n Quantity:{{item1.TotalProducts}}/-\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n No enquiries available\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\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 { GeneralService } from 'src/app/service/general.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-my-enquiries',\r\n templateUrl: './my-enquiries.component.html',\r\n styleUrls: ['./my-enquiries.component.scss']\r\n})\r\nexport class MyEnquiriesComponent implements OnInit {\r\n EnquiryProductList: any;\r\n LoginDetails: any;\r\n\r\n constructor(public generalService: GeneralService, public router: Router, ) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCustomerEnquiryDetails()\r\n }\r\n /*\r\n *Geting customer order details by sending customer id to the server \r\n */\r\n getCustomerEnquiryDetails() {\r\n let details = [{\r\n CustomerID: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(details));\r\n var url = \"/api/Products/Get_All_Customer_Enquiries_Basedon_CustomerID\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n this.EnquiryProductList = data;\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-privacy-policy',\r\n templateUrl: './privacy-policy.component.html',\r\n styleUrls: ['./privacy-policy.component.scss']\r\n})\r\nexport class PrivacyPolicyComponent 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
{{item.productname}}
\r\n
\r\n \r\n \r\n \r\n
\r\n
{{item.Pack1}}-₹{{item.Price}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Privacy Policy of YK Mart\r\n

YK Mart operates the https://ykmart.in website, which provides the SERVICE.

\r\n\r\n This page is used to inform website visitors regarding our policies with the collection,\r\n use, and disclosure of Personal Information if anyone decided to use our Service, the\r\n YK Mart website.\r\n\r\n

\r\n If you choose to use our Service, then you agree to the collection and use of information\r\n in relation with this policy. The Personal Information that we collect are used for providing\r\n and improving the Service. We will not use or share your information with anyone except as\r\n described in this Privacy Policy. Our Privacy Policy was created with the help of the\r\n Privacy Policy Template Generator.\r\n

\r\n\r\n

\r\n The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions,\r\n which is accessible at https://ykmart.in , unless otherwise defined in this Privacy Policy.\r\n

\r\n\r\n Information Collection and Use\r\n

\r\n For a better experience while using our Service, we may require you to provide us with certain\r\n personally identifiable information, including but not limited to your name, phone number, and\r\n postal address. The information that we collect will be used to contact or identify you.\r\n

\r\n\r\n Log Data\r\n

\r\n We want to inform you that whenever you visit our Service, we collect information that your\r\n browser sends to us that is called Log Data. This Log Data may include information such as your\r\n computer’s Internet Protocol (\"IP\") address, browser version, pages of our Service that you visit,\r\n the time and date of your visit, the time spent on those pages, and other statistics.\r\n

\r\n\r\n Cookies\r\n

\r\n Cookies are files with small amount of data that is commonly used an anonymous unique identifier.\r\n These are sent to your browser from the website that you visit and are stored on your computer’s\r\n hard drive.\r\n

\r\n\r\n

\r\n Our website uses these \"cookies\" to collection information and to improve our Service.\r\n You have the option to either accept or refuse these cookies, and know when a cookie is\r\n being sent to your computer. If you choose to refuse our cookies, you may not be able to\r\n use some portions of our Service.\r\n

\r\n\r\n

\r\n For more general information on cookies, please read \"Cookies\" article from the Privacy Policy\r\n Generator.\r\n

\r\n\r\n Service Providers\r\n\r\n

We may employ third-party companies and individuals due to the following reasons:

\r\n

\r\n 1.To facilitate our Service;\r\n 2.To provide the Service on our behalf;\r\n 3.To perform Service-related services; or\r\n 4.To assist us in analyzing how our Service is used.\r\n

\r\n\r\n

\r\n We want to inform our Service users that these third parties have access to your\r\n Personal Information. The reason is to perform the tasks assigned to them on our behalf.\r\n However, they are obligated not to disclose or use the information for any other purpose.\r\n

\r\n\r\n Security\r\n

\r\n We value your trust in providing us your Personal Information, thus we are striving to use\r\n commercially acceptable means of protecting it. But remember that no method of transmission\r\n over the internet, or method of electronic storage is 100% secure and reliable, and we cannot\r\n guarantee its absolute security.\r\n

\r\n\r\n Links to Other Sites\r\n

\r\n Our Service may contain links to other sites. If you click on a third-party link, you will be directed\r\n to that site. Note that these external sites are not operated by us.\r\n

\r\n Therefore, we strongly advise\r\n you to review the Privacy Policy of these websites. We have no control over, and assume no\r\n responsibility for the content, privacy policies, or practices of any third-party sites or services.\r\n\r\n\r\n

Children's Privacy

\r\n\r\n

\r\n Our Services do not address anyone under the age of 13. We do not knowingly collect personal\r\n identifiable information from children under 13. In the case we discover that a child under 13 has\r\n provided us with personal information, we immediately delete this from our servers. If you are a\r\n parent or guardian and you are aware that your child has provided us with personal information,\r\n please contact us so that we will be able to do necessary actions.\r\n

\r\n\r\n Changes to This Privacy Policy\r\n

\r\n We may update our Privacy Policy from time to time. Thus, we advise you to review this page\r\n periodically for any changes. We will notify you of any changes by posting the new Privacy Policy\r\n on this page. These changes are effective immediately, after they are posted on this page.\r\n

\r\n\r\n Contact Us\r\n

\r\n If you have any questions or suggestions about our Privacy Policy, do not hesitate to contact us\r\n at Phone: (+91) 949 141 8181 / (+91) 970 512 9639, info@ykmart.in\r\n

\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\n@Component({\r\n selector: 'app-popular-purchase',\r\n templateUrl: './popular-purchase.component.html',\r\n styleUrls: ['./popular-purchase.component.scss']\r\n})\r\nexport class PopularPurchaseComponent implements OnInit {\r\n HomeURL: any;\r\n ProductName: any;\r\n PopularProducts: any;\r\n LoginDetails: any;\r\n @Output() someEvent = new EventEmitter();\r\n\r\n constructor(public generalService: GeneralService, public router: Router,\r\n public http: HttpClient) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetPopularPurchaseProducts()\r\n }\r\n\r\n /*\r\n Below method is for Getting Popular purchases products for customer \r\n */\r\n GetPopularPurchaseProducts() {\r\n var url = \"api/Products/GetPopularPurchaseProducts\";\r\n this.generalService.GetData(url).then((data: any) => {\r\n if (data != null) {\r\n this.PopularProducts = data;\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to Cart Successfully' });\r\n }\r\n })\r\n }\r\n\r\n /* popular product for navigation*/\r\n navigatingToPopularProd(item:any) {\r\n this.someEvent.next(item);\r\n }\r\n \r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
{{item.productname}}
\r\n \r\n
₹{{item.UPrice}}
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Output,Input, EventEmitter } from '@angular/core';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\n@Component({\r\n selector: 'app-related-products',\r\n templateUrl: './related-products.component.html',\r\n styleUrls: ['./related-products.component.scss']\r\n})\r\nexport class RelatedProductsComponent implements OnInit {\r\n relatedProducts: any;\r\n HomeURL: any;\r\n LoginDetails: any;\r\n /*Below method is for getting product id as input this component from product details page*/\r\n @Input() productId: any;\r\n /*Below method is for sending product name as output to product details page*/\r\n @Output() someEvent = new EventEmitter();\r\n\r\n constructor(public generalService: GeneralService, public router: Router,\r\n public http: HttpClient, public cart: CartService) {\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n this.cart.getrelatedProdNumber().subscribe((data: any) => {\r\n if (data) {\r\n this.GetrelatedProducts(data)\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetrelatedProducts(this.productId)\r\n }\r\n\r\n\r\n /*\r\nBelow method is for Get Related products\r\n*/\r\n GetrelatedProducts(ProductId) {\r\n debugger\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"xml\", ProductId);\r\n var url = \"api/Products/Get_reletedproduct_basedon_productid\";\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) {\r\n this.relatedProducts = data;\r\n }\r\n })\r\n }\r\n\r\n /* related product for navigation*/\r\n navigatingToRelatedProd(item: any,id) {\r\n this.someEvent.next(item);\r\n /*below method is calling for changing related items regarding that product*/\r\n this.GetrelatedProducts(id)\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  1. \r\n Home\r\n
  2. \r\n
  3. \r\n \r\n {{productDetails[0].CategoryName}}\r\n {{productDetails[0].GoalName}}\r\n \r\n
  4. \r\n
  5. \r\n {{ProductName}}\r\n
  6. \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"product\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"products\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{productDetails[0].productname}}-{{productDetails[0].CategoryName}}

\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n\r\n {{Starscount}} Rate\r\n
\r\n\r\n
\r\n Reviews\r\n
\r\n\r\n
\r\n
\r\n Share\r\n \r\n  \r\n \r\n \r\n
\r\n \r\n
\r\n Size : {{currntPacksize}}\r\n
\r\n
\r\n Quantity\r\n \r\n \r\n \r\n
\r\n
Price : ₹{{currentPrice}}   GST Included ({{productDetails[0].GST}}%)
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{productDetails[0].Pack1}}
\r\n
₹{{productDetails[0].Price1}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack2}}
\r\n
₹{{productDetails[0].Price2}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack3}}
\r\n
₹{{productDetails[0].Price3}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{productDetails[0].Pack4}}
\r\n
₹{{productDetails[0].Price4}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n Production Information\r\n\r\n\r\n
\r\n

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

\r\n
\r\n Benefits\r\n\r\n
\r\n\r\n

\r\n

\r\n
\r\n Dosage & Application Method\r\n\r\n
\r\n\r\n

\r\n

\r\n
\r\n Recommended For\r\n
\r\n

\r\n\r\n

\r\n
\r\n Ingredients\r\n
\r\n

\r\n\r\n

\r\n
\r\n\r\n\r\n
\r\n
\r\n Product Review\r\n

Date&Time

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

{{ item.FarmerName}}

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

{{ item.Comments}}

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

{{item.CreatedDate|date:'dd/MM/yyyy '}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n Popular purchases\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Related Products\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Select Delivery mode

\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n    Online payment\r\n
\r\n
\r\n
\r\n\r\n \r\n \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, ViewEncapsulation, ElementRef, ViewChild } from '@angular/core';\r\nimport { GeneralService } from 'src/app/service/general.service';\r\nimport { CartService } from 'src/app/service/cart.service'\r\nimport { MessageService } from 'primeng/api';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { WishlistService } from 'src/app/service/wishlist.service';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\r\ndeclare var Razorpay: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-product-information',\r\n templateUrl: './product-information.component.html',\r\n styleUrls: ['./product-information.component.scss'],\r\n providers: [MessageService],\r\n})\r\nexport class ProductInformationComponent implements OnInit {\r\n\r\n @ViewChild('scrollMe') private myScrollContainer: ElementRef;\r\n gstAmount: any;\r\n ProductId: any;\r\n PopularProducts: any;\r\n arr: any = [];\r\n addNew: boolean = false;\r\n catName: string;\r\n WishListitemmsforloginusers: any = [];\r\n productFrameImage: any;\r\n Products: any;\r\n ProductImages: any;\r\n addressId: any;\r\n Cartimesforloginusers: any = [];\r\n ProductInfo: any;\r\n recomendedCrops: any;\r\n benefits: any;\r\n loginStatus: boolean;\r\n ingrediants: any;\r\n dosage: any;\r\n logedinUser: any;\r\n LoginDetails: any;\r\n subTotal1: any;\r\n seletedItemforWishlist: any = [];\r\n wishListItems: any = [];\r\n whatsAppProductURL: string;\r\n Quantity: any = 1;\r\n itemSize: any;\r\n ItemId: any;\r\n currntPacksize: any;\r\n currentPrice: any;\r\n ProductName: any;\r\n HomeURL: any;\r\n productDetails: any = [];\r\n cartItemList: any = []\r\n selectedItemforCart: any = []\r\n Starscount: any;\r\n Comments: any;\r\n CreatedDate: any;\r\n ReviewsData: any;\r\n imageUrl: any;\r\n video: any = false;\r\n prodName: any;\r\n addressDetails: any;\r\n plus: boolean = true;\r\n n: any;\r\n PaymentType: any;\r\n cartItems: any;\r\n addressDetails1: any;\r\n offerPrice: any;\r\n deliveryCharge: any;\r\n TotalPrice: any;\r\n val: number;\r\n subTotal: any = 0;\r\n admin: any;\r\n TaxnId:any;\r\n //ItemId: any;\r\n constructor(public generalService: GeneralService, public http: HttpClient,\r\n public activeroute: ActivatedRoute, public cartService: CartService, public router: Router,\r\n public toast: MessageService, public wishlistService: WishlistService, private sanitizer: DomSanitizer) {\r\n this.ProductName = this.activeroute.snapshot.paramMap.get('ProductDeatails').replace(/\\_/g, \" \").trim();\r\n //this.ProductId = this.activeroute.snapshot.paramMap.get('ProductDeatails').replace(/\\_/g, \" \").trim();\r\n\r\n\r\n this.LoginDetails = JSON.parse(localStorage.getItem(\"LoginDetails\"));\r\n this.cartService.getProducts().subscribe(res => {\r\n this.cartItemList = res /*Getting current cart item lists*/\r\n })\r\n this.wishlistService.getProducts().subscribe(res => {\r\n this.wishListItems = res /*this is a service call for getting wishlist items*/\r\n })\r\n this.generalService.getProducts().subscribe(res => {\r\n if (res.length == 0) {//if category id is null\r\n this.GetProductDetailsbasedonProductName()\r\n }\r\n else {\r\n //this.cartService.setRelatedproductId(res[0].Productid)\r\n this.ProductName = res[0].productname;\r\n this.GetProductDetailsbasedonProductName()\r\n //this.currentPrice = res[0].Price1\r\n //this.currntPacksize=res[0].Pack1\r\n //this.productDetails = res;\r\n //this.recomendedCrops = decodeURIComponent(this.productDetails[0].RecommendedCrops)\r\n //this.benefits = decodeURIComponent(this.productDetails[0].Benefits)\r\n //this.dosage = decodeURIComponent(this.productDetails[0].Dosage)\r\n // this.ingrediants = decodeURIComponent(this.productDetails[0].Ingredients)\r\n //this.GetProductimages(res[0].Productid)\r\n }\r\n })\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeURL = data.Webservice;\r\n });\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n debugger\r\n if (this.LoginDetails) {\r\n this.loginStatus = true;\r\n this.getCustomerAddress();\r\n this.reviewandrating();\r\n //this.GetAllOffers();\r\n }\r\n else {\r\n this.loginStatus = false;\r\n }\r\n\r\n }\r\n\r\n //ngOnInit(): void {\r\n\r\n\r\n // this.GetProductsforCustomerwhoalsoviwed()\r\n // if (this.LoginDetails) {\r\n\r\n // this.loginStatus = true;\r\n // this.getCustomerAddress();\r\n // }\r\n // else {\r\n // this.loginStatus = false;\r\n\r\n // }\r\n //}\r\n\r\n /*\r\n Getting product details based on their product name which was getting from active routs in url\r\n */\r\n GetProductDetailsbasedonProductName() {\r\n debugger\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"ProductName\", this.ProductName)\r\n var url = \"/api/Products/GetAllCategoryWiseProductsBasedOnProductName\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n debugger\r\n this.productDetails = data;\r\n this.productDetails[0].GoalName = localStorage.getItem('Goal') ? localStorage.getItem('Goal') : \"\";\r\n this.ProductInfo = null;\r\n this.recomendedCrops = null;\r\n this.benefits = null;\r\n this.ingrediants = null;\r\n this.dosage = null\r\n this.ProductId = this.productDetails[0].Productid\r\n this.cartService.setRelatedproductId(this.ProductId)\r\n this.currentPrice = this.productDetails[0].Price1\r\n this.currntPacksize = this.productDetails[0].Pack1\r\n this.gstAmount = this.productDetails[0].GstAmount1\r\n this.gstAmount = this.productDetails[0].GstAmount1\r\n //var ecomendedCrops = encodeURIComponent(\"
* Fost-RootexAct as a Soil Spreader and penetrate the irrigated water towards root zone.
\\n\\n
* Fost-Rootexincrease the water infiltration and water-holding capacity of the soil.
\\n\\n
* Fost–Rootexgreatly increase the plant root growth and metabolism, * Fost–Rootex enhance seed germination, and help plants deal with environmental stresses.
\\n\")\r\n //var emendedCrops = encodeURIComponent(\"ghghf\")\r\n\r\n this.recomendedCrops = decodeURIComponent(this.productDetails[0].RecommendedCrops)\r\n this.benefits = decodeURIComponent(this.productDetails[0].Benefits)\r\n this.dosage = decodeURIComponent(this.productDetails[0].Dosage)\r\n this.ingrediants = decodeURIComponent(this.productDetails[0].Ingredients)\r\n this.GetProductimages(this.productDetails[0].Productid)\r\n this.imageUrl = this.productDetails[0].VideoLink;\r\n this.ProductInfo = decodeURIComponent(this.productDetails[0].ProductInfo)\r\n console.log(this.productDetails);\r\n this.reviewandrating()\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*\r\n below method fires when the user clicks on size pack along with price\r\n */\r\n selectPrice(size, price, gstAmount) {\r\n debugger\r\n this.currntPacksize = size\r\n this.currentPrice = price,\r\n this.gstAmount = gstAmount\r\n }\r\n\r\n getCustomerAddress() {\r\n debugger\r\n let Address = [{\r\n UserId: this.LoginDetails.Id\r\n }];\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(Address));\r\n var url = \"/api/Products/Get_Customer_Address_Based_On_Id\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n debugger\r\n this.addressDetails = data;\r\n this.plus = false\r\n }\r\n });\r\n }\r\n\r\n PlaceOrder() {\r\n debugger\r\n\r\n this.arr = [];\r\n this.n = \"\"\r\n var d = new Date();\r\n this.n = d.getTime();\r\n\r\n //this.offerPrice = !this.offerPrice ? 0 : !this.offerPrice;\r\n {\r\n if (this.LoginDetails) {\r\n if (this.addressDetails) {\r\n if (!this.addressDetails[0].Id) {\r\n this.generalService.ShowAlert('Warning', 'Please select or add address for Delivery.', 'warning');\r\n }\r\n else {\r\n $('#myModal').modal('show');\r\n }\r\n } else {\r\n this.generalService.ShowAlert('Warning', 'Please add address for Delivery.', 'warning');\r\n this.router.navigate(['/Address']);\r\n }\r\n }\r\n\r\n this.arr.push({\r\n CustomerID: this.addressDetails[0].UserId, AddressId: this.addressDetails[0].Id,\r\n PaymentType: \"Online\", ProductId: this.productDetails[0].Productid,\r\n Quantity: this.Quantity, Size: this.currntPacksize,\r\n Price: this.currentPrice, TransactionID: this.n, GstPrice: this.gstAmount\r\n , DeliveryCharge: 0, TotalPrice: this.currentPrice * this.Quantity, OfferPrice: 0, CreatedBy: this.LoginDetails.Id, Device: 'Web'\r\n })\r\n }\r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(this.arr));\r\n var url = \"/api/Products/Insert_Customer_Orders\"\r\n // this.http.post(url, formData).pipe(map(res => res)).subscribe((data: any) => {\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n if (data != \"\") {\r\n\r\n if (this.PaymentType == \"CashOnDelivery\") {\r\n this.cancel()\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Your order placed successfully' });\r\n // this.cartService.removeAllcart();\r\n this.val = 1\r\n // this.sendsmsToAdmin();\r\n // this.sendsms1();\r\n\r\n //this.sendMailToAdmin(this.val)\r\n this.router.navigate['/Home'];\r\n }\r\n else {\r\n\r\n this.RedirectToPaymentGateway(this.arr, this.n)\r\n //this.procedtoBuy();\r\n }\r\n }\r\n });\r\n }\r\n\r\n cancel() {\r\n $('#myModal').modal('hide');\r\n }\r\n\r\n RedirectToPaymentGateway(arr, n) {\r\n debugger\r\n // alert('hello')\r\n var UploadFile = new FormData();\r\n this.subTotal1 = this.currentPrice * this.Quantity;\r\n // this.subTotal = this.subTotal + this.deliveryCharge\r\n UploadFile.append('Name', this.LoginDetails.FarmerName);\r\n UploadFile.append('Mobile', this.LoginDetails.MobileNo);\r\n UploadFile.append('Email', this.LoginDetails.Email);\r\n UploadFile.append('Amount', this.subTotal1);\r\n UploadFile.append('Productinfo', \"Product\");\r\n UploadFile.append('TransactionId', n);\r\n UploadFile.append('BookingDetails', JSON.stringify(arr));\r\n //alert('Start')\r\n var url = \"/api/Products/PaymentGateWayWEB\";\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Your order placed successfully' });\r\n\r\n window.location.href = data.toString();\r\n this.cancel()\r\n // alert ('hello')\r\n this.cartService.removeAllcart()\r\n this.val = 1\r\n // this.sendsmsToAdmin();\r\n //this.sendsms1();\r\n // this.sendsms2();\r\n // this.sendMailToAdmin(this.val)\r\n //this.products = []\r\n // this.cartProducts = []\r\n //localStorage.removeItem('CartItems');\r\n //localStorage.setItem(\"totalcartitems\", JSON.stringify(this.cartProducts.length));\r\n //this.MailForCustomerPlaceOrder(CartProducts)\r\n this.router.navigate['/Home'];\r\n \r\n }, err => {\r\n this.router.navigate['/Cart'];\r\n });\r\n }\r\n\r\n\r\n getSelectedAddress(addressId: any) {\r\n //this.addressId = addressId;\r\n //console.log(addressId)\r\n }\r\n\r\n procedtoBuy() {\r\n debugger\r\n if (this.LoginDetails) {\r\n if (this.addressDetails) {\r\n if (this.addressDetails[0].Id) {\r\n $('#myModal').modal('show');\r\n\r\n }\r\n\r\n else {\r\n this.generalService.ShowAlert('Warning', 'Please add address for Delivery.', 'warning');\r\n this.router.navigate(['/Address']);\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n\r\n rating(el: HTMLElement) {\r\n this.addNew = true;\r\n el.scrollIntoView();\r\n }\r\n\r\n //getting review and rating code\r\n reviewandrating() {\r\n debugger\r\n this.ProductId = this.productDetails[0].Productid;\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Param\", this.ProductId);\r\n var url = \"/api/Products/Get_ReviewsandRatings\";\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) {\r\n this.ReviewsData = data;\r\n this.Starscount = this.ReviewsData[0].Starscount;\r\n //this.Comments = this.ReviewsData[0].Comments;\r\n //this.CreatedDate = this.ReviewsData[0].CreatedDate;\r\n\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /*Below method fires when the user clicks on add to cart page\r\n */\r\n Addtocart(item: any) {\r\n debugger\r\n this.ItemId = 0;\r\n this.itemSize = \"\";\r\n this.selectedItemforCart.push({\r\n Productid: item.Productid, productname: item.productname, CategoryName: item.CategoryName ? item.CategoryName : \"\",\r\n Image: item.Image, Price: this.currentPrice, Pack: this.currntPacksize, Quantity: this.Quantity,\r\n UserId: \"\", GstPrice: this.gstAmount\r\n })\r\n\r\n if (this.cartItemList.length != 0 && this.cartItemList != \"\" && this.cartItemList != undefined && this.cartItemList != null) {\r\n for (var i = 0; i < this.cartItemList.length; i++) {\r\n if (this.cartItemList[i].Productid == this.selectedItemforCart[0].Productid) {//checking if the product is existing in the cartlist with same id\r\n if (this.cartItemList[i].Pack == this.selectedItemforCart[0].Pack) {//checking if the product is existing in the cartlist with same pack\r\n this.ItemId = this.cartItemList[i].Productid;\r\n this.itemSize = this.cartItemList[i].Pack;\r\n break;///sandhya\r\n }\r\n }\r\n }\r\n if (this.itemSize == this.selectedItemforCart[0].Pack && this.ItemId == this.selectedItemforCart[0].Productid) { //if product with same size then we show toast msg like below\r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 1000, detail: 'Product already exist in cart' });\r\n }\r\n else {\r\n if (this.logedin()) {\r\n this.insertCartItems(this.selectedItemforCart)\r\n }\r\n else {\r\n this.cartService.addtoCart(this.selectedItemforCart[0]);\r\n }\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to Cart Successfully' });\r\n }\r\n }\r\n else {\r\n if (this.logedin()) {\r\n this.insertCartItems(this.selectedItemforCart)\r\n }\r\n else {\r\n this.cartService.addtoCart(this.selectedItemforCart[0]);\r\n }\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to Cart Successfully' });\r\n }\r\n this.selectedItemforCart = []\r\n }\r\n\r\n /*\r\n *Below method is for sharing url on whatsapp \r\n */\r\n sendWhatsapp(item) {\r\n var prodName = \"\"\r\n var str = item.productname.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n prodName += \"_\" + str[i];\r\n }\r\n this.whatsAppProductURL = \"https://ykmart.in/%23/Product/\" + prodName\r\n window.open(\"https://api.whatsapp.com/send?&text=\" + this.whatsAppProductURL)\r\n }\r\n\r\n getPaymentType(pType) {\r\n this.PaymentType = pType\r\n }\r\n\r\n\r\n /*\r\n Below method is called when user click on add to wishlist\r\n */\r\n addToWishlist(item: any) {\r\n if (!this.logedin()) {\r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 1000, detail: 'Need to login to site for adding this product into wishlist' });\r\n this.router.navigate(['/CustomerLogin']);\r\n }\r\n else {\r\n this.seletedItemforWishlist = [];//sandhya\r\n this.seletedItemforWishlist.push({\r\n Productid: item.Productid, productname: item.productname, CategoryName: item.CategoryName,\r\n Image: item.Image, Price: this.currentPrice, Pack: this.currntPacksize, Quantity: this.Quantity,\r\n UserId: \"\", GstPrice: this.gstAmount\r\n })\r\n this.ItemId = 0;\r\n this.itemSize = \"\";\r\n\r\n if (this.wishListItems.length != 0 && this.wishListItems != \"\" && this.wishListItems != undefined && this.wishListItems != null) {\r\n this.wishListItems.map((a: any) => {\r\n if (a.Productid == this.seletedItemforWishlist[0].Productid) {//checking if the product is existing in the cartlist with same id\r\n if (a.Pack == this.seletedItemforWishlist[0].Pack) {//checking if the product is existing in the cartlist with same pack\r\n this.ItemId = a.Productid\r\n this.itemSize = a.Pack\r\n }\r\n }\r\n })\r\n\r\n if (this.itemSize == this.seletedItemforWishlist[0].Pack) { //if product with same size then we show toast msg like below\r\n this.toast.add({ severity: 'warn', summary: 'Warning', life: 1000, detail: 'Product already exist in wishlist' });\r\n }\r\n else {\r\n //this.wishlistService.setProducts(this.seletedItemforWishlist[0])\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to wishlist successfully' });\r\n if (this.logedin()) {\r\n this.insertWishListItems(this.seletedItemforWishlist)\r\n }\r\n }\r\n }\r\n else {\r\n //this.wishlistService.setProducts(this.seletedItemforWishlist[0])\r\n this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to wishlist successfully' });\r\n if (this.logedin()) {\r\n this.insertWishListItems(this.seletedItemforWishlist)\r\n }\r\n }\r\n this.seletedItemforWishlist = []\r\n }\r\n }\r\n\r\n /**\r\n * below method is for getting loged in user name\r\n */\r\n logedin() {\r\n this.logedinUser = localStorage.getItem('token');\r\n return this.logedinUser;\r\n }\r\n\r\n /*\r\n Below method is for Inserting customer cart items\r\n */\r\n insertCartItems(cartItems) {\r\n debugger\r\n this.Cartimesforloginusers = []\r\n this.Cartimesforloginusers.push(cartItems)\r\n cartItems[0].UserId = String(this.LoginDetails.Id)\r\n var url = \"api/Products/Insert_Cart_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(cartItems));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger\r\n if (data != null) {\r\n ///sandhya\r\n var object = data.filter(x => x.Productid == cartItems[0].Productid)[0];\r\n this.cartService.addtoCart(object);\r\n ///sandhya\r\n //this.cartService.addtoCart(this.selectedItemforCart[0]);\r\n // this.toast.add({ severity: 'success', summary: 'Success', life: 1000, detail: 'Added to Cart Successfully' });\r\n }\r\n })\r\n }\r\n\r\n /*\r\n Below method is for Inserting customer WishList items\r\n */\r\n insertWishListItems(wishlist) {\r\n debugger\r\n this.WishListitemmsforloginusers = []\r\n this.WishListitemmsforloginusers.push(wishlist)\r\n wishlist[0].UserId = String(this.LoginDetails.Id)\r\n var url = \"api/Products/Insert_WishList_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(wishlist));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) {\r\n var object = data.filter(x => x.Productid == wishlist[0].Productid)[0];\r\n if (object.Pid) {\r\n object.WishlistId = object.Pid;\r\n this.wishlistService.setProducts(object);\r\n } else {\r\n this.getWishListItemsListbasedonUserId(wishlist);\r\n }\r\n }\r\n })\r\n }\r\n getWishListItemsListbasedonUserId(wishlist) {\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n var url = \"api/Products/GetAllWishListItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", this.LoginDetails.Id);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n this.wishlistService.removeAllWishlistItems();\r\n if (data != null) {\r\n var object = data.filter(x => x.Productid == wishlist[0].Productid)[0];\r\n this.wishlistService.setProducts(object);\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n /*\r\n Below method is for Get productImages\r\n */\r\n GetProductimages(ProductId) {\r\n debugger\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Param\", ProductId);\r\n var url = \"api/Products/GetAll_ProductImagesBasedonProductId\";\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n if (data != null) {\r\n this.ProductImages = data;\r\n this.productFrameImage = data[0].UImage\r\n }\r\n })\r\n }\r\n\r\n /*\r\n* Below method is used to get the Products with images from Server with reference of database path\r\n*/\r\n GetProductsforCustomerwhoalsoviwed() {\r\n let arr = [];\r\n arr.push({ UserId: 0, TokenID: null })\r\n var UploadFile = new FormData()\r\n UploadFile.append(\"Param\", JSON.stringify(arr))\r\n var url = \"/api/Products/GetAllProductDetails\"\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.Products = data\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n\r\n /*changeImages*/\r\n changeImage(imgPath) {\r\n if (imgPath) {\r\n this.productFrameImage = imgPath;\r\n this.video = false;\r\n } else {\r\n this.video = true;\r\n }\r\n }\r\n\r\n\r\n /* categoryName for navigation*/\r\n navigatingtoCategory(data) {\r\n this.catName = \"\";\r\n var str = data.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n this.catName += \"_\" + str[i];\r\n }\r\n this.router.navigate(['/Category/' + data]);\r\n }\r\n\r\n\r\n /* popular product for navigation*/\r\n navigatingToPopularProd(item) {\r\n var catName = \"\";\r\n var str = item.split(\" \")//spliting the category name into string array where space occured\r\n for (let i = 0; i < str.length; i++) {\r\n catName += \"_\" + str[i];\r\n }\r\n this.ProductName = item\r\n this.GetProductDetailsbasedonProductName();\r\n this.router.navigate(['/Product/' + catName]);\r\n }\r\n\r\n \r\n RazorPayPayment() {\r\n debugger\r\n var d = new Date(),\r\n n = d.getTime();\r\n this.TaxnId = n;\r\n var options: any = {\r\n description: 'YKMart ',\r\n image: 'https://ykmart.in/assets/img/IMG-20220210-WA0049a.jpg',\r\n currency: 'INR',\r\n //key: 'rzp_test_PKZRt4NGyfabME',// Test key\r\n // key: 'rzp_live_LnpQ4EQWubWJOo',// Ggari key\r\n key: 'rzp_live_VcpmG5M8UJUp01',// Ykmart\r\n payment_id: n,\r\n payment_capture: '1',\r\n amount: (this.currentPrice * this.Quantity)*100,\r\n //callback_url:\"https://ykmart.in//\",\r\n name: \"YKMart \",\r\n prefill: {\r\n // email: this.LoginDetails.Email,\r\n contact: +91 + \"\" + this.LoginDetails.MobileNo,\r\n name: this.LoginDetails.FarmerName\r\n },\r\n theme: {\r\n color: '#008cb3'\r\n },\r\n handler: this.razorPayHandler.bind(this) // Define handler function\r\n }\r\n debugger\r\n var rzp1 = new Razorpay(options);\r\n //options['handler'] = this.razorPaySuccessHandler.bind(this);\r\n rzp1.open();\r\n //rzp1.on();\r\n }\r\n\r\n// Define handler function to capture payment response\r\n razorPayHandler(response: any){\r\n console.log(response);\r\n debugger\r\n if(response.razorpay_payment_id){\r\n localStorage.setItem(\"PaymentId\",response.razorpay_payment_id);\r\n console.log('Payment Succesfull:',response.razorpay_payment_id);\r\n this.InsertUSer();\r\n }else{\r\n console.log('payment failed or cancelled')\r\n }\r\n\r\n }\r\n\r\nInsertUSer(){\r\n debugger\r\n this.arr = [];\r\n this.n = \"\"\r\n var d = new Date();\r\n this.n = d.getTime();\r\n \r\n this.arr.push({\r\n CustomerID: this.addressDetails[0].UserId,\r\n AddressId: this.addressDetails[0].Id,\r\n PaymentType: \"Online\", ProductId: this.productDetails[0].Productid,\r\n Quantity: this.Quantity, Size: this.currntPacksize,\r\n Price: this.currentPrice, TransactionID:\r\n this.n, GstPrice: this.gstAmount,\r\n DeliveryCharge: 0,\r\n TotalPrice: this.currentPrice * this.Quantity, OfferPrice: 0,\r\n CreatedBy: this.LoginDetails.Id, Device: 'Web',\r\n TransactionStatus:'Success'\r\n })\r\n \r\n let formData: FormData = new FormData();\r\n formData.append('Param', JSON.stringify(this.arr));\r\n var url = \"/api/Products/Insert_Customer_Orders\"\r\n this.generalService.PostData(url, formData).then((data: any) => {\r\n debugger\r\n if (data != \"\") {\r\n if (data == \"SUCCESS\") {\r\n \r\n this.generalService.ShowAlert('Success','Your Order Placed Succesfully','success')\r\n this.router.navigate(['/MyOrders']);\r\n }\r\n else {\r\n $('#myModal').modal('hide');\r\n this.sendsms1();\r\n this.sendsmsToAdmin1();\r\n\r\n this.generalService.ShowAlert('SUCCESS','Your Order Placed Succesfully','success')\r\n this.router.navigate(['/MyOrders']);\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\n sendsms1() {\r\n debugger\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n this.admin = '8008336307/9866041417'\r\n this.addressDetails1 = this.arr[0].Price\r\n\r\n var url = 'api/Products/Send_sms_custuomer_orderplaced';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"details\", this.addressDetails1)\r\n formdata.append(\"order\", this.admin)\r\n formdata.append(\"mobile\", this.LoginDetails.MobileNo)\r\n\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n this.sendsms2();\r\n })\r\n }\r\n\r\n\r\n sendsms2() {\r\n debugger\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n this.admin = '9866079507/8008336307'\r\n this.addressDetails1 = this.arr[0].Price\r\n\r\n var url = 'api/Products/Send_sms_custuomer_orderplaced2';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"details\", this.addressDetails1)\r\n formdata.append(\"order\", this.admin)\r\n formdata.append(\"mobile\", this.LoginDetails.MobileNo)\r\n\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n })\r\n }\r\n\r\n\r\n sendMailToAdmin(val) {\r\n debugger\r\n this.addressDetails1 = []\r\n this.addressDetails1 = this.addressDetails\r\n let arr = [];\r\n arr.push({\r\n OrderID: this.addressDetails1[0].OrderID,\r\n FarmerName: this.addressDetails1[0].FarmerName,\r\n MobileNo: this.addressDetails1[0].MobileNo,\r\n Area: this.addressDetails1[0].Area,\r\n City: this.addressDetails1[0].City,\r\n Email: this.addressDetails1[0].Email,\r\n //ProductName: this.orderDetails[0].ProductName,\r\n\r\n })\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Assginoredr_aftersend_mailToAdmin\"\r\n\r\n UploadFile.append(\"Xml\", JSON.stringify(arr));\r\n UploadFile.append(\"flag\", val);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n this.sendsmsToAdmin();\r\n })\r\n }\r\n\r\n sendsmsToAdmin() {\r\n debugger\r\n this.addressDetails1 = this.addressDetails\r\n\r\n var AdMobile = '9866041417'\r\n var MessageText = \"A new order has been placed by the customer\" +':'+ this.LoginDetails.FarmerName + ':' + this.LoginDetails.MobileNo + ':'+ this.addressDetails1[0].Area + \".\" + \"Ykmart\";\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Customer_new_orderPlacement\"\r\n debugger\r\n UploadFile.append(\"Name\", this.LoginDetails.FarmerName);\r\n UploadFile.append(\"Mobile\", this.LoginDetails.MobileNo);\r\n UploadFile.append(\"ID\", this.addressDetails1[0].Area);\r\n UploadFile.append(\"AdMobile\", AdMobile);\r\n UploadFile.append(\"Text\", MessageText);\r\n\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n })\r\n }\r\n\r\n sendsmsToAdmin1() {\r\n debugger\r\n this.addressDetails1 = this.addressDetails\r\n\r\n var AdMobile = '8008336307'\r\n var MessageText = \"A new order has been placed by the customer\" + ':' + this.LoginDetails.FarmerName + ':' + this.LoginDetails.MobileNo + ':' + this.addressDetails1[0].Area + \".\" + \"Ykmart\";\r\n var UploadFile = new FormData();\r\n var url = \"api/Products/Customer_new_orderPlacement\"\r\n debugger\r\n UploadFile.append(\"Name\", this.LoginDetails.FarmerName);\r\n UploadFile.append(\"Mobile\", this.LoginDetails.MobileNo);\r\n UploadFile.append(\"ID\", this.addressDetails1[0].Area);\r\n UploadFile.append(\"AdMobile\", AdMobile);\r\n UploadFile.append(\"Text\", MessageText);\r\n\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\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-termsand-conditions',\r\n templateUrl: './termsand-conditions.component.html',\r\n styleUrls: ['./termsand-conditions.component.scss']\r\n})\r\nexport class TermsandConditionsComponent 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
\r\n\r\n
\r\n
\r\n\r\n
\r\n

Register Customer

\r\n Already have an account? Sign in!\r\n\r\n
\r\n
\r\n \r\n \r\n Full Name is required\r\n Minimum of 3 characters\r\n \r\n
\r\n
\r\n \r\n \r\n Mobile is required\r\n Mobile Exist\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n\r\n \r\n \r\n Password is required\r\n Password isn't long enough, minimum of 6 characters\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Confirm Password is required\r\n Password do not match\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Otp has been send to your mobile

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Terms & Conditions of YK Mart\r\n

YK Mart operates the https://ykmart.in/ website, which provides the SERVICE.

\r\n\r\n This page is used to inform website visitors regarding our terms with the collection,\r\n use, and disclosure of Personal Information if anyone decided to use our Service, the\r\n YK Mart website.\r\n
\r\n Personal Information\r\n

\r\n As part of the registration process on the Site, YKMART may collect the following personally\r\n identifiable information about you: Name including Full Name, email address,\r\n mobile phone number and contact details, Postal code, address\r\n and information about the pages on the site you visit/access, the links you click on the site,\r\n the number of times you access the page and any such browsing information.\r\n

\r\n\r\n Account & Registration Obligations\r\n

\r\n All shoppers have to register and login for placing orders on the Site.\r\n You have to keep your account and registration details current and correct for communications\r\n related to your purchases from the site. By agreeing to the terms and conditions, the shopper\r\n agrees to receive promotional communication and newsletters upon registration\r\n

\r\n\r\n Pricing\r\n

\r\n All the products listed on the Site will be sold at MRP unless otherwise specified.\r\n The prices mentioned at the time of ordering will be the prices charged on the date of the\r\n delivery.\r\n Although prices of most of the products do not fluctuate on a daily basis but some of the\r\n commodities do change on a daily basis.\r\n

\r\n\r\n Return & Refunds\r\n

\r\n We have a \"no questions asked return and refund policy\" which entitles all our members to\r\n return the product at the time of delivery if due to some reason they are not satisfied\r\n with the quality or freshness of the product. We will take the returned product back with\r\n us and issue a credit note for the value of the return products which will be credited to\r\n your account on the Site. This can be used to pay your subsequent shopping bills.\r\n

\r\n\r\n You may not use the Site for any of the following purposes:\r\n

\r\n Disseminating any unlawful, harassing, libellous, abusive, threatening, harmful, vulgar, obscene, or otherwise objectionable material.\r\n Transmitting material that encourages conduct that constitutes a criminal offence or results in civil liability or otherwise breaches any relevant laws, regulations or code of practice.\r\n Gaining unauthorized access to other computer systems.\r\n Interfering with any other person's use or enjoyment of the Site.\r\n Breaching any applicable laws;\r\n Interfering or disrupting networks or web sites connected to the Site.\r\n\r\n Making, transmitting or storing electronic copies of materials protected by copyright without the permission of the owner.\r\n

\r\n\r\n Colours\r\n

\r\n We have made every effort to display the colours of our products that appear on the Website\r\n as accurately as possible. However, as the actual colours you see will depend on your monitor,\r\n we cannot guarantee that your monitor's display of any colour will be accurate.\r\n

\r\n\r\n Modification of Terms & Conditions of Service\r\n

\r\n YKMART may at any time modify the Terms & Conditions of Use of the Website without any\r\n prior notification to you. You can access the latest version of these Terms & Conditions\r\n at any given time on the Site. You should regularly review the Terms & Conditions on the Site.\r\n In the event the modified Terms & Conditions is not acceptable to you, you should discontinue\r\n using the Service. However, if you continue to use the Service you shall be deemed to have\r\n agreed to accept and abide by the modified Terms & Conditions of Use of this Site.\r\n

\r\n
\r\n
\r\n","import { GeneralService } from '../../service/general.service';\r\nimport { Component, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router'; import { FormGroup, FormControl, AbstractControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport Swal from 'sweetalert2';\r\nimport { window } from 'rxjs/operators';\r\nimport { EmailValidators } from 'ngx-validators';\r\nimport { CartService } from 'src/app/service/cart.service';\r\nimport { WishlistService } from 'src/app/service/wishlist.service'\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'app-customer-registration',\r\n templateUrl: './customer-registration.component.html',\r\n styleUrls: ['./customer-registration.component.scss']\r\n})\r\n\r\nexport class CustomerRegistrationComponent {\r\n Emailid: any;\r\n checkNo: number;\r\n Mobile: any;\r\n checkemail: number;\r\n TemplateId: any;\r\n Id: any;\r\n arr: any = [];\r\n public form: FormGroup;\r\n public FarmerName: AbstractControl;\r\n public Email: AbstractControl;\r\n public Password: AbstractControl;\r\n public confirmPassword: AbstractControl;\r\n public MobileNo: AbstractControl;\r\n //public address: AbstractControl;\r\n //public area: AbstractControl;\r\n //public pincode: AbstractControl;\r\n randomnumber: any;\r\n HomeUrl: any;\r\n otptextbox: boolean;\r\n spinner: boolean = false;\r\n logindata: any;\r\n otp: any;\r\n mob: any;\r\n LoginType: any;\r\n passwordshow: boolean = true;\r\n confirmpasswordshow: boolean = true;\r\n MessageText: any;\r\n arr1: any[];\r\n customerCartItems: any[];\r\n CartItems: any[];\r\n currentCartItems: any[];\r\n customerWishlistItems: any;\r\n admin: any;\r\n constructor(public router: Router, public fb: FormBuilder, public http: HttpClient, public generalService: GeneralService, public cartService: CartService,\r\n public wishlistService: WishlistService) {\r\n debugger\r\n this.LoginType = localStorage.getItem(\"LoginType\");\r\n this.logindata = JSON.parse(sessionStorage.getItem(\"LoginDetails\"));\r\n if (this.logindata != null) {\r\n this.router.navigate['/Home']\r\n }\r\n this.form = fb.group({\r\n FarmerName: ['', Validators.compose([Validators.required, Validators.minLength(3)])],\r\n Email: ['',],\r\n MobileNo: ['', Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])],\r\n Password: ['', Validators.compose([Validators.required, Validators.minLength(6)])],\r\n confirmPassword: ['', Validators.required]\r\n },\r\n {\r\n validator: matchingPasswords('Password', 'confirmPassword')\r\n });\r\n \r\n\r\n this.FarmerName = this.form.controls['FarmerName'];\r\n this.Email = this.form.controls['Email'];\r\n this.MobileNo = this.form.controls['MobileNo']; \r\n this.Password = this.form.controls['Password'];\r\n this.confirmPassword = this.form.controls['confirmPassword'];\r\n\r\n\r\n\r\n this.http.get('../assets/WebService.json').subscribe((data: any) => {\r\n this.HomeUrl = data.Webservice;\r\n });\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n already() {\r\n debugger;\r\n localStorage.setItem(\"log\", '1');\r\n this.router.navigateByUrl(\"/login\");\r\n }\r\n\r\n SignUp(value) {\r\n debugger;\r\n $('#myModal1').modal('show');\r\n this.Mobile = value.MobileNo;\r\n\r\n this.Sendsms();\r\n }\r\n sendsms1() {\r\n debugger\r\n this.TemplateId = 1207164812405527257;\r\n this.MessageText = \"Thank you for registering with Ykmart\";\r\n var url = 'api/Products/Send_Customer_Reg_SMS_WEB';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"Mobile\", this.Mobile)\r\n formdata.append(\"SMS\", this.MessageText)\r\n formdata.append(\"TemplateId\", this.TemplateId)\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n })\r\n }\r\n\r\n\r\n sendsms2() {\r\n debugger\r\n this.admin = 9866079507;\r\n this.TemplateId = 1207164812642544439\t;\r\n this.MessageText = \"A new customer \" + this.form.value.FarmerName + \",\" + this.form.value.MobileNo + \" has been added in the Ykmart \"; \r\n var url = 'api/Products/Addcustomer_sendsms_admin';\r\n\r\n let formdata = new FormData();\r\n formdata.append(\"admin\",this.admin)\r\n formdata.append(\"Mobile\", this.form.value.MobileNo)\r\n formdata.append(\"Name\", this.form.value.FarmerName)\r\n formdata.append(\"SMS\", this.MessageText)\r\n formdata.append(\"TemplateId\", this.TemplateId)\r\n this.generalService.PostData(url, formdata).then((data: any) => {\r\n })\r\n }\r\n\r\n /* send otp for registration */\r\n\r\n SendOtpForMobile() {\r\n debugger\r\n this.randomnumber = Math.floor(1000 + Math.random() * 9000);\r\n //var msg = \"Your Customer OTP is:\" + this.randomnumber + \" YKmart\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", this.Mobile );\r\n UploadFile.append(\"OTP\", this.randomnumber);\r\n var url = 'api/Products/SendOtpToMobile';\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n if (data == \"SUCCESS\") {\r\n\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n public onSubmit() {\r\n debugger;\r\n if (this.form.valid) {\r\n debugger\r\n \r\n this.arr = [];\r\n this.arr.push({\r\n FarmerName: this.form.value.FarmerName, MobileNo: this.form.value.MobileNo, Email: this.form.value.Email,\r\n Password: this.form.value.Password, LoginType:'4'\r\n })\r\n debugger\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Param\", JSON.stringify(this.arr)); \r\n var url = \"api/Products/Add_UserDetails\";\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n \r\n debugger\r\n if (data != null) {\r\n debugger\r\n if (data == \"SUCCESS\") {\r\n debugger\r\n this.spinner = false;\r\n // this.router.navigate(['/Home']);\r\n this.generalService.ShowAlert('SUCCESS', 'Registrated Successfully.', 'success');\r\n //this.sendsms1();\r\n this.sendsms2();\r\n this.onSubmitLogin();\r\n //this.sendsmscustomerregistration(this.arr);\r\n debugger\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"RegDetails\", JSON.stringify(this.arr));\r\n var url = \"api/Products/RegMailTo_Customer\";\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n debugger\r\n var msg = data;\r\n }); \r\n }\r\n else if (data == \"MOBILE EXISTS\") {\r\n this.generalService.ShowAlert('WARNING', 'Mobile Exist.', 'warning')\r\n }\r\n else if (data == \"EMAIL EXISTS\") {\r\n this.generalService.ShowAlert('WARNING', 'Email Exist.', 'warning')\r\n }\r\n }\r\n });\r\n }\r\n }\r\n onSubmitLogin() {\r\n debugger\r\n if (this.form.valid) {\r\n var url = \"api/Products/Login\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", this.form.value.MobileNo);\r\n UploadFile.append(\"Password\", this.form.value.Password);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger;\r\n if (data != null) {\r\n if (data == \"NOT EXIST\") {\r\n this.generalService.ShowAlert('WARNING', 'Please Enter Valid Credentials.', 'warning');\r\n }\r\n else {\r\n if (data[0].LoginType == 4) {\r\n /*Below method is calling to get custsomer cart items*/\r\n this.getCartItemsListbasedonUserId(data[0].Id)\r\n this.getWishListItemsListbasedonUserId(data[0].Id)\r\n this.router.navigate(['/Home']);\r\n localStorage.setItem(\"token\", data[0].FarmerName);\r\n localStorage.setItem(\"LoginDetails\", JSON.stringify(data[0]));\r\n\r\n }\r\n else {\r\n this.generalService.ShowAlert('WARNING', 'Please Enter Valid Credentials/Customer Cannot Login Into Web', 'warning');\r\n }\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n\r\n }\r\n /*method is for getting customer cart items based on the user id*/\r\n getCartItemsListbasedonUserId(userid) {\r\n this.customerCartItems = []\r\n this.CartItems = [];\r\n this.currentCartItems = []\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n this.cartService.getProducts().subscribe(res => {\r\n this.currentCartItems = res;\r\n })\r\n var url = \"api/Products/GetAllCartItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n debugger\r\n if (data != null) {\r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerCartItems.push(data[k])\r\n this.cartService.addtoCart(data[k])\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n\r\n if (this.customerCartItems.length == 0 && this.currentCartItems.length >= 1) {\r\n this.insertCartItems(userid) /*we need to insert the new cart items when user added in without login*/\r\n }\r\n }\r\n\r\n\r\n\r\n /*sendsms*/\r\n\r\n \r\n\r\n /*method is for getting customer wishList items based on the user id*/\r\n getWishListItemsListbasedonUserId(userid) {\r\n /*below line of code is for getting current cart items from the current cart items with out login customer cart items*/\r\n var url = \"api/Products/GetAllWishListItemsbasedOnUserId\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"UserId\", userid);\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n this.wishlistService.removeAllWishlistItems();\r\n if (data != null) {\r\n for (var k = 0; k < data.length; k++) {/*Pushing customer cart items in to our cart page*/\r\n this.customerWishlistItems.push(data[k])\r\n this.wishlistService.setProducts(this.customerWishlistItems[k])\r\n }\r\n }\r\n }, err => {\r\n this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later', 'error');\r\n });\r\n }\r\n /*\r\n Below method is for Inserting customer cart items\r\n */\r\n insertCartItems(userid) {\r\n for (var m = 0; m < this.currentCartItems.length; m++) {\r\n this.currentCartItems[m].UserId = String(userid)\r\n }\r\n var url = \"api/Products/Insert_Cart_Items\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Cartxml\", JSON.stringify(this.currentCartItems));\r\n this.generalService.PostData(url, UploadFile).then((data: any) => {\r\n this.cartService.removeAllcart();\r\n for (var k = 0; k < data.length; k++) {\r\n this.cartService.addtoCart(data[k])\r\n }\r\n })\r\n }\r\n /*send sms for customer when customer registration*/\r\n sendsmscustomerregistration(regxml) {\r\n debugger\r\n //this.arr1 = [];\r\n //this.arr1.push({\r\n // FarmerName: this.form.value.FarmerName, MobileNo: this.form.value.MobileNo, Email: this.form.value.Email,\r\n // Password: this.form.value.Password, LoginType: '4'\r\n //})\r\n var url = 'api/Products/YKLABS_Send_SMS?MobileNo=' + regxml[0].MobileNo+'&Message='+'Your registration successfully';\r\n this.generalService.GetData(url).then((data: any) => {\r\n\r\n });\r\n }\r\n /*end*/\r\n Sendsms() {\r\n debugger\r\n this.randomnumber = Math.floor(1000 + Math.random() * 9000);\r\n var MessageText = \"Your Ykmart OTP is\" + this.randomnumber + \"\";\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"Mobile\", this.Mobile);\r\n UploadFile.append(\"SMS\", MessageText)\r\n UploadFile.append(\"OTP\", this.randomnumber);\r\n var url = 'api/Products/Send_SMS_Reg_OTP'\r\n\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n if (data == \"SUCCESS\") {\r\n\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n \r\n\r\n /*Show passwords*/\r\n ShowPassword(id) {\r\n debugger;\r\n var x;\r\n if (id == 1) {\r\n x = document.getElementById(\"myInput\");\r\n if (x.type === \"password\") {\r\n x.type = \"text\";\r\n this.passwordshow = false;\r\n } else {\r\n x.type = \"password\";\r\n this.passwordshow = true;\r\n }\r\n }\r\n \r\n\r\n }\r\n /*end code*/\r\n\r\n ShowPassword1(id) {\r\n debugger;\r\n var x;\r\n if (id == 2) {\r\n x = document.getElementById(\"myInput1\");\r\n if (x.type === \"password\") {\r\n x.type = \"text\";\r\n this.confirmpasswordshow = false;\r\n } else {\r\n x.type = \"password\";\r\n this.confirmpasswordshow = true;\r\n }\r\n }\r\n\r\n\r\n }\r\n /*check otp for registration*/\r\n CheckOtp(otp) {\r\n debugger\r\n if (this.randomnumber == otp) {\r\n $('#myModal1').modal('hide');\r\n debugger\r\n this.onSubmit();\r\n }\r\n else {\r\n alert(\"Invalid OTP\")\r\n }\r\n }\r\n \r\n\r\n /*check mobile exist or not*/\r\n CheckMobileNo() {\r\n debugger;\r\n this.Mobile = this.form.get('MobileNo').value;\r\n var UploadFile = new FormData();\r\n var UploadFile = new FormData();\r\n UploadFile.append(\"MobileNo\", this.Mobile);\r\n UploadFile.append(\"Flag\", \"1\");\r\n var url = \"api/Products/CheckMobileandEmail\"\r\n debugger;\r\n this.generalService.PostData(url, UploadFile).then(data => {\r\n this.mob = data;\r\n debugger;\r\n if (data == 'EXIST') {\r\n this.checkNo = 10;\r\n }\r\n else {\r\n this.checkNo = 11;\r\n }\r\n }, err => {\r\n //this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n });\r\n }\r\n /*endregion*/\r\n\r\n /*Check Email exist or not*/\r\n\r\n //CheckEmail() {\r\n // debugger;\r\n // this.Emailid = this.form.get('Email').value;\r\n // var UploadFile = new FormData();\r\n // UploadFile.append(\"MobileNo\", this.Mobile);\r\n // UploadFile.append(\"Flag\", \"1\");\r\n // var url = \"api/Products/CheckMobileandEmail\"\r\n // debugger;\r\n // this.generalService.PostData(url, UploadFile).then(data => {\r\n // debugger;\r\n // if (data == 'EXIST') {\r\n // this.checkemail = 10;\r\n // }\r\n // else {\r\n // this.checkemail = 11;\r\n // }\r\n // }, err => {\r\n // //this.generalService.ShowAlert('ERROR', 'Something went wrong. Please try again later.', 'error')\r\n // });\r\n //}\r\n\r\n\r\n ///end code////////\r\n}\r\n\r\n\r\n \r\nexport function emailValidator(control: FormControl): { [key: string]: any } {\r\n var emailRegexp = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,3}$/;\r\n if (control.value && !emailRegexp.test(control.value)) {\r\n return { invalidEmail: true };\r\n }\r\n}\r\n\r\nexport function matchingPasswords(passwordKey: string, passwordConfirmationKey: string) {\r\n return (group: FormGroup) => {\r\n let Password = group.controls[passwordKey];\r\n let passwordConfirmation = group.controls[passwordConfirmationKey];\r\n if (Password.value !== passwordConfirmation.value) {\r\n return passwordConfirmation.setErrors({ mismatchedPasswords: true })\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { LocationStrategy, Location, PathLocationStrategy } from '@angular/common';\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BlankComponent } from './pages/blank/blank.component';\r\nimport { SearchComponent } from './pages/search/search.component';\r\nimport { NotFoundComponent } from './pages/errors/not-found/not-found.component';\r\n/*Page-Layout components import place*/\r\nimport { PageLayoutComponent } from './page-layout/page-layout.component'\r\nimport { HomeComponent } from './page-layout/home/home.component'\r\nimport { PageHeaderComponent } from './page-layout/page-header/page-header.component'\r\nimport { PageFooterComponent } from './page-layout/page-footer/page-footer.component'\r\nimport { CategoriesComponent } from './page-layout/categories/categories.component'\r\nimport { CustomerLoginComponent } from './page-layout/customer-login/customer-login.component'\r\nimport { AboutUsComponent } from './page-layout/about-us/about-us.component';\r\nimport { ContactUsComponent } from './page-layout/contact-us/contact-us.component';\r\n//import { ProductDetailsComponent } from './page-layout/product-details/product-details.component'\r\nimport { BlogComponent } from './page-layout/blog/blog.component'\r\nimport { CartComponent } from './page-layout/cart/cart.component'\r\nimport { WishlistComponent } from './page-layout/wishlist/wishlist.component'\r\nimport { AddAddressComponent } from './page-layout/add-address/add-address.component'\r\nimport { GoalsComponent } from './page-layout/goals/goals.component'\r\nimport { FarmerProducesComponent } from './page-layout/farmer-produces/farmer-produces.component'\r\nimport { ProductEnquiryComponent } from './page-layout/product-enquiry/product-enquiry.component'\r\nimport { MyOrdersComponent } from './page-layout/my-orders/my-orders.component'\r\nimport { OrderInvoiceComponent } from './page-layout/order-invoice/order-invoice.component'\r\nimport { MyEnquiriesComponent } from './page-layout/my-enquiries/my-enquiries.component'\r\nimport { PrivacyPolicyComponent } from './page-layout/privacy-policy/privacy-policy.component'\r\nimport { ProductInformationComponent } from './page-layout/product-information/product-information.component';\r\nimport { TermsandConditionsComponent } from './page-layout/termsand-conditions/termsand-conditions.component';\r\nimport { CustomerRegistrationComponent } from './page-layout/customer-registration/customer-registration.component';\r\nexport const routes: Routes = [ \r\n { path: '', redirectTo: 'Home', pathMatch: 'full' }, \r\n //{ path:'', redirectTo: 'Products', pathMatch: 'full' },\r\n {\r\n\r\n path: '',\r\n component: PageLayoutComponent,\r\n children: [\r\n { path: 'Home', component: HomeComponent},\r\n { path: 'PageHeader', component: PageHeaderComponent },\r\n { path: 'PageFooter', component: PageFooterComponent },\r\n { path: 'Category/:ProductName', component: CategoriesComponent, data: { breadcrumb: 'Category' } },\r\n { path: 'CustomerLogin', component: CustomerLoginComponent },\r\n { path: 'AboutUs', component: AboutUsComponent },\r\n { path: 'ContactUs', component: ContactUsComponent },\r\n // { path: 'Product/:ProductDeatails', component: ProductDetailsComponent, data: { breadcrumb: 'Category/ProductDeatails' } },\r\n { path: 'Blog', component: BlogComponent },\r\n { path: 'Cart', component: CartComponent },\r\n { path: 'Login', component: CustomerLoginComponent },\r\n { path: 'Wishlist', component: WishlistComponent },\r\n { path: 'Address', component: AddAddressComponent },\r\n { path: 'Goals/:Name', component: GoalsComponent,data: { breadcrumb: 'Goals' }},\r\n { path: 'FarmerProduces/:Name', component: FarmerProducesComponent, data: { breadcrumb: 'Farmer Produces' } },\r\n { path: 'EnquiryProducts/:jame', component: ProductEnquiryComponent },\r\n { path: 'MyOrders', component: MyOrdersComponent },\r\n { path: 'Invoice/:No', component: OrderInvoiceComponent },\r\n { path: 'MyEnquiries', component: MyEnquiriesComponent },\r\n { path: 'CustomerRegistration', component: CustomerRegistrationComponent },\r\n { path: 'PrivacyPolicy', component: PrivacyPolicyComponent }, \r\n { path: 'Product/:ProductDeatails', component: ProductInformationComponent, data: { breadcrumb: 'Category/ProductDeatails' } },\r\n { path: 'TermsandConditions', component: TermsandConditionsComponent },\r\n ]\r\n },\r\n\r\n {\r\n path: '',\r\n component: PagesComponent,\r\n children: [\r\n { path: 'Dashboard', loadChildren: () => import('./pages/dashboard/dashboard.module').then(m => m.DashboardModule), data: { breadcrumb: 'Dashboard' } },\r\n { path: 'dynamic-menu', loadChildren: () => import('./pages/dynamic-menu/dynamic-menu.module').then(m => m.DynamicMenuModule), data: { breadcrumb: 'Dynamic Menu' } },\r\n { path: 'blank', component: BlankComponent, data: { breadcrumb: 'Blank page' } },\r\n { path: 'search', component: SearchComponent, data: { breadcrumb: 'Search' } },\r\n { path: 'Admin', loadChildren: () => import('./pages/admin/admin.module').then(m => m.AdminModule) },\r\n\r\n ]\r\n }, \r\n //{\r\n // path: '', \r\n // component: PagesComponent,\r\n // children:[\r\n // { path: '', loadChildren: () => import('./pages/dashboard/dashboard.module').then(m => m.DashboardModule), data: { breadcrumb: 'Dashboard' } }, \r\n // { path: 'membership', loadChildren: () => import('./pages/membership/membership.module').then(m => m.MembershipModule), data: { breadcrumb: 'Membership' } },\r\n // { path: 'ui', loadChildren: () => import('./pages/ui/ui.module').then(m => m.UiModule), data: { breadcrumb: 'UI' } },\r\n // { path: 'form-elements', loadChildren: () => import('./pages/form-elements/form-elements.module').then(m => m.FormElementsModule), data: { breadcrumb: 'Form Elements' } },\r\n // { path: 'tables', loadChildren: () => import('./pages/tables/tables.module').then(m => m.TablesModule), data: { breadcrumb: 'Tables' } },\r\n // { path: 'tools', loadChildren: () => import('./pages/tools/tools.module').then(m => m.ToolsModule), data: { breadcrumb: 'Tools' } },\r\n // { path: 'calendar', loadChildren: () => import('./pages/calendar/app-calendar.module').then(m => m.AppCalendarModule), data: { breadcrumb: 'Calendar' } },\r\n // { path: 'mailbox', loadChildren: () => import('./pages/mailbox/mailbox.module').then(m => m.MailboxModule), data: { breadcrumb: 'Mailbox' } },\r\n // { path: 'maps', loadChildren: () => import('./pages/maps/maps.module').then(m => m.MapsModule), data: { breadcrumb: 'Maps' } },\r\n // { path: 'charts', loadChildren: () => import('./pages/charts/charts.module').then(m => m.ChartsModule), data: { breadcrumb: 'Charts' } },\r\n // { path: 'dynamic-menu', loadChildren: () => import('./pages/dynamic-menu/dynamic-menu.module').then(m => m.DynamicMenuModule), data: { breadcrumb: 'Dynamic Menu' } }, \r\n // { path: 'profile', loadChildren: () => import('./pages/profile/profile.module').then(m => m.ProfileModule), data: { breadcrumb: 'Profile' } }, \r\n // { path: 'blank', component: BlankComponent, data: { breadcrumb: 'Blank page' } },\r\n // { path: 'search', component: SearchComponent, data: { breadcrumb: 'Search' } }\r\n // ]\r\n //},\r\n { path: 'login', loadChildren: () => import('./pages/login/login.module').then(m => m.LoginModule) },\r\n { path: 'register', loadChildren: () => import('./pages/register/register.module').then(m => m.RegisterModule) },\r\n { path: '**', component: NotFoundComponent }\r\n\r\n]; \r\n\r\n@NgModule({\r\n //imports: [\r\n // RouterModule.forRoot(routes, { useHash: true })\r\n //],\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n //preloadingStrategy: PreloadAllModules, // <- comment this line for activate lazy load\r\n //relativeLinkResolution: 'legacy',\r\n useHash: false\r\n })\r\n ],\r\n exports: [\r\n RouterModule, BrowserModule\r\n ]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { AppSettings } from './app.settings';\r\nimport { Settings } from './app.settings.model';\r\nimport { NotificationService } from './service/notification.service';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppComponent {\r\n public settings: Settings;\r\n constructor(public appSettings: AppSettings, public router: Router, public translate: TranslateService, private notificationService: NotificationService){\r\n this.settings = this.appSettings.settings; \r\n translate.addLangs(['en','de','fr','ru','tr']);\r\n translate.setDefaultLang('en'); \r\n translate.use('en'); \r\n } \r\n\r\n\r\n /* These following methods used for theme preview, you can remove this methods */\r\n \r\n ngOnInit() {\r\n this.notificationService.requestPermission();\r\n this.router.events.subscribe((evt) => {\r\n if (!(evt instanceof NavigationEnd)) {\r\n return;\r\n \r\n }\r\n window.scrollTo(0, 0)\r\n });\r\n // var demo = this.getParameterByName('demo');\r\n // this.setLayout(demo);\r\n }\r\n \r\n // private getParameterByName(name) {\r\n // var url = window.location.href;\r\n // name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n // var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n // results = regex.exec(url);\r\n // if (!results) return null;\r\n // if (!results[2]) return '';\r\n // return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n // }\r\n\r\n // private setLayout(demo){\r\n // switch (demo) {\r\n // case \"vertical-default\":\r\n // this.settings.theme.menu = 'vertical';\r\n // this.settings.theme.menuType = 'default';\r\n // break;\r\n // case \"vertical-compact\":\r\n // this.settings.theme.menu = 'vertical';\r\n // this.settings.theme.menuType = 'compact';\r\n // break;\r\n // case \"vertical-mini\":\r\n // this.settings.theme.menu = 'vertical';\r\n // this.settings.theme.menuType = 'mini';\r\n // break;\r\n // case \"horizontal-default\":\r\n // this.settings.theme.menu = 'horizontal';\r\n // this.settings.theme.menuType = 'default';\r\n // break;\r\n // case \"horizontal-compact\":\r\n // this.settings.theme.menu = 'horizontal';\r\n // this.settings.theme.menuType = 'compact';\r\n // break;\r\n // case \"horizontal-mini\":\r\n // this.settings.theme.menu = 'horizontal';\r\n // this.settings.theme.menuType = 'mini';\r\n // break;\r\n // default:\r\n // this.settings.theme.menu = 'vertical';\r\n // this.settings.theme.menuType = 'default';\r\n // }\r\n // this.router.navigate(['/']);\r\n // }\r\n \r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\r\nimport { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar';\r\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n suppressScrollX: true\r\n};\r\n\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader'; \r\nexport function HttpLoaderFactory(httpClient: HttpClient) { \r\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\r\n}\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MultiselectDropdownModule } from 'angular-2-dropdown-multiselect';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; \r\n\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { PipesModule } from './theme/pipes/pipes.module';\r\n\r\nimport { AppRoutingModule } from './app.routing';\r\nimport { AppSettings } from './app.settings';\r\n\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { HeaderComponent } from './theme/components/header/header.component';\r\nimport { FooterComponent } from './theme/components/footer/footer.component';\r\nimport { SidebarComponent } from './theme/components/sidebar/sidebar.component';\r\nimport { VerticalMenuComponent } from './theme/components/menu/vertical-menu/vertical-menu.component';\r\nimport { HorizontalMenuComponent } from './theme/components/menu/horizontal-menu/horizontal-menu.component';\r\nimport { BreadcrumbComponent } from './theme/components/breadcrumb/breadcrumb.component';\r\nimport { BackTopComponent } from './theme/components/back-top/back-top.component';\r\nimport { FullScreenComponent } from './theme/components/fullscreen/fullscreen.component';\r\nimport { ApplicationsComponent } from './theme/components/applications/applications.component';\r\nimport { MessagesComponent } from './theme/components/messages/messages.component';\r\nimport { UserMenuComponent } from './theme/components/user-menu/user-menu.component';\r\nimport { FlagsMenuComponent } from './theme/components/flags-menu/flags-menu.component';\r\nimport { SideChatComponent } from './theme/components/side-chat/side-chat.component';\r\nimport { FavoritesComponent } from './theme/components/favorites/favorites.component';\r\nimport { BlankComponent } from './pages/blank/blank.component';\r\nimport { SearchComponent } from './pages/search/search.component'; \r\nimport { NotFoundComponent } from './pages/errors/not-found/not-found.component';\r\n\r\n/*Page-Layout components import place*/\r\nimport { PageLayoutComponent } from './page-layout/page-layout.component'\r\nimport { HomeComponent } from './page-layout/home/home.component'\r\nimport { PageHeaderComponent } from './page-layout/page-header/page-header.component'\r\nimport { PageFooterComponent } from './page-layout/page-footer/page-footer.component'\r\nimport { CategoriesComponent } from './page-layout/categories/categories.component'\r\nimport { CustomerLoginComponent } from './page-layout/customer-login/customer-login.component'\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AboutUsComponent } from './page-layout/about-us/about-us.component'\r\nimport { ContactUsComponent } from './page-layout/contact-us/contact-us.component';\r\n//import { productDetails } from './page-layout/product-details/product-details.component';\r\n//import { productDetails1Component } from './page-layout/product-details1/product-details1.component'\r\nimport { BlogComponent } from './page-layout/blog/blog.component'\r\nimport { CartComponent } from './page-layout/cart/cart.component'\r\nimport { CKEditorModule } from 'ng2-ckeditor';\r\nimport { WishlistComponent } from './page-layout/wishlist/wishlist.component';\r\nimport { AddAddressComponent } from './page-layout/add-address/add-address.component'\r\nimport { GoalsComponent } from './page-layout/goals/goals.component'\r\nimport { FarmerProducesComponent } from './page-layout/farmer-produces/farmer-produces.component'\r\nimport { GMapModule } from 'primeng/gmap'\r\nimport { SpinneroverlayComponent } from 'src/app/service/spinneroverlay/spinneroverlay.component';\r\nimport { ProductEnquiryComponent } from './page-layout/product-enquiry/product-enquiry.component';\r\nimport { MyOrdersComponent } from './page-layout/my-orders/my-orders.component'\r\nimport { OrderInvoiceComponent } from './page-layout/order-invoice/order-invoice.component';\r\nimport { MyEnquiriesComponent } from './page-layout/my-enquiries/my-enquiries.component';\r\nimport { CustomerRegistrationComponent } from './page-layout/customer-registration/customer-registration.component';\r\nimport { PopularPurchaseComponent } from './page-layout/popular-purchase/popular-purchase.component';\r\nimport { RelatedProductsComponent } from './page-layout/related-products/related-products.component';\r\nimport { UVideoSafe } from './Uvideosafe';\r\nimport { PrivacyPolicyComponent } from './page-layout/privacy-policy/privacy-policy.component';\r\nimport { ProductInformationComponent } from './page-layout/product-information/product-information.component';\r\nimport { UserIdleModule } from 'angular-user-idle';\r\nimport { TermsandConditionsComponent } from './page-layout/termsand-conditions/termsand-conditions.component';\r\n\r\n\r\n@NgModule({ \r\n imports: [ \r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n PerfectScrollbarModule,\r\n NgbModule,\r\n GMapModule,\r\n AutoCompleteModule,\r\n MultiselectDropdownModule,\r\n ReactiveFormsModule,\r\n CKEditorModule,\r\n ImageCropperModule,\r\n UserIdleModule.forRoot({ idle: 500, timeout: 500, ping: 500 }),\r\n ToastModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyAO7Mg2Cs1qzo_3jkKkZAKY6jtwIlm41-I'\r\n }),\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory\r\n }),\r\n ToastrModule.forRoot(), \r\n PipesModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n declarations: [\r\n AppComponent,\r\n PagesComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n SidebarComponent,\r\n /*page-layout declarations*/\r\n PageLayoutComponent,\r\n HomeComponent,\r\n PageHeaderComponent,\r\n PageFooterComponent,\r\n CustomerLoginComponent,\r\n CategoriesComponent,\r\n VerticalMenuComponent,\r\n HorizontalMenuComponent,\r\n BreadcrumbComponent,\r\n BackTopComponent,\r\n FullScreenComponent,\r\n ApplicationsComponent,\r\n MessagesComponent,\r\n UserMenuComponent,\r\n FlagsMenuComponent,\r\n SideChatComponent,\r\n FavoritesComponent,\r\n BlankComponent,\r\n SearchComponent,\r\n NotFoundComponent,\r\n AboutUsComponent,\r\n ContactUsComponent,\r\n \r\n BlogComponent,\r\n CartComponent,\r\n CustomerLoginComponent,\r\n WishlistComponent,\r\n AddAddressComponent,\r\n GoalsComponent,\r\n FarmerProducesComponent,\r\n ProductEnquiryComponent,\r\n MyOrdersComponent,\r\n OrderInvoiceComponent,\r\n MyEnquiriesComponent,\r\n CustomerRegistrationComponent,\r\n PopularPurchaseComponent,\r\n RelatedProductsComponent,\r\n UVideoSafe,\r\n PrivacyPolicyComponent,\r\n ProductInformationComponent,\r\n TermsandConditionsComponent\r\n ],\r\n providers: [ \r\n AppSettings,\r\n { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG } \r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [\r\n SpinneroverlayComponent\r\n ]\r\n})\r\nexport class AppModule { } \r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}