{"version":3,"sources":["webpack:///src/app/components/main/deals-map-campaign/deals-map-campaign.component.ts","webpack:///src/app/components/main/deals-map-campaign/deals-map-campaign.component.html","webpack:///src/app/services/cms.service.ts","webpack:///src/app/models/main/contactus/contactus.model.ts","webpack:///src/app/pages/main/easter-season-page/easter-season-page.component.ts","webpack:///src/app/pages/main/easter-season-page/easter-season-page.component.html","webpack:///src/app/components/main/banner-adds/banner-adds.component.ts","webpack:///src/app/pages/main/test-page/test-page.component.ts","webpack:///src/app/pages/main/test-page/test-page.component.html","webpack:///src/app/pages/main/ten-reasons page/ten-reasons.component.ts","webpack:///src/app/pages/main/ten-reasons page/ten-reasons.component.html","webpack:///src/app/pages/main/home-page/home-page.component.ts","webpack:///src/app/pages/main/home-page/home-page.component.html","webpack:///src/app/components/main/easter-deals/easter-deals.component.ts","webpack:///src/app/components/main/easter-deals/easter-deals.component.html","webpack:///src/app/components/main/featured-deals-small/featured-deals-small.component.ts","webpack:///src/app/components/main/featured-deals-small/featured-deals-small.component.html","webpack:///src/app/components/main/provinces-banner/provinces-banner.component.ts","webpack:///src/app/components/main/provinces-banner/provinces-banner.component.html","webpack:///src/environments/environment.ts","webpack:///src/app/pages/main/travelweeknew-page/travelweeknew-page.component.ts","webpack:///src/app/pages/main/travelweeknew-page/travelweeknew-page.component.html","webpack:///src/app/layouts/light-layout/light-layout.component.ts","webpack:///src/app/layouts/light-layout/light-layout.component.html","webpack:///src/app/core/services/token.service.ts","webpack:///src/app/services/product.service.ts","webpack:///src/app/pages/main/contact-us/contact-us.component.ts","webpack:///src/app/pages/main/contact-us/contact-us.component.html","webpack:///src/app/components/main/travelweek-banner/travelweek-banner.component.ts","webpack:///src/app/components/main/travelweek-banner/travelweek-banner.component.html","webpack:///src/app/pages/main/tradepartneraccom-page/tradepartneraccom-page.component.ts","webpack:///src/app/pages/main/tradepartneraccom-page/tradepartneraccom-page.component.html","webpack:///src/app/components/main/info-map/info-map.component.ts","webpack:///src/app/components/main/info-map/info-map.component.html","webpack:///src/app/layouts/header/header.component.ts","webpack:///src/app/layouts/header/header.component.html","webpack:///src/app/components/main/featured-deals/featured-deals.component.ts","webpack:///src/app/components/main/featured-deals/featured-deals.component.html","webpack:///src/app/components/main/main.module.ts","webpack:///src/app/core/services/modal.service.ts","webpack:///src/app/components/main/sidemenu-carousel/sidemenu-carousel.component.ts","webpack:///src/app/components/main/sidemenu-carousel/sidemenu-carousel.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/components/main/small-info-map/small-info-map.component.ts","webpack:///src/app/components/main/small-info-map/small-info-map.component.html","webpack:///src/app/pages/main/campaign-page/campaign-page.component.ts","webpack:///src/app/pages/main/campaign-page/campaign-page.component.html","webpack:///src/app/services/deals.service.ts","webpack:///src/app/components/main/deals-map/deals-map.component.ts","webpack:///src/app/components/main/deals-map/deals-map.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/core/interceptors/http.interceptor.ts","webpack:///src/app/models/main/dealsdashboard/dealsdashboard.model.ts","webpack:///src/app/models/main/deals/infomap.model.ts","webpack:///src/app/pages/main/province-page/province-page.component.ts","webpack:///src/app/pages/main/province-page/province-page.component.html","webpack:///src/app/components/main/travelweek-bannernew/travelweek-bannernew.component.ts","webpack:///src/app/components/main/travelweek-bannernew/travelweek-bannernew.component.html","webpack:///src/app/models/main/deals/search.model.ts","webpack:///src/app/services/tenreasons.service.ts","webpack:///src/app/pages/main/itinerary-page/itinerary-page.component.ts","webpack:///src/app/pages/main/itinerary-page/itinerary-page.component.html","webpack:///src/app/services/campaign.service.ts","webpack:///src/app/services/dealssingle-resolver.service.ts","webpack:///src/app/components/main/campaign-banner/campaign-banner.component.ts","webpack:///src/app/components/main/campaign-banner/campaign-banner.component.html","webpack:///src/app/layouts/footer/footer.component.ts","webpack:///src/app/layouts/footer/footer.component.html","webpack:///src/app/components/main/about/about.component.ts","webpack:///src/app/components/main/about/about.component.html","webpack:///src/app/layouts/dark-layout/dark-layout.component.ts","webpack:///src/app/layouts/dark-layout/dark-layout.component.html","webpack:///src/app/app.routing.module.ts","webpack:///src/app/services/travelweek.service.ts","webpack:///src/app/components/main/build-itinerary/build-itinerary.component.ts","webpack:///src/app/components/main/build-itinerary/build-itinerary.component.html","webpack:///src/app/components/main/itenary-planner/itenary-planner.component.ts","webpack:///src/app/components/main/itenary-planner/itenary-planner.component.html","webpack:///src/app/layouts/login/login.component.ts","webpack:///src/app/layouts/login/login.component.html","webpack:///src/app/pages/main/travelweek/travelweek.component.ts","webpack:///src/app/layouts/main-layout/main-layout.component.ts","webpack:///src/app/layouts/main-layout/main-layout.component.html","webpack:///src/app/core/handlers/error.handler.ts","webpack:///src/app/services/deals-resolver.service.ts","webpack:///src/app/models/main/travelweek/newtravelweek.model.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["DealsMapCampaignComponent","formBuilder","data","renderer","citiesTo","isMap","FilterData","undefined","provinceChange","currlatitude","currlongitude","center","google","maps","LatLng","mapMarkers","locationsArray","Search","Provinces","Name","Value","Cities","CityArray","sideActivityItems","sideStayItems","priceItems","mapOptions","zoom","locations","markerContent","infoWindow","InfoWindow","map","Map","mapElement","nativeElement","svgMarker","path","fillColor","fillOpacity","strokeWeight","rotation","scale","anchor","Point","PointerEvent","count","i","cf_images","mx_image","includes","index","cf_destinations","length","push","lat","Number","mx_latitude","lng","mx_longitude","samePos1","filter","result","cf_address_line_1","cf_address_line_2","buttons","buttons2","collg","content","cf_product","title","substring","cf_price","btn","sf_booking_link","lbl","text","color","tempMarker","Marker","position","icon","addListener","counting","getTitle","split","idnumber","samePos","button_prev","setContent","open","activeButtons","document","getElementsByClassName","removeClass","addClass","getElementById","container","scrollTo","toString","scrollTop","offsetTop","setTimeout","dealsBtn","addEventListener","goToDeals","entry_id","c","next","multi_content","nnumber","setNextNumber","cc","sp","display","multi_button_prev","multi_button_next","NextBtn","ccc","ideal","inner_next_button","iii","getAttribute","iiii","nextbut","next2","setNumber","inners","setAttribute","active_inner","inner_prev_button","prevbut","active_inner2","scrollTo1","dealsBtn2","listings","scrollTo2","setCenter","setZoom","buildFilterMenu","subscribe","province","toLowerCase","packageType","experienceType","city","getProvinceTo","cityTo","experiences","getAllExperiences","themes","getAllPackageTypes","prices","getAllPriceRanges","e","x","id","t","p","name","price","type","theme","mx_city","City","v","findIndex","item","sort","compare","compareProvinces","trackMe","search","compareTypes","a","b","cityA","toUpperCase","cityB","comparison","proA","proB","region","getAllCitiesSingle","getAllCitiesByRegion","replace","regions","new_region","charAt","substr","innerHTML","navigator","geolocation","getCurrentPosition","showPosition","alert","isTracking","watchPosition","showTrackingPosition","coords","latitude","longitude","location","panTo","marker","setPosition","localStorage","setItem","event","nextN","getAllByDealsByIds","mapBox","noResult","style","mapInit","currentTarget","innerText","deal","sessionStorage","window","href","latlng","geocoder","Geocoder","geocode","results","status","GeocoderStatus","OK","formatted_address","address_components","types","short_name","long_name","url","img","current_entry_id","all","prevItem","prev","BackBtn","el","scrollIntoView","selector","templateUrl","styleUrls","CmsService","http","env","ContactApiUrl","apiURL","httpOptions","headers","filteredData","application","post","observe","pipe","res","deserialize","body","providedIn","ContactusModel","input","Object","assign","EasterSeasonPageComponent","activatedRoute","campaigns","dealsData","sideCampaignItems","getAllFilterLive","getAllCampaign","divEle","behavior","response","dealsSingle","Date","cf_publish_from","expiration_date","cf_package_type","cf_experience_type","cf_campaign","campaign","cf_discount","discount","mx_province","toLocaleLowerCase","scrollToTableVidFun","changeDetection","OnPush","BannerAddsComponent","bannersArray","logo","heading","descrition","description","link","banner","banner_fun","getScreenWidth","innerWidth","getScreenHeight","innerHeight","banner_image","TestPage","filterData","imgName","ProvinceDescription","ProvinceText","ProvinceUrlLink","TenReasonsPage","tenReasonsData","TenReasons","getTenReasons","HomePage","gtmService","route","getAllBanners","getBanners","EasterDealsComponent","searchNew","facebook","twitter","linkedin","email","getAllFilter","customOptions","loop","mouseDrag","touchDrag","pullDrag","autoWidth","margin","dots","navSpeed","navText","autoHeight","items","responsive","nav","y","date_deal_approved","slice","FeaturedDealsSmallComponent","trim","deal_ids","split_ids","new_entry","ProvincesBannerComponent","httpClient","yourCountry","querySelectorAll","forEach","element","getLocation","autoplay","dynamicBannerFun","dynamic_image","date","season","getSeason","tod","getTimeOfDay","jsonp","ipAddress","region_name","banner_path","err","error","Error","getHours","time","month","getMonth","randomizer","min","max","Math","floor","random","errorCallback","code","PERMISSION_DENIED","codeLatLng","headersL","Headers","test","append","fetch","mode","method","then","json","ip","getBannerRandom","Longitude","Latitude","imgsrc","get","onWindowResize","environment","production","apiTravelWeekURL","googleMapsAPI","TravelWeeknewPage","campaigndata","titleService","searchFilter","searchModel","dealsDataFull","dealsDataSingle","popularexperiencesCount","popularexperiencesfCount","topExperiences","provname","prodesc","config","leftTime","format","prettyText","TravelWeek","getTravelWeekById","headings","headings_array","getDateCount","join","pget","getItem","background","video_url","sub_title","date1","date2","Difference_In_Time","getTime","Difference_In_Days","data2","deals","popularexperiences","experience","image","Count","top","parseFloat","getNewProvince","countdown","LightLayoutComponent","AppTokenService","storage","token","removeItem","ProductService","ContactUsPage","dataLayer","ContactUs","Busy","Success","Failed","Required","NewApplicationContactusModel","gtmTag","pushTag","country","language","section","firstName","lastName","emailAddress","message","AddContactUs","TravelWeekBannerComponent","setMapData","ProvinceName","randomProvince","mapData","target","TradePartnerAccomPage","router","dealsProductsArray","dealsProducts","features","faqs","images","productinfo","reviews","images_dash","itinerary","owlData","dealsDataB","slideConfig","dealId","params","paramsId","url_title","product","address","contact_number","cf_contact_number","newPrice","parseInt","toFixed","currency","cf_currency","setTitle","new_title","overview","cf_deal_description","dealDescription","cf_deal_summary","cf_itinerary_breakdown","bookingLink","companyLogo","cf_logo","productUrl","cf_website_address","match","mainPhoto","apiKey","mapCenter","mapType","mapSize","imageUrl","staticMapUrl","bookNow","InfoMapComponent","getAllByRegion","HistoryText","active","clear","goToProvince","OnClick","HeaderComponent","dropdownimage","isOpen","loading","slides","sidenav","bind","getDealsSingle","buildSideMenu","width","transition","classList","contains","d","getAllByExperiences","ngOnInit","getAllByType","openNav","openCloseMenu","closeNav","FeaturedDealsComponent","MainModule","providers","declarations","imports","exports","AppModalService","UIkit","modal","SidemenuCarouselComponent","AppComponent","page_title","events","routeTitle","getChild","page_path","page_category","firstChild","SmallInfoMapComponent","SearchFilter","ProvinceVideoLink","setProvinceActive","getBackgroundVideo","getBanner","getProvinceText","CampaignPage","Camp","getAllCampaignById","deal_Ids","dealsText","packageTypes","DealsService","packagetypes","pricerange","banners","urlsingle","promise","Promise","resolve","reject","toPromise","apiData","GetAPIdata","milliseconds","now","currentDate","dataProxy","sleep","arr","reduce","o","arr2","Array","from","m","set","values","cf_travel_mode","DealsMapComponent","ItemSize","dd","scrollRef","scrollToElement","animateOut","animateIn","cities","result_cities","setCityArray","AppModule","provide","useClass","multi","useValue","bootstrap","AppHttpInterceptor","appTokenService","request","clone","setHeaders","Authorization","handle","DealsdashboardModel","InfomapModel","ProvincePage","prov","getAllByProvince","value","array","indexOf","TravelWeekBannernewComponent","SearchModel","searchTerm","starGrading","TenReasonsService","ItineraryPage","CampaignService","travelweekData","deal_Id","DealssingleResolverService","CampaignComponent","FooterComponent","modalService","dataNew","activities","stays","closeResult","button","getCookie","click","getAllPackageTypesFooter","getAllExperiencesFooter","days","expires","setTime","toUTCString","cookie","nameEQ","ca","setCookie","dismissAll","platform","reason","ESC","BACKDROP_CLICK","activity","stay","socialMedia","show","AboutComponent","DarkLayoutComponent","routes","component","children","redirectTo","AppRoutingModule","forRoot","TravelWeekService","TravelWeekApiUrl","BuildItineraryComponent","ItenaryPlannerComponent","dealdata","citiesFrom","province1","province2","city1","city2","travelType","dl_type","controlMap","activeElements","getElementsByName","elCount","theme_id","mapElementFrom","mapElementTo","dl_theme","url_id","setImage","getProvinceFrom","getItinerary","getType","setImage2","LoginComponent","changeActiveBtn","TravelWeekPage","IsInvalidEmail","console","log","surname","role","company_name","website","IsEmailValid","AddTravelWeekUser","JSON","stringify","MainLayoutComponent","AppErrorHandler","injector","navigate","appModalService","DealsResolverService","getDeals","NewTravelWeekModel","bootstrapModule","webpackEmptyAsyncContext","req","keys","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { DealsService } from '../../../services/deals.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\n//import MarkerClusterer from '@googlemaps/markerclustererplus'\r\n\r\n@Component({\r\n selector: 'app-deals-map-campaign',\r\n templateUrl: './deals-map-campaign.component.html',\r\n styleUrls: ['./deals-map-campaign.component.scss']\r\n})\r\nexport class DealsMapCampaignComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n\r\n public provinceTo: string;\r\n public cityTo: string;\r\n public type: string;\r\n public theme: string;\r\n public price: string;\r\n public citiesTo: any[] = [];\r\n public isMap = true;\r\n\r\n @ViewChild('map', { static: false }) mapElement: ElementRef;\r\n @Input() FilterData: BehaviorSubject = new BehaviorSubject(undefined);\r\n @Output() provinceChange: EventEmitter = new EventEmitter();\r\n\r\n map: google.maps.Map;\r\n currlatitude : number = 0;\r\n currlongitude : number = 0;\r\n center = new google.maps.LatLng(this.currlatitude, this.currlongitude);\r\n marker: google.maps.Marker;\r\n mapMarkers: any = [];\r\n //markerCluster: MarkerClusterer;\r\n ProvinceText : string;\r\n HistoryText : string;\r\n isTracking : boolean;\r\n locationsArray: DealsModel[] = [];\r\n btnclass : string;\r\n Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n Provinces = [{ Name: \"All\", Value : \"\" } , { Name: \"Gauteng\", Value : \"gauteng\" }, { Name: \"Mpumalanga\", Value : \"mpumalanga\" }, { Name: \"KwaZulu Natal\", Value : \"kwazulu-natal\" }, { Name: \"North West\", Value : \"north-west\" }, { Name: \"Limpopo\", Value : \"limpopo\" }, { Name: \"Western Cape\", Value : \"western-cape\" }, { Name: \"Free State\", Value : \"free-state\" }, { Name: \"Eastern Cape\", Value : \"eastern-cape\" }, { Name: \"Northern Cape\", Value : \"northern-cape\" }];\r\n Cities: any[] = [];\r\n CityArray: any[] = [];\r\n sideActivityItems: any[] = [];\r\n sideStayItems: any[] = [];\r\n priceItems: any[] = [];\r\n\r\n mapOptions: google.maps.MapOptions = {\r\n center: this.center,\r\n zoom: 12\r\n };\r\n infoWindow: google.maps.InfoWindow;\r\n locations : any = [];\r\n markerContent : any = [];\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n mapInit() {\r\n this.infoWindow = new google.maps.InfoWindow();\r\n this.map = new google.maps.Map(this.mapElement.nativeElement, this.mapOptions);\r\n this.mapMarkers = [];\r\n this.markerContent = [];\r\n //Where you are\r\n //this.marker = new google.maps.Marker({position: this.center, map:this.map})\r\n //Where you are\r\n\r\n var svgMarker = {\r\n path:\r\n \"M16.4999 26.1392C21.9839 26.1392 26.4295 21.7302 26.4295 16.2915C26.4295 10.8528 21.9839 6.44391 16.4999 6.44391C11.0159 6.44391 6.57031 10.8528 6.57031 16.2915C6.57031 21.7302 11.0159 26.1392 16.4999 26.1392Z\" +\r\n \"M28.1675 4.79266C25.0509 1.70186 20.9077 0 16.5 0C12.0923 0 7.94906 1.70186 4.83254 4.79266C1.71602 7.88346 0 11.9932 0 16.3638C0 24.0753 5.43588 30.7324 12.9878 32.3548L16.5 37L20.0129 32.3548C27.5641 30.7324 33 24.0753 33 16.3638C33 11.9932 31.284 7.88346 28.1675 4.79266ZM16.5 4.27234C23.1826 4.27234 28.6192 9.66408 28.6192 16.2916C28.6192 22.919 23.1826 28.3108 16.5 28.3108C9.81737 28.3108 4.38076 22.919 4.38076 16.2916C4.38076 9.66408 9.81737 4.27234 16.5 4.27234Z\",\r\n fillColor: \"#FFCC00\",\r\n fillOpacity: 0.6,\r\n strokeWeight: 0,\r\n rotation: 0,\r\n scale: 1,\r\n anchor: new google.maps.Point(15, 30),\r\n PointerEvent: new PointerEvent('mouseover', {})\r\n };\r\n\r\n var count = 0;\r\n //console.log(this.locationsArray);\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0]?.mx_image.includes(\"(\")){\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n this.locations = [];\r\n for (let index = 0; index < i.cf_destinations.length; index++) {\r\n this.locations.push({\r\n lat: Number(i.cf_destinations[index]?.mx_latitude),\r\n lng: Number(i.cf_destinations[index]?.mx_longitude)\r\n });\r\n //this.codeLatLng(i.cf_destinations[index]?.mx_latitude, i.cf_destinations[index]?.mx_longitude);\r\n }\r\n\r\n var samePos1 = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === i.cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === i.cf_destinations[0].mx_longitude && i.cf_address_line_1 === \"\") || (i.cf_address_line_1 !== \"\" && result.cf_address_line_1 === i.cf_address_line_1 && result.cf_address_line_2 === i.cf_address_line_2));\r\n var buttons = \"\";\r\n var buttons2 = \"\";\r\n var collg = \"12\";\r\n\r\n if(samePos1.length > 1){\r\n collg = \"8\";\r\n buttons = '
';\r\n buttons2 = '
';\r\n }\r\n\r\n var content = '
'+buttons+'
' + i.title.substring(0,25) + '
'+buttons2+'

';\r\n //TODO: Do not delete\r\n //\"\"\r\n //\" \"\r\n var btn = '';\r\n this.markerContent.push({\r\n content: content,\r\n count : count\r\n });\r\n\r\n var lbl =\r\n {\r\n text: 'btn' + count,\r\n color: 'white'\r\n }\r\n\r\n const tempMarker = new google.maps.Marker({ position: this.locations[0], map: this.map , icon : svgMarker , title: 'btn' + count});\r\n tempMarker.addListener('click', ((tempMarker, map, infoWindow) => {\r\n return () => {\r\n\r\n var counting = tempMarker.getTitle().split('n');\r\n var idnumber = Number(counting[1]);\r\n var samePos = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === i.cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === i.cf_destinations[0].mx_longitude && i.cf_address_line_1 === \"\") || (i.cf_address_line_1 !== \"\" && result.cf_address_line_1 === i.cf_address_line_1 && result.cf_address_line_2 === i.cf_address_line_2));\r\n\r\n buttons = \"\";\r\n var button_prev = \"\";\r\n collg = \"12\";\r\n\r\n if(samePos.length > 1){\r\n collg = \"8\";\r\n button_prev = '
';\r\n buttons = '
';\r\n }\r\n\r\n\r\n\r\n var content = '
'+button_prev+'
' + i.title.substring(0,25) + '
'+buttons+'

';\r\n //infoWindow.setOptions({\"maxWidth\":275});\r\n //infoWindow.setContent(this.markerContent[Number(counting[1])].content);\r\n\r\n infoWindow.setContent(content);\r\n infoWindow.open(map, tempMarker);\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById(tempMarker.getTitle()),'highlight');\r\n\r\n\r\n var container = document.getElementById('tabcontent');\r\n var scrollTo = document.getElementById('btn'+idnumber.toString());\r\n container.scrollTop = scrollTo.offsetTop;\r\n\r\n //Add onclick event to buttons\r\n setTimeout(() => {\r\n\r\n let dealsBtn = document.getElementById('deals-but-'+idnumber);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(i.entry_id));\r\n\r\n if(samePos.length > 1){\r\n\r\n\r\n //let closeBtn = document.getElementById('close-info-'+idnumber);\r\n //closeBtn.addEventListener('click' , () => infoWindow.close());\r\n var c = 1;\r\n\r\n var next = idnumber;\r\n var multi_content = '';\r\n\r\n var nnumber = (c === 1) ? idnumber : next;\r\n next = this.setNextNumber(i.entry_id,samePos);\r\n var cc = 1;\r\n for(let sp of samePos){\r\n //Build multi content window\r\n\r\n var display = (cc === 1) ? \"block\" : \"none\";\r\n var multi_button_prev = '';\r\n var multi_button_next = '';\r\n multi_content += '
'+multi_button_prev+'
' + sp.title.substring(0,25) + '
'+multi_button_next+'

';\r\n cc++;\r\n }\r\n\r\n\r\n let NextBtn = document.getElementById('next-info-'+nnumber);\r\n c++;\r\n\r\n NextBtn.addEventListener('click' , () => {\r\n\r\n setTimeout(() => {\r\n\r\n var ccc = 1;\r\n for(let ideal of samePos){\r\n if(ccc <= samePos.length){\r\n\r\n\r\n let inner_next_button = document.getElementById('next-info-inner-'+ccc);\r\n inner_next_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_next_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n var nextbut = (Number(iiii[3]) === samePos.length) ? 1: Number(iiii[3])+1;\r\n var next2 = this.setNumber(samePos[nextbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner = document.getElementById('inner-marker-'+(nextbut));\r\n //alert(nextbut);\r\n active_inner.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n var scrollTo = document.getElementById('btn'+next2.toString());\r\n container.scrollTop = scrollTo.offsetTop;\r\n });\r\n\r\n let inner_prev_button = document.getElementById('prev-info-inner-'+ccc);\r\n inner_prev_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_prev_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n\r\n var prevbut = (Number(iiii[3]) === 1) ? samePos.length : Number(iiii[3])-1;\r\n var next2 = this.setNumber(samePos[prevbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner2 = document.getElementById('inner-marker-'+(prevbut));\r\n //alert(nextbut);\r\n active_inner2.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n container.scrollTop = scrollTo1.offsetTop;\r\n });\r\n\r\n let dealsBtn2 = document.getElementById('deals-but-'+ccc);\r\n dealsBtn2.addEventListener('click' , () => this.goToDeals(ideal.entry_id));\r\n }\r\n\r\n ccc++;\r\n }\r\n\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n this.renderer.addClass(document.getElementById('btn' + next), 'highlight');\r\n this.infoWindow.setContent(multi_content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n var scrollTo2 = document.getElementById('btn'+next.toString());\r\n container.scrollTop = scrollTo2.offsetTop;\r\n\r\n this.infoWindow.open(this.map, this.mapMarkers[nnumber]);\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n //let FwdBtn = document.getElementById('deals-but-'+idnumber);\r\n //FwdBtn.addEventListener('click' , () => this.goToDeals(i.entry_id));\r\n }, 1000);\r\n\r\n\r\n }\r\n })(tempMarker, this.map, this.infoWindow));\r\n this.mapMarkers.push(tempMarker);\r\n\r\n\r\n\r\n count ++;\r\n }\r\n this.map.setCenter(new google.maps.LatLng(Number(this.locationsArray[0]?.cf_destinations[0]?.mx_latitude), Number(this.locationsArray[0]?.cf_destinations[0]?.mx_longitude)));\r\n this.map.setZoom(7);\r\n\r\n //this.markerCluster = new MarkerClusterer(this.map, this.mapMarkers, { imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' })\r\n\r\n }\r\n\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n //Get all cities\r\n\r\n this.buildFilterMenu();\r\n\r\n this.FilterData.subscribe(result => {\r\n this.Search = result;\r\n this.Search.province = (this.Search.province === \"Select province\" || this.Search.province === null) ? '' : result.province.toLowerCase();\r\n this.Search.packageType = (this.Search.packageType === '0' || this.Search.packageType === null) ? '' : this.Search.packageType;\r\n this.Search.experienceType = (this.Search.experienceType === '0' || this.Search.experienceType === null) ? '' : this.Search.experienceType;\r\n this.Search.city = (this.Search.city === \"City(optional)\" || this.Search.city === null) ? '' : this.Search.city;\r\n this.getProvinceTo(this.Search.province);\r\n });\r\n\r\n this.cityTo = (this.Search.city === \"\") ? \"Select city\" : this.Search.city;\r\n\r\n const experiences = this.data.getAllExperiences();\r\n const themes = this.data.getAllPackageTypes();\r\n const prices = this.data.getAllPriceRanges();\r\n\r\n let e = experiences.filter(x => x.id === this.Search.experienceType);\r\n let t = themes.filter(x => x.id === this.Search.packageType);\r\n let p = prices.filter(x => x.name === this.Search.price);\r\n\r\n this.type = (this.Search.experienceType === \"\") ? \"Select experience\" : e[0].name;\r\n this.theme = (this.Search.packageType === \"\") ? \"Select type\" : t[0].name;\r\n this.price = (this.Search.price === \"\") ? \"Price limit\" : p[0].name;\r\n\r\n for (let i = 0; i < this.Cities.length; i++) {\r\n const data = this.Cities[i]?.[0]?.mx_city;\r\n if(data != null && data != \"\")\r\n {\r\n this.CityArray.push({\r\n City: data,\r\n Value: data\r\n });\r\n }\r\n }\r\n //Ignore city duplicates\r\n this.CityArray = this.CityArray.filter((v,i) => this.CityArray.findIndex(item => item.City == v.City) === i);\r\n\r\n //this.CityArray.push({\r\n //City: \"All\",\r\n //Value: \"\"\r\n //});\r\n\r\n this.CityArray.sort(this.compare);\r\n this.Provinces.sort(this.compareProvinces);\r\n\r\n setTimeout(() => {\r\n this.trackMe();\r\n this.search();\r\n }, 1000);\r\n\r\n this.buildFilterMenu();\r\n\r\n this.sideStayItems.push({\r\n name: \"All\",\r\n id: \"\"\r\n });\r\n\r\n this.sideActivityItems.push({\r\n name: \"All\",\r\n id: \"\"\r\n });\r\n\r\n this.sideStayItems.sort(this.compareTypes);\r\n this.sideActivityItems.sort(this.compareTypes);\r\n }\r\n\r\n public ngOnDestroy() : void {\r\n\r\n }\r\n compare(a, b) {\r\n const cityA = a.City.toUpperCase();\r\n const cityB = b.City.toUpperCase();\r\n let comparison = 0;\r\n if (cityA > cityB) {\r\n comparison = 1;\r\n } else if (cityA < cityB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n compareTypes(a, b) {\r\n const cityA = a.name.toUpperCase();\r\n const cityB = b.name.toUpperCase();\r\n let comparison = 0;\r\n if (cityA > cityB) {\r\n comparison = 1;\r\n } else if (cityA < cityB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n //Order by Province Name\r\n compareProvinces(a, b) {\r\n const proA = a.Name.toUpperCase();\r\n const proB = b.Name.toUpperCase();\r\n let comparison = 0;\r\n if (proA > proB) {\r\n comparison = 1;\r\n } else if (proA < proB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n getProvinceTo(region:string){\r\n //region = region.toLowerCase();\r\n\r\n if(region === 'All' || region === '' || region === null){\r\n\r\n this.Cities = this.data.getAllCitiesSingle();\r\n }\r\n else{\r\n this.Cities = this.data.getAllCitiesByRegion(region.toLowerCase().replace(' ','-'));\r\n let regions = region.split('-');\r\n let new_region = region.charAt(0).toUpperCase()+region.substr(1)\r\n\r\n if(regions.length > 1)\r\n new_region = regions[0].charAt(0).toUpperCase()+regions[0].substr(1)+' '+regions[1].charAt(0).toUpperCase()+regions[1].substr(1);\r\n\r\n document.getElementById(\"ddlProvince\").innerHTML = new_region+'';\r\n }\r\n this.CityArray = [];\r\n this.cityTo = \"Select city\";\r\n for (let i = 0; i < this.Cities.length; i++) {\r\n const data = this.Cities[i]?.[0]?.mx_city;\r\n if(data != null && data != \"\")\r\n {\r\n this.CityArray.push({\r\n City: data,\r\n Value: data\r\n });\r\n }\r\n }\r\n\r\n this.CityArray.push({\r\n City: \"All\",\r\n Value: \"\"\r\n });\r\n\r\n this.CityArray.sort(this.compare);\r\n }\r\n //Find Current Location using browser\r\n findMe() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n this.showPosition(position);\r\n });\r\n } else {\r\n alert(\"Geolocation is not supported by this browser.\");\r\n }\r\n }\r\n\r\n trackMe() {\r\n if (navigator.geolocation) {\r\n this.isTracking = true;\r\n navigator.geolocation.watchPosition((position) => {\r\n this.showTrackingPosition(position);\r\n });\r\n } else {\r\n alert(\"Geolocation is not supported by this browser.\");\r\n }\r\n }\r\n\r\n showPosition(position) {\r\n this.currlatitude = position.coords.latitude;\r\n this.currlongitude = position.coords.longitude;\r\n\r\n let location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\r\n this.map.panTo(location);\r\n\r\n if (!this.marker) {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.map,\r\n title: 'Got you!'\r\n });\r\n }\r\n else {\r\n this.marker.setPosition(location);\r\n }\r\n }\r\n\r\n showTrackingPosition(position) {\r\n this.currlatitude = position.coords.latitude;\r\n this.currlongitude = position.coords.longitude;\r\n\r\n localStorage.setItem('currlatitude', this.currlatitude.toString());\r\n localStorage.setItem('currlongitude', this.currlongitude.toString());\r\n\r\n let location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\r\n //this.map.panTo(location);\r\n //this.map.setZoom(11);\r\n\r\n if (!this.marker) {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.map,\r\n title: 'Got you!'\r\n });\r\n }\r\n else {\r\n this.marker.setPosition(location);\r\n }\r\n }\r\n //Find Current Location using browser\r\n\r\n clickbtn(event: any, btn)\r\n {\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn' + btn.count), 'highlight');\r\n\r\n this.infoWindow.setContent(this.markerContent[btn.count].content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(btn.lat, btn.long),\r\n zoom: 12\r\n };\r\n\r\n var container = document.getElementById('tabcontent');\r\n\r\n this.infoWindow.open(this.map, this.mapMarkers[btn.count]);\r\n var samePos = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === this.locationsArray[btn.count].cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === this.locationsArray[btn.count].cf_destinations[0].mx_longitude && this.locationsArray[btn.count].cf_address_line_1 === \"\") || ((this.locationsArray[btn.count].cf_address_line_1 != \"\") && (result.cf_address_line_1 === this.locationsArray[btn.count].cf_address_line_1 && result.cf_address_line_2 === this.locationsArray[btn.count].cf_address_line_2)));\r\n setTimeout(() => {\r\n\r\n let dealsBtn = document.getElementById('deals-but-'+btn.count);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(this.locationsArray[btn.count].entry_id));\r\n\r\n if(samePos.length > 1){\r\n\r\n\r\n //let closeBtn = document.getElementById('close-info-'+idnumber);\r\n //closeBtn.addEventListener('click' , () => infoWindow.close());\r\n var c = 1;\r\n\r\n var next = btn.count;\r\n var multi_content = '';\r\n\r\n next = this.setNextNumber(samePos[c-1].entry_id,samePos);\r\n //var next2 = this.setNextNumber(samePos[c-1].entry_id,samePos);\r\n var nnumber = (c === 1) ? btn.count : next;\r\n\r\n var cc = 1;\r\n for(let sp of samePos){\r\n //Build multi content window\r\n\r\n var display = (cc === 1) ? \"block\" : \"none\";\r\n var multi_button_prev = '';\r\n var multi_button_next = '';\r\n multi_content += '
'+multi_button_prev+'
' + sp.title.substring(0,25) + '
'+multi_button_next+'

