{"version":3,"sources":["./src/app/components/main/deals-map-campaign/deals-map-campaign.component.ts","./src/app/components/main/deals-map-campaign/deals-map-campaign.component.html","./src/app/services/cms.service.ts","./src/app/models/main/contactus/contactus.model.ts","./src/app/pages/main/easter-season-page/easter-season-page.component.ts","./src/app/pages/main/easter-season-page/easter-season-page.component.html","./src/app/components/main/banner-adds/banner-adds.component.ts","./src/app/pages/main/test-page/test-page.component.ts","./src/app/pages/main/test-page/test-page.component.html","./src/app/pages/main/ten-reasons page/ten-reasons.component.ts","./src/app/pages/main/ten-reasons page/ten-reasons.component.html","./src/app/pages/main/home-page/home-page.component.ts","./src/app/pages/main/home-page/home-page.component.html","./src/app/components/main/easter-deals/easter-deals.component.ts","./src/app/components/main/easter-deals/easter-deals.component.html","./src/app/components/main/featured-deals-small/featured-deals-small.component.ts","./src/app/components/main/featured-deals-small/featured-deals-small.component.html","./src/app/components/main/provinces-banner/provinces-banner.component.ts","./src/app/components/main/provinces-banner/provinces-banner.component.html","./src/environments/environment.ts","./src/app/pages/main/travelweeknew-page/travelweeknew-page.component.ts","./src/app/pages/main/travelweeknew-page/travelweeknew-page.component.html","./src/app/layouts/light-layout/light-layout.component.ts","./src/app/layouts/light-layout/light-layout.component.html","./src/app/core/services/token.service.ts","./src/app/services/product.service.ts","./src/app/pages/main/contact-us/contact-us.component.ts","./src/app/pages/main/contact-us/contact-us.component.html","./src/app/components/main/travelweek-banner/travelweek-banner.component.ts","./src/app/components/main/travelweek-banner/travelweek-banner.component.html","./src/app/pages/main/tradepartneraccom-page/tradepartneraccom-page.component.ts","./src/app/pages/main/tradepartneraccom-page/tradepartneraccom-page.component.html","./src/app/components/main/info-map/info-map.component.ts","./src/app/components/main/info-map/info-map.component.html","./src/app/layouts/header/header.component.ts","./src/app/layouts/header/header.component.html","./src/app/components/main/featured-deals/featured-deals.component.ts","./src/app/components/main/featured-deals/featured-deals.component.html","./src/app/components/main/main.module.ts","./src/app/core/services/modal.service.ts","./src/app/components/main/sidemenu-carousel/sidemenu-carousel.component.ts","./src/app/components/main/sidemenu-carousel/sidemenu-carousel.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/components/main/small-info-map/small-info-map.component.ts","./src/app/components/main/small-info-map/small-info-map.component.html","./src/app/pages/main/campaign-page/campaign-page.component.ts","./src/app/pages/main/campaign-page/campaign-page.component.html","./src/app/services/deals.service.ts","./src/app/components/main/deals-map/deals-map.component.ts","./src/app/components/main/deals-map/deals-map.component.html","./src/app/app.module.ts","./src/app/core/interceptors/http.interceptor.ts","./src/app/models/main/dealsdashboard/dealsdashboard.model.ts","./src/app/models/main/deals/infomap.model.ts","./src/app/pages/main/province-page/province-page.component.ts","./src/app/pages/main/province-page/province-page.component.html","./src/app/components/main/travelweek-bannernew/travelweek-bannernew.component.ts","./src/app/components/main/travelweek-bannernew/travelweek-bannernew.component.html","./src/app/models/main/deals/search.model.ts","./src/app/services/tenreasons.service.ts","./src/app/pages/main/itinerary-page/itinerary-page.component.ts","./src/app/pages/main/itinerary-page/itinerary-page.component.html","./src/app/services/campaign.service.ts","./src/app/services/dealssingle-resolver.service.ts","./src/app/components/main/campaign-banner/campaign-banner.component.ts","./src/app/components/main/campaign-banner/campaign-banner.component.html","./src/app/layouts/footer/footer.component.ts","./src/app/layouts/footer/footer.component.html","./src/app/components/main/about/about.component.ts","./src/app/components/main/about/about.component.html","./src/app/layouts/dark-layout/dark-layout.component.ts","./src/app/layouts/dark-layout/dark-layout.component.html","./src/app/app.routing.module.ts","./src/app/services/travelweek.service.ts","./src/app/components/main/build-itinerary/build-itinerary.component.ts","./src/app/components/main/build-itinerary/build-itinerary.component.html","./src/app/components/main/itenary-planner/itenary-planner.component.ts","./src/app/components/main/itenary-planner/itenary-planner.component.html","./src/app/layouts/login/login.component.ts","./src/app/layouts/login/login.component.html","./src/app/pages/main/travelweek/travelweek.component.ts","./src/app/layouts/main-layout/main-layout.component.ts","./src/app/layouts/main-layout/main-layout.component.html","./src/app/core/handlers/error.handler.ts","./src/app/services/deals-resolver.service.ts","./src/app/models/main/travelweek/newtravelweek.model.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.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\";"],"sourceRoot":"webpack:///"}