';\r\n cc++;\r\n }\r\n\r\n\r\n let NextBtn = document.getElementById('next-info-'+nnumber);\r\n\r\n\r\n NextBtn.addEventListener('click' , () => {\r\n\r\n setTimeout(() => {\r\n\r\n var ccc = 1;\r\n for(let ideal of samePos){\r\n\r\n if(ccc <= samePos.length){\r\n\r\n let inner_next_button = document.getElementById('next-info-inner-'+ccc);\r\n inner_next_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_next_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n var nextbut = (Number(iiii[3]) === samePos.length) ? 1: Number(iiii[3])+1;\r\n var next2 = this.setNumber(samePos[nextbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner = document.getElementById('inner-marker-'+(nextbut));\r\n //alert(nextbut);\r\n active_inner.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n container.scrollTop = scrollTo1.offsetTop;\r\n\r\n\r\n });\r\n\r\n let inner_prev_button = document.getElementById('prev-info-inner-'+ccc);\r\n inner_prev_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_prev_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n\r\n var prevbut = (Number(iiii[3]) === 1) ? samePos.length : Number(iiii[3])-1;\r\n var next2 = this.setNumber(samePos[prevbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner2 = document.getElementById('inner-marker-'+(prevbut));\r\n //alert(nextbut);\r\n active_inner2.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n container.scrollTop = scrollTo1.offsetTop;\r\n\r\n });\r\n\r\n\r\n let dealsBtn2 = document.getElementById('deals-but-'+ccc);\r\n dealsBtn2.addEventListener('click' , () => this.goToDeals(ideal.entry_id));\r\n }\r\n\r\n ccc++;\r\n }\r\n\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.infoWindow.setContent(multi_content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n\r\n\r\n var nextN = this.setNumber(samePos[0].entry_id,samePos);\r\n this.renderer.addClass(document.getElementById('btn'+nextN), 'highlight');\r\n\r\n var scrollTo2 = document.getElementById('btn'+nextN);\r\n container.scrollTop = scrollTo2.offsetTop;\r\n\r\n this.infoWindow.open(this.map, this.mapMarkers[next]);\r\n\r\n });\r\n\r\n\r\n }\r\n c++;\r\n }, 1000);\r\n\r\n }\r\n\r\n\r\n //When clicking a button it matches it to a deal\r\n\r\n //Search via paramaters\r\n\r\n search()\r\n {\r\n this.locationsArray = [];\r\n this.isMap = true;\r\n //alert(this.Search.deal_ids);\r\n this.locationsArray = this.data.getAllByDealsByIds(this.Search);\r\n let mapBox = document.getElementById(\"map-box\");\r\n let noResult = document.getElementById(\"no-results\");\r\n\r\n mapBox.style.display = (this.locationsArray.length > 0) ? \"block\" : \"none\";\r\n noResult.style.display = (this.locationsArray.length > 0) ? \"none\" : \"block\";\r\n\r\n this.trackMe();\r\n this.mapInit();\r\n\r\n //console.log(this.Search);\r\n }\r\n OnsearchCity(event: any,btn)\r\n {\r\n if(btn == \"province\")\r\n {\r\n this.Search.city = \"\";\r\n document.getElementById(\"ddlCity\").innerHTML = \"Select city\"+'';\r\n document.getElementById(\"ddlProvince\").innerHTML = event.currentTarget.innerText+'';\r\n if(document.getElementById(\"ddlProvince\").innerText == \"All\")\r\n {\r\n this.Search.province = \"\";\r\n }\r\n else\r\n {\r\n this.Search.province = event.currentTarget.innerText;\r\n }\r\n }\r\n\r\n\r\n\r\n this.search();\r\n }\r\n Onsearch(event: any,btn)\r\n {\r\n if(btn == \"province\")\r\n {\r\n this.Search.city = \"\";\r\n document.getElementById(\"ddlCity\").innerHTML = \"Select city\"+'';\r\n document.getElementById(\"ddlProvince\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlProvince\").innerText == \"All\")\r\n {\r\n this.Search.province = \"\";\r\n }\r\n else\r\n {\r\n this.Search.province = event.currentTarget.innerText.toLowerCase().replace(' ', '-');\r\n }\r\n }\r\n\r\n if(btn == \"city\")\r\n {\r\n document.getElementById(\"ddlCity\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlCity\").innerText == \"All\")\r\n {\r\n this.Search.city = \"\";\r\n }\r\n else\r\n {\r\n this.Search.city = event.currentTarget.innerText;\r\n }\r\n }\r\n\r\n if(btn == \"experience\"){\r\n document.getElementById(\"ddlExperience\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlExperience\").innerText == \"All\")\r\n {\r\n this.Search.experienceType = \"\";\r\n }\r\n else\r\n {\r\n this.Search.experienceType = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n if(btn == \"type\"){\r\n document.getElementById(\"ddlType\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlType\").innerText == \"All\")\r\n {\r\n this.Search.packageType = \"\";\r\n }\r\n else\r\n {\r\n this.Search.packageType = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n if(btn == \"price\"){\r\n document.getElementById(\"ddlPrice\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlPrice\").innerText == \"All\")\r\n {\r\n this.Search.price = \"\";\r\n }\r\n else\r\n {\r\n this.Search.price = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n this.search();\r\n }\r\n goToDeals(deal: string){\r\n\r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal;\r\n\r\n }\r\n buildFilterMenu(){\r\n this.sideActivityItems = [];\r\n this.sideActivityItems = this.data.getAllExperiences();\r\n\r\n this.sideStayItems = [];\r\n this.sideStayItems = this.data.getAllPackageTypes();\r\n\r\n this.priceItems = [];\r\n this.priceItems = this.data.getAllPriceRanges();\r\n }\r\n\r\n codeLatLng(lat, lng) {\r\n\r\n var latlng = new google.maps.LatLng(lat, lng);\r\n var geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode({location: latlng}, function(results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n if (results[1]) {\r\n //formatted address\r\n alert(results[0].formatted_address)\r\n //find country name\r\n for (var i=0; i {\r\n\r\n setTimeout(() => {\r\n let dealsBtn = document.getElementById('deals-but-'+prev);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(this.locationsArray[prev].entry_id));\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn' + prev), 'highlight');\r\n this.infoWindow.setContent(this.markerContent[prev].content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n\r\n var scrollTo = document.getElementById('btn'+prev.toString());\r\n container.scrollTop = scrollTo.offsetTop;\r\n\r\n this.infoWindow.open(this.map, this.mapMarkers[id]);\r\n\r\n });\r\n\r\n return BackBtn;\r\n }\r\n setPrevButton(){\r\n\r\n }\r\n scroll(el: HTMLElement) {\r\n el.scrollIntoView(true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{loc.cf_deal_summary}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\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 Results

\r\n

\r\n Try adjusting your search by removing filters.\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","// angular imports\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n// Model Imports\r\nimport { DataModel } from '../models/main/cms/data.model';\r\n\r\n\r\n// Dummy data import\r\nimport cmsData from '../../assets/dummy-data/cms-data.json';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ContactusModel } from '../models/main/contactus/contactus.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nexport const data = cmsData;\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class CmsService {\r\n public data = cmsData;\r\n env = environment;\r\n ContactApiUrl = this.env.apiURL + 'ContactApi/ContactUs';\r\n \r\n httpOptions = {\r\n headers: new HttpHeaders({\r\n })\r\n };\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n //TODO add service calls here\r\n getAllByRegion(region: string): DataModel[]{\r\n const filteredData = this.data.filter(result => result.region === region);\r\n return filteredData;\r\n }\r\n\r\n\r\n public AddContactUs(application: ContactusModel): Observable {\r\n return this.http.post(this.ContactApiUrl, application, {observe: 'response'})\r\n .pipe(\r\n map(res => {\r\n if (res) {\r\n //debugger;\r\n if (res.status == 200) {\r\n return new ContactusModel().deserialize(res.body)\r\n }\r\n }\r\n return new ContactusModel().deserialize(res.body);\r\n })\r\n );\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable\";\r\n\r\nexport class ContactusModel implements Deserializable{\r\n public firstName: string;\r\n public lastName: string;\r\n public emailAddress: string;\r\n public message: string;\r\n public country: string;\r\n public language: string;\r\n public section: string;\r\n public portal: string;\r\n public id: string;\r\n\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n return this;\r\n }\r\n }","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute} from '@angular/router';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { CampaignService } from 'src/app/services/campaign.service';\r\n\r\n@Component({\r\n selector: 'app-easter-season-page',\r\n templateUrl: './easter-season-page.component.html',\r\n styleUrls: ['./easter-season-page.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EasterSeasonPageComponent implements OnInit {\r\n\r\n dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n Search: SearchModel = new SearchModel();\r\n sideCampaignItems: any[] = [];\r\n\r\n constructor(private activatedRoute: ActivatedRoute,private campaigns: CampaignService,) { }\r\n\r\n ngOnInit(): void {\r\n this.getAllFilterLive(this.Search);\r\n this.sideCampaignItems = this.campaigns.getAllCampaign();\r\n // document.getElementById(\"seatAtTheTable\").scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n\r\n scrollToTableVidFun(){\r\n var divEle = document.getElementById(\"easterVideo\");\r\n divEle.scrollIntoView({\r\n behavior: \"smooth\"\r\n });\r\n }\r\n\r\n getAllFilterLive(search : SearchModel): void{\r\n\r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.dealsSingle;\r\n if(data != undefined){\r\n this.dealsData.next(data.\r\n filter(result =>\r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n ))\r\n //console.log(this.dealsData)\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{sideCampaignItems[0].short_description}}\r\n

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

\r\n {{sideCampaignItems[0].long_description}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\n\r\n@Component({\r\n selector: 'app-banner-adds',\r\n templateUrl: './banner-adds.component.html',\r\n styleUrls: ['./banner-adds.component.scss']\r\n})\r\nexport class BannerAddsComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n @Input() public bannersArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n public logo: string;\r\n public heading: string;\r\n public descrition: string;\r\n public link: string;\r\n public banner: string;\r\n public innerWidth: any;\r\n public getScreenWidth: any;\r\n public getScreenHeight: any;\r\n public banner_image:any;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2,\r\n \r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n // this.innerWidth = window.innerWidth;\r\n\r\n // if(this.innerWidth > 700){\r\n // document.getElementById(\"notmobileads\").setAttribute(\"style\", \"display:block\");\r\n // document.getElementById(\"mobileads\").setAttribute(\"style\", \"display:none\");\r\n // }else{\r\n // document.getElementById(\"mobileads\").setAttribute(\"style\", \"display:block\");\r\n // document.getElementById(\"notmobileads\").setAttribute(\"style\", \"display:none\");\r\n // }\r\n this.bannersArray.subscribe(result=>{\r\n if (!!result){\r\n this.logo = result[0].logo;\r\n this.heading = result[0].name;\r\n this.descrition = result[0].description;\r\n this.link = result[0].link;\r\n this.banner = result[0].banner;\r\n }\r\n\r\n \r\n });\r\n this.banner_fun();\r\n }\r\n\r\n banner_fun(){\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n if(this.getScreenWidth <481 && this.getScreenWidth <= 767){\r\n \r\n // this.dynamic_cover_image=\"assets/images/Mobi-414x460-bg.jpg\"\r\n this.banner_image=\"assets/images/Campaign_Banner_390x532px.png\"\r\n // this.dynamic_cover_image= \"assets/images/travelweek2022/travelweek2022_mobile.png\"\r\n \r\n \r\n\r\n }\r\n else if(this.getScreenWidth >= 768 && this.getScreenWidth <= 1023){\r\n \r\n // this.dynamic_cover_image=\"assets/images/Tablet-768x450-bg.jpg\"\r\n this.banner_image=\"assets/images/Campaign_Banner_820x540px.png\"\r\n // this.dynamic_cover_image= \"assets/images/travelweek2022/travelweek2022_desktop.png\"\r\n \r\n\r\n }\r\n else{\r\n this.banner_image=\"assets/images/Campaign_Banner_840x550px.png\"\r\n }\r\n \r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n}\r\n \r\n","// Angular imports\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n// React Imports\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\n\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\n\r\n@Component({\r\n selector: 'test-page',\r\n templateUrl: './test-page.component.html',\r\n styleUrls: ['./test-page.component.scss']\r\n})\r\n\r\nexport class TestPage implements OnInit {\r\n // site text variables for localization\r\n public FilterData: InfomapModel = new InfomapModel();\r\n public filterData: InfomapModel = new InfomapModel();\r\n constructor(\r\n //private data: DealsService\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n //TODO something\r\n this.filterData.imgName = 'hut';\r\n this.filterData.ProvinceDescription = 'Western Cape Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod';\r\n this.filterData.ProvinceText = 'Western Cape';\r\n this.filterData.ProvinceUrlLink = \"https://www.youtube.com/watch?v=LgvseYYhqU0\";\r\n this.FilterData = this.filterData;\r\n }\r\n}\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 { Renderer2 } from '@angular/core';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\n\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n// React Imports\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\nimport { TenReasonsModel } from 'src/app/models/main/tenreasons/tenreasons.model';\r\nimport { TenReasonsService } from 'src/app/services/tenreasons.service';\r\n\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\n\r\n@Component({\r\n selector: 'ten-reasons-why',\r\n templateUrl: './ten-reasons.component.html',\r\n styleUrls: ['./ten-reasons.component.scss']\r\n})\r\n\r\nexport class TenReasonsPage implements OnInit {\r\n // site text variables for localization\r\n TenReasons: TenReasonsModel[] = [];\r\n constructor(\r\n private tenReasonsData: TenReasonsService,\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n //TODO something\r\n this.TenReasons = this.tenReasonsData.getTenReasons();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

TOP REASONS

\r\n

to travel in South Africa

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ten.reason}}
\r\n
\r\n

{{ten.reasondescription}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","// Angular imports\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\n\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\n//declare var gtag;\r\n@Component({\r\n selector: 'home-page',\r\n templateUrl: './home-page.component.html',\r\n styleUrls: ['./home-page.component.scss']\r\n})\r\n\r\nexport class HomePage implements OnInit {\r\n // site text variables for localization\r\n bannersArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n Search: SearchModel = new SearchModel();\r\n constructor(\r\n private http: HttpClient,\r\n private data: DealsService,\r\n private gtmService: GoogleTagManagerService,\r\n private route: Router,\r\n private activatedRoute: ActivatedRoute,\r\n //private router: Router\r\n )\r\n {\r\n // const navEndEvents = router.events.pipe(filter(event => event instanceof NavigationEnd),);\r\n // navEndEvents.subscribe((event : NavigationEnd) =>\r\n // {\r\n // gtag('config', 'GTM-N3VDTB3' , {\r\n // 'page_path' : event.urlAfterRedirects\r\n // });\r\n // });\r\n }\r\n\r\n public ngOnInit() : void {\r\n //TODO something\r\n if(this.bannersArray === null)\r\n this.bannersArray.next(this.data.getAllBanners());\r\n\r\n this.getBanners();\r\n\r\n this.getAllFilterLive(this.Search);\r\n\r\n }\r\n getBanners(){\r\n\r\n this.bannersArray.next(null);\r\n this.bannersArray.next(this.data.getAllBanners());\r\n }\r\n\r\n getAllFilterLive(search : SearchModel): void{\r\n\r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.dealsSingle;\r\n if(data != undefined){\r\n this.dealsData.next(data.\r\n filter(result =>\r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n ))\r\n //console.log(this.dealsData)\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Top reasons

\r\n

to travel in South Africa

\r\n

\r\n Want to take a trip or go on a holiday in your beautiful country? No need to travel like a typical tourist, this is your home and your own backyard. There are so many options outside of just game-drives and beaches. Explore some options and get to know your country a bit more with this list of reasons to leave your couch right this moment.\r\n

\r\n Explore more \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Hit the road

\r\n

Mzansi awaits! It’s time to hit the road and get out there. What is it going to be this time magenge? A trip out of town to enjoy some breath-taking views? A holiday to the coast to soak in the South African sun on our pristine beaches? Or, just a much-needed getaway back to ekhaya? Whatever adventure you’re looking for, we can help get you there with our travel tools that make it easier for you to plan your journey.

\r\n Explore more\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\n@Component({\r\n selector: 'app-easter-deals',\r\n templateUrl: './easter-deals.component.html',\r\n styleUrls: ['./easter-deals.component.css']\r\n})\r\nexport class EasterDealsComponent implements OnInit, OnDestroy {\r\n\r\n public title: string;\r\n facebook: string;\r\n twitter: string;\r\n linkedin: string;\r\n email : string;\r\n break : string;\r\n locationsArray: DealsModel[] = [];\r\n Search: SearchModel = new SearchModel();\r\n customOptions: OwlOptions;\r\n @Input() FilterData: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n \r\n this.searchNew();\r\n this.facebook = \"https://www.facebook.com/sharer/sharer.php?u=southafrica.net/za/en/\";\r\n this.twitter = \"https://twitter.com/intent/tweet?text=\" + window.location.href + \" \" + \" -\";\r\n this.linkedin = \"http://www.linkedin.com/shareArticle?mini=true&url=\" + window.location.href;\r\n this.email = window.location.href;\r\n this.break = \"-\"\r\n }\r\n\r\n \r\n search()\r\n {\r\n this.locationsArray = this.data.getAllFilter(this.Search);\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0]?.mx_image.includes(\"(\")){\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n }\r\n }\r\n searchNew()\r\n {\r\n this.FilterData.subscribe(result => {\r\n this.customOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:true,\r\n margin:20,\r\n dots: true,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: true,\r\n center: true,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 3\r\n },\r\n 940: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n 1400: {\r\n items: 3 \r\n }\r\n },\r\n nav: false\r\n };\r\n\r\n if(result !== undefined){\r\n \r\n this.locationsArray = result.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n \r\n if(this.locationsArray.length > 50){\r\n this.locationsArray = this.locationsArray.slice(0,50);\r\n }\r\n \r\n //alert(this.locationsArray.length);\r\n\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0].mx_image.includes(\"(\") && !i.cf_images[0].mx_image.includes(\"\\\\\")){\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n }\r\n else if(i.cf_images[0].mx_image === \"\") \r\n {\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n if(i.cf_images[0].mx_image.includes(\" \")) \r\n {\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(' ','%20');\r\n }\r\n }\r\n //console.log(result);\r\n }\r\n \r\n });\r\n \r\n \r\n }\r\n goToDeals(deal: string){\r\n \r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal.replace(' ', '-').toLowerCase();\r\n \r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n\r\n}\r\n","
0\" class=\"space-pb\" style=\"padding-top:20px;background-color:#F6F6F6;\">\r\n
\r\n
\r\n
\r\n
\r\n

Our easter travel deals

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
    {{loc.cf_discount}}% Off    
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n  \r\n   \r\n   \r\n \r\n   \r\n\r\n \r\n  \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{loc.cf_deal_summary.substring(0,200)}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Explore more >\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\n@Component({\r\n selector: 'app-featured-deals-small',\r\n templateUrl: './featured-deals-small.component.html',\r\n styleUrls: ['./featured-deals-small.component.scss']\r\n})\r\nexport class FeaturedDealsSmallComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n locationsArray: DealsModel[] = [];\r\n Search: SearchModel = new SearchModel();\r\n @Input() FilterData: BehaviorSubject = new BehaviorSubject(undefined);\r\n @Input() dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n facebook: string;\r\n twitter: string;\r\n linkedin: string;\r\n email : string;\r\n break : string;\r\n customOptions: OwlOptions;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n this.customOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:true,\r\n margin:20,\r\n dots: true,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: true,\r\n center: true,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 3\r\n },\r\n 940: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n 1400: {\r\n items: 3 \r\n }\r\n },\r\n nav: false\r\n };\r\n this.facebook = \"https://www.facebook.com/sharer/sharer.php?u=southafrica.net/za/en/\";\r\n this.twitter = \"https://twitter.com/intent/tweet?text=\" + window.location.href + \" \" + \" -\";\r\n this.linkedin = \"http://www.linkedin.com/shareArticle?mini=true&url=\" + window.location.href;\r\n this.email = window.location.href;\r\n this.break = \"-\";\r\n\r\n //this.search();\r\n this.FilterData.subscribe(result => {\r\n this.Search = result;\r\n this.Search.province = (this.Search.province === \"Select province\" || this.Search.province === null) ? '' : result.province.toLowerCase().replace(' ','-').trim(); \r\n this.Search.packageType = (this.Search.packageType === '0' || this.Search.packageType === null) ? '' : this.Search.packageType;\r\n this.Search.experienceType = (this.Search.experienceType === '0' || this.Search.experienceType === null) ? '' : this.Search.experienceType;\r\n this.Search.city = (this.Search.city === \"City(optional)\" || this.Search.city === null) ? '' : this.Search.city;\r\n this.Search.discount = (this.Search.discount === '' || this.Search.discount === null) ? '' : this.Search.discount;\r\n this.Search.deal_ids = (this.Search.deal_ids === '' || this.Search.deal_ids === null) ? '' : this.Search.deal_ids;\r\n //this.search();\r\n });\r\n this.dealsData.subscribe(results => {\r\n let filteredData: DealsModel[] = results;\r\n \r\n if(this.Search.deal_ids != null && this.Search.deal_ids != \"\"){\r\n alert(\"TEST\")\r\n var split_ids = this.Search.deal_ids.split(\",\");\r\n filteredData = [];\r\n \r\n if(split_ids.length > 0){\r\n for(let item of split_ids){\r\n \r\n let new_entry = results.filter(result => result.entry_id === item);\r\n //console.log(new_entry);\r\n if(new_entry.length > 0){\r\n filteredData.push(new_entry[0]);\r\n }\r\n \r\n }\r\n \r\n }\r\n }\r\n if(filteredData != undefined)\r\n this.locationsArray = filteredData.\r\n filter(result => \r\n result.status == \"open\" &&\r\n new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date() && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === this.Search.packageType || this.Search.packageType === \"\") &&\r\n (result.cf_experience_type === this.Search.experienceType || this.Search.experienceType === \"\") &&\r\n (result.cf_campaign === this.Search.campaign || this.Search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(this.Search.discount) || this.Search.discount === \"\") &&\r\n (Number(result.cf_price) <= Number(this.Search.price) || this.Search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === this.Search.province.toLocaleLowerCase() || this.Search.province === \"\" || this.Search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === this.Search.city || this.Search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n );\r\n this.locationsArray = this.locationsArray.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n \r\n if(this.locationsArray.length > 50){\r\n this.locationsArray = this.locationsArray.slice(0,50);\r\n \r\n }\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0].mx_image.includes(\"(\") && !i.cf_images[0].mx_image.includes(\"\\\\\")){\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n }\r\n else if(i.cf_images[0].mx_image === \"\") \r\n {\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n if(i.cf_images[0].mx_image.includes(\" \")) \r\n {\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(' ','%20');\r\n }\r\n }\r\n \r\n \r\n });\r\n }\r\n\r\n \r\n search()\r\n {\r\n this.locationsArray = this.data.getAllByDealsByIds(this.Search);\r\n this.locationsArray = this.locationsArray.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n \r\n if(this.locationsArray.length > 50){\r\n this.locationsArray = this.locationsArray.slice(0,50);\r\n }\r\n \r\n //alert(this.locationsArray.length);\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0]?.mx_image.includes(\"(\")){\r\n //i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n }\r\n }\r\n \r\n goToDeals(deal: string){\r\n \r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal;\r\n \r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n \r\n}\r\n \r\n","
0\" class=\"space-pb popup-gallery overflowx-h\" style=\"position:relative;padding-top:30px;background-color:#F6F6F6;\">\r\n
\r\n
\r\n
\r\n
\r\n

Recommended Sho't Left

\r\n
\r\n Heita! So, you want to get out there and you’re looking for something great within your budget. Here are some of the hottest deals for stays and activities to suit the kind of experience you’re looking for. It’s your country, Enjoy 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
    {{loc.cf_discount}}% Off    
\r\n
\r\n \r\n \r\n
\r\n  \r\n   \r\n   \r\n \r\n   \r\n\r\n \r\n  \r\n\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{loc.cf_deal_summary.substring(0,200)}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Explore more >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2,\r\n HostListener\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { DealsService } from '../../../services/deals.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription, throwError } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { GeodataModel } from 'src/app/models/main/geodata/geodata.model';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\n@Component({\r\n selector: 'app-provinces-banner',\r\n templateUrl: './provinces-banner.component.html',\r\n styleUrls: ['./provinces-banner.component.scss']\r\n})\r\nexport class ProvincesBannerComponent implements OnInit, OnDestroy {\r\n public banner_path: string;\r\n public region: string;\r\n public ipAddress: string;\r\n public innerWidth: any;\r\n public ProvinceVideoLink: string;\r\n public imgsrc: any;\r\n customOptions: OwlOptions;\r\n public getScreenWidth: any;\r\n public getScreenHeight: any;\r\n public dynamic_image:any;\r\n public dynamic_cover_image:string;\r\n\r\n onResize(event) {\r\n //console.log('Welcome to onResize', window.innerWidth);\r\n this.innerWidth = window.innerWidth;\r\n\r\n let yourCountry = document.querySelectorAll(\".yourcountry\"); //.setAttribute(\"style\", \"width: 70%;\");\r\n yourCountry.forEach((element) => {\r\n //console.log('Inner Page');\r\n if (this.innerWidth > 700) {\r\n element.setAttribute(\"style\", \"width: 70%;\");\r\n } else {\r\n element.setAttribute(\"style\", \"width: 80%;\");\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.banner_path = \"assets/images/provinces/western-cape/summer/afternoon.png\";\r\n //alert(this.innerWidth);\r\n //this.getBanner();\r\n //this.buildBannerPath();\r\n //this.getBanner();\r\n this.getLocation();\r\n }\r\n\r\n constructor (\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer: Renderer2,\r\n private httpClient: HttpClient\r\n ) { }\r\n\r\n \r\n public ngOnInit(): void {\r\n // Set Carousel Options\r\n this.customOptions = {\r\n autoplay: true,\r\n loop: false, //loop: true, // when loading more than one item\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:false,\r\n margin: 0,\r\n dots: true,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: false,\r\n center: true,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 1\r\n },\r\n 940: {\r\n items: 1\r\n },\r\n 1024: {\r\n items: 1\r\n },\r\n 1400: {\r\n items: 1\r\n }\r\n },\r\n nav: false\r\n };\r\n\r\n this.dynamicBannerFun();\r\n \r\n \r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onWindowResize() {\r\n \r\n this.dynamicBannerFun()\r\n \r\n }\r\n \r\n\r\n public ngOnDestroy(): void {\r\n\r\n }\r\n \r\n \r\n \r\n dynamicBannerFun(){\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n if(this.getScreenWidth <481 && this.getScreenWidth <= 767){\r\n \r\n // this.dynamic_cover_image=\"assets/images/Mobi-414x460-bg.jpg\"\r\n // this.dynamic_image=\"assets/images/Masthead_Banner_367x485px.png\"\r\n this.dynamic_image=\"assets/images/Masthead_BannersMasthead-Summner-Mobi-Banner-.png\"\r\n \r\n // this.dynamic_cover_image= \"assets/images/travelweek2022/travelweek2022_mobile.png\"\r\n }\r\n else if(this.getScreenWidth >= 768 && this.getScreenWidth <= 1023){\r\n \r\n // this.dynamic_cover_image=\"assets/images/Tablet-768x450-bg.jpg\"\r\n // this.dynamic_image=\"assets/images/Masthead_Banner_820x1058px.png\"\r\n this.dynamic_image=\"assets/images/Masthead_BannersMasthead-Desktop-Banner_tab_820x1058px.png\"\r\n // this.dynamic_cover_image= \"assets/images/travelweek2022/travelweek2022_desktop.png\"\r\n \r\n }\r\n else{\r\n \r\n // this.dynamic_cover_image=\"assets/images/Desktop-1920x810_bg.png\"\r\n // this.dynamic_image=\"assets/images/Masthead_Banner_1680x611px.png\"\r\n this.dynamic_image=\"assets/images/Masthead_BannersMasthead-Desktop-Banner_1680x611px.png\"\r\n //this.dynamic_cover_image= \"assets/images/travelweek2022/travelweek2022_desktop.png\"\r\n\r\n }\r\n \r\n }\r\n //@HostListener('window:resize', ['$event'])\r\n //getScreenSize(event?) {\r\n // this.innerWidth = window.innerWidth;\r\n //\r\n // if(this.innerWidth > 700){\r\n // //alert(this.innerWidth);\r\n // document.getElementById(\"homebanner\").setAttribute(\"data-jarallax-video\", \"https://www.youtube.com/watch?v=Lf82GWDgqMw\");\r\n // }else{\r\n // //alert(this.innerWidth);\r\n // this.buildBannerPath();\r\n // document.getElementById(\"homebanner\").setAttribute(\"data-jarallax-video\", this.banner_path);\r\n // //document.getElementById(\"homebanner\").setAttribute(\"style\", \"background-image: url(\"+this.banner_path+\")\");\r\n // }\r\n // //alert(this.innerWidth);\r\n //}\r\n\r\n\r\n public buildBannerPath(): void {\r\n var date = new Date();\r\n var province = \"\";\r\n var season = this.getSeason(date);\r\n var tod = this.getTimeOfDay(date);\r\n\r\n\r\n this.httpClient.jsonp('http://api.ipstack.com/' + this.ipAddress + '?access_key=ed506ce3782dcee72067f492e13e77b9&fields=region_name', 'callBack').subscribe((res: GeodataModel) => {\r\n province = res.region_name.toLowerCase();\r\n province = province.replace(' ', '-');\r\n province = province.replace(' ', '-');\r\n\r\n this.banner_path = \"assets/images/provinces/\" + province + \"/\" + season + \"/\" + tod + \".png\";\r\n\r\n return this.banner_path;\r\n },\r\n (err: HttpErrorResponse) => {\r\n\r\n if (err.error instanceof Error) {\r\n //console.log(\"Client-side error occured.\");\r\n } else {\r\n //console.log(\"Server-side error occured.\");\r\n }\r\n });\r\n }\r\n\r\n getTimeOfDay(date: Date): string {\r\n let tod = date.getHours();\r\n let time = \"\";\r\n if (tod >= 6 && tod < 12) {\r\n time = \"morning\";\r\n }\r\n else if (tod >= 12 && tod <= 18) {\r\n time = \"afternoon\";\r\n }\r\n else {\r\n time = \"evening\";\r\n }\r\n\r\n return time;\r\n }\r\n\r\n getSeason(date: Date): string {\r\n let season = \"\";\r\n let month = date.getMonth();\r\n\r\n if ((month >= 0 && month <= 2) || month == 11) {\r\n season = \"summer\";\r\n }\r\n else if (month >= 9 && month <= 10) {\r\n season = \"spring\";\r\n }\r\n else if (month >= 3 && month <= 5) {\r\n season = \"fall\";\r\n }\r\n else {\r\n season = \"winter\";\r\n }\r\n return season;\r\n }\r\n\r\n getLocation() {\r\n var region = \"\";\r\n if (navigator.geolocation) {\r\n var longitude = 0;\r\n var latitude = 0;\r\n\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n longitude = position.coords.longitude;\r\n latitude = position.coords.latitude;\r\n //alert(longitude);\r\n this.codeLatLng(latitude, longitude);\r\n //this.codeLatLng(\"-29.830740\", '30.955550');\r\n }, errorCallback);\r\n function randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n function errorCallback(error) {\r\n var random = randomizer(2, 12);\r\n let img = \"\";\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n\r\n let path = (`url(${img})`);\r\n\r\n // document.getElementById(\"homebanner\").setAttribute(\"style\", \"background-image: \" + path + \";\");\r\n\r\n if (error.code == error.PERMISSION_DENIED) {\r\n //console.log(\"Get location by ip\");\r\n }\r\n }\r\n } else {\r\n alert(\"No support for geolocation\");\r\n }\r\n\r\n //return this.httpClient.get('http://api.ipstack.com/102.250.6.196?access_key=ed506ce3782dcee72067f492e13e77b9&fields=region_name');\r\n\r\n\r\n\r\n //return region;\r\n }\r\n\r\n getBanner() {\r\n let headersL = new Headers();\r\n let test: string;\r\n\r\n headersL.append('Content-Type', 'application/json');\r\n headersL.append('Accept', 'application/json');\r\n headersL.append('Origin', 'http://localhost:4200');\r\n\r\n fetch(\"http://api.ipify.org/?format=json\", {\r\n mode: 'cors',\r\n method: 'GET',\r\n headers: headersL\r\n })\r\n .then(response => response.json())\r\n .then(json => {\r\n this.ipAddress = json.ip;\r\n //alert(json.ip);\r\n this.getBannerRandom();\r\n\r\n })\r\n .catch(error => {\r\n //console.log('Authorization failed : ' + error.message)\r\n });\r\n\r\n //this.httpClient.get(\"http://api.ipify.org/?format=json\", { headers: headersL, }).subscribe((res:any)=>{\r\n // return this.ipAddress = res.ip;\r\n //});\r\n }\r\n\r\n codeLatLng(lat, lng) {\r\n\r\n var latlng = new google.maps.LatLng(lat, lng);\r\n var geocoder = new google.maps.Geocoder();\r\n let province = \"\";\r\n let img = \"\";\r\n let path = \"\";\r\n\r\n geocoder.geocode({ location: latlng }, function (results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n if (results[1]) {\r\n //formatted address\r\n //alert(results[0].formatted_address)\r\n //find country name\r\n for (var i = 0; i < results[0].address_components.length; i++) {\r\n for (var b = 0; b < results[0].address_components[i].types.length; b++) {\r\n\r\n //there are different types that might hold a city admin_area_lvl_1 usually does in come cases looking for sublocality type will be more appropriate\r\n if (results[0].address_components[i].types[b] == \"administrative_area_level_1\") {\r\n //this is the object you are looking for\r\n var city = results[0].address_components[i];\r\n province = city.long_name;\r\n //alert(province);\r\n break;\r\n }\r\n }\r\n }\r\n function randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n //city data\r\n //alert(city.short_name + \" \" + city.long_name);\r\n switch (province.toLowerCase().replace('-', ' ')) {\r\n case 'northern cape': {\r\n var random = randomizer(1, 16);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/NC/SAT_IMGS_NC' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'western cape': {\r\n var random = randomizer(2, 12);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'north west': {\r\n var random = randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/NW/SAT_IMGS_NW' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n\r\n break;\r\n }\r\n case 'free state': {\r\n var random = randomizer(1, 13);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/FS/SAT_IMGS_FS' + random + '.jpg';\r\n }\r\n\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'gauteng': {\r\n\r\n var random = randomizer(1, 9);\r\n\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/GP/SAT_IMGS_GP' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'mpumalanga': {\r\n var random = randomizer(1, 11);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/MP/SAT_IMGS_MP' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'limpopo': {\r\n var random = randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/LMP/SAT_IMGS_LMP' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'kwazulu natal': {\r\n var random = randomizer(1, 8);\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/KZN/SAT_IMGS_KZN' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n break;\r\n }\r\n case 'eastern cape': {\r\n var random = randomizer(1, 12);\r\n\r\n if (random < 10) {\r\n img = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + random + '.jpg';\r\n }\r\n else {\r\n img = 'assets/images/provincemap/EC/SAT_IMGS_EC' + random + '.jpg';\r\n }\r\n path = (`url(${img})`);\r\n\r\n break;\r\n }\r\n default: {\r\n var random = randomizer(1, 9);\r\n //this.randomProvince(random);\r\n path = (`url(${img})`);\r\n }\r\n\r\n }\r\n document.getElementById(\"homebanner\").setAttribute(\"style\", \"background-image: \" + path + \";\");\r\n } else {\r\n alert(\"No results found\");\r\n }\r\n } else {\r\n alert(\"Geocoder failed due to: \" + status);\r\n }\r\n });\r\n }\r\n\r\n callApi(Longitude: number, Latitude: number) {\r\n const url = `https://api-adresse.data.gouv.fr/reverse/?lon=${Longitude}&lat=${Latitude}`\r\n //Call API\r\n }\r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n getBannerRandom(): void {\r\n\r\n let province = \"\";\r\n var random = this.randomizer(2, 12);\r\n //this.randomProvince(random);\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n\r\n this.httpClient.get('http://api.ipstack.com/' + this.ipAddress + '?access_key=ed506ce3782dcee72067f492e13e77b9&fields=region_name').subscribe((res: GeodataModel) => {\r\n province = res.region_name.toLowerCase();\r\n //alert(province);\r\n switch (province) {\r\n case 'northern cape': {\r\n var random = this.randomizer(1, 16);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'western cape': {\r\n var random = this.randomizer(2, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'north west': {\r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n\r\n break;\r\n }\r\n case 'free state': {\r\n var random = this.randomizer(1, 13);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS' + random + '.jpg';\r\n }\r\n\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'gauteng': {\r\n var random = this.randomizer(1, 9);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'mpumalanga': {\r\n var random = this.randomizer(1, 11);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'limpopo': {\r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'kwazulu natal': {\r\n var random = this.randomizer(1, 8);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n break;\r\n }\r\n case 'eastern cape': {\r\n var random = this.randomizer(1, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC' + random + '.jpg';\r\n }\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n\r\n break;\r\n }\r\n default: {\r\n var random = this.randomizer(1, 9);\r\n //this.randomProvince(random);\r\n this.banner_path = (`url(${this.imgsrc})`);\r\n }\r\n\r\n }\r\n // document.getElementById(\"homebanner\").setAttribute(\"style\", \"background-image: \" + this.banner_path + \";\");\r\n },\r\n (err: HttpErrorResponse) => {\r\n\r\n if (err.error instanceof Error) {\r\n //console.log(err);\r\n //console.log(\"Client-side error occured.\");\r\n } else {\r\n //console.log(\"Server-side error occured.\");\r\n }\r\n });\r\n\r\n //province = province.toLowerCase();\r\n\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiURL: \"https://live.southafrica.net/umbraco/Api/\",\r\n apiTravelWeekURL: \"https://twregistrationfunction.azurewebsites.net/api/satregistration\",\r\n googleMapsAPI: \"AIzaSyCXTTbwxfmTAeMSN5Hu1NUzqivZWtUE9Y4\",\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","// Angular imports\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CountdownComponent, CountdownConfig } from 'ngx-countdown';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CampaignModel } from 'src/app/models/main/campaign/campaign.model';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { TravelWeekModel } from 'src/app/models/main/travelweek/travelweek.model';\r\nimport { CampaignService } from 'src/app/services/campaign.service';\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\n\r\n@Component({\r\n selector: 'travelweeknew-page',\r\n templateUrl: './travelweeknew-page.component.html',\r\n styleUrls: ['./travelweeknew-page.component.scss'],\r\n \r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class TravelWeeknewPage implements OnInit {\r\n public imgsrc: any;\r\n public background: any;\r\n public FilterData: InfomapModel = new InfomapModel();\r\n public filterData: InfomapModel = new InfomapModel();\r\n public Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n public TravelWeek: TravelWeekModel[];\r\n public searchFilter: BehaviorSubject = new BehaviorSubject(undefined);\r\n public searchModel: BehaviorSubject = new BehaviorSubject(undefined);\r\n public dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n public dealsDataFull: BehaviorSubject = new BehaviorSubject(undefined);\r\n public dealsDataSingle: BehaviorSubject = new BehaviorSubject(undefined);\r\n public popularexperiencesCount: any[] = [];\r\n public popularexperiencesfCount: any[] = [];\r\n public topExperiences: any[] = [];\r\n public popularexperiences: DealsModel[];\r\n public provinceChange: string;\r\n @ViewChild('cd', { static: false }) private countdown: CountdownComponent;\r\n \r\n provname = \"Northern Cape\";\r\n prodesc = \"Northern Cape Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\";\r\n bannersArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n public config: CountdownConfig = {\r\n leftTime: 16000000,\r\n format: 'dd:HH:mm:ss',\r\n prettyText: (text) => {\r\n //alert(text);\r\n return text;\r\n },\r\n };\r\n \r\n constructor(\r\n private data: DealsService,\r\n private campaigndata: CampaignService,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n \r\n \r\n this.TravelWeek = this.campaigndata.getTravelWeekById(\"123\");\r\n \r\n //debugger;\r\n //alert(this.getDateCount());\r\n var headings = \"Days:Hours:Minutes:Seconds\";\r\n var headings_array = headings.split(':');\r\n var count = 0;\r\n this.config = {\r\n leftTime: this.getDateCount(),\r\n format: 'dd:HH:mm:ss',\r\n prettyText: (text) => {\r\n //alert(text);\r\n return text\r\n .split(':')\r\n .map((v) => {\r\n var test = `${v}
${headings_array[count]}
`;\r\n \r\n ++count;\r\n if(count === 4){\r\n count = 0;\r\n }\r\n return test;\r\n })\r\n .join('');\r\n },\r\n };\r\n //let pget = sessionStorage.getItem('provinceTo');\r\n let pget = \"Select province\";\r\n let type = sessionStorage.getItem('type');;\r\n let theme = sessionStorage.getItem('theme');\r\n let city = sessionStorage.getItem('cityTo');\r\n\r\n if(pget === null || pget === \"\")\r\n location.href = \"/\";\r\n\r\n let province = (pget.trim() == 'Select province') ? 'south-africa' : pget.trim();\r\n pget = (pget.trim() == 'Select province') ? 'south-africa' : pget.trim();\r\n this.imgsrc = 'assets/images/province/laughing.png';\r\n this.background = (`url(${this.imgsrc}) no-repeat`);\r\n\r\n this.filterData.imgName = 'hut'; //TODO: Change to Video per province.\r\n this.filterData.ProvinceUrlLink = this.TravelWeek[0].video_url;\r\n this.filterData.ProvinceText = this.TravelWeek[0].title; \r\n //TODO: Section/PRovince description\r\n this.filterData.ProvinceDescription = this.TravelWeek[0].sub_title;\r\n\r\n this.getAllFilterLive(this.Search);\r\n this.FilterData = this.filterData;\r\n this.searchFilter.next(this.FilterData);\r\n\r\n this.Search.packageType = theme;\r\n this.Search.province = pget;\r\n this.Search.city = city;\r\n this.Search.experienceType = type;\r\n //this.Search.discount = \"0\";\r\n this.Search.campaign = \"travel-week\";\r\n\r\n \r\n //TODO: Add type to filter;\r\n \r\n\r\n if(this.bannersArray === null)\r\n this.bannersArray.next(this.data.getAllBanners());\r\n\r\n this.searchModel.next(this.Search);\r\n \r\n this.getBanners();\r\n //this.titleService.setTitle(\"Travel week\");\r\n }\r\n getDateCount(): any{\r\n var date1 = new Date();\r\n var date2 = new Date(\"09-13-2021\");\r\n \r\n // To calculate the time difference of two dates\r\n var Difference_In_Time = (date2.getTime() - date1.getTime()) / 1000;\r\n \r\n // To calculate the no. of days between two dates\r\n var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);\r\n \r\n //To display the final no. of days (result)\r\n //document.write(\"Total number of days between dates
\"\r\n // + date1 + \"
and
\" \r\n // + date2 + \" is:
\" \r\n // + Difference_In_Days);\r\n return Difference_In_Time;\r\n }\r\n getAllFilterLive(search : SearchModel): void{\r\n const experiences = this.data.getAllExperiences();\r\n var data2 : any[] = [];\r\n \r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.deals;\r\n \r\n if(data != undefined){\r\n this.dealsData.next(data.\r\n filter(result => \r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n ));\r\n this.activatedRoute.data.subscribe(response => {\r\n data2 = response.dealsSingle;\r\n data2 = data2.filter(result => \r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\"));\r\n });\r\n\r\n this.dealsDataFull.next(data);\r\n this.dealsDataSingle.next(data2);\r\n this.dealsData.subscribe(result => { \r\n this.popularexperiences = result; \r\n for (let index = 0; index < this.popularexperiences.length; index++) {\r\n for (let i = 0; i < experiences.length; i++) {\r\n var count = 0;\r\n count = this.popularexperiences.filter(x=>x.cf_experience_type === experiences[i].id).length;\r\n if(count > 0)\r\n {\r\n this.popularexperiencesCount.push({\r\n experience: experiences[i].id,\r\n image: experiences[i].image,\r\n name: experiences[i].name,\r\n Count: count,\r\n }); \r\n }\r\n }\r\n }\r\n \r\n this.popularexperiencesfCount = this.popularexperiencesCount.filter((v,i) => this.popularexperiencesCount.findIndex(item => item.experience == v.experience) === i);\r\n const top = this.popularexperiencesfCount.sort((x, y) => y - x).slice(0, 4);\r\n this.topExperiences = top.sort((a, b) => parseFloat(b.Count) - parseFloat(a.Count));\r\n }\r\n \r\n );\r\n }\r\n \r\n }); \r\n \r\n }\r\n getNewProvince(province: any){\r\n this.provinceChange = province;\r\n }\r\n getBanners(){\r\n \r\n this.bannersArray.next(null);\r\n this.bannersArray.next(this.data.getAllBanners());\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

#SHOTLEFTTRAVELWEEK22 IS HERE!

\r\n

5-11 September 2022

\r\n

\r\n Yaaaas, Mzansi, #ShotLeftTravelWeek22 is back and the country is ready for you to bag your Soft life\r\n deals from 5 – 11 September. Experience vibes all over your country, try something new from a variety\r\n of experiences that Mzansi has to offer with discounts of up to 50%. There is a selection of\r\n destinations that are vast as our southern slice of the African continent.\r\n

\r\n Consumer Enquiries\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

#SHOTLEFTTRAVELWEEK22 IS HERE!

\r\n

5-11 September 2022

\r\n

\r\n Have you remembered to register your business for #ShotLeftTravelWeek2022? If not, we’re only a few\r\n days away from the cut-off date, 28 August. Your business cannot afford to miss out on this\r\n marketing exposure opportunity. Don’t miss out! Winter’s over, and our beautiful Mzansi is calling\r\n and, South Africans are exchanging the comforts of their comforters for something that will put a\r\n #Spring in their step this September. Walala wasala!\r\n

\r\n Register Now\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-light-layout',\r\n templateUrl: './light-layout.component.html',\r\n styleUrls: ['./light-layout.component.scss']\r\n})\r\nexport class LightLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n public 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 \r\n\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppTokenService {\r\n private storage = sessionStorage;\r\n private token = \"token\";\r\n\r\n public clear() : void {\r\n this.storage.removeItem(this.token);\r\n }\r\n\r\n public any() : boolean {\r\n return this.get() !== null;\r\n }\r\n\r\n public get() : string | null {\r\n return this.storage.getItem(this.token);\r\n }\r\n\r\n public set(token: string) : void {\r\n this.storage.setItem(this.token, token);\r\n }\r\n}\r\n","// angular imports\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// Model Imports\r\nimport { DealsNewModel } from '../models/main/product/deals.model';\r\n\r\n// Dummy data import\r\nimport productData from '../../assets/dummy-data/product-data.json';\r\nexport const data = productData;\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class ProductService {\r\n public data = productData;\r\n \r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n //TODO add service calls here\r\n getAllProductsById(id: string): DealsNewModel[]{\r\n const filteredData = this.data.filter(result => result.id === id);\r\n return filteredData;\r\n }\r\n\r\n getAllProducts(): DealsNewModel[]{\r\n const filteredData = this.data.filter(result => result);\r\n return filteredData;\r\n }\r\n}\r\n","// Angular imports\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\nimport { CmsService } from 'src/app/services/cms.service';\r\nimport { ContactusModel } from 'src/app/models/main/contactus/contactus.model';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n@Component({\r\n selector: 'contactus-page',\r\n templateUrl: './contact-us.component.html',\r\n styleUrls: ['./contact-us.component.scss']\r\n})\r\n\r\nexport class ContactUsPage implements OnInit {\r\n\r\n ContactUs: ContactusModel = new ContactusModel();\r\n Busy = false;\r\n Success = false;\r\n Failed = false;\r\n Required = false;\r\n NewApplicationContactusModel: ContactusModel = new ContactusModel();\r\n\r\n constructor(\r\n private data: CmsService,\r\n private activatedRoute: ActivatedRoute,\r\n private dataLayer: GoogleTagManagerService,\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n\r\n }\r\n\r\n AddContactUs() {\r\n\r\n const gtmTag = {\r\n 'event': 'contact-us'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n\r\n this.Busy = true;\r\n this.ContactUs.country = \"za\";\r\n this.ContactUs.language = \"en\";\r\n this.ContactUs.section = \"travel\";\r\n if (this.ContactUs.firstName == undefined || this.ContactUs.lastName == undefined || this.ContactUs.emailAddress == undefined || this.ContactUs.message == undefined) {\r\n this.Required = true;\r\n this.Busy = false;\r\n }\r\n else {\r\n this.Required = false;\r\n this.Busy = true;\r\n this.ContactUs.country = \"za\";\r\n this.ContactUs.language = \"en\";\r\n this.ContactUs.section = \"travel\";\r\n\r\n this.data.AddContactUs(this.ContactUs).subscribe(data => this.NewApplicationContactusModel = data,\r\n (err) => {\r\n //console.log('Application Failed: ' + JSON.stringify(err.error));\r\n this.Busy = false;\r\n this.Success = false;\r\n this.Failed = true;\r\n },\r\n () => {\r\n //console.log('Application Success');\r\n this.Busy = false;\r\n this.Success = true;\r\n this.Failed = false;\r\n this.Required = false;\r\n this.NewApplicationContactusModel = this.NewApplicationContactusModel;\r\n }\r\n );\r\n }\r\n}\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Contact Us

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

Let’s Get In Touch!

\r\n
\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n

Thank you ! We will get in touch soon.

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

Error. Please fill in all required fields.

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

Error. Please try again.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n Send message\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Contact information

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Address
\r\n

Bojanala House, 90 Protea Road, Chislehurston, Johannesburg, 2196

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Email
\r\n

shotleft@southafrica.net

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Phone Number
\r\n +27(0)11 895 3000\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Fax
\r\n +27(0)11 895-3001\r\n
\r\n
\r\n
\r\n
\r\n
Social :
\r\n
    \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\n\r\n@Component({\r\n selector: 'travelweek-banner',\r\n templateUrl: './travelweek-banner.component.html',\r\n styleUrls: ['./travelweek-banner.component.scss']\r\n})\r\nexport class TravelWeekBannerComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public ProvinceDescription : string;\r\n public ProvinceUrlLink: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public ProvinceVideoLink: string;\r\n public innerWidth: any;\r\n\r\n @Input() ProvinceName: string;\r\n @Input() FilterData: InfomapModel;\r\n public filterData: InfomapModel = new InfomapModel();\r\n\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n setTimeout(() => { }, 500);\r\n\r\n //debugger;\r\n this.setMapData(this.FilterData);\r\n \r\n this.ProvinceName = this.filterData.ProvinceText;\r\n this.ProvinceDescription = this.filterData.ProvinceDescription;\r\n this.filterData.ProvinceUrlLink = this.filterData.ProvinceUrlLink; \r\n \r\n this.innerWidth = window.innerWidth;\r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n\r\n document.getElementById(\"travelweekbanner\").setAttribute(\"style\", \"background-image: linear-gradient(to left, rgba(255,0,0,0), rgb(0 255 122)), url(\"+this.imgsrc+\");\");\r\n \r\n if(this.innerWidth > 700){\r\n // document.getElementById(\"travelweekbanner\").setAttribute(\"data-jarallax-video\", \"https://www.youtube.com/watch?v=QHCYm4i7kFU&ab_channel=Sho%27tLeft\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"class\", \"col-lg-1 mb-5 text-left\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"style\", \"position: relative;\"); \r\n }else{\r\n //var random = this.randomizer(1, 9);\r\n //this.randomProvince(random);\r\n //document.getElementById(\"travelweekbanner\").setAttribute(\"style\", \"background-image: url(\"+this.imgsrc+\");\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"class\", \"col-lg-0 text-left\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"style\", \"position: relative;margin-bottom: 100%;\");\r\n \r\n }\r\n\r\n }\r\n \r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n \r\n \r\n public ngOnDestroy() : void {\r\n \r\n }\r\n \r\n randomProvince(province) {\r\n switch (province) {\r\n case 1:\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + province + '.jpg';\r\n break;\r\n case 2:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n case 3:\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + province + '.jpg';\r\n break;\r\n case 4:\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + province + '.jpg';\r\n break;\r\n case 5:\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + province + '.jpg';\r\n break;\r\n case 6:\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + province + '.jpg';\r\n break;\r\n case 7:\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + province + '.jpg';\r\n break;\r\n case 8:\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + province + '.jpg';\r\n break;\r\n case 9:\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + province + '.jpg';\r\n break;\r\n default:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n }\r\n }\r\n public setMapData(mapData: any) : void {\r\n this.filterData.imgName = mapData.imgName;\r\n this.filterData.ProvinceDescription = mapData.ProvinceDescription;\r\n this.filterData.ProvinceText = mapData.ProvinceText;\r\n this.filterData.ProvinceUrlLink = mapData.ProvinceUrlLink;\r\n\r\n //this.setProvinceActive(mapData.ProvinceText);\r\n }\r\n\r\n public setProvinceActive(id: string){\r\n var el = document.getElementById(id);\r\n this.renderer.addClass(el, \"activeProvince\");\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

COMING SOON

\r\n

TRAVEL WEEK 6 - 12 SEPTEMBER

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

THE GREAT SOUTH AFRICAN SALE

\r\n\r\n

Get up 50% off travel week deals. Coming Soon. Save the date 6-12 September

\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","// Angular imports\r\nimport { Renderer2 } from '@angular/core';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\n\r\n// React Imports\r\nimport { BehaviorSubject, EMPTY, Observable } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { ImagesModel } from 'src/app/models/main/deals/images.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { DealsNewModel } from 'src/app/models/main/product/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\n\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\r\n\r\n// Global site text import\r\nimport { ProductService } from '../../../services/product.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'tradepartneraccom-page',\r\n templateUrl: './tradepartneraccom-page.component.html',\r\n styleUrls: ['./tradepartneraccom-page.component.scss']\r\n})\r\n\r\nexport class TradePartnerAccomPage implements OnInit {\r\n @ViewChild('map', { static: false }) mapElement: ElementRef;\r\n\r\n map: google.maps.Map;\r\n currlatitude : number = 0;\r\n currlongitude : number = 0;\r\n center = new google.maps.LatLng(this.currlatitude, this.currlongitude);\r\n marker: google.maps.Marker;\r\n staticMapUrl: string;\r\n mapCenter: string;\r\n mapMarker: string;\r\n mapSize: string;\r\n imageUrl: string;\r\n\r\n dealsProductsArray: DealsNewModel[] = [];\r\n dealsProducts: BehaviorSubject = new BehaviorSubject(undefined);\r\n \r\n;\r\n features: any[] = [];\r\n faqs: any[] = [];\r\n images: any[] = [];\r\n location: string;\r\n productinfo: any[] = [];\r\n overview: string;\r\n reviews: any[] = [];\r\n product: DealsModel;\r\n title: string;\r\n address: string;\r\n bookingLink : string;\r\n contact_number: string;\r\n price: string;\r\n newPrice: string;\r\n discount: string;\r\n images_dash: ImagesModel[] = [];\r\n companyLogo: string;\r\n locations : any = [];\r\n markerContent : any = [];\r\n mapMarkers: any = [];\r\n itinerary : any = [];\r\n public Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n public searchModel: BehaviorSubject = new BehaviorSubject(undefined);\r\n facebook: string;\r\n twitter: string;\r\n linkedin: string;\r\n email : string;\r\n owlData: DealsModel[] = [];\r\n province: string;\r\n mainPhoto: string;\r\n dealDescription: string;\r\n currency: string;\r\n productUrl: string; \r\n\r\n public dealsDataB: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n mapOptions: google.maps.MapOptions = {\r\n center: this.center,\r\n zoom: 12\r\n };\r\n infoWindow: google.maps.InfoWindow;\r\n slideConfig = {\"slidesToShow\": 6, \"slidesToScroll\": 6};\r\n\r\n constructor(\r\n private data: ProductService,\r\n private dealsData: DealsService,\r\n private renderer:Renderer2,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private http: HttpClient,\r\n private dataLayer: GoogleTagManagerService,\r\n ) {\r\n }\r\n ngAfterViewInit() {\r\n this.mapInit();\r\n }\r\n\r\n public ngOnInit() : void {\r\n //Add deal variables as per deals dashboard data\r\n //let dealId = sessionStorage.getItem('dealId');\r\n\r\n\r\n this.searchModel.next(this.Search);\r\n\r\n this.activatedRoute.data.subscribe(response => {\r\n //alert(response.deals.length);\r\n var data = response.deals;\r\n let dealId = \"\";\r\n this.activatedRoute.params.subscribe(paramsId => {\r\n dealId = paramsId.id;\r\n //alert(this.id);\r\n });\r\n let filteredData = data.filter(result => result.status == \"open\" && result.url_title === dealId);\r\n this.product = filteredData[0];\r\n //filteredData = data.filter(result => result.status == \"open\");\r\n //console.log('dels page');\r\n //console.log(this.product);\r\n this.title = this.product.title;\r\n this.address = this.product.cf_address_line_1+', '+this.product.cf_address_line_2;\r\n this.contact_number = this.product.cf_product.cf_contact_number;\r\n this.discount = this.product.cf_discount;\r\n this.price = this.product.cf_price;\r\n this.newPrice = (((100 - parseInt(this.product.cf_discount))/100) * parseInt(this.product.cf_price)).toFixed(2).toString();\r\n this.currency = this.product.cf_currency;\r\n // // this.location = this.product.cf_destinations[0].mx_address_line_1 + \", \" + this.product.cf_destinations[0].mx_address_line_2 + \", \" + this.product.cf_destinations[0].mx_city + \", \" + this.product.cf_destinations[0].mx_province;\r\n let setTitle = this.product.cf_destinations[0].mx_province.split('-');\r\n let new_title = this.product.cf_destinations[0].mx_province.charAt(0).toUpperCase()+this.product.cf_destinations[0].mx_province.substr(1)\r\n this.province = new_title;\r\n if(setTitle.length > 1)\r\n new_title = setTitle[0].charAt(0).toUpperCase()+setTitle[0].substr(1)+' '+setTitle[1].charAt(0).toUpperCase()+setTitle[1].substr(1);\r\n\r\n this.location = this.product.cf_destinations[0].mx_city + \", \" + new_title;\r\n this.overview = this.product.cf_deal_description;\r\n this.dealDescription = this.product.cf_deal_summary;\r\n this.locations = [];\r\n this.itinerary = this.product.cf_itinerary_breakdown;\r\n this.bookingLink = this.product.sf_booking_link;\r\n this.companyLogo = (this.product.cf_product.cf_logo.includes(\"(\")) ? \"assets/images/icon.png\" : this.product.cf_product.cf_logo;\r\n this.productUrl = this.product.cf_product.cf_website_address;\r\n\r\n if (!this.productUrl.match(/^[a-zA-Z]+:\\/\\//) && this.productUrl.length > 0)\r\n {\r\n this.productUrl = 'http://' + this.productUrl;\r\n }\r\n\r\n this.Search.province = this.product.cf_destinations[0].mx_province;\r\n //alert(data.length);\r\n this.dealsProducts.next(data.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000)));\r\n this.searchModel.next(this.Search);\r\n //console.log(this.Search);\r\n if(this.product.cf_address_line_1 !== \"\" && this.product.cf_address_line_1 !== null){\r\n this.locations.push({\r\n lat: Number(this.product.cf_address_line_1),\r\n lng: Number(this.product.cf_address_line_2)\r\n });\r\n }else{\r\n this.locations.push({\r\n lat: Number(this.product.cf_destinations[0]?.mx_latitude),\r\n lng: Number(this.product.cf_destinations[0]?.mx_longitude)\r\n });\r\n }\r\n\r\n\r\n if(this.product.cf_images.length > 0){\r\n\r\n for (let i of this.product.cf_images) {\r\n if(i.mx_image.includes(\" \"))\r\n {\r\n i.mx_image = i.mx_image.replace(' ','%20');\r\n }\r\n if(i.mx_image.includes(\"(\")){\r\n i.mx_image = i.mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n //alert(i.mx_image);\r\n }\r\n else if(i.mx_image === \"\")\r\n {\r\n i.mx_image = \"assets/images/image.png\";\r\n }\r\n\r\n if(!i.mx_image.includes(\"https\")){\r\n i.mx_image = \"assets/images/image.png\";\r\n\r\n }\r\n this.images_dash.push(i)\r\n }\r\n this.mainPhoto = this.product.cf_images[0].mx_image;\r\n //console.log(\"Images dash:\");\r\n //console.log(this.images_dash);\r\n //this.images_dash = this.product.cf_images;\r\n }\r\n\r\n this.facebook = \"https://www.facebook.com/sharer/sharer.php?u=southafrica.net/za/en/\";\r\n this.twitter = \"https://twitter.com/intent/tweet?text=\" + window.location.href + \" -\";\r\n this.linkedin = \"http://www.linkedin.com/shareArticle?mini=true&url=\" + window.location.href;\r\n this.email = \"mailto:?subject=South African Tourism: \" + this.title + \"&body=\" + this.overview + \" - \" + window.location.href;\r\n //this.mapInit();\r\n\r\n });\r\n\r\n //alert(dealId);\r\n //this.getDealById(dealId);\r\n\r\n\r\n\r\n //Setup map\r\n }\r\n bookNow(url:string){\r\n const gtmTag = {\r\n //'user_id': '3483878392',\r\n 'deal_name': this.product.title + '/' + this.product.entry_id,\r\n 'city': this.product.cf_destinations[0].mx_city,\r\n 'province': this.province,\r\n 'price': this.price,\r\n 'event': 'book_now'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n //console.log(this.dataLayer.getDataLayer())\r\n window.open(url, '_blank');\r\n }\r\n changePhoto(url: string){\r\n this.mainPhoto = url;\r\n }\r\n getDealById(id: string): void {\r\n\r\n }\r\n mapInit() {\r\n this.infoWindow = new google.maps.InfoWindow();\r\n /* this.map = new google.maps.Map(this.mapElement.nativeElement, this.mapOptions);*/\r\n /*var svgMarker = {\r\n path:\r\n \"M16.4999 26.1392C21.9839 26.1392 26.4295 21.7302 26.4295 16.2915C26.4295 10.8528 21.9839 6.44391 16.4999 6.44391C11.0159 6.44391 6.57031 10.8528 6.57031 16.2915C6.57031 21.7302 11.0159 26.1392 16.4999 26.1392Z\" +\r\n \"M28.1675 4.79266C25.0509 1.70186 20.9077 0 16.5 0C12.0923 0 7.94906 1.70186 4.83254 4.79266C1.71602 7.88346 0 11.9932 0 16.3638C0 24.0753 5.43588 30.7324 12.9878 32.3548L16.5 37L20.0129 32.3548C27.5641 30.7324 33 24.0753 33 16.3638C33 11.9932 31.284 7.88346 28.1675 4.79266ZM16.5 4.27234C23.1826 4.27234 28.6192 9.66408 28.6192 16.2916C28.6192 22.919 23.1826 28.3108 16.5 28.3108C9.81737 28.3108 4.38076 22.919 4.38076 16.2916C4.38076 9.66408 9.81737 4.27234 16.5 4.27234Z\",\r\n fillColor: \"#FFCC00\",\r\n fillOpacity: 0.6,\r\n strokeWeight: 0,\r\n rotation: 0,\r\n scale: 1,\r\n anchor: new google.maps.Point(0, 0),\r\n PointerEvent: new PointerEvent('mouseover', {})\r\n };*/\r\n\r\n //const tempMarker = new google.maps.Marker({ position: this.locations[0], map: this.map , icon : svgMarker });\r\n /*tempMarker.addListener('click', ((tempMarker, map, infoWindow) => {\r\n return () => {\r\n\r\n var counting = tempMarker.getTitle().split('n')\r\n\r\n infoWindow.setContent(this.markerContent[Number(counting[1])].content);\r\n infoWindow.open(map, tempMarker);\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n this.renderer.addClass(document.getElementById(tempMarker.getTitle()),'highlight');\r\n var idnumber = Number(counting[1]);\r\n\r\n var container = document.getElementById('tabcontent');\r\n var scrollTo = document.getElementById('btn'+idnumber.toString());\r\n container.scrollTop = scrollTo.offsetTop;\r\n //this.scroll(document.getElementById('btn'+idnumber.toString()));\r\n }\r\n })(tempMarker, this.map, this.infoWindow));\r\n this.mapMarkers.push(tempMarker);\r\n\r\n if(this.product?.cf_address_line_1 !== \"\" && this.product?.cf_address_line_1 !== null){\r\n this.map.setCenter(new google.maps.LatLng(Number(this.product?.cf_address_line_1), Number(this.product?.cf_address_line_2)));\r\n }\r\n else{\r\n this.map.setCenter(new google.maps.LatLng(Number(this.product?.cf_destinations[0]?.mx_latitude), Number(this.product?.cf_destinations[0]?.mx_longitude)));\r\n }\r\n this.map.setZoom(10);*/\r\n\r\n const apiKey = environment.googleMapsAPI;\r\n this.mapCenter = Number(this.product?.cf_destinations[0]?.mx_latitude) +',' + Number(this.product?.cf_destinations[0]?.mx_longitude);\r\n \r\n const zoom = 12; // Zoom level\r\n const mapType = 'roadmap'; // Type of map\r\n\r\n this.mapSize = '330x210'; \r\n //this.imageUrl = \"http://shotleft.co.za/assets/images/maps/mapIcon.svg\";\r\n this.imageUrl = \"icon:https://shotleft.co.za/assets/images/maps/mapIcon.png\";\r\n this.staticMapUrl = `https://maps.googleapis.com/maps/api/staticmap?zoom=${zoom}&size=${this.mapSize}&maptype=${mapType}&markers=${this.imageUrl}|${this.mapCenter}&key=${apiKey}`;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n

{{title}}\r\n

\r\n
\r\n {{contact_number}}   \r\n {{location}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
    {{currency}} {{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
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{dealDescription}}

\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n

Itinerary Breakdown

\r\n
\r\n
\r\n
\r\n
\r\n
{{iti.mx_name}}
\r\n
\r\n

{{iti.mx_summary}}

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

Location

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-info-map',\r\n templateUrl: './info-map.component.html',\r\n styleUrls: ['./info-map.component.scss']\r\n})\r\nexport class InfoMapComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public HistoryText : string;\r\n public Provincestatus: string;\r\n public imgsrc: any;\r\n public background: any;\r\n\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n this.title = this.data.getAllByRegion(\"1\")[0].title;\r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n this.background = (`url(${this.imgsrc})`);\r\n this.ProvinceText = \"It’s Your Country. Enjoy it!\";\r\n this.HistoryText = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n }\r\n\r\n \r\n public ngOnDestroy() : void {\r\n \r\n }\r\n goToProvince(){\r\n var active = document.getElementsByClassName(\"activeProvince\");\r\n sessionStorage.clear();\r\n\r\n if(active.length > 0){\r\n sessionStorage.setItem('provinceTo', active[0].id);\r\n sessionStorage.setItem('provinceFrom', 'Select province');\r\n window.location.href = \"/province/\"+active[0].id.replace(' ', '-').toLowerCase();\r\n }\r\n else{\r\n sessionStorage.setItem('provinceTo', 'Select province');\r\n sessionStorage.setItem('provinceFrom', 'Select province');\r\n window.location.href = \"/province/mzansi\";\r\n }\r\n\r\n \r\n \r\n }\r\n OnClick (event: any, province)\r\n {\r\n\r\n //console.log(event.path[2]);\r\n \r\n // // event.path[2].childNodes.forEach(element => {\r\n // // this.renderer.removeClass(element.childNodes[0], 'activeProvince');\r\n // // });\r\n\r\n var active = document.getElementsByClassName(\"activeProvince\");\r\n\r\n for (let index = 0; index < active.length; index++) {\r\n this.renderer.removeClass(active[index],'activeProvince');\r\n }\r\n\r\n this.renderer.addClass(event.target, 'activeProvince');\r\n \r\n\r\n switch(province) { \r\n case 'Northern Cape': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"When it comes to things to do, places to see and people to meet, this diverse province is like the seven colours of South African provinces. You can go from sandy beaches, to star gazing, to bush veld all in one day. So pack your bags and dala you must.\"; \r\n var random = this.randomizer(1, 16);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'Western Cape': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Crystal clear rivers that water the banks of some of the finest winelands in the world. Iconic mountains that spill into oceans. A rich mixture of heritage and innovation. Awe ma se kind, this is the Western Cape.\"; \r\n var random = this.randomizer(2, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'North West': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Want to know where your ancestors took their first steps? Head to North West and say le kae to the locals who will happily help uncover and discover, this province that boarders Botswana, and is a stone’s chuck (throw) away from neighbouring Limpopo.\"; \r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n\r\n break; \r\n } \r\n case 'Free State': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"The heartland of Mzansi. For those looking to swap the big lights for the countryside and get an escape from city living. Laid back farmlands, some of the most historical sites in South Africa and a unique getaway. He banna, what are you waiting for? Come visit the Free State!\"; \r\n var random = this.randomizer(1, 13);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS' + random + '.jpg';\r\n }\r\n\r\n this.background = (`url(${this.imgsrc})`); \r\n break; \r\n } \r\n case 'Gauteng': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Ola! This is Egoli, the province of stars. Home to Mzansi’s biggest cities and biggest businesses. From vibey nightlife and mega shopping complexes to natural springs and wilderness retreats. You can literally find almost anything here, zwagala!\"; \r\n var random = this.randomizer(1, 9);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'Mpumalanga': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Africa’s land of the rising sun and where one of nguni’s romantic tongues is spoken. Mpumalanga is a place where nature, nebantfu, nurture each other in a naturally harmonious way of living.\"; \r\n var random = this.randomizer(1, 11);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`); \r\n break; \r\n } \r\n case 'Limpopo': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Dintshang! Are you ready to hit the road and come over to the province that carries the spirit of Mzansi within it? Whether it’s our famous wildlife on show or our majestic plant life and scenery, Limpopo is the province for those seeking an adventurous yet traditional South African outdoors experience. Come over to the wild side.\";\r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'Kwazulu Natal': { \r\n this.ProvinceText = 'KwaZulu Natal'; \r\n this.HistoryText = \"Egagasini, a province where the waves meet the land, and where culture meets heritage, means having a good time in a forgiving tropical climate. Woza eZulu land uzozibonela.\"; \r\n var random = this.randomizer(1, 8);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'Eastern Cape': { \r\n this.ProvinceText = province; \r\n this.HistoryText = \"Sbwl this, Sbwl that! Hayi don’t do that to yourself. Pack a bag and head eastwards to eMpuma-Koloni. A province where you’ll find yourself kicking off your city shoes to take a stroll with nature on natural beach’s and coast lines, that have been nurtured by locals.\"; \r\n var random = this.randomizer(1, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n \r\n break; \r\n } \r\n default: { \r\n this.ProvinceText = \"It’s Your Country. Enjoy it!\"; \r\n this.HistoryText = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n this.background = (`url(${this.imgsrc})`);\r\n break;\r\n } \r\n } \r\n \r\n }\r\n\r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n randomProvince(province) {\r\n switch (province) {\r\n case 1:\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + province + '.jpg';\r\n break;\r\n case 2:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n case 3:\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + province + '.jpg';\r\n break;\r\n case 4:\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + province + '.jpg';\r\n break;\r\n case 5:\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + province + '.jpg';\r\n break;\r\n case 6:\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + province + '.jpg';\r\n break;\r\n case 7:\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + province + '.jpg';\r\n break;\r\n case 8:\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + province + '.jpg';\r\n break;\r\n case 9:\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + province + '.jpg';\r\n break;\r\n default:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{ProvinceText}}

\r\n

{{HistoryText}}

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 a province

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { AnimationMetadataType, keyframes, trigger } from '@angular/animations';\r\nimport { Component, OnInit, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { CampaignService } from 'src/app/services/campaign.service'\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n //@Input() public sideNavToggle = false;\r\n //@Output() public readonly clickHamburgerEvent: EventEmitter = new EventEmitter();\r\n dropdownimage = \"plus\";\r\n dropdown: HTMLCollection;\r\n locationsArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n Search: SearchModel = new SearchModel();\r\n isOpen = false;\r\n sideActivityItems: any[] = [];\r\n sideStayItems: any[] = [];\r\n sideCampaignItems: any[] = [];\r\n customOptions: OwlOptions;\r\n public loading = false;\r\n slides: any[] = [];\r\n deals: any[] = [];\r\n dealsSingle: any[] = [];\r\n\r\n constructor(\r\n private data: DealsService,\r\n private campaigns: CampaignService,\r\n private renderer:Renderer2,\r\n private gtmService: GoogleTagManagerService,\r\n private activatedRoute: ActivatedRoute,\r\n private http: HttpClient\r\n ) {\r\n\r\n }\r\n\r\n public ngOnInit() : void {\r\n\r\n //console.log(this.locationsArray.value);\r\n var sidenav = document.getElementById(\"mySidenav\");\r\n\r\n //if(this.locationsArray.value === undefined)\r\n //this.locationsArray.next(this.data.getAllFilter(this.Search).slice(0,20));\r\n\r\n setTimeout(function(){\r\n this.loading = false;\r\n }.bind(this),1000);\r\n this.getDealsSingle().subscribe(data => {\r\n this.dealsSingle = data;\r\n })\r\n this.buildSideMenu();\r\n\r\n //alert(this.locationsArray);\r\n }\r\n public ngAfterViewInit() : void{\r\n\r\n //document.getElementById(\"mySidenav\").style.width = \"100%\";\r\n\r\n var sidenav = document.getElementById(\"mySidenav\");\r\n //sidenav.style.width = \"0\";\r\n //setTimeout(function(){\r\n sidenav.style.width = \"0\";\r\n //},0.000000000001);\r\n }\r\n /* Set the width of the side navigation to 250px */\r\n openNav() {\r\n this.isOpen = true;\r\n document.getElementById(\"mySidenav\").style.transition = \"0.5s\";\r\n document.getElementById(\"mySidenav\").style.width = \"100%\";\r\n this.locationsArray.next(this.getAllFilter(this.Search).slice(0,20));\r\n\r\n //alert(this.isOpen);\r\n }\r\n\r\n /* Set the width of the side navigation to 0 */\r\n closeNav() {\r\n document.getElementById(\"mySidenav\").style.width = \"0\";\r\n }\r\n\r\n openCloseMenu(event: Event){\r\n var item = event.target[\"children\"];\r\n if(item[0].classList.contains(\"fa-plus\")){\r\n this.renderer.removeClass(item[0], \"fa-plus\");\r\n this.renderer.addClass(item[0], \"fa-minus\");\r\n this.renderer.addClass(event.target, \"drop-active\");\r\n }\r\n else if(item[0].classList.contains(\"fa-minus\")){\r\n this.renderer.removeClass(item[0], \"fa-minus\");\r\n this.renderer.addClass(item[0], \"fa-plus\");\r\n this.renderer.removeClass(event.target, \"drop-active\");\r\n }\r\n\r\n }\r\n goToProvince(province: string){\r\n\r\n sessionStorage.setItem('provinceTo', province);\r\n sessionStorage.setItem('provinceFrom', 'Select province');\r\n\r\n window.location.href = \"/province/\"+province.replace(' ', '-').toLowerCase();\r\n\r\n }\r\n buildSideMenu(){\r\n this.sideActivityItems = this.data.getAllExperiences();\r\n this.sideStayItems = this.data.getAllPackageTypes();\r\n this.sideCampaignItems = this.campaigns.getAllCampaign();\r\n }\r\n getActivities(event: any, id: string){\r\n var items = document.getElementsByClassName('select-active');\r\n for (let index = 0; index < items.length; index++) {\r\n this.renderer.removeClass(items[index],'select-active');\r\n }\r\n\r\n this.renderer.addClass(event.target, \"select-active\");\r\n\r\n this.loading = true;\r\n let d = this.getAllByExperiences(id).slice(0,20);\r\n this.locationsArray.next((d.length > 0) ? d : this.getAllFilter(this.Search).slice(0,20));\r\n\r\n this.ngOnInit();\r\n\r\n }\r\n getStays(id: string){\r\n var items = document.getElementsByClassName('select-active');\r\n for (let index = 0; index < items.length; index++) {\r\n this.renderer.removeClass(items[index],'select-active');\r\n }\r\n\r\n this.renderer.addClass(event.target, \"select-active\");\r\n\r\n this.loading = true;\r\n let d = this.getAllByType(id).slice(0,20);\r\n\r\n this.locationsArray.next(null);\r\n\r\n this.locationsArray.next((d.length > 0) ? d : this.getAllFilter(this.Search).slice(0,20));\r\n\r\n this.ngOnInit();\r\n\r\n }\r\n getDealsSingle(): Observable {\r\n //return this.http.get('https://api.shotleft.co.za/latestdeal'); //'https://api.shotleft.co.za/travelweeklatest');\r\n return this.http.get('https://tradeplatform-liveapi.azurewebsites.net/api/v1/Products/GetOpenDeals'); //'https://api.shotleft.co.za/travelweeklatest');\r\n\r\n }\r\n getAllFilter(search : SearchModel): DealsModel[]{\r\n var data = this.dealsSingle;\r\n\r\n if(data != undefined){\r\n data = data.\r\n filter(result =>\r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n )\r\n\r\n }\r\n\r\n\r\n\r\n return data;\r\n }\r\n\r\n getAllByType(type: string): DealsModel[]{\r\n\r\n\r\n var filteredData = this.dealsSingle;\r\n\r\n filteredData = filteredData.filter(result => result.status == \"open\" && result.cf_package_type === type && result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0 && !result.cf_images[0]?.mx_image.includes(\"(\"));\r\n\r\n\r\n return filteredData;\r\n }\r\n getAllByExperiences(id: string): DealsModel[]{\r\n var filteredData = this.dealsSingle;\r\n\r\n filteredData = filteredData.filter(result => result.status == \"open\" && result.cf_experience_type === id && result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0 && !result.cf_images[0]?.mx_image.includes(\"(\"));\r\n\r\n\r\n return filteredData;\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n Activities\r\n \r\n \r\n
\r\n {{loc.name}}\r\n
\r\n Stay\r\n \r\n \r\n
\r\n {{loc.name}}\r\n
\r\n Mzansi\r\n \r\n \r\n \r\n \r\n \r\n \r\n
-->\r\n {{camp.title}} -->\r\n Travel Week 2022\r\n
\r\n \r\n\r\n Tools\r\n \r\n \r\n \r\n Contact\r\n Terms and Conditions\r\n Disclaimer\r\n Privacy Policy\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n Heita! So, you want to get out there and you’re looking for something great within your budget. Here are some of the hottest deals for stays and activities to suit the kind of experience you’re looking for. It’s your country, Enjoy 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","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\n@Component({\r\n selector: 'app-featured-deals',\r\n templateUrl: './featured-deals.component.html',\r\n styleUrls: ['./featured-deals.component.scss']\r\n})\r\nexport class FeaturedDealsComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n facebook: string;\r\n twitter: string;\r\n linkedin: string;\r\n email : string;\r\n break : string;\r\n locationsArray: DealsModel[] = [];\r\n Search: SearchModel = new SearchModel();\r\n customOptions: OwlOptions;\r\n @Input() FilterData: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n \r\n this.searchNew();\r\n this.facebook = \"https://www.facebook.com/sharer/sharer.php?u=southafrica.net/za/en/\";\r\n this.twitter = \"https://twitter.com/intent/tweet?text=\" + window.location.href + \" \" + \" -\";\r\n this.linkedin = \"http://www.linkedin.com/shareArticle?mini=true&url=\" + window.location.href;\r\n this.email = window.location.href;\r\n this.break = \"-\"\r\n }\r\n\r\n \r\n search()\r\n {\r\n this.locationsArray = this.data.getAllFilter(this.Search);\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0]?.mx_image.includes(\"(\")){\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n }\r\n }\r\n searchNew()\r\n {\r\n this.FilterData.subscribe(result => {\r\n this.customOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:true,\r\n margin:20,\r\n dots: true,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: true,\r\n center: true,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 3\r\n },\r\n 940: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n 1400: {\r\n items: 3 \r\n }\r\n },\r\n nav: false\r\n };\r\n\r\n if(result !== undefined){\r\n \r\n this.locationsArray = result.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n \r\n if(this.locationsArray.length > 50){\r\n this.locationsArray = this.locationsArray.slice(0,50);\r\n }\r\n \r\n //alert(this.locationsArray.length);\r\n\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0].mx_image.includes(\"(\") && !i.cf_images[0].mx_image.includes(\"\\\\\")){\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n }\r\n else if(i.cf_images[0].mx_image === \"\") \r\n {\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n if(i.cf_images[0].mx_image.includes(\" \")) \r\n {\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(' ','%20');\r\n }\r\n }\r\n //console.log(result);\r\n }\r\n \r\n });\r\n \r\n \r\n }\r\n goToDeals(deal: string){\r\n \r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal.replace(' ', '-').toLowerCase();\r\n \r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n}\r\n \r\n","
0\" class=\"space-pb\" style=\"padding-top:20px;background-color:#F6F6F6;\">\r\n
\r\n
\r\n
\r\n
\r\n

Today’s travel deals

\r\n

Heita! So, you want to get out there and you’re looking for something great within your budget. Here are some of the hottest deals for stays and activities to suit the kind of experience you’re looking for. It’s your country, Enjoy it!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
    {{loc.cf_discount}}% Off    
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n  \r\n   \r\n   \r\n \r\n   \r\n\r\n \r\n  \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{loc.cf_deal_summary.substring(0,200)}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Explore more >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","// angular imports\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// Bootstrap Imports\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// components import\r\nimport { DealsMapComponent } from './deals-map/deals-map.component';\r\nimport { FeaturedDealsComponent } from './featured-deals/featured-deals.component';\r\nimport { InfoMapComponent } from './info-map/info-map.component';\r\nimport { BuildItineraryComponent } from './build-itinerary/build-itinerary.component';\r\nimport { ProvincesBannerComponent } from './provinces-banner/provinces-banner.component';\r\nimport { SmallInfoMapComponent } from './small-info-map/small-info-map.component';\r\nimport { BannerAddsComponent } from './banner-adds/banner-adds.component';\r\nimport { FeaturedDealsSmallComponent } from './featured-deals-small/featured-deals-small.component';\r\nimport { ItenaryPlannerComponent } from './itenary-planner/itenary-planner.component';\r\nimport { SidemenuCarouselComponent } from './sidemenu-carousel/sidemenu-carousel.component';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport { DealsMapCampaignComponent } from './deals-map-campaign/deals-map-campaign.component';\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { TravelWeekBannernewComponent } from './travelweek-bannernew/travelweek-bannernew.component';\r\nimport { EasterDealsComponent } from './easter-deals/easter-deals.component';\r\n// import { Travelweek2022Component } from '../../pages/main/travelweek2022/travelweek2022/travelweek2022.component';\r\nimport { TravelWeeknewPage} from '../../pages/main/travelweeknew-page/travelweeknew-page.component';\r\n\r\n@NgModule({\r\n providers: [NgbActiveModal],\r\n declarations: [\r\n DealsMapCampaignComponent,\r\n DealsMapComponent,\r\n InfoMapComponent,\r\n FeaturedDealsComponent,\r\n BuildItineraryComponent,\r\n ProvincesBannerComponent,\r\n SmallInfoMapComponent,\r\n FeaturedDealsSmallComponent,\r\n BannerAddsComponent,\r\n ItenaryPlannerComponent,\r\n SidemenuCarouselComponent,\r\n TravelWeekBannernewComponent,\r\n EasterDealsComponent,\r\n // Travelweek2022Component\r\n TravelWeeknewPage\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CarouselModule,\r\n NgScrollbarModule,\r\n ScrollingModule\r\n ],\r\n exports: [\r\n RouterModule,\r\n DealsMapCampaignComponent,\r\n DealsMapComponent,\r\n InfoMapComponent,\r\n FeaturedDealsComponent,\r\n BuildItineraryComponent,\r\n ProvincesBannerComponent,\r\n SmallInfoMapComponent,\r\n FeaturedDealsSmallComponent,\r\n BannerAddsComponent,\r\n ItenaryPlannerComponent,\r\n SidemenuCarouselComponent,\r\n TravelWeekBannernewComponent,\r\n EasterDealsComponent\r\n\r\n ]\r\n})\r\nexport class MainModule {}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\ndeclare let UIkit: any;\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppModalService {\r\n public alert(message: string) : void {\r\n UIkit.modal.alert(message);\r\n }\r\n}\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\n@Component({\r\n selector: 'app-sidemenu-carousel',\r\n templateUrl: './sidemenu-carousel.component.html',\r\n styleUrls: ['./sidemenu-carousel.component.scss']\r\n})\r\nexport class SidemenuCarouselComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n @Input() public locationsArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n \r\n Search: SearchModel = new SearchModel();\r\n public logo: string;\r\n public heading: string;\r\n public descrition: string;\r\n public link: string;\r\n public slides: DealsModel[];\r\n customOptions: OwlOptions;\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2,\r\n \r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n this.customOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:true,\r\n margin:20,\r\n dots: true,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: true,\r\n center: true,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 3\r\n },\r\n 940: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n 1400: {\r\n items: 3 \r\n }\r\n },\r\n nav: false\r\n };\r\n\r\n this.slides = [];\r\n this.locationsArray?.subscribe(result => {\r\n if (!!result)\r\n this.slides = result;\r\n\r\n for (let i of this.slides) {\r\n \r\n if(i.cf_images[0].mx_image.includes(\"(\") && !i.cf_images[0].mx_image.includes(\"\\\\\")){\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n }\r\n else if(i.cf_images[0].mx_image === \"\") \r\n {\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n if(i.cf_images[0].mx_image.includes(\" \")) \r\n {\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(' ','%20');\r\n }\r\n \r\n }\r\n });\r\n \r\n \r\n }\r\n goToDeals(deal: string){\r\n \r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal;\r\n \r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n}\r\n \r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{loc.cf_product.title.substring(0,20)}}
\r\n
\r\n
\r\n
{{loc.title.substring(0,25)}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Learn more >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { filter } from 'rxjs/operators';\r\n//Services\r\n\r\n//Global\r\n//import dealsDashboardData from '../assets/dummy-data/deals-dashboard.json';\r\n\r\n//export const dealsText = dealsDashboardData;\r\n//export const dealsTest = dealsService.getAllDeals();\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit{\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n private gtmService: GoogleTagManagerService,\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n var page_title = '';\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n const routeTitle = this.getChild(this.activatedRoute);\r\n routeTitle.data.subscribe((data: { title: string }) => {\r\n this.titleService.setTitle(data.title + ' | Shotleft');\r\n page_title = data.title;\r\n });\r\n });\r\n\r\n this.router.events.forEach(item => {\r\n\r\n if (item instanceof NavigationEnd) {\r\n var items = item.url.replace('/', '').split('/')\r\n const gtmTag = {\r\n event: 'page_view',\r\n //user_id: '95787384',\r\n page_title: page_title,\r\n page_path: item.url,\r\n page_category: 'Landing Pages'\r\n };\r\n this.gtmService.pushTag(gtmTag);\r\n //console.log(this.gtmService.getDataLayer());\r\n }\r\n });\r\n\r\n //console.log(this.dataLayer);\r\n }\r\n\r\n public getChild(activatedRoute: ActivatedRoute) : any {\r\n if (activatedRoute.firstChild) {\r\n return this.getChild(activatedRoute.firstChild);\r\n } else {\r\n return activatedRoute;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\n//import { jarallax, jarallaxElement, jarallaxVideo } from 'jarallax';\r\n\r\n@Component({\r\n selector: 'small-info-map',\r\n templateUrl: './small-info-map.component.html',\r\n styleUrls: ['./small-info-map.component.scss']\r\n})\r\nexport class SmallInfoMapComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public ProvinceDescription : string;\r\n public ProvinceUrlLink: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public ProvinceVideoLink: string;\r\n public innerWidth: any;\r\n public HistoryText: string;\r\n\r\n @Input() ProvinceName: string;\r\n @Input() SearchFilter: BehaviorSubject = new BehaviorSubject(undefined);\r\n @Input() FilterData: InfomapModel;\r\n public filterData: InfomapModel = new InfomapModel();\r\n\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n \r\n setTimeout(() => { }, 500);\r\n this.innerWidth = window.innerWidth;\r\n //alert(this.innerWidth);\r\n //console.log(this.FilterData);\r\n this.SearchFilter.subscribe(result => {\r\n this.FilterData = result;\r\n });\r\n this.setMapData(this.FilterData);\r\n \r\n //this.imgsrc = 'assets/images/bg/'+this.filterData.imgName+'.svg';\r\n this.background = (`url(${this.imgsrc})`);\r\n //this.ProvinceUrlLink = this.filterData.ProvinceUrlLink;\r\n \r\n //this.ProvinceName = this.filterData.ProvinceText;\r\n //this.ProvinceDescription = this.filterData.ProvinceDescription;\r\n this.ProvinceVideoLink = this.ProvinceVideoLink;\r\n \r\n\r\n //alert(this.ProvinceVideoLink);\r\n //jarallax(document.querySelectorAll('.jarallax'));\r\n }\r\n\r\n \r\n public ngOnDestroy() : void {\r\n \r\n }\r\n \r\n public setMapData(mapData: any) : void {\r\n \r\n this.filterData.imgName = mapData.imgName;\r\n this.filterData.ProvinceDescription = mapData.ProvinceDescription;\r\n this.filterData.ProvinceText = mapData.ProvinceText;\r\n //this.filterData.ProvinceUrlLink = mapData.ProvinceUrlLink;\r\n this.setProvinceActive(mapData.ProvinceText.replace('-',' '));\r\n\r\n this.innerWidth = window.innerWidth;\r\n this.getBackgroundVideo(mapData.ProvinceText.replace('-',' '));\r\n //alert(this.innerWidth);\r\n this.getBanner(mapData.ProvinceText.replace('-',' '));\r\n document.getElementById(\"smallinfomapbanner\").setAttribute(\"style\", \"background-image: url(\"+this.imgsrc+\")\");\r\n\r\n if(this.innerWidth > 700){\r\n document.getElementById(\"notmobileprovince\").setAttribute(\"style\", \"display:block\");\r\n document.getElementById(\"mobileprovince\").setAttribute(\"style\", \"display:none\");\r\n }else{\r\n document.getElementById(\"notmobileprovince\").setAttribute(\"style\", \"display:none\");\r\n document.getElementById(\"mobileprovince\").setAttribute(\"style\", \"display:block\");\r\n }\r\n\r\n \r\n }\r\n public getBackgroundVideo(province)\r\n {\r\n //alert(province);\r\n province = province.toLowerCase();\r\n //debugger;\r\n var url = 'https://www.youtube.com/watch?v=';\r\n switch(province) { \r\n case 'northern cape': { \r\n this.ProvinceVideoLink = url + 'SJhjuwwa1WM&ab_channel=SouthAfricanTourism'; \r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'SJhjuwwa1WM';\r\n break; \r\n } \r\n case 'western cape': { \r\n this.ProvinceVideoLink = url + 'qbkGAp0Ot0A&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'qbkGAp0Ot0A';\r\n break; \r\n } \r\n case 'north west': { \r\n this.ProvinceVideoLink = url + 'utDFf0CW9j8&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'utDFf0CW9j8';\r\n break; \r\n } \r\n case 'free state': { \r\n this.ProvinceVideoLink = url + 'uJPaXPx3CdQ&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'uJPaXPx3CdQ';\r\n break; \r\n } \r\n case 'gauteng': { \r\n this.ProvinceVideoLink = url + 'OcukaxrlC1Y&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'OcukaxrlC1Y';\r\n break; \r\n } \r\n case 'mpumalanga': { \r\n this.ProvinceVideoLink = url + '_c7_3n8AOwg&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + '_c7_3n8AOwg';\r\n break; \r\n } \r\n case 'limpopo': { \r\n this.ProvinceVideoLink = url + 'WLOuL7rTKbA&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'WLOuL7rTKbA';\r\n break; \r\n } \r\n case 'kwazulu natal': { \r\n this.ProvinceVideoLink = url + '7zOnYrenEdA&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + '7zOnYrenEdA';\r\n break; \r\n } \r\n case 'eastern cape': { \r\n this.ProvinceVideoLink = url + 'jVYa-UgisPo&ab_channel=SouthAfricanTourism';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'jVYa-UgisPo';\r\n break; \r\n } \r\n case 'south africa': { \r\n this.ProvinceVideoLink = url + 'Lf82GWDgqMw';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'Lf82GWDgqMw';\r\n break; \r\n } \r\n default: { \r\n this.ProvinceVideoLink = url + 'qLf82GWDgqMw';\r\n //document.getElementById(\"smallinfomapbanner\").setAttribute(\"data-jarallax-video\", this.ProvinceVideoLink);\r\n this.ProvinceUrlLink = url + 'Lf82GWDgqMw';\r\n break; \r\n } \r\n } \r\n this.getProvinceText(province);\r\n \r\n }\r\n public setProvinceActive(id: string){\r\n //alert(id);\r\n if(id !== \"south africa\"){\r\n var el = document.getElementById(id);\r\n this.renderer.addClass(el, \"activeProvince\");\r\n }\r\n \r\n }\r\n getBanner(province: string): void{\r\n switch(province) { \r\n case 'northern cape': { \r\n var random = this.randomizer(1, 16);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'western cape': { \r\n var random = this.randomizer(2, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC' + random + '.jpg';\r\n }\r\n\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'north west': { \r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n\r\n break; \r\n } \r\n case 'free state': { \r\n var random = this.randomizer(1, 13);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS' + random + '.jpg';\r\n }\r\n\r\n this.background = (`url(${this.imgsrc})`); \r\n break; \r\n } \r\n case 'gauteng': { \r\n var random = this.randomizer(1, 9);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'mpumalanga': { \r\n var random = this.randomizer(1, 11);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`); \r\n break; \r\n } \r\n case 'limpopo': { \r\n var random = this.randomizer(1, 10);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'kwazulu natal': { \r\n var random = this.randomizer(1, 8);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n break; \r\n } \r\n case 'eastern cape': { \r\n var random = this.randomizer(1, 12);\r\n\r\n if (random < 10) {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + random + '.jpg';\r\n }\r\n else {\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC' + random + '.jpg';\r\n }\r\n this.background = (`url(${this.imgsrc})`);\r\n \r\n break; \r\n } \r\n default: { \r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n this.background = (`url(${this.imgsrc})`);\r\n break;\r\n } \r\n } \r\n province = province.toLowerCase();\r\n this.getProvinceText(province);\r\n \r\n }\r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n randomProvince(province) {\r\n switch (province) {\r\n case 1:\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + province + '.jpg';\r\n break;\r\n case 2:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n case 3:\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + province + '.jpg';\r\n break;\r\n case 4:\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + province + '.jpg';\r\n break;\r\n case 5:\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + province + '.jpg';\r\n break;\r\n case 6:\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + province + '.jpg';\r\n break;\r\n case 7:\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + province + '.jpg';\r\n break;\r\n case 8:\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + province + '.jpg';\r\n break;\r\n case 9:\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + province + '.jpg';\r\n break;\r\n default:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n }\r\n }\r\n\r\n getProvinceText(province: string): void{\r\n switch(province) { \r\n case 'northern cape': { \r\n this.ProvinceName = \"Northern Cape\"; \r\n this.ProvinceDescription = \"When it comes to things to do, places to see and people to meet, this diverse province is like the seven colours of South African provinces. You can go from sandy beaches, to star gazing, to bush veld all in one day. So pack your bags and dala you must.\"; \r\n break; \r\n } \r\n case 'western cape': { \r\n this.ProvinceName = \"Western Cape\"; \r\n this.ProvinceDescription = \"Crystal clear rivers that water the banks of some of the finest winelands in the world. Iconic mountains that spill into oceans. A rich mixture of heritage and innovation. Awe ma se kind, this is the Western Cape.\"; \r\n break; \r\n } \r\n case 'north west': { \r\n this.ProvinceName = \"North West\"; \r\n this.ProvinceDescription = \"Want to know where your ancestors, ancestor’s took their first steps? Head to North West and say le kae to the locals who will happily help uncover and discover, this province that boarders Botswana, and is a stone’s chuck (throw) away from neighbouring Limpopo.\"; \r\n break; \r\n } \r\n case 'free state': { \r\n this.ProvinceName = \"Free State\"; \r\n this.ProvinceDescription = \"The heartland of Mzansi. For those looking to swap the big lights for the countryside and get an escape from city living. Laid back farmlands, some of the most historical sites in South Africa and a unique getaway. He banna, what are you waiting for? Come visit the Free State!\"; \r\n break; \r\n } \r\n case 'gauteng': { \r\n this.ProvinceName = \"Gauteng\"; \r\n this.ProvinceDescription = \"Ola! This is Egoli, the province of stars. Home to Mzansi’s biggest cities and biggest businesses. From vibey nightlife and mega shopping complexes to natural springs and wilderness retreats. You can literally find almost anything here, zwagala!\"; \r\n break; \r\n } \r\n case 'mpumalanga': { \r\n this.ProvinceName = \"Mpumalanga\"; \r\n this.ProvinceDescription = \"Africa’s land of the rising sun and where one of nguni’s romantic tongues is spoken. Mpumalanga is a place where nature, nebantfu, nurture each other in a naturally harmonious why of living.\"; \r\n break; \r\n } \r\n case 'limpopo': { \r\n this.ProvinceName = \"Limpopo\"; \r\n this.ProvinceDescription = \"Dintshang! Are you ready to hit the road and come over to the province that carries the spirit of Mzansi within it? Whether it’s our famous wildlife on show or our majestic plant life and scenery, Limpopo is the province for those seeking an adventurous yet traditional South African outdoors experience. Come over to the wild side.\"; \r\n break; \r\n } \r\n case 'kwazulu natal': { \r\n this.ProvinceName = \"KwaZulu Natal\"; \r\n this.ProvinceDescription = \"Egagasini, a province where the waves meet the land, and where culture meets heritage, meets having a good time in a forgiving tropical climate. Woza eZulu land uzozibonela.\"; \r\n break; \r\n } \r\n case 'eastern cape': { \r\n this.ProvinceName = \"Eastern Cape\"; \r\n this.ProvinceDescription = \"Sbwl this, Sbwl that! Hayi don’t do that to yourself. Pack a bag and head eastwards to eMpuma-Koloni. A province where you’ll find yourself kicking off your city shoes to take a stroll with nature on natural beach’s and cost lines, that have been nurtured by locals.\"; \r\n break; \r\n } \r\n case 'south africa': { \r\n this.ProvinceName = \"It’s Your Country. Enjoy it!\"; \r\n this.ProvinceDescription = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n \r\n break; \r\n } \r\n default: { \r\n this.ProvinceName = \"It’s Your Country. Enjoy it!\"; \r\n this.ProvinceDescription = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n \r\n break; \r\n } \r\n } \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ProvinceName}}

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

{{ProvinceName}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n","// Angular imports\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CampaignModel } from 'src/app/models/main/campaign/campaign.model';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { CampaignService } from 'src/app/services/campaign.service';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'campaign-page',\r\n templateUrl: './campaign-page.component.html',\r\n styleUrls: ['./campaign-page.component.scss']\r\n})\r\n\r\nexport class CampaignPage implements OnInit {\r\n public id: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public FilterData: InfomapModel = new InfomapModel();\r\n public filterData: InfomapModel = new InfomapModel();\r\n public Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n public Camp: CampaignModel[];\r\n public searchFilter: BehaviorSubject = new BehaviorSubject(undefined);\r\n public searchModel: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n provname = \"Northern Cape\";\r\n prodesc = \"Northern Cape Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\";\r\n bannersArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n \r\n constructor(\r\n private data: DealsService,\r\n private campaigndata: CampaignService,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n\r\n this.activatedRoute.params.subscribe(paramsId => {\r\n this.id = paramsId.id;\r\n //alert(this.id);\r\n });\r\n //debugger;\r\n this.Camp = this.campaigndata.getAllCampaignById(this.id);\r\n sessionStorage.clear();\r\n let pget = 'Select province';\r\n let type = sessionStorage.getItem('type');\r\n let theme = sessionStorage.getItem('theme');\r\n let city = sessionStorage.getItem('cityTo');\r\n\r\n if(pget === null || pget === \"\")\r\n location.href = \"/\";\r\n\r\n let province = (pget.trim() == 'Select province') ? 'South Africa' : pget.trim();\r\n\r\n this.imgsrc = 'assets/images/province/laughing.png';\r\n this.background = (`url(${this.imgsrc}) no-repeat`);\r\n\r\n this.filterData.imgName = 'hut'; //TODO: Change to Video per province.\r\n this.filterData.ProvinceUrlLink = this.Camp[0].video_url;\r\n this.filterData.ProvinceText = this.Camp[0].title.toString(); \r\n //TODO: Section/PRovince description\r\n this.filterData.ProvinceDescription = this.Camp[0].sub_title;\r\n \r\n this.FilterData = this.filterData;\r\n this.searchFilter.next(this.FilterData);\r\n \r\n \r\n //TODO: Add type to filter;\r\n this.Search.packageType = theme;\r\n this.Search.province = pget;\r\n this.Search.city = city;\r\n this.Search.experienceType = type;\r\n this.Search.deal_ids = this.Camp[0].deal_Ids;\r\n \r\n //alert(this.Camp[0].deal_Ids);\r\n\r\n if(this.bannersArray === null)\r\n this.bannersArray.next(this.data.getAllBanners());\r\n\r\n this.searchModel.next(this.Search);\r\n \r\n this.getBanners();\r\n\r\n this.titleService.setTitle(\"Campaign | \" + this.Camp[0].title);\r\n\r\n }\r\n getBanners(){\r\n \r\n this.bannersArray.next(null);\r\n this.bannersArray.next(this.data.getAllBanners());\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{Camp[0].short_description}}

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

{{Camp[0].long_description}}

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

IT'S YOUR COUNTRY

\r\n

Take a sho't left

\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n","// angular imports\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// Model Imports\r\nimport { Deals, DealsModel } from '../models/main/deals/deals.model';\r\nimport { SearchModel } from '../models/main/deals/search.model';\r\n\r\n\r\n// Dummy data import\r\n//import dealsDashboardData from '../../assets/dummy-data/deals-dashboard.json';\r\nimport dealsDashboardData from '../../assets/dummy-data/deals-dashboard.json';\r\nexport const dealsText = dealsDashboardData;\r\n\r\nimport experiencesData from '../../assets/dummy-data/experiences.json';\r\nexport const experiences = experiencesData;\r\n\r\nimport bannersData from '../../assets/dummy-data/banners.json';\r\n\r\nimport packageTypesData from '../../assets/dummy-data/packagetypes.json';\r\nimport priceRangesData from '../../assets/dummy-data/pricerange.json';\r\nimport { ExperiencesModel } from '../models/main/deals/experiences.model';\r\nimport { PackagetypesModel } from '../models/main/deals/packagetypes.model';\r\nimport { BannersModel } from '../models/main/deals/banners.model';\r\nimport { DealsdashboardModel } from '../models/main/dealsdashboard/dealsdashboard.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nexport const packageTypes = packageTypesData;\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class DealsService {\r\n public dealsData: DealsModel[];\r\n public data: any = dealsDashboardData;\r\n public experiences = experiencesData;\r\n public packagetypes = packageTypesData;\r\n public pricerange = priceRangesData;\r\n public banners = bannersData;\r\n // https://api-shotleft-staging.azurewebsites.net/latestdeal\r\n //https://api.shotleft.co.za/latestdeal\r\n //public url = 'https://api.shotleft.co.za/deal';\r\n //public urlsingle = 'https://api.shotleft.co.za/latestdeal';\r\n public url = 'https://tradeplatform-liveapi.azurewebsites.net/api/v1/Products/GetOpenDeals';\r\n public urlsingle = 'https://tradeplatform-liveapi.azurewebsites.net/api/v1/Products/GetOpenDeals';\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n\r\n }\r\nx\r\n\r\n public ngOnInit() : void {\r\n\r\n }\r\n getDeals(): Observable {\r\n return this.http.get(this.url);\r\n }\r\n\r\n getDealsSingle(): Observable {\r\n return this.http.get(this.urlsingle);\r\n }\r\n\r\n GetAPIdata(url: string): void {\r\n\r\n let data: any;\r\n let promise = new Promise((resolve, reject) => {\r\n let apiURL = url;\r\n this.http.get(apiURL)\r\n .toPromise()\r\n .then(\r\n res => { // Success\r\n this.data[0] = res;\r\n //console.log(res);\r\n }\r\n );\r\n });\r\n\r\n }\r\n GetReportsList(url: string): any[] {\r\n\r\n let apiData: any;\r\n this.GetAPIdata(url);\r\n\r\n //console.log(this.data);\r\n return apiData;\r\n //return this.http.get(url, {observe: 'response'})\r\n //\r\n // .pipe(\r\n //\r\n // map(res => {\r\n //\r\n // if (res) {\r\n // //alert(res);\r\n // //console.log(res);\r\n // if (res.status == 200) {\r\n // //console.log(res);\r\n // return res.body.map(data => new Deals().deserialize(data))\r\n //\r\n // }\r\n //\r\n // }\r\n // else{\r\n // alert(\"Failed\");\r\n // }\r\n // return res.body.map(data => new Deals().deserialize(data))\r\n // })\r\n //\r\n // );\r\n\r\n }\r\n public getApiDealsData(url: string): any{\r\n //this.http.get(url,{headers: headers}).subscribe(results => {\r\n\r\n ///setTimeout(function(){\r\n //this.data = results;\r\n //},5000);\r\n //});\r\n var data: any;\r\n fetch(url, {\r\n method: 'GET'\r\n })\r\n .then(response => response.json())\r\n .then(json => { data = json })\r\n .catch(error => {\r\n //console.log('Fetch deals data failed : ' + error.message)\r\n });\r\n\r\n return data;\r\n\r\n }\r\n //TODO add service calls here\r\n getDealById(id: string): DealsModel {\r\n const filteredData = this.data.filter(result => result.status == \"open\" && result.url_title === id);\r\n return filteredData[0];\r\n }\r\n getAllByType(type: string): DealsModel[]{\r\n const filteredData = this.data.filter(result => result.status == \"open\" && result.cf_package_type === type && result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0 && !result.cf_images[0]?.mx_image.includes(\"(\"));\r\n return filteredData;\r\n }\r\n getAllByExperiences(id: string): DealsModel[]{\r\n const filteredData = this.data.filter(result => result.status == \"open\" && result.cf_experience_type === id && result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0 && !result.cf_images[0]?.mx_image.includes(\"(\"));\r\n return filteredData;\r\n }\r\n getAll(): DealsModel[]{\r\n\r\n const filteredData: any = this.data;\r\n return filteredData;\r\n }\r\n Getdealsd(): Observable{\r\n return this.http.get(\"https://dealsdashboard.hellosandbox.co.za/za/en/api/reno-deals?cf_country_code=za\", {observe: 'response'})\r\n .pipe(\r\n map(res => {\r\n debugger;\r\n if (res) {\r\n if (res.status == 200) {\r\n return new DealsdashboardModel().deserialize(res.body)\r\n }\r\n }\r\n return new DealsdashboardModel().deserialize(res.body);\r\n })\r\n );\r\n }\r\n getAllByDealsByIds(search : SearchModel) : DealsModel[]\r\n {\r\n let filteredData: any = this.data;\r\n\r\n if(search.deal_ids != null && search.deal_ids != \"\"){\r\n //alert(\"TEST\")\r\n var split_ids = search.deal_ids.split(\",\");\r\n filteredData = [];\r\n\r\n if(split_ids.length > 0){\r\n for(let item of split_ids){\r\n\r\n let new_entry = this.data.filter(result => result.entry_id === item);\r\n //console.log(new_entry);\r\n if(new_entry.length > 0){\r\n filteredData.push(new_entry[0]);\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n //alert(split_ids.length);\r\n\r\n filteredData = filteredData.\r\n filter(result =>\r\n result.status == \"open\" &&\r\n new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date() && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n (Number(result.cf_price) <= Number(search.price) || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n ( search.province === \"\" || result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n )\r\n\r\n //console.log(filteredData);\r\n\r\n return filteredData;\r\n }\r\n sleep(milliseconds): any[] {\r\n const date = Date.now();\r\n let currentDate = null;\r\n let dataProxy: any;\r\n while (currentDate - date < milliseconds){\r\n currentDate = Date.now();\r\n\r\n }\r\n this.http.get(\"https://localhost:44353/deal\").subscribe(data => {\r\n\r\n //console.log(data);\r\n dataProxy = data;\r\n //console.log(dataProxy);\r\n });\r\n\r\n //console.log(dataProxy);\r\n return dataProxy;\r\n }\r\n getAllFilter(search : SearchModel): DealsModel[]{\r\n\r\n //while(this.data.length <= 0){\r\n //this.GetReportsList(\"https://localhost:44353/deal\").then((result) =>\r\n // {console.log(result); this.data = result;})\r\n //.catch(error => console.log(error));;\r\n\r\n //this.data = [];\r\n //console.log(\"Hello\");\r\n //alert(this.sleep(6000));\r\n //console.log(\"World!\");\r\n //console.log(this.data);\r\n\r\n\r\n let filteredData = this.data.\r\n filter(result =>\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n\r\n )\r\n\r\n //filteredData = Array.from(filteredData.reduce((m, t) => m.set(t.cf_destinations[0].mx_latitude && t.cf_destinations[0].mx_longitude, t), new Map()).values());\r\n\r\n //console.log(new Date(Number(filteredData[10].expiration_date)*1000))\r\n return filteredData;\r\n }\r\n getAllFilterLive(search : SearchModel): DealsModel[]{\r\n\r\n //while(this.data.length <= 0){\r\n //this.GetReportsList(\"https://localhost:44353/deal\").then((result) =>\r\n // {console.log(result); this.data = result;})\r\n //.catch(error => console.log(error));\r\n\r\n this.data = [];\r\n //console.log(\"Hello\");\r\n alert(this.sleep(6000));\r\n //console.log(\"World!\");\r\n //console.log(this.data);\r\n\r\n\r\n let filteredData = this.data.\r\n filter(result =>\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n )\r\n\r\n //console.log(new Date(Number(filteredData[10].expiration_date)*1000))\r\n return filteredData;\r\n }\r\n //Populate City Dropdownlist\r\n getAllCities(): DealsModel[]{\r\n const arr: any = [];\r\n const filteredData = this.data.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && !x.cf_images[0]?.mx_image.includes(\"(\")).reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a));\r\n return arr;\r\n }\r\n //Populate City Dropdownlist\r\n //Populate City Dropdownlist by region\r\n getAllCitiesByRegion(region:string): any[]{\r\n const arr: any = [];\r\n const arr2: any = [];\r\n const filteredData = this.data.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && x.cf_destinations[0]?.mx_province == region && !x.cf_images[0]?.mx_image.includes(\"(\")).reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a));\r\n\r\n const result = Array.from(arr.reduce((m, t) => m.set(t[0].mx_city, t), new Map()).values());\r\n return result;\r\n }\r\n getAllCitiesSingle(): any[]{\r\n const arr: any = [];\r\n const filteredData = this.data.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && !x.cf_images[0]?.mx_image.includes(\"(\")).reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a));\r\n const result = Array.from(arr.reduce((m, t) => m.set(t[0]?.mx_city, t), new Map()).values());\r\n return result.sort();\r\n }\r\n getAllModesSingle(): any[]{\r\n const arr: any = [];\r\n const filteredData = this.data.filter(x=>x.cf_destinations[0]?.mx_city != \"\").reduce((m, t) =>( arr.push(t.cf_travel_mode), m));\r\n const result = Array.from(arr.reduce((m, t) => m.set(t, t), new Map()).values());\r\n return result.sort();\r\n }\r\n getAllExperiences(): any[] {\r\n return this.experiences;\r\n }\r\n getAllExperiencesFooter(): any[] {\r\n return this.experiences;\r\n }\r\n getAllPackageTypes(): any[] {\r\n const filteredData = this.packagetypes;\r\n return filteredData;\r\n }\r\n getAllPriceRanges(): any[] {\r\n const filteredData = this.pricerange;\r\n return filteredData;\r\n }\r\n getAllPackageTypesFooter(): any[] {\r\n const filteredData = this.packagetypes;\r\n return filteredData;\r\n }\r\n getAllBanners(): BannersModel[] {\r\n const filteredData = this.banners;\r\n return filteredData;\r\n }\r\n getAllByProvince(province : string): DealsModel[]{\r\n let filteredData = this.data.\r\n filter(result =>\r\n result.status == \"open\" &&\r\n new Date(Number(result.expiration_date)*1000) >= new Date() && //Expiry date\r\n (result.cf_destinations[0]?.mx_province === province.toLocaleLowerCase() || province == \"\")\r\n )\r\n return filteredData;\r\n }\r\n //Populate City Dropdownlist by region\r\n}\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { DealsService } from '../../../services/deals.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ThrowStmt } from '@angular/compiler';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n//import MarkerClusterer from '@googlemaps/markerclustererplus'\r\n\r\n@Component({\r\n selector: 'app-deals-map',\r\n templateUrl: './deals-map.component.html',\r\n styleUrls: ['./deals-map.component.scss']\r\n})\r\nexport class DealsMapComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ItemSize: number = 0;\r\n public provinceTo: string;\r\n public cityTo: string;\r\n public type: string;\r\n public theme: string;\r\n public price: string;\r\n public citiesTo: any[] = [];\r\n public isMap = true;\r\n public dd: DealsModel[] = [];\r\n customOptions: OwlOptions;\r\n //public dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n @ViewChild('map', { static: false }) mapElement: ElementRef;\r\n @Input() FilterData: BehaviorSubject = new BehaviorSubject(undefined);\r\n @Input() dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n @Output() provinceChange: EventEmitter = new EventEmitter();\r\n @ViewChild(NgScrollbar) scrollRef: NgScrollbar;\r\n\r\n map: google.maps.Map;\r\n currlatitude : number = 0;\r\n currlongitude : number = 0;\r\n center = new google.maps.LatLng(this.currlatitude, this.currlongitude);\r\n marker: google.maps.Marker;\r\n mapMarkers: any = [];\r\n //markerCluster: MarkerClusterer;\r\n ProvinceText : string;\r\n HistoryText : string;\r\n isTracking : boolean;\r\n locationsArray: DealsModel[] = [];\r\n btnclass : string;\r\n Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n Provinces = [{ Name: \"All\", Value : \"\" } , { Name: \"Gauteng\", Value : \"gauteng\" }, { Name: \"Mpumalanga\", Value : \"mpumalanga\" }, { Name: \"KwaZulu Natal\", Value : \"kwazulu-natal\" }, { Name: \"North West\", Value : \"north-west\" }, { Name: \"Limpopo\", Value : \"limpopo\" }, { Name: \"Western Cape\", Value : \"western-cape\" }, { Name: \"Free State\", Value : \"free-state\" }, { Name: \"Eastern Cape\", Value : \"eastern-cape\" }, { Name: \"Northern Cape\", Value : \"northern-cape\" }];\r\n Cities: any[] = [];\r\n CityArray: any[] = [];\r\n sideActivityItems: any[] = [];\r\n sideStayItems: any[] = [];\r\n priceItems: any[] = [];\r\n\r\n mapOptions: google.maps.MapOptions = {\r\n center: this.center,\r\n zoom: 12\r\n };\r\n infoWindow: google.maps.InfoWindow;\r\n locations : any = [];\r\n markerContent : any = [];\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n mapInit() {\r\n this.infoWindow = new google.maps.InfoWindow();\r\n this.map = new google.maps.Map(this.mapElement.nativeElement, this.mapOptions);\r\n this.mapMarkers = [];\r\n this.markerContent = [];\r\n //Where you are\r\n //this.marker = new google.maps.Marker({position: this.center, map:this.map})\r\n //Where you are\r\n\r\n var svgMarker = {\r\n path:\r\n \"M16.4999 26.1392C21.9839 26.1392 26.4295 21.7302 26.4295 16.2915C26.4295 10.8528 21.9839 6.44391 16.4999 6.44391C11.0159 6.44391 6.57031 10.8528 6.57031 16.2915C6.57031 21.7302 11.0159 26.1392 16.4999 26.1392Z\" +\r\n \"M28.1675 4.79266C25.0509 1.70186 20.9077 0 16.5 0C12.0923 0 7.94906 1.70186 4.83254 4.79266C1.71602 7.88346 0 11.9932 0 16.3638C0 24.0753 5.43588 30.7324 12.9878 32.3548L16.5 37L20.0129 32.3548C27.5641 30.7324 33 24.0753 33 16.3638C33 11.9932 31.284 7.88346 28.1675 4.79266ZM16.5 4.27234C23.1826 4.27234 28.6192 9.66408 28.6192 16.2916C28.6192 22.919 23.1826 28.3108 16.5 28.3108C9.81737 28.3108 4.38076 22.919 4.38076 16.2916C4.38076 9.66408 9.81737 4.27234 16.5 4.27234Z\",\r\n fillColor: \"#FFCC00\",\r\n fillOpacity: 0.6,\r\n strokeWeight: 0,\r\n rotation: 0,\r\n scale: 1,\r\n anchor: new google.maps.Point(15, 30),\r\n PointerEvent: new PointerEvent('mouseover', {})\r\n };\r\n\r\n var count = 0;\r\n //console.log(this.locationsArray);\r\n for (let i of this.locationsArray) {\r\n\r\n this.locations = [];\r\n //alert(i.entry_id);\r\n if(i.cf_address_line_1 !== \"\" && i.cf_address_line_1 !== null){\r\n //alert(i.entry_id)\r\n this.locations.push({\r\n lat: Number(i.cf_address_line_1),\r\n lng: Number(i.cf_address_line_2)\r\n });\r\n }else{\r\n for (let index = 0; index < i.cf_destinations.length; index++) {\r\n this.locations.push({\r\n lat: Number(i.cf_destinations[index]?.mx_latitude),\r\n lng: Number(i.cf_destinations[index]?.mx_longitude)\r\n });\r\n\r\n //this.codeLatLng(i.cf_destinations[index]?.mx_latitude, i.cf_destinations[index]?.mx_longitude);\r\n }\r\n\r\n }\r\n\r\n\r\n var samePos1 = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === i.cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === i.cf_destinations[0].mx_longitude && i.cf_address_line_1 === \"\") || (i.cf_address_line_1 !== \"\" && result.cf_address_line_1 === i.cf_address_line_1 && result.cf_address_line_2 === i.cf_address_line_2));\r\n var buttons = \"\";\r\n var buttons2 = \"\";\r\n var collg = \"12\";\r\n\r\n if(samePos1.length > 1){\r\n collg = \"8\";\r\n buttons = '
';\r\n buttons2 = '
';\r\n }\r\n\r\n var content = '
'+buttons+'
' + i.title.substring(0,25) + '
'+buttons2+'

';\r\n //TODO: Do not delete\r\n //\"\"\r\n //\" \"\r\n var btn = '';\r\n this.markerContent.push({\r\n content: content,\r\n count : count\r\n });\r\n\r\n var lbl =\r\n {\r\n text: 'btn' + count,\r\n color: 'white'\r\n }\r\n\r\n const tempMarker = new google.maps.Marker({ position: this.locations[0], map: this.map , icon : svgMarker , title: 'btn' + count });\r\n tempMarker.addListener('click', ((tempMarker, map, infoWindow) => {\r\n return () => {\r\n\r\n var counting = tempMarker.getTitle().split('n');\r\n var idnumber = Number(counting[1]);\r\n var samePos = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === i.cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === i.cf_destinations[0].mx_longitude && i.cf_address_line_1 === \"\") || (i.cf_address_line_1 !== \"\" && result.cf_address_line_1 === i.cf_address_line_1 && result.cf_address_line_2 === i.cf_address_line_2));\r\n\r\n //alert(i.cf_destinations[0].mx_latitude);\r\n buttons = \"\";\r\n var button_prev = \"\";\r\n collg = \"12\";\r\n\r\n if(samePos.length > 1){\r\n collg = \"8\";\r\n button_prev = '
';\r\n buttons = '
';\r\n }\r\n\r\n\r\n\r\n var content = '
'+button_prev+'
' + i.title.substring(0,25) + '
'+buttons+'

';\r\n //infoWindow.setOptions({\"maxWidth\":275});\r\n //infoWindow.setContent(this.markerContent[Number(counting[1])].content);\r\n\r\n infoWindow.setContent(content);\r\n infoWindow.open(map, tempMarker);\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById(tempMarker.getTitle()),'highlight');\r\n\r\n\r\n var container = document.getElementById('tabcontent');\r\n var scrollTo = document.getElementById('btn'+idnumber.toString());\r\n //container.scrollTop = scrollTo.offsetTop;\r\n\r\n this.scrollRef.scrollToElement(scrollTo, 500);\r\n\r\n //Add onclick event to buttons\r\n setTimeout(() => {\r\n\r\n let dealsBtn = document.getElementById('deals-but-'+idnumber);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(i.url_title));\r\n\r\n if(samePos.length > 1){\r\n\r\n\r\n //let closeBtn = document.getElementById('close-info-'+idnumber);\r\n //closeBtn.addEventListener('click' , () => infoWindow.close());\r\n var c = 1;\r\n\r\n var next = idnumber;\r\n var multi_content = '';\r\n\r\n var nnumber = (c === 1) ? idnumber : next;\r\n next = this.setNextNumber(i.entry_id,samePos);\r\n var cc = 1;\r\n for(let sp of samePos){\r\n //Build multi content window\r\n\r\n var display = (cc === 1) ? \"block\" : \"none\";\r\n var multi_button_prev = '';\r\n var multi_button_next = '';\r\n multi_content += '
'+multi_button_prev+'
' + sp.title.substring(0,25) + '
'+multi_button_next+'

';\r\n cc++;\r\n }\r\n\r\n\r\n let NextBtn = document.getElementById('next-info-'+nnumber);\r\n c++;\r\n\r\n NextBtn.addEventListener('click' , () => {\r\n\r\n setTimeout(() => {\r\n\r\n var ccc = 1;\r\n for(let ideal of samePos){\r\n if(ccc <= samePos.length){\r\n\r\n\r\n let inner_next_button = document.getElementById('next-info-inner-'+ccc);\r\n inner_next_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_next_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n var nextbut = (Number(iiii[3]) === samePos.length) ? 1: Number(iiii[3])+1;\r\n var next2 = this.setNumber(samePos[nextbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner = document.getElementById('inner-marker-'+(nextbut));\r\n //alert(nextbut);\r\n active_inner.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n var scrollTo = document.getElementById('btn'+next2.toString());\r\n //container.scrollTop = scrollTo.offsetTop;\r\n this.scrollRef.scrollToElement(scrollTo, 500);\r\n });\r\n\r\n let inner_prev_button = document.getElementById('prev-info-inner-'+ccc);\r\n inner_prev_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_prev_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n\r\n var prevbut = (Number(iiii[3]) === 1) ? samePos.length : Number(iiii[3])-1;\r\n var next2 = this.setNumber(samePos[prevbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner2 = document.getElementById('inner-marker-'+(prevbut));\r\n //alert(nextbut);\r\n active_inner2.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n //container.scrollTop = scrollTo1.offsetTop;\r\n this.scrollRef.scrollToElement(scrollTo1, 500);\r\n });\r\n\r\n let dealsBtn2 = document.getElementById('deals-but-'+ccc);\r\n dealsBtn2.addEventListener('click' , () => this.goToDeals(ideal.url_title));\r\n }\r\n\r\n ccc++;\r\n }\r\n\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n this.renderer.addClass(document.getElementById('btn' + next), 'highlight');\r\n this.infoWindow.setContent(multi_content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n var scrollTo2 = document.getElementById('btn'+next.toString());\r\n //container.scrollTop = scrollTo2.offsetTop;\r\n this.scrollRef.scrollToElement(scrollTo2, 500);\r\n this.infoWindow.open(this.map, this.mapMarkers[nnumber]);\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n //let FwdBtn = document.getElementById('deals-but-'+idnumber);\r\n //FwdBtn.addEventListener('click' , () => this.goToDeals(i.entry_id));\r\n }, 1000);\r\n\r\n\r\n }\r\n })(tempMarker, this.map, this.infoWindow));\r\n this.mapMarkers.push(tempMarker);\r\n\r\n\r\n\r\n count ++;\r\n }\r\n this.map.setCenter(new google.maps.LatLng(Number(this.locationsArray[0]?.cf_destinations[0]?.mx_latitude), Number(this.locationsArray[0]?.cf_destinations[0]?.mx_longitude)));\r\n if(this.Search.province == \"south-africa\")\r\n {\r\n this.map.setZoom(5);\r\n }\r\n else\r\n {\r\n this.map.setZoom(7);\r\n }\r\n\r\n //this.markerCluster = new MarkerClusterer(this.map, this.mapMarkers, { imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' })\r\n\r\n }\r\n\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2,\r\n private http: HttpClient,\r\n\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n //Get all cities\r\n this.customOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth:true,\r\n margin:20,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n autoHeight: true,\r\n center: true,\r\n items: 1,\r\n animateOut: 'slideOutUp',\r\n animateIn: 'slideInUp',\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 3\r\n },\r\n 940: {\r\n items: 3\r\n },\r\n 1024: {\r\n items: 3\r\n },\r\n 1400: {\r\n items: 3\r\n }\r\n },\r\n nav: false\r\n };\r\n this.dealsData.subscribe(result => {\r\n this.FilterData.subscribe(result => {\r\n this.Search = result;\r\n this.Search.province = (this.Search.province === \"Select province\" || this.Search.province === null) ? '' : result.province.trim();\r\n this.Search.packageType = (this.Search.packageType === '0' || this.Search.packageType === null) ? '' : this.Search.packageType;\r\n this.Search.experienceType = (this.Search.experienceType === '0' || this.Search.experienceType === null) ? '' : this.Search.experienceType;\r\n this.Search.city = (this.Search.city === \"City(optional)\" || this.Search.city === null) ? '' : this.Search.city;\r\n this.getProvinceTo(this.Search.province);\r\n });\r\n\r\n this.cityTo = (this.Search.city === \"\") ? \"Select city\" : this.Search.city;\r\n\r\n const experiences = this.data.getAllExperiences();\r\n const themes = this.data.getAllPackageTypes();\r\n const prices = this.data.getAllPriceRanges();\r\n\r\n let e = experiences.filter(x => x.id === this.Search.experienceType);\r\n let t = themes.filter(x => x.id === this.Search.packageType);\r\n let p = prices.filter(x => x.name === this.Search.price);\r\n\r\n //alert(this.Search.experienceType);\r\n this.type = (this.Search.experienceType === \"\") ? \"Select experience\" : e[0].name;\r\n this.theme = (this.Search.packageType === \"\") ? \"Select type\" : t[0].name;\r\n this.price = (this.Search.price === \"\") ? \"Price limit\" : p[0].name;\r\n\r\n for (let i = 0; i < this.Cities.length; i++) {\r\n const data = this.Cities[i]?.[0]?.mx_city;\r\n if(data != null && data != \"\")\r\n {\r\n this.CityArray.push({\r\n City: data,\r\n Value: data\r\n });\r\n }\r\n }\r\n //Ignore city duplicates\r\n this.CityArray = this.CityArray.filter((v,i) => this.CityArray.findIndex(item => item.City == v.City) === i);\r\n\r\n //this.CityArray.push({\r\n //City: \"All\",\r\n //Value: \"\"\r\n //});\r\n\r\n this.CityArray.sort(this.compare);\r\n this.Provinces.sort(this.compareProvinces);\r\n\r\n setTimeout(() => {\r\n this.trackMe();\r\n this.search();\r\n }, 1000);\r\n });\r\n\r\n this.sideActivityItems = [];\r\n this.sideActivityItems = this.data.getAllExperiences();\r\n\r\n this.sideStayItems = [];\r\n this.sideStayItems = this.data.getAllPackageTypes();\r\n\r\n this.priceItems = [];\r\n this.priceItems = this.data.getAllPriceRanges();\r\n\r\n this.sideStayItems.push({\r\n name: \"All\",\r\n id: \"\"\r\n });\r\n\r\n this.sideActivityItems.push({\r\n name: \"All\",\r\n id: \"\"\r\n });\r\n\r\n this.sideStayItems.sort(this.compareTypes);\r\n this.sideActivityItems.sort(this.compareTypes);\r\n }\r\n\r\n public ngOnDestroy() : void {\r\n\r\n }\r\n compare(a, b) {\r\n const cityA = a.City.toUpperCase();\r\n const cityB = b.City.toUpperCase();\r\n let comparison = 0;\r\n if (cityA > cityB) {\r\n comparison = 1;\r\n } else if (cityA < cityB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n compareTypes(a, b) {\r\n const cityA = a.name.toUpperCase();\r\n const cityB = b.name.toUpperCase();\r\n let comparison = 0;\r\n if (cityA > cityB) {\r\n comparison = 1;\r\n } else if (cityA < cityB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n //Order by Province Name\r\n compareProvinces(a, b) {\r\n const proA = a.Name.toUpperCase();\r\n const proB = b.Name.toUpperCase();\r\n let comparison = 0;\r\n if (proA > proB) {\r\n comparison = 1;\r\n } else if (proA < proB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n getProvinceTo(region:string){\r\n //region = region.toLowerCase();\r\n //alert(region);\r\n if(region === 'All' || region === '' || region === null || region === 'south-africa'){\r\n\r\n this.getAllCitiesSingle();\r\n\r\n }\r\n else{\r\n this.getAllCitiesByRegion(region.toLowerCase().replace(' ','-'));\r\n let regions = region.split('-');\r\n let new_region = region.charAt(0).toUpperCase()+region.substr(1)\r\n\r\n if(regions.length > 1)\r\n new_region = regions[0].charAt(0).toUpperCase()+regions[0].substr(1)+' '+regions[1].charAt(0).toUpperCase()+regions[1].substr(1);\r\n\r\n document.getElementById(\"ddlProvince\").innerHTML = new_region+'';\r\n }\r\n\r\n\r\n }\r\n setCityArray(cities: any){\r\n\r\n this.CityArray = [];\r\n this.cityTo = \"Select city\";\r\n for (let i = 0; i < cities.length; i++) {\r\n const data = this.Cities[i]?.[0]?.mx_city;\r\n if(data != null && data != \"\")\r\n {\r\n this.CityArray.push({\r\n City: data,\r\n Value: data\r\n });\r\n }\r\n }\r\n\r\n this.CityArray.push({\r\n City: \"All\",\r\n Value: \"\"\r\n });\r\n\r\n this.CityArray.sort(this.compare);\r\n\r\n }\r\n //Find Current Location using browser\r\n findMe() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n this.showPosition(position);\r\n });\r\n } else {\r\n alert(\"Geolocation is not supported by this browser.\");\r\n }\r\n }\r\n\r\n trackMe() {\r\n if (navigator.geolocation) {\r\n this.isTracking = true;\r\n navigator.geolocation.watchPosition((position) => {\r\n this.showTrackingPosition(position);\r\n });\r\n } else {\r\n alert(\"Geolocation is not supported by this browser.\");\r\n }\r\n }\r\n\r\n showPosition(position) {\r\n this.currlatitude = position.coords.latitude;\r\n this.currlongitude = position.coords.longitude;\r\n\r\n let location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\r\n this.map.panTo(location);\r\n\r\n if (!this.marker) {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.map,\r\n title: 'Got you!'\r\n });\r\n }\r\n else {\r\n this.marker.setPosition(location);\r\n }\r\n }\r\n\r\n showTrackingPosition(position) {\r\n this.currlatitude = position.coords.latitude;\r\n this.currlongitude = position.coords.longitude;\r\n\r\n localStorage.setItem('currlatitude', this.currlatitude.toString());\r\n localStorage.setItem('currlongitude', this.currlongitude.toString());\r\n\r\n let location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\r\n //this.map.panTo(location);\r\n //this.map.setZoom(11);\r\n\r\n if (!this.marker) {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.map,\r\n title: 'Got you!'\r\n });\r\n }\r\n else {\r\n this.marker.setPosition(location);\r\n }\r\n }\r\n //Find Current Location using browser\r\n\r\n clickbtn(event: any, btn)\r\n {\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn' + btn.count), 'highlight');\r\n\r\n this.infoWindow.setContent(this.markerContent[btn.count].content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(btn.lat, btn.long),\r\n zoom: 12\r\n };\r\n\r\n var container = document.getElementById('tabcontent');\r\n //alert(this.locationsArray[btn.count].cf_address_line_1);\r\n this.infoWindow.open(this.map, this.mapMarkers[btn.count]);\r\n var samePos = this.locationsArray.filter(result => (result.cf_destinations[0].mx_latitude === this.locationsArray[btn.count].cf_destinations[0].mx_latitude && result.cf_destinations[0].mx_longitude === this.locationsArray[btn.count].cf_destinations[0].mx_longitude && this.locationsArray[btn.count].cf_address_line_1 === \"\") || ((this.locationsArray[btn.count].cf_address_line_1 != \"\") && (result.cf_address_line_1 === this.locationsArray[btn.count].cf_address_line_1 && result.cf_address_line_2 === this.locationsArray[btn.count].cf_address_line_2)));\r\n\r\n\r\n setTimeout(() => {\r\n\r\n let dealsBtn = document.getElementById('deals-but-'+btn.count);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(this.locationsArray[btn.count].url_title));\r\n\r\n if(samePos.length > 1){\r\n\r\n //alert(samePos.length);\r\n //let closeBtn = document.getElementById('close-info-'+idnumber);\r\n //closeBtn.addEventListener('click' , () => infoWindow.close());\r\n var c = 1;\r\n\r\n var next = btn.count;\r\n var multi_content = '';\r\n\r\n next = this.setNextNumber(samePos[c-1].entry_id,samePos);\r\n //var next2 = this.setNextNumber(samePos[c-1].entry_id,samePos);\r\n var nnumber = (c === 1) ? btn.count : next;\r\n\r\n var cc = 1;\r\n for(let sp of samePos){\r\n //Build multi content window\r\n\r\n var display = (cc === 1) ? \"block\" : \"none\";\r\n\r\n var multi_button_prev = '';\r\n var multi_button_next = '';\r\n multi_content += '
'+multi_button_prev+'
' + sp.title.substring(0,25) + '
'+multi_button_next+'

';\r\n\r\n cc++;\r\n }\r\n\r\n\r\n let NextBtn = document.getElementById('next-info-'+nnumber);\r\n\r\n\r\n NextBtn.addEventListener('click' , () => {\r\n\r\n setTimeout(() => {\r\n\r\n var ccc = 1;\r\n for(let ideal of samePos){\r\n\r\n if(ccc <= samePos.length){\r\n\r\n let inner_next_button = document.getElementById('next-info-inner-'+ccc);\r\n inner_next_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_next_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n var nextbut = (Number(iiii[3]) === samePos.length) ? 1: Number(iiii[3])+1;\r\n var next2 = this.setNumber(samePos[nextbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner = document.getElementById('inner-marker-'+(nextbut));\r\n //alert(nextbut);\r\n active_inner.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n //container.scrollTop = scrollTo1.offsetTop;\r\n\r\n this.scrollRef.scrollToElement(scrollTo1, 500);\r\n });\r\n\r\n let inner_prev_button = document.getElementById('prev-info-inner-'+ccc);\r\n inner_prev_button.addEventListener('click' , () => {\r\n\r\n var iii = inner_prev_button.getAttribute('id');\r\n var iiii = iii.split('-');\r\n\r\n var prevbut = (Number(iiii[3]) === 1) ? samePos.length : Number(iiii[3])-1;\r\n var next2 = this.setNumber(samePos[prevbut-1].entry_id,samePos);\r\n let inners = document.getElementsByClassName('inner-marker');\r\n for (let index = 0; index < inners.length; index++) {\r\n inners[index].setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:none;');\r\n }\r\n let active_inner2 = document.getElementById('inner-marker-'+(prevbut));\r\n //alert(nextbut);\r\n active_inner2.setAttribute('style', 'width:275px;padding:0;overflow:hidden;display:block;');\r\n\r\n var activeButtons = document.getElementsByClassName('highlight');\r\n if(activeButtons.length > 0){\r\n this.renderer.removeClass(activeButtons[0],'highlight');\r\n }\r\n this.renderer.addClass(document.getElementById('btn'+next2.toString()),'highlight');\r\n\r\n var scrollTo1 = document.getElementById('btn'+next2.toString());\r\n //container.scrollTop = scrollTo1.offsetTop;\r\n this.scrollRef.scrollToElement(scrollTo1, 500);\r\n });\r\n\r\n\r\n let dealsBtn2 = document.getElementById('deals-but-'+ccc);\r\n dealsBtn2.addEventListener('click' , () => this.goToDeals(ideal.url_title));\r\n }\r\n\r\n ccc++;\r\n }\r\n\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.infoWindow.setContent(multi_content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n\r\n\r\n var nextN = this.setNumber(samePos[0].entry_id,samePos);\r\n this.renderer.addClass(document.getElementById('btn'+nextN), 'highlight');\r\n\r\n var scrollTo2 = document.getElementById('btn'+nextN);\r\n //container.scrollTop = scrollTo2.offsetTop;\r\n this.scrollRef.scrollToElement(scrollTo2, 500);\r\n this.infoWindow.open(this.map, this.mapMarkers[next]);\r\n\r\n });\r\n\r\n\r\n }\r\n c++;\r\n }, 1000);\r\n\r\n }\r\n\r\n\r\n //When clicking a button it matches it to a deal\r\n\r\n //Search via paramaters\r\n\r\n search()\r\n {\r\n this.locationsArray = [];\r\n this.isMap = true;\r\n this.getAllFilterLive(this.Search);\r\n\r\n\r\n //console.log(this.Search);\r\n }\r\n OnsearchCity(event: any,btn)\r\n {\r\n if(btn == \"province\")\r\n {\r\n this.Search.city = \"\";\r\n document.getElementById(\"ddlCity\").innerHTML = \"Select city\"+'';\r\n document.getElementById(\"ddlProvince\").innerHTML = event.currentTarget.innerText+'';\r\n if(document.getElementById(\"ddlProvince\").innerText == \"All\")\r\n {\r\n this.Search.province = \"\";\r\n }\r\n else\r\n {\r\n this.Search.province = event.currentTarget.innerText;\r\n }\r\n }\r\n\r\n\r\n\r\n this.search();\r\n }\r\n Onsearch(event: any,btn)\r\n {\r\n if(btn == \"province\")\r\n {\r\n this.Search.city = \"\";\r\n document.getElementById(\"ddlCity\").innerHTML = \"Select city\"+'';\r\n document.getElementById(\"ddlProvince\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlProvince\").innerText == \"All\")\r\n {\r\n this.Search.province = \"\";\r\n }\r\n else\r\n {\r\n this.Search.province = event.currentTarget.innerText.toLowerCase().replace(' ', '-');\r\n }\r\n }\r\n\r\n if(btn == \"city\")\r\n {\r\n document.getElementById(\"ddlCity\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlCity\").innerText == \"All\")\r\n {\r\n this.Search.city = \"\";\r\n }\r\n else\r\n {\r\n this.Search.city = event.currentTarget.innerText;\r\n }\r\n }\r\n\r\n if(btn == \"experience\"){\r\n document.getElementById(\"ddlExperience\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlExperience\").innerText == \"All\")\r\n {\r\n this.Search.experienceType = \"\";\r\n }\r\n else\r\n {\r\n this.Search.experienceType = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n if(btn == \"type\"){\r\n document.getElementById(\"ddlType\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlType\").innerText == \"All\")\r\n {\r\n this.Search.packageType = \"\";\r\n }\r\n else\r\n {\r\n this.Search.packageType = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n if(btn == \"price\"){\r\n document.getElementById(\"ddlPrice\").innerHTML = event.currentTarget.innerText+'';\r\n\r\n if(document.getElementById(\"ddlPrice\").innerText == \"All\")\r\n {\r\n this.Search.price = \"\";\r\n }\r\n else\r\n {\r\n this.Search.price = document.getElementById(event.currentTarget.innerText).innerText;\r\n }\r\n }\r\n\r\n this.search();\r\n }\r\n goToDeals(deal: string){\r\n\r\n sessionStorage.setItem('dealId', deal);\r\n window.location.href = \"/deals/\"+deal;\r\n\r\n }\r\n buildFilterMenu(){\r\n\r\n }\r\n\r\n codeLatLng(lat, lng) {\r\n\r\n var latlng = new google.maps.LatLng(lat, lng);\r\n var geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode({location: latlng}, function(results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n if (results[1]) {\r\n //formatted address\r\n //alert(results[0].formatted_address)\r\n //find country name\r\n for (var i=0; i {\r\n\r\n setTimeout(() => {\r\n let dealsBtn = document.getElementById('deals-but-'+prev);\r\n dealsBtn.addEventListener('click' , () => this.goToDeals(this.locationsArray[prev].url_title));\r\n }, 1000);\r\n\r\n var listings = document.getElementsByClassName(\"mapListing\");\r\n\r\n for (let index = 0; index < listings.length; index++) {\r\n this.renderer.removeClass(listings[index],'highlight');\r\n }\r\n\r\n this.renderer.addClass(document.getElementById('btn' + prev), 'highlight');\r\n this.infoWindow.setContent(this.markerContent[prev].content);\r\n this.mapOptions = {\r\n center: this.center = new google.maps.LatLng(this.locations[0].lat, this.locations[0].long),\r\n zoom: 12\r\n };\r\n\r\n var scrollTo = document.getElementById('btn'+prev.toString());\r\n //container.scrollTop = scrollTo.offsetTop;\r\n\r\n this.scrollRef.scrollToElement(scrollTo, 500);\r\n this.infoWindow.open(this.map, this.mapMarkers[id]);\r\n\r\n });\r\n\r\n return BackBtn;\r\n }\r\n setPrevButton(){\r\n\r\n }\r\n getAllCitiesByRegion(region:string): void{\r\n let arr: any = [];\r\n let arr2: any = [];\r\n this.dealsData.subscribe(result =>\r\n {\r\n this.dd = result;\r\n\r\n //console.log(this.dd);\r\n if(this.dd != undefined){\r\n\r\n this.dd = this.dd.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && x.cf_destinations[0]?.mx_province == region && !x.cf_images[0]?.mx_image.includes(\"(\"));\r\n this.dd = this.dd.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n\r\n if(this.dd.length > 50){\r\n this.dd = this.dd.slice(0,50);\r\n }\r\n\r\n this.dd.reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a))\r\n const result_cities = Array.from(arr.reduce((m, t) => m.set(t[0].mx_city, t), new Map()).values());\r\n this.Cities = result_cities;\r\n this.setCityArray(this.Cities);\r\n }\r\n\r\n });\r\n\r\n\r\n //alert(result_cities.length);\r\n\r\n}\r\n getAllCitiesSingle(): void{\r\n const arr: any = [];\r\n this.dealsData.subscribe(result =>\r\n {\r\n this.dd = result;\r\n //alert(this.dd.length);\r\n if(this.dd != undefined){\r\n\r\n this.dd = this.dd.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && !x.cf_images[0]?.mx_image.includes(\"(\"));\r\n this.dd = this.dd.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n\r\n if(this.dd.length > 50){\r\n this.dd = this.dd.slice(0,50);\r\n }\r\n\r\n this.dd.reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a))\r\n const result_cities = Array.from(arr.reduce((m, t) => m.set(t[0]?.mx_city, t), new Map()).values());\r\n this.Cities = result_cities;\r\n this.setCityArray(this.Cities);\r\n }\r\n });\r\n }\r\n getAllFilterLive(search : SearchModel): void{\r\n\r\n this.dealsData.subscribe(result =>\r\n {\r\n this.dd = result;\r\n //console.log(this.dd);\r\n if(this.dd != undefined){\r\n\r\n this.locationsArray = this.dd.filter(result =>\r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n );\r\n\r\n this.locationsArray = this.locationsArray.sort((x, y) => +new Date(Number(y.date_deal_approved)*1000) - +new Date(Number(x.date_deal_approved)*1000));\r\n //console.log('Deals count issue');\r\n //console.log(search);\r\n //alert(this.locationsArray.length);\r\n this.ItemSize = this.locationsArray.length;\r\n //alert(this.ItemSize);\r\n let mapBox = document.getElementById(\"map-box\");\r\n let noResult = document.getElementById(\"no-results\");\r\n\r\n mapBox.style.display = (this.locationsArray.length > 0) ? \"block\" : \"none\";\r\n noResult.style.display = (this.locationsArray.length > 0) ? \"none\" : \"block\";\r\n\r\n for (let i of this.locationsArray) {\r\n if(i.cf_images[0].mx_image.includes(\"(\") && !i.cf_images[0].mx_image.includes(\"\\\\\")){\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(/\\(/g,'\\\\(').replace(/\\)/g,'\\\\)');\r\n }\r\n else if(i.cf_images[0].mx_image === \"\")\r\n {\r\n i.cf_images[0].mx_image = \"assets/images/image.png\";\r\n }\r\n if(i.cf_images[0].mx_image.includes(\" \"))\r\n {\r\n i.cf_images[0].mx_image = i.cf_images[0].mx_image.replace(' ','%20');\r\n }\r\n }\r\n\r\n this.trackMe();\r\n this.mapInit();\r\n }\r\n });\r\n }\r\n scroll(el: HTMLElement) {\r\n el.scrollIntoView(true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{loc.cf_deal_summary}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\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 Results

\r\n

\r\n Try adjusting your search by removing filters.\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","// Angular imports\r\nimport { HTTP_INTERCEPTORS, HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\n// Bootstrap Imports\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// Core imports\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app.routing.module';\r\nimport { AppErrorHandler } from './core/handlers/error.handler';\r\nimport { AppHttpInterceptor } from './core/interceptors/http.interceptor';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n// Page Imports\r\nimport { TestPage } from './pages/main/test-page/test-page.component';\r\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout.component';\r\nimport { FooterComponent } from './layouts/footer/footer.component';\r\nimport { HeaderComponent } from './layouts/header/header.component';\r\nimport { MainModule } from './components/main/main.module';\r\nimport { LoginComponent } from './layouts/login/login.component';\r\nimport { LightLayoutComponent } from './layouts/light-layout/light-layout.component';\r\nimport { HomePage } from './pages/main/home-page/home-page.component';\r\nimport { ProvincePage } from './pages/main/province-page/province-page.component';\r\nimport { ItineraryPage } from './pages/main/itinerary-page/itinerary-page.component';\r\nimport { TradePartnerAccomPage } from './pages/main/tradepartneraccom-page/tradepartneraccom-page.component';\r\nimport { DarkLayoutComponent } from './layouts/dark-layout/dark-layout.component';\r\nimport { BannersModel } from './models/main/deals/banners.model';\r\nimport { CampaignPage } from './pages/main/campaign-page/campaign-page.component';\r\nimport { CampaignComponent } from './components/main/campaign-banner/campaign-banner.component';\r\n// import { TravelWeekPage } from './pages/main/travelweek-page/travelweek-page.component';\r\nimport { TravelWeekBannerComponent } from './components/main/travelweek-banner/travelweek-banner.component';\r\nimport { ContactUsPage } from './pages/main/contact-us/contact-us.component';\r\n\r\nimport { TravelWeekPage } from './pages/main/travelweek/travelweek.component';\r\n\r\nimport { TenReasonsPage } from './pages/main/ten-reasons page/ten-reasons.component';\r\nimport { AboutComponent } from './components/main/about/about.component';\r\nimport { GoogleTagManagerModule } from 'angular-google-tag-manager';\r\nimport { SlickCarouselModule } from 'ngx-slick-carousel';\r\nimport { ScrollBar } from '@ng-bootstrap/ng-bootstrap/util/scrollbar';\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\n// import { TravelWeeknewPage } from './pages/main/travelweeknew-page/travelweeknew-page.component';\r\nimport { CountdownModule } from 'ngx-countdown';\r\nimport { EasterSeasonPageComponent } from './pages/main/easter-season-page/easter-season-page.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n TestPage,\r\n HomePage,\r\n MainLayoutComponent,\r\n LightLayoutComponent,\r\n DarkLayoutComponent,\r\n FooterComponent,\r\n HeaderComponent,\r\n LoginComponent,\r\n ProvincePage,\r\n ItineraryPage,\r\n TradePartnerAccomPage,\r\n CampaignComponent,\r\n CampaignPage,\r\n // TravelWeekPage,\r\n TravelWeekBannerComponent,\r\n ContactUsPage,\r\n TravelWeekPage,\r\n TenReasonsPage,\r\n AboutComponent,\r\n // TravelWeeknewPage,\r\n EasterSeasonPageComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n MainModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientJsonpModule,\r\n GoogleTagManagerModule,\r\n SlickCarouselModule,\r\n NgScrollbarModule,\r\n ScrollingModule,\r\n CountdownModule\r\n ],\r\n exports: [\r\n HeaderComponent\r\n ],\r\n providers: [\r\n Title,\r\n { provide: ErrorHandler, useClass: AppErrorHandler },\r\n { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true }, // fix for 404 errors\r\n { provide: 'googleTagManagerId', useValue: 'GTM-N3VDTB3'}\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { AppTokenService } from \"../services/token.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppHttpInterceptor implements HttpInterceptor {\r\n constructor(private readonly appTokenService: AppTokenService) { }\r\n\r\n public intercept(request: HttpRequest, next: HttpHandler) : any {\r\n request = request.clone({\r\n setHeaders: { Authorization: `Bearer ${this.appTokenService.get()}` }\r\n });\r\n\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable\";\r\n\r\nexport class DealsdashboardModel implements Deserializable{\r\n public firstName: string;\r\n public lastName: string;\r\n public emailAddress: string;\r\n public message: string;\r\n public country: string;\r\n public language: string;\r\n public section: string;\r\n public portal: string;\r\n public id: string;\r\n\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n return this;\r\n }\r\n }","\r\nexport class InfomapModel {\r\n constructor(\r\n public ProvinceText: string = \"\",\r\n public ProvinceDescription: string = \"\",\r\n public ProvinceUrlLink: string = \"\", //wildcard search from title\r\n public imgName: string = \"\"\r\n ) \r\n {\r\n }\r\n}\r\n\r\n","// Angular imports\r\nimport { Component, OnInit, setTestabilityGetter } from '@angular/core';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'province-page',\r\n templateUrl: './province-page.component.html',\r\n styleUrls: ['./province-page.component.scss']\r\n})\r\n\r\nexport class ProvincePage implements OnInit {\r\n public id: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public FilterData: InfomapModel = new InfomapModel();\r\n public filterData: InfomapModel = new InfomapModel();\r\n public searchFilter: BehaviorSubject = new BehaviorSubject(undefined);\r\n public Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n public searchModel: BehaviorSubject = new BehaviorSubject(undefined);\r\n public provinceChange: string;\r\n public popularexperiences: DealsModel[];\r\n public dealsData: BehaviorSubject = new BehaviorSubject(undefined);\r\n public dealsDataFull: BehaviorSubject = new BehaviorSubject(undefined);\r\n public dealsDataSingle: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n public popularexperiencesCount: any[] = [];\r\n public popularexperiencesfCount: any[] = [];\r\n public topExperiences: any[] = [];\r\n public ProvinceDescription : string;\r\n public datas: any[];\r\n\r\n provname = \"Northern Cape\";\r\n prodesc = \"Northern Cape Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\";\r\n bannersArray: BehaviorSubject = new BehaviorSubject(undefined);\r\n \r\n constructor(\r\n private data: DealsService,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n private http: HttpClient\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n \r\n this.activatedRoute.params.subscribe(paramsId => {\r\n this.id = paramsId.id;\r\n //alert(this.id);\r\n });\r\n \r\n \r\n //let pget = sessionStorage.getItem('provinceTo');\r\n let pget = this.id;\r\n let type = sessionStorage.getItem('type');\r\n let theme = sessionStorage.getItem('theme');\r\n let city = sessionStorage.getItem('cityTo');\r\n let price = \"\";\r\n //alert(type);alert(theme);\r\n\r\n if(pget === null || pget === \"\")\r\n location.href = \"/\";\r\n //TODO: Default South Africa\r\n pget = (pget.trim() == 'mzansi') ? 'south-africa' : pget.trim();\r\n let province = pget.trim();\r\n //alert(province);\r\n \r\n this.imgsrc = 'assets/images/province/laughing.png';\r\n this.background = (`url(${this.imgsrc}) no-repeat`);\r\n\r\n this.filterData.imgName = 'hut'; //TODO: Change to Video per province.\r\n this.filterData.ProvinceUrlLink = \"https://www.youtube.com/watch?v=LgvseYYhqU0\";\r\n this.filterData.ProvinceText = province.toString(); \r\n //TODO: Section/PRovince description\r\n this.filterData.ProvinceDescription = province + ' Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod';\r\n \r\n this.FilterData = this.filterData;\r\n this.searchFilter.next(this.FilterData);\r\n \r\n //POPULAR EXPERIENCES PER PROVINCE\r\n var prov = province.replace(\" \",\"-\").toLocaleLowerCase();\r\n this.getProvinceText(prov);\r\n const experiences = this.data.getAllExperiences();\r\n this.getAllFilterLive(this.Search);\r\n if(province === 'south-africa')\r\n {\r\n //alert(province);\r\n //this.popularexperiences = this.data.getAllFilter(this.Search);\r\n //this.getAllFilterLive(this.Search);\r\n \r\n }\r\n else \r\n {\r\n \r\n //this.popularexperiences = this.data.getAllByProvince(prov);\r\n this.getAllByProvince(prov);\r\n \r\n }\r\n\r\n //console.log(this.popularexperiences);\r\n\r\n \r\n\r\n //POPULAR EXPERIENCES PER PROVINCE\r\n //TODO: Add type to filter;\r\n this.Search.packageType = theme;\r\n this.Search.province = pget;\r\n this.Search.city = city;\r\n this.Search.experienceType = type;\r\n this.Search.price = price;\r\n\r\n if(this.bannersArray === null)\r\n this.bannersArray.next(this.data.getAllBanners());\r\n\r\n this.searchModel.next(this.Search);\r\n \r\n this.getBanners();\r\n //console.log(this.titleService.getTitle());\r\n let setTitle = province.split('-');\r\n let new_title = province.charAt(0).toUpperCase()+province.substr(1)\r\n\r\n if(setTitle.length > 1)\r\n new_title = setTitle[0].charAt(0).toUpperCase()+setTitle[0].substr(1)+' '+setTitle[1].charAt(0).toUpperCase()+setTitle[1].substr(1);\r\n\r\n this.titleService.setTitle(\"Province | \" + new_title);\r\n }\r\n getBanners(){\r\n \r\n this.bannersArray.next(null);\r\n this.bannersArray.next(this.data.getAllBanners());\r\n }\r\n getNewProvince(province: any){\r\n this.provinceChange = province;\r\n }\r\n isInArray(value, array) {\r\n return array.indexOf(value) > -1;\r\n }\r\n getProvinceText(province)\r\n {\r\n //alert(province);\r\n switch(province) { \r\n case 'northern-cape': { \r\n this.ProvinceDescription = \"When it comes to things to do, places to see and people to meet, this diverse province is like the seven colours of South African provinces. You can go from sandy beaches, to star gazing, to bush veld all in one day. So pack your bags and dala you must.\"; \r\n break; \r\n } \r\n case 'western-cape': { \r\n this.ProvinceDescription = \"Crystal clear rivers that water the banks of some of the finest winelands in the world. Iconic mountains that spill into oceans. A rich mixture of heritage and innovation. Awe ma se kind, this is the Western Cape.\"; \r\n break; \r\n } \r\n case 'north-west': { \r\n this.ProvinceDescription = \"Want to know where your ancestors, ancestor’s took their first steps? Head to North West and say le kae to the locals who will happily help uncover and discover, this province that boarders Botswana, and is a stone’s chuck (throw) away from neighbouring Limpopo.\"; \r\n break; \r\n } \r\n case 'free-state': { \r\n this.ProvinceDescription = \"The heartland of Mzansi. For those looking to swap the big lights for the countryside and get an escape from city living. Laid back farmlands, some of the most historical sites in South Africa and a unique getaway. He banna, what are you waiting for? Come visit the Free State!\"; \r\n break; \r\n } \r\n case 'gauteng': { \r\n this.ProvinceDescription = \"Ola! This is Egoli, the province of stars. Home to Mzansi’s biggest cities and biggest businesses. From vibey nightlife and mega shopping complexes to natural springs and wilderness retreats. You can literally find almost anything here, zwagala!\"; \r\n break; \r\n } \r\n case 'mpumalanga': { \r\n this.ProvinceDescription = \"Africa’s land of the rising sun and where one of nguni’s romantic tongues is spoken. Mpumalanga is a place where nature, nebantfu, nurture each other in a naturally harmonious way of living.\"; \r\n break; \r\n } \r\n case 'limpopo': { \r\n this.ProvinceDescription = \"Dintshang! Are you ready to hit the road and come over to the province that carries the spirit of Mzansi within it? Whether it’s our famous wildlife on show or our majestic plant life and scenery, Limpopo is the province for those seeking an adventurous yet traditional South African outdoors experience. Come over to the wild side.\"; \r\n break; \r\n } \r\n case 'kwazulu-natal': { \r\n this.ProvinceDescription = \"Egagasini, a province where the waves meet the land, and where culture meets heritage, meets having a good time in a forgiving tropical climate. Woza eZulu land uzozibonela.\"; \r\n break; \r\n } \r\n case 'eastern-cape': { \r\n this.ProvinceDescription = \"Sbwl this, Sbwl that! Hayi don’t do that to yourself. Pack a bag and head eastwards to eMpuma-Koloni. A province where you’ll find yourself kicking off your city shoes to take a stroll with nature on natural beach’s and cost lines, that have been nurtured by locals.\"; \r\n break; \r\n } \r\n case 'south-africa': { \r\n this.ProvinceDescription = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n break; \r\n } \r\n default: { \r\n this.ProvinceDescription = \"Majestic open spaces, sun-soaked coasts, bucket-list activities and the finest hidden gems waiting for you to discover them. Our provinces have everything and more. So, where do you want to go today?\";\r\n break; \r\n } \r\n } \r\n }\r\n getAllFilterLive(search : SearchModel): void{\r\n const experiences = this.data.getAllExperiences();\r\n var data2 : any[] = [];\r\n \r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.deals;\r\n \r\n if(data != undefined){\r\n this.dealsData.next(data.\r\n filter(result => \r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\")\r\n ));\r\n this.activatedRoute.data.subscribe(response => {\r\n data2 = response.dealsSingle;\r\n data2 = data2.filter(result => \r\n result.status == \"open\" &&\r\n (new Date(Number(result.cf_publish_from)*1000) <= new Date() && //Start date\r\n new Date(Number(result.expiration_date)*1000) >= new Date()) && //Expiry date\r\n (result.cf_destinations.length > 0 && result.cf_destinations[0]?.mx_city != \"\" && result.cf_images.length > 0) && //Has images and destinations\r\n (result.cf_package_type === search.packageType || search.packageType === \"\") &&\r\n (result.cf_experience_type === search.experienceType || search.experienceType === \"\") &&\r\n (result.cf_campaign === search.campaign || search.campaign === \"\") &&\r\n (Number(result.cf_discount) > Number(search.discount) || search.discount === \"\") &&\r\n ((Number(result.cf_price) <= Number(search.price) && search.price !== \"\") || search.price === \"\") &&\r\n //(result.title.toLocaleLowerCase().includes(search.searchTerm.toLocaleLowerCase()) || search.searchTerm == \"\") &&\r\n (result.cf_destinations[0]?.mx_province === search.province.toLocaleLowerCase() || search.province === \"\" || search.province === \"south-africa\") &&\r\n ((result.cf_destinations[0]?.mx_city === search.city || search.city == \"\") && result.cf_destinations[0]?.mx_city != \"\"));\r\n });\r\n\r\n this.dealsDataFull.next(data);\r\n this.dealsDataSingle.next(data2);\r\n this.dealsData.subscribe(result => { \r\n this.popularexperiences = result; \r\n for (let index = 0; index < this.popularexperiences.length; index++) {\r\n for (let i = 0; i < experiences.length; i++) {\r\n var count = 0;\r\n count = this.popularexperiences.filter(x=>x.cf_experience_type === experiences[i].id).length;\r\n if(count > 0)\r\n {\r\n this.popularexperiencesCount.push({\r\n experience: experiences[i].id,\r\n image: experiences[i].image,\r\n name: experiences[i].name,\r\n Count: count,\r\n }); \r\n }\r\n }\r\n }\r\n \r\n this.popularexperiencesfCount = this.popularexperiencesCount.filter((v,i) => this.popularexperiencesCount.findIndex(item => item.experience == v.experience) === i);\r\n const top = this.popularexperiencesfCount.sort((x, y) => y - x).slice(0, 4);\r\n this.topExperiences = top.sort((a, b) => parseFloat(b.Count) - parseFloat(a.Count));\r\n }\r\n \r\n );\r\n }\r\n \r\n }); \r\n \r\n }\r\n getAllByProvince(province : string): void{\r\n const experiences = this.data.getAllExperiences(); \r\n var data2 : any[] = [];\r\n this.activatedRoute.data.subscribe(response => {\r\n data2 = response.dealsSingle;\r\n });\r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.deals;\r\n \r\n if(data != undefined){\r\n this.dealsData.next(data.\r\n filter(result => \r\n result.status == \"open\" &&\r\n new Date(Number(result.expiration_date)*1000) >= new Date() && //Expiry date\r\n (result.cf_destinations[0]?.mx_province === province.toLocaleLowerCase() || province == \"\")));\r\n \r\n data2.\r\n filter(result => \r\n result.status == \"open\" &&\r\n new Date(Number(result.expiration_date)*1000) >= new Date() && //Expiry date\r\n (result.cf_destinations[0]?.mx_province === province.toLocaleLowerCase() || province == \"\"));\r\n \r\n this.dealsDataFull.next(data);\r\n this.dealsDataSingle.next(data2);\r\n\r\n this.dealsData.subscribe(result => {\r\n this.popularexperiences = result;\r\n //console.log(result);\r\n for (let index = 0; index < this.popularexperiences.length; index++) {\r\n for (let i = 0; i < experiences.length; i++) {\r\n var count = 0;\r\n count = this.popularexperiences.filter(x=>x.cf_experience_type === experiences[i].id).length;\r\n if(count > 0)\r\n {\r\n this.popularexperiencesCount.push({\r\n experience: experiences[i].id,\r\n image: experiences[i].image,\r\n name: experiences[i].name,\r\n Count: count,\r\n }); \r\n }\r\n }\r\n }\r\n \r\n this.popularexperiencesfCount = this.popularexperiencesCount.filter((v,i) => this.popularexperiencesCount.findIndex(item => item.experience == v.experience) === i);\r\n //let maxObj = this.popularexperiencesfCount.reduce((max, obj) => (max.Count > obj.Count) ? max : obj);\r\n const top = this.popularexperiencesfCount.sort((x, y) => y - x).slice(0, 4);\r\n this.topExperiences = top.sort((a, b) => parseFloat(b.Count) - parseFloat(a.Count));\r\n //console.log(this.topExperiences);\r\n });\r\n }\r\n \r\n }); \r\n}\r\n \r\n}\r\n\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ProvinceDescription}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{exp.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
   Popular in region   
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\n\r\n@Component({\r\n selector: 'travelweek-bannernew',\r\n templateUrl: './travelweek-bannernew.component.html',\r\n styleUrls: ['./travelweek-bannernew.component.scss']\r\n})\r\nexport class TravelWeekBannernewComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public ProvinceDescription : string;\r\n public ProvinceUrlLink: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public ProvinceVideoLink: string;\r\n public innerWidth: any;\r\n\r\n @Input() ProvinceName: string;\r\n @Input() FilterData: InfomapModel;\r\n public filterData: InfomapModel = new InfomapModel();\r\n\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n setTimeout(() => { }, 500);\r\n\r\n //debugger;\r\n this.setMapData(this.FilterData);\r\n \r\n this.ProvinceName = this.filterData.ProvinceText;\r\n this.ProvinceDescription = this.filterData.ProvinceDescription;\r\n this.filterData.ProvinceUrlLink = this.filterData.ProvinceUrlLink; \r\n \r\n this.innerWidth = window.innerWidth;\r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n\r\n document.getElementById(\"travelweekbanner\").setAttribute(\"style\", \"background-image: url(\"+this.imgsrc+\");height:50%;\");\r\n \r\n if(this.innerWidth > 700){\r\n // document.getElementById(\"travelweekbanner\").setAttribute(\"data-jarallax-video\", \"https://www.youtube.com/watch?v=QHCYm4i7kFU&ab_channel=Sho%27tLeft\");\r\n //document.getElementById(\"hidemobile\").setAttribute(\"class\", \"col-lg-1 mb-5 text-left\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"style\", \"position: relative;\"); \r\n document.getElementById(\"CampaignIcon\").setAttribute(\"style\", \"width:40%;\");\r\n }else{\r\n //var random = this.randomizer(1, 9);\r\n //this.randomProvince(random);\r\n //document.getElementById(\"travelweekbanner\").setAttribute(\"style\", \"background-image: url(\"+this.imgsrc+\");\");\r\n //document.getElementById(\"hidemobile\").setAttribute(\"class\", \"col-lg-0 text-left\");\r\n document.getElementById(\"hidemobile\").setAttribute(\"style\", \"position: relative;margin-bottom: 50%;text-align:center;\");\r\n document.getElementById(\"CampaignIcon\").setAttribute(\"style\", \"width:100%;\");\r\n \r\n }\r\n\r\n }\r\n \r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n \r\n \r\n public ngOnDestroy() : void {\r\n \r\n }\r\n \r\n randomProvince(province) {\r\n switch (province) {\r\n case 1:\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + province + '.jpg';\r\n break;\r\n case 2:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n case 3:\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + province + '.jpg';\r\n break;\r\n case 4:\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + province + '.jpg';\r\n break;\r\n case 5:\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + province + '.jpg';\r\n break;\r\n case 6:\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + province + '.jpg';\r\n break;\r\n case 7:\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + province + '.jpg';\r\n break;\r\n case 8:\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + province + '.jpg';\r\n break;\r\n case 9:\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + province + '.jpg';\r\n break;\r\n default:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n }\r\n }\r\n public setMapData(mapData: any) : void {\r\n this.filterData.imgName = mapData.imgName;\r\n this.filterData.ProvinceDescription = mapData.ProvinceDescription;\r\n this.filterData.ProvinceText = mapData.ProvinceText;\r\n this.filterData.ProvinceUrlLink = mapData.ProvinceUrlLink;\r\n\r\n //this.setProvinceActive(mapData.ProvinceText);\r\n }\r\n\r\n public setProvinceActive(id: string){\r\n var el = document.getElementById(id);\r\n this.renderer.addClass(el, \"activeProvince\");\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","\r\nexport class SearchModel {\r\n constructor(\r\n public packageType: string = \"\",\r\n public price: string = \"\",\r\n public searchTerm: string = \"\", //wildcard search from title\r\n public province: string = \"\",\r\n public city: string = \"\",\r\n public starGrading: string = \"\",\r\n public experienceType: string = \"\",\r\n public discount: string = \"\",\r\n public campaign: string = \"\",\r\n public deal_ids: string = \"\"\r\n ) \r\n {\r\n }\r\n}\r\n\r\n","// angular imports\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// Model Imports\r\nimport { Deals, DealsModel } from '../models/main/deals/deals.model';\r\nimport { SearchModel } from '../models/main/deals/search.model';\r\n\r\n\r\n// Dummy data import\r\nimport tenreasonsData from '../../assets/dummy-data/tenreasons.json';\r\n\r\nimport { ExperiencesModel } from '../models/main/deals/experiences.model';\r\nimport { PackagetypesModel } from '../models/main/deals/packagetypes.model';\r\nimport { BannersModel } from '../models/main/deals/banners.model';\r\nimport { DealsdashboardModel } from '../models/main/dealsdashboard/dealsdashboard.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { TenReasonsModel } from '../models/main/tenreasons/tenreasons.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class TenReasonsService {\r\n public tenreasons: TenReasonsModel[];\r\n public data = tenreasonsData;\r\n \r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n public ngOnInit() : void {\r\n \r\n }\r\n \r\n //TODO add service calls here\r\n getTenReasons(): TenReasonsModel[] {\r\n const filteredData = this.data;\r\n return filteredData;\r\n }\r\n}\r\n\r\n\r\n","// Angular imports\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n// React Imports\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\n\r\n\r\n// Global site text import\r\n//import { dealsText } from '../../../app.component';\r\nimport { DealsService, dealsText } from '../../../services/deals.service';\r\n\r\n@Component({\r\n selector: 'itinerary-page',\r\n templateUrl: './itinerary-page.component.html',\r\n styleUrls: ['./itinerary-page.component.scss']\r\n})\r\n\r\nexport class ItineraryPage implements OnInit {\r\n public imgsrc: any;\r\n public background: any;\r\n provname = \"Northern Cape\";\r\n prodesc = \"Northern Cape Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\";\r\n public dealsDataFull: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private data: DealsService,\r\n private http: HttpClient,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n this.imgsrc = 'assets/images/province/laughing.png';\r\n this.background = (`url(${this.imgsrc}) no-repeat`);\r\n this.getAllFilterLive();\r\n }\r\n \r\n getAllFilterLive(): void{\r\n const experiences = this.data.getAllExperiences();\r\n this.activatedRoute.data.subscribe(response => {\r\n var data = response.deals;\r\n if(data != undefined){\r\n \r\n this.dealsDataFull.next(data);\r\n \r\n }\r\n \r\n \r\n \r\n }); \r\n \r\n }\r\n}\r\n","","// angular imports\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// Model Imports\r\nimport { DataModel } from '../models/main/cms/data.model';\r\n\r\n\r\n// Dummy data import\r\nimport campaignData from '../../assets/dummy-data/campaign-data.json';\r\nimport travelweekData from '../../assets/dummy-data/travelweek-data.json';\r\n\r\nimport { CampaignModel } from '../models/main/campaign/campaign.model';\r\nimport { TravelWeekModel } from '../models/main/travelweek/travelweek.model';\r\nexport const data = campaignData;\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class CampaignService {\r\n public data = campaignData;\r\n public travelweekData = travelweekData;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n //TODO add service calls here\r\n getAllCampaign(): CampaignModel[]{\r\n const filteredData = this.data.filter(result => result);\r\n return filteredData;\r\n }\r\n getAllCampaignById(id: string): CampaignModel[]{\r\n const filteredData = this.data.filter(result => result.id == id);\r\n return filteredData;\r\n }\r\n\r\n //TravelWeek\r\n getTravelWeekById(id: string): TravelWeekModel[]{\r\n const filteredData = this.travelweekData.filter(result => result.deal_Id === id);\r\n return filteredData;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n \r\nimport { DealsService } from './deals.service';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DealssingleResolverService implements Resolve {\r\n constructor(private product: DealsService) {}\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n return this.product.getDealsSingle().pipe(\r\n catchError(error => {\r\n return of('No data');\r\n })\r\n );\r\n }\r\n}\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { InfomapModel } from 'src/app/models/main/deals/infomap.model';\r\n\r\n@Component({\r\n selector: 'campaign-banner',\r\n templateUrl: './campaign-banner.component.html',\r\n styleUrls: ['./campaign-banner.component.scss']\r\n})\r\nexport class CampaignComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public ProvinceDescription : string;\r\n public ProvinceUrlLink: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public ProvinceVideoLink: string;\r\n public innerWidth: any;\r\n\r\n @Input() ProvinceName: string;\r\n @Input() FilterData: InfomapModel;\r\n public filterData: InfomapModel = new InfomapModel();\r\n\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n setTimeout(() => { }, 500);\r\n\r\n this.setMapData(this.FilterData);\r\n \r\n //TODO: Populate with campaign data\r\n this.ProvinceName = this.filterData.ProvinceText;\r\n this.ProvinceDescription = this.filterData.ProvinceDescription;\r\n this.filterData.ProvinceUrlLink = this.filterData.ProvinceUrlLink; \r\n //debugger;\r\n this.innerWidth = window.innerWidth;\r\n\r\n if(this.innerWidth > 700){\r\n document.getElementById(\"campaignbanner\").setAttribute(\"data-jarallax-video\", \"https://www.youtube.com/watch?v=RfOBK0WhCwA&ab_channel=SouthAfricanTourism\");\r\n }else{\r\n var random = this.randomizer(1, 9);\r\n this.randomProvince(random);\r\n document.getElementById(\"campaignbanner\").setAttribute(\"style\", \"background-image: url(\"+this.imgsrc+\");\");\r\n }\r\n }\r\n randomProvince(province) {\r\n switch (province) {\r\n case 1:\r\n this.imgsrc = 'assets/images/provincemap/NC/SAT_IMGS_NC0' + province + '.jpg';\r\n break;\r\n case 2:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n case 3:\r\n this.imgsrc = 'assets/images/provincemap/NW/SAT_IMGS_NW0' + province + '.jpg';\r\n break;\r\n case 4:\r\n this.imgsrc = 'assets/images/provincemap/FS/SAT_IMGS_FS0' + province + '.jpg';\r\n break;\r\n case 5:\r\n this.imgsrc = 'assets/images/provincemap/GP/SAT_IMGS_GP0' + province + '.jpg';\r\n break;\r\n case 6:\r\n this.imgsrc = 'assets/images/provincemap/MP/SAT_IMGS_MP0' + province + '.jpg';\r\n break;\r\n case 7:\r\n this.imgsrc = 'assets/images/provincemap/LMP/SAT_IMGS_LMP0' + province + '.jpg';\r\n break;\r\n case 8:\r\n this.imgsrc = 'assets/images/provincemap/KZN/SAT_IMGS_KZN0' + province + '.jpg';\r\n break;\r\n case 9:\r\n this.imgsrc = 'assets/images/provincemap/EC/SAT_IMGS_EC0' + province + '.jpg';\r\n break;\r\n default:\r\n this.imgsrc = 'assets/images/provincemap/WC/SAT_IMGS_WC0' + province + '.jpg';\r\n break;\r\n }\r\n }\r\n randomizer(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n \r\n public setMapData(mapData: any) : void {\r\n this.filterData.imgName = mapData.imgName;\r\n this.filterData.ProvinceDescription = mapData.ProvinceDescription;\r\n this.filterData.ProvinceText = mapData.ProvinceText;\r\n this.filterData.ProvinceUrlLink = mapData.ProvinceUrlLink;\r\n\r\n //this.setProvinceActive(\"North West\");\r\n }\r\n\r\n public setProvinceActive(id: string){\r\n var el = document.getElementById(id);\r\n this.renderer.addClass(el, \"activeProvince\");\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ProvinceName}}

\r\n \r\n {{ProvinceDescription}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { data } from 'src/app/services/product.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\npublic activities: any[] = [];\r\npublic stays: any[] = [];\r\ncloseResult = '';\r\nconstructor(\r\n private modalService: NgbModal,\r\n private dataNew: DealsService,\r\n private dataLayer: GoogleTagManagerService,\r\n ) {\r\n }\r\n\r\npublic ngOnInit() : void {\r\n this.activities = [];\r\n this.stays = [];\r\n\r\n var button = document.getElementById('modal_button');\r\n \r\n if(this.getCookie('cookies') != 'true')\r\n button.click();\r\n\r\n this.stays = this.dataNew.getAllPackageTypesFooter();\r\n this.activities = this.dataNew.getAllExperiencesFooter();\r\n\r\n this.stays.sort(this.compareTypes);\r\n this.activities.sort(this.compareTypes);\r\n}\r\nshow(content: any){\r\n this.modalService.open(content);\r\n}\r\nsetCookie(name,value,days) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days*24*60*60*1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n}\r\ngetCookie(name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0;i < ca.length;i++) {\r\n var c = ca[i];\r\n while (c.charAt(0)==' ') c = c.substring(1,c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n }\r\n return null;\r\n}\r\n acceptCookies(){\r\n sessionStorage.setItem('cookies', 'true');\r\n this.setCookie('cookies', 'true', 7);\r\n this.modalService.dismissAll();\r\n \r\n }\r\n socialMedia(url, platform){\r\n const gtmTag = {\r\n 'platform': platform, \r\n 'event': 'social_share'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n //console.log(this.dataLayer.getDataLayer())\r\n window.open(url, '_blank');\r\n }\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n } \r\n compareTypes(a, b) {\r\n const cityA = a.name.toUpperCase();\r\n const cityB = b.name.toUpperCase();\r\n let comparison = 0;\r\n if (cityA > cityB) {\r\n comparison = 1;\r\n } else if (cityA < cityB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n }\r\n goToProvince(province: string){\r\n \r\n sessionStorage.clear();\r\n sessionStorage.setItem('provinceTo', province);\r\n sessionStorage.setItem('activity', province);\r\n sessionStorage.setItem('provinceFrom', 'Select province');\r\n \r\n window.location.href = \"/province/\"+province.replace(' ', '-').toLowerCase();\r\n }\r\n\r\n goToActivity(activity: string){\r\n sessionStorage.clear();\r\n sessionStorage.setItem('provinceTo', \"Select province\");\r\n sessionStorage.setItem('type', activity);\r\n window.location.href = \"/province/south-africa\";\r\n }\r\n\r\n goToStay(stay: string){\r\n sessionStorage.clear();\r\n sessionStorage.setItem('provinceTo', \"Select province\");\r\n sessionStorage.setItem('theme', stay);\r\n window.location.href = \"/province/south-africa\";\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Activities
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Stay
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Mzansi
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Tools
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \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\r\n
  • \r\n
  • \r\n |\r\n
  • \r\n
  • \r\n Terms and Conditions\r\n
  • \r\n
  • \r\n |\r\n
  • \r\n
  • \r\n Disclaimer\r\n
  • \r\n
  • \r\n |\r\n
  • \r\n
  • \r\n Privacy Policy\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Cookies help us deliver content of interest and improve website\r\n functionality. By using our site you agree to our\r\n cookies policy\r\n
\r\n
\r\n \r\n Accept cookies\r\n \r\n \r\n
\r\n\r\n\r\n Launch demo modal\r\n\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { BannersModel } from 'src/app/models/main/deals/banners.model';\r\n\r\n@Component({\r\n selector: 'app-about',\r\n templateUrl: './about.component.html',\r\n styleUrls: ['./about.component.scss']\r\n})\r\nexport class AboutComponent implements OnInit, OnDestroy {\r\n public background: any;\r\n public imgsrc: any;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2,\r\n \r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n this.imgsrc = 'assets/images/Chintsa-beach.png';\r\n this.background = (`url(${this.imgsrc})`);\r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n}\r\n \r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n It's Your Country, Enjoy It!\r\n

\r\n\r\n

Mzansi, Easter is Loading!\r\n

\r\n This isn’t just another Easter — this is your chance to shake things up with the fam or link up le di tsala tsa gago! Swap the same old plans staying at home and experience something NEW.\r\n

\r\n Set your table anywhere in Mzansi, from a breathtaking mountain picnic spot to a hidden beach cove, chase waterfalls in Mpumalanga, go sandboarding in the Kalahari, or feast on the best Mogodu eKasi. Wherever you go, Mzansi is serving up fresh experiences and unforgettable moments.\r\n

\r\n Book now — Mzansi’s best-kept Easter spots are calling!\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\n\r\n@Component({\r\n selector: 'app-dark-layout',\r\n templateUrl: './dark-layout.component.html',\r\n styleUrls: ['./dark-layout.component.scss']\r\n})\r\nexport class DarkLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n public 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\r\n","// Angular imports\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LightLayoutComponent } from './layouts/light-layout/light-layout.component';\r\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout.component';\r\n\r\n// Page Imports\r\nimport { HomePage } from './pages/main/home-page/home-page.component';\r\nimport { TestPage } from './pages/main/test-page/test-page.component';\r\nimport { ProvincePage } from './pages/main/province-page/province-page.component';\r\nimport { ItineraryPage } from './pages/main/itinerary-page/itinerary-page.component';\r\nimport { TradePartnerAccomPage } from './pages/main/tradepartneraccom-page/tradepartneraccom-page.component';\r\nimport { DarkLayoutComponent } from './layouts/dark-layout/dark-layout.component';\r\nimport { CampaignPage } from './pages/main/campaign-page/campaign-page.component';\r\nimport { ContactUsPage } from './pages/main/contact-us/contact-us.component';\r\nimport { TenReasonsModel } from './models/main/tenreasons/tenreasons.model';\r\nimport { TenReasonsPage } from './pages/main/ten-reasons page/ten-reasons.component';\r\nimport { DealsResolverService } from './services/deals-resolver.service';\r\nimport { DealssingleResolverService } from './services/dealssingle-resolver.service';\r\nimport { TravelWeeknewPage } from './pages/main/travelweeknew-page/travelweeknew-page.component';\r\nimport { EasterSeasonPageComponent } from './pages/main/easter-season-page/easter-season-page.component';\r\nimport { TravelWeekPage } from './pages/main/travelweek/travelweek.component';\r\n\r\n\r\nconst routes: Routes = [\r\n\r\n { path: '', component: MainLayoutComponent,\r\n children: [\r\n\r\n /* 01 */ { path: '', component: HomePage, data: { title: 'Home' },resolve: { dealsSingle: DealssingleResolverService } },\r\n ]\r\n },\r\n {\r\n path: '', component: MainLayoutComponent,\r\n children: [\r\n \r\n { path: 'travelweek', component: TravelWeekPage, data: { title: 'Travel-Week-2023' } },\r\n /* XX { path: 'test', component: TestPage, pathMatch: 'full', data: { title: 'Test' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} }, */\r\n /* 02 */ { path: 'province/:id', component: ProvincePage, data: { title: 'Province' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n /* 03 */ { path: 'itinerary', component: ItineraryPage, data: { title: 'Itinerary planner' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n /* 04 { path: 'campaign/:id', component: CampaignPage, data: { title: 'Campaign' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} }, */\r\n // /* 05 */ { path: 'travelweek', component: TravelWeeknewPage, data: { title: 'Travel-Week-2022' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n /* 06 */ { path: 'contact-us', component: ContactUsPage, data: { title: 'Contact-Us Page' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n /* 07 */ { path: 'ten-reasons', component: TenReasonsPage, data: { title: 'Top Reasons Page' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n // /* 08 */ { path: 'seat-at-the-table', component: EasterSeasonPageComponent, data: { title: 'Seat-At-The-Table' },resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService} },\r\n ],\r\n },\r\n {\r\n path: '', component: DarkLayoutComponent,\r\n children: [\r\n /* 04 */ {\r\n path: 'deals/:id',\r\n component: TradePartnerAccomPage,\r\n data: { title: 'Deals' },\r\n resolve: { deals: DealsResolverService, dealsSingle: DealssingleResolverService}\r\n },\r\n ],\r\n },\r\n // otherwise redirect to home\r\n { path: '**', redirectTo: '' }\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","// angular imports\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\n\r\nimport { environment } from 'src/environments/environment';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { NewTravelWeekModel } from '../models/main/travelweek/newtravelweek.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\n\r\nexport class TravelWeekService {\r\n\r\n env = environment;\r\n TravelWeekApiUrl = this.env.apiTravelWeekURL;\r\n \r\n httpOptions = {\r\n headers: new HttpHeaders({\r\n })\r\n };\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n\r\n\r\n public AddTravelWeekUser(application: NewTravelWeekModel): Observable {\r\n return this.http.post(this.TravelWeekApiUrl, application, {observe: 'response'})\r\n .pipe(\r\n map(res => {\r\n if (res) {\r\n //debugger;\r\n if (res.status == 200) {\r\n return new NewTravelWeekModel().deserialize(res.body)\r\n }\r\n }\r\n return new NewTravelWeekModel().deserialize(res.body);\r\n })\r\n );\r\n }\r\n}\r\n","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { DealsService } from 'src/app/services/deals.service';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\n\r\n@Component({\r\n selector: 'app-build-itinerary',\r\n templateUrl: './build-itinerary.component.html',\r\n styleUrls: ['./build-itinerary.component.scss']\r\n})\r\nexport class BuildItineraryComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n locationsArray: DealsModel[] = [];\r\n Search: SearchModel = new SearchModel();\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: DealsService,\r\n private renderer:Renderer2\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n\r\n }\r\n\r\n \r\n search()\r\n {\r\n\r\n }\r\n\r\n \r\n public ngOnDestroy() : void {\r\n \r\n }\r\n}\r\n \r\n","
\r\n
\r\n
\r\n
\r\n

Build your itinerary

\r\n

Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem.

\r\n Explore more\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
","// Angular Import\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild, Renderer2\r\n} from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { CmsService } from '../../../services/cms.service';\r\nimport { DealsService } from '../../../services/deals.service';\r\n// React Imports\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { DealsModel } from 'src/app/models/main/deals/deals.model';\r\nimport { SearchModel } from 'src/app/models/main/deals/search.model';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n@Component({\r\n selector: 'itenary-planner',\r\n templateUrl: './itenary-planner.component.html',\r\n styleUrls: ['./itenary-planner.component.scss']\r\n})\r\nexport class ItenaryPlannerComponent implements OnInit, OnDestroy {\r\n public title: string;\r\n public ProvinceText : string;\r\n public ProvinceDescription : string;\r\n public ProvinceUrlLink: string;\r\n public imgsrc: any;\r\n public background: any;\r\n public province1: string;\r\n public province2: string;\r\n public city1: string;\r\n public city2: string;\r\n public citiesFrom: any[] = [];\r\n public citiesTo: any[] = [];\r\n public innerWidth: any;\r\n public dd: DealsModel[] = [];\r\n public dl_type:string;\r\n public dl_theme:string;\r\n public experiences: any;\r\n public themes: any;\r\n Search: SearchModel = new SearchModel(\"\",\"\",\"\",\"\",\"\",\"\",\"\");\r\n @Input() ProvinceName: string;\r\n @Input() dealsDataFull: BehaviorSubject = new BehaviorSubject(undefined);\r\n @ViewChild('target') target;\r\n\r\n constructor(\r\n private readonly formBuilder: FormBuilder,\r\n private data: CmsService,\r\n private dealsData: DealsService,\r\n private renderer:Renderer2,\r\n private dataLayer: GoogleTagManagerService,\r\n private dealdata: DealsService,\r\n ) {}\r\n\r\n public ngOnInit() : void {\r\n this.imgsrc = 'assets/images/itinerary.png';\r\n this.background = (`url(${this.imgsrc})`);\r\n this.ProvinceUrlLink = \"https://www.youtube.com/watch?v=LgvseYYhqU0\";\r\n //itinerary planner\r\n this.province1 = \"Select province\";\r\n this.province2 = \"Select province\";\r\n this.city1 = \"City(optional)\";\r\n this.city2 = \"City(optional)\";\r\n //itinerary planner\r\n this.ProvinceName = \"Northern Cape\";\r\n this.ProvinceDescription = \"Mzansi has everything you’re looking for and is waiting for you to get out there and explore it. Whether it’s Nightlife or wildlife – whether you want beach sand or bush sand there’s something amazing for everyone right around the corner. It’s your country. Enjoy it.\";\r\n this.innerWidth = window.innerWidth;\r\n this.experiences = this.dealdata.getAllExperiences();\r\n this.themes = this.dealdata.getAllPackageTypes();\r\n\r\n if(this.innerWidth > 700){\r\n document.getElementById(\"itineraryprovinceMap\").setAttribute(\"style\", \"display:block\");\r\n }else{\r\n document.getElementById(\"itineraryprovinceMap\").setAttribute(\"style\", \"display:none\");\r\n }\r\n }\r\n setImage(image: string){\r\n this.imgsrc = 'assets/images/'+image+'.png';\r\n this.background = (`url(${this.imgsrc})`);\r\n\r\n const gtmTag = {\r\n 'province': this.province2,\r\n 'city': this.city2, \r\n 'event': 'itinerary_step1'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n //console.log(this.dataLayer.getDataLayer());\r\n }\r\n setImage2(image: string){\r\n this.imgsrc = 'assets/images/'+image+'.png';\r\n this.background = (`url(${this.imgsrc})`);\r\n var travelType = document.getElementsByClassName('itinerary-card-active');\r\n \r\n if(travelType.length > 0){\r\n \r\n var type = travelType[0].id.split('-');\r\n let e = this.experiences.filter(x => x.id === type[1]);\r\n this.dl_type = e[0].name;\r\n }\r\n \r\n const gtmTag = {\r\n 'province': this.province2,\r\n 'city': this.city2,\r\n 'type': this.dl_type,\r\n 'event': 'itinerary_step2'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n //console.log(this.dataLayer.getDataLayer());\r\n }\r\n \r\n getProvinceFrom(event:any,region:string){\r\n this.citiesFrom = this.dealsData.getAllCitiesByRegion(region);\r\n this.province1 = event.target.innerHTML;\r\n this.city1 = \"City(optional)\";\r\n this.controlMap();\r\n }\r\n\r\n getProvinceTo(event:any,region:string){\r\n this.getAllCitiesByRegion(region);\r\n this.province2 = event.target.innerHTML;\r\n this.city2 = \"City(optional)\";\r\n this.controlMap();\r\n \r\n }\r\n getAllCitiesByRegion(region:string): void{\r\n let arr: any = [];\r\n let arr2: any = [];\r\n //alert(region);\r\n this.dealsDataFull.subscribe(result =>\r\n {\r\n this.dd = result;\r\n //console.log(this.dd);\r\n if(this.dd != undefined){\r\n this.dd.filter(x=>x.cf_destinations[0]?.mx_city != \"\" && x.cf_destinations[0]?.mx_province == region && !x.cf_images[0]?.mx_image.includes(\"(\")).reduce((a, o) => (o.cf_destinations != null && arr.push(o.cf_destinations), a));\r\n this.citiesTo = Array.from(arr.reduce((m, t) => m.set(t[0].mx_city, t), new Map()).values()); \r\n \r\n }\r\n\r\n });\r\n \r\n \r\n //alert(result_cities.length);\r\n \r\n}\r\n getCityFrom(event:any){\r\n this.city1 = event.target.innerHTML;\r\n }\r\n getCityTo(event:any){\r\n this.city2 = event.target.innerHTML;\r\n }\r\n getType(id:string, name:string){\r\n var el = document.getElementById(id);\r\n var activeElements = document.getElementsByName(name);\r\n this.dl_type = name;\r\n if(activeElements.length > 0){\r\n var elCount = activeElements.length;\r\n activeElements.forEach(x=>{\r\n this.renderer.addClass(x, \"itinerary-card\");\r\n this.renderer.removeClass(x,'itinerary-card-active');\r\n });\r\n \r\n \r\n }\r\n\r\n this.renderer.removeClass(el, \"itinerary-card\");\r\n this.renderer.addClass(el, \"itinerary-card-active\");\r\n }\r\n getItinerary(theme_id: string){\r\n sessionStorage.clear();\r\n var mapElementFrom = document.getElementById('dropdownMenuButton1');\r\n var mapElementTo = document.getElementById('dropdownMenuButton2');\r\n var cityTo = document.getElementById('dropdownMenuButton3');\r\n var travelType = document.getElementsByClassName('itinerary-card-active');\r\n \r\n let t = this.themes.filter(x => x.id === theme_id);\r\n\r\n if(travelType.length > 0){\r\n \r\n var type = travelType[0].id.split('-');\r\n let e = this.experiences.filter(x => x.id === type[1]);\r\n this.dl_type = e[0].name;\r\n sessionStorage.setItem('type', type[1]);\r\n }\r\n \r\n //console.log(mapElementTo);\r\n sessionStorage.setItem('provinceTo', mapElementTo.innerText.trim());\r\n sessionStorage.setItem('provinceFrom', mapElementFrom.innerText.trim());\r\n sessionStorage.setItem('cityTo', cityTo.innerText.trim());\r\n sessionStorage.setItem('theme', theme_id);\r\n \r\n //alert(theme_id);\r\n if(theme_id != '0'){\r\n this.dl_theme = t[0].name;\r\n }\r\n else{\r\n this.dl_theme = '';\r\n }\r\n \r\n \r\n const gtmTag = {\r\n 'province': this.province2,\r\n 'city': this.city2,\r\n 'type': this.dl_type,\r\n 'theme': this.dl_theme,\r\n 'event': 'itinerary_step3'\r\n };\r\n this.dataLayer.pushTag(gtmTag);\r\n //console.log(this.dataLayer.getDataLayer());\r\n\r\n var url_id = (mapElementTo.innerText.trim() === \"Select province\") ? \"south-africa\": mapElementTo.innerText.trim().replace(' ', '-').toLowerCase();\r\n window.location.href = \"/province/\"+url_id;\r\n }\r\n getAttribute(event:any){\r\n \r\n }\r\n getAllExperiences(): any[] {\r\n return this.experiences;\r\n }\r\n controlMap(){\r\n var activeElements = document.getElementsByClassName(\"activeProvince\");\r\n if(activeElements.length > 0){\r\n var elCount = activeElements.length;\r\n for(var count = 1;count <= elCount;count++){\r\n if(activeElements[0] != null){\r\n this.renderer.removeClass(activeElements[0],'activeProvince');\r\n }\r\n }\r\n \r\n }\r\n\r\n var mapElementFrom = document.getElementById(this.province1);\r\n var mapElementTo = document.getElementById(this.province2);\r\n \r\n if(mapElementFrom != null){\r\n this.renderer.addClass(mapElementFrom, \"activeProvince\");\r\n }\r\n if(mapElementTo != null){\r\n this.renderer.addClass(mapElementTo, \"activeProvince\");\r\n }\r\n }\r\n public ngOnDestroy() : void {\r\n \r\n }\r\n\r\n \r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Where\r\n \r\n

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

Where would you like to go?

\r\n \r\n {{ProvinceDescription}}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n  \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n To \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n  \r\n \r\n \r\n \r\n
\r\n  \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n \r\n  \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Type\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
Bush retreats
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
City breaks
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Coastal getaways
\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Cultural discoveries
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Mountain escapes
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Adventure
\r\n

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

\r\n \r\n Theme\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
Backpacking
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Budget
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Family
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Luxury
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Self Catering
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Affordable
\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n  \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, Renderer2 } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n public activeClass: any;\r\n\r\n constructor(\r\n private renderer:Renderer2\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {}\r\n\r\n\r\n changeActiveBtn(event: any)\r\n {\r\n var active = document.getElementsByClassName(\"activebtnTab\");\r\n\r\n for (let index = 0; index < active.length; index++) {\r\n this.renderer.removeClass(active[index],'activebtnTab');\r\n }\r\n\r\n this.renderer.addClass(event.target, 'activebtnTab');\r\n } \r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
Log in & Register
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","// Angular imports\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n// React Imports\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { NewTravelWeekModel } from 'src/app/models/main/travelweek/newtravelweek.model';\r\nimport { TravelWeekService } from 'src/app/services/travelweek.service';\r\n\r\n@Component({\r\n selector: 'travelweek',\r\n templateUrl: './travelweek.component.html',\r\n styleUrls: ['./travelweek.component.scss']\r\n})\r\n\r\nexport class TravelWeekPage implements OnInit {\r\n\r\n TravelWeek: NewTravelWeekModel = new NewTravelWeekModel();\r\n\r\n Busy = false;\r\n Success = false;\r\n Failed = false;\r\n Required = false;\r\n IsInvalidEmail = false;\r\n \r\n constructor(\r\n private data: TravelWeekService,\r\n private activatedRoute: ActivatedRoute,\r\n private dataLayer: GoogleTagManagerService,\r\n ) {\r\n }\r\n\r\n public ngOnInit() : void {\r\n window.location.href = \"https://profile.shotleft.co.za\";\r\n\r\n }\r\n\r\n IsEmailValid()\r\n {\r\n if (this.TravelWeek.email.indexOf('@')>0) \r\n return true;\r\n else\r\n return false;\r\n\r\n }\r\n AddTravelWeekUser() {\r\n\r\n const gtmTag = {\r\n 'event': 'travelweek'\r\n };\r\n var message;\r\n this.dataLayer.pushTag(gtmTag);\r\n\r\n console.log(\"AddTravelWeekUser\");\r\n\r\n this.Busy = true;\r\n \r\n if (this.TravelWeek.name == undefined || this.TravelWeek.surname == undefined || this.TravelWeek.role == undefined || this.TravelWeek.email == undefined || this.TravelWeek.company_name == undefined || this.TravelWeek.website == undefined || this.TravelWeek.province == undefined ) {\r\n this.Required = true;\r\n this.Busy = false;\r\n this.IsInvalidEmail = false;\r\n }\r\n else {\r\n this.Required = false;\r\n this.Busy = true;\r\n\r\n if(!this.IsEmailValid()){\r\n this.Required = false;\r\n //this.Failed = true;\r\n this.IsInvalidEmail = true;\r\n this.Busy = false;\r\n return;\r\n }else{\r\n this.IsInvalidEmail = false;\r\n this.Required = false;\r\n }\r\n\r\n this.data.AddTravelWeekUser(this.TravelWeek).subscribe(data => message = data,\r\n (err) => {\r\n console.log('Application Failed: ' + JSON.stringify(err));\r\n this.Busy = false;\r\n this.Success = false;\r\n this.Failed = true;\r\n },\r\n () => {\r\n //console.log('Application Success');\r\n this.Busy = false;\r\n this.Success = true;\r\n this.Failed = false;\r\n this.Required = false;\r\n \r\n }\r\n );\r\n }\r\n} \r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-main-layout',\r\n templateUrl: './main-layout.component.html',\r\n styleUrls: ['./main-layout.component.scss']\r\n})\r\nexport class MainLayoutComponent implements OnInit {\r\n public loading = false;\r\n constructor(private activatedRoute: ActivatedRoute) { }\r\n\r\n public ngOnInit() : void {\r\n this.loading = true; \r\n \r\n \r\n setTimeout(function(){\r\n this.loading = false; \r\n }.bind(this),1200);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\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 { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AppModalService } from \"../services/modal.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppErrorHandler implements ErrorHandler {\r\n constructor(private readonly injector: Injector) { }\r\n\r\n public handleError(error: any) : void {\r\n if (error instanceof HttpErrorResponse) {\r\n switch (error.status) {\r\n case 401: {\r\n const router = this.injector.get(Router);\r\n router.navigate([\"/login\"]);\r\n return;\r\n }\r\n case 422: {\r\n const appModalService = this.injector.get(AppModalService);\r\n appModalService.alert(error.error);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n console.error(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n \r\nimport { DealsService } from './deals.service';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DealsResolverService implements Resolve {\r\n constructor(private product: DealsService) {}\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n return this.product.getDeals().pipe(\r\n catchError(error => {\r\n return of('No data');\r\n })\r\n );\r\n }\r\n}\r\n\r\n","\r\nexport class NewTravelWeekModel {\r\n\r\n public name: string;\r\n public surname: string;\r\n public role: string;\r\n public email: string;\r\n public company_name: string;\r\n public csd_number: string;\r\n public website: string;\r\n public province: string;\r\n public town: string;\r\n public city: string\r\n\r\n\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n return this;\r\n }\r\n}\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\r\n","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(function() {\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 = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}