{"version":3,"sources":["webpack:///./app/components/m/infobubble/index.js","webpack:///./app/components/o/dealer/config.js","webpack:///./app/components/o/dealer/helper.js","webpack:///./app/components/o/dealer/dealer__results.js","webpack:///./app/components/o/dealer/index.js"],"names":["infobubble","data","dealersearch","JSON","parse","document","getElementById","textContent","translations","href","target","linkAttrs","internet","pamFlag","querySelector","phone","pam_phone","email","pam_email","button","branch","pam_btn_branch","dealer","pam_btn_dealer","headquarter","pam_btn_headquarter","linkMore","markup","company","alternateRoutePlannerLink","coordinates","icon","street1","street2","zip","city","country","indexOf","split","linkData","res","length","clusterOptions","minimumClusterSize","styles","textColor","width","height","url","CONF","ASSET_PATH","markerStyles","elementType","stylers","color","featureType","visibility","markerImageDefault","path","fillOpacity","fillColor","strokeWeight","scale","markerImagePlus","dynamicSort","property","sortOrder","substr","a","b","localeCompare","sortObject","obj","arr","prop","hasOwnProperty","push","key","value","sort","htmlToText","tmp","createElement","innerHTML","innerText","renderData","title","result","map","item","pam_contact_person","Array","isArray","contactPerson","join","pam_other_support","brands","brand","toLowerCase","dealer__results","e","console","log","fax","dataDealer","filter","dataBranch","dataHeadquarter","dataSource","google","markerCluster","markers","mapElement","GoogleMapsLoader","VERSION","KEY","switchView","visible","arguments","undefined","$","show","hide","loadMarkers","clearMap","bounds","maps","LatLngBounds","clearMarkers","forEach","mark","setMap","parseFloat","warn","id","iw","InfoWindow","content","markerImage","includes","posLatLng","LatLng","marker","Marker","position","addListener","open","event","closeBtn","html","extend","fitBounds","MarkerClusterer","zoom","getZoom","setZoom","loadData","_x","_loadData","apply","_asyncToGenerator","markerUrl","ajax","dataType","error","hideDD","countrySelect","on","closest","addClass","fn","DealerView","getCountries","region","countries","regions","getProvinces","provinces","resultsCopy","dealers","iso","union","province","filterByRegion","updateSelect","removeClass","filterByCountry","val","countryIso","substring","dealerExport","DEALER_EXPORT","then","Object","keys","track","eventtype","load","updateResults","filterByProvince","location","reload","sel","el","append","Option","selectpicker","initMaps","each","elem","dealRegion","find","dealCountry","dealProvince","setTimeout","curCountry","countryDetected","detectionresult","ipDetection","values","parts","regionSelect","trigger","googleapi","Map","streetViewControl","mapTypeControl","minZoom","fullscreenControl","mapTypeControlOptions","mapTypeIds","MapTypeId","ROADMAP","HYBRID","size","Size","origin","Point","anchor"],"mappings":"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","file":"dealer.chunk.js","sourcesContent":["import { icon } from '../../a/icon';\r\n\r\nexport default function infobubble(data) {\r\n const dealersearch = JSON.parse(document.getElementById('dealersearch').textContent);\r\n const translations = dealersearch.translations;\r\n\r\n // get href and target value from source data\r\n const { href, target } = linkAttrs(data.internet);\r\n\r\n const pamFlag = document.querySelector('.dealer__results__pam') ? true : false;\r\n const phone = pamFlag && data.pam_phone ? data.pam_phone : data.phone;\r\n const email = pamFlag && data.pam_email ? data.pam_email : data.email;\r\n let button;\r\n if (data.branch) {\r\n button = translations.pam_btn_branch;\r\n } else if (data.dealer) {\r\n button = translations.pam_btn_dealer;\r\n } else if (data.headquarter) {\r\n button = translations.pam_btn_headquarter;\r\n } else {\r\n button = translations.linkMore;\r\n }\r\n\r\n const markup = `\r\n <div class=\"infobubble\">\r\n <div class=\"infobubble__head\">${data.company}</div>\r\n\r\n <div class=\"container\">\r\n <div class=\"infobubble__contacts\">\r\n <div class=\"infobubble__ico\">\r\n <a target=\"external\" href=\"${\r\n data.alternateRoutePlannerLink === ''\r\n ? 'https://www.google.com/maps/dir/Current+Location/' + data.coordinates[0] + ',' + data.coordinates[1]\r\n : data.alternateRoutePlannerLink\r\n }\">${icon('route')}</a>\r\n </div>\r\n <div class=\"infobubble__txt\">\r\n ${data.company ? data.company + '<br>' : ''}\r\n ${data.street1 ? data.street1 + '<br>' : ''}\r\n ${data.street2 ? data.street2 + '<br>' : ''}\r\n ${data.zip ? data.zip : ''} ${data.city ? data.city + '<br>' : ''}\r\n ${data.country ? data.country : ''}\r\n </div>\r\n </div>\r\n ${\r\n phone\r\n ? `\r\n <div class=\"infobubble__contacts\">\r\n <div class=\"infobubble__ico\">\r\n ${icon('telefon')}\r\n </div>\r\n <div class=\"infobubble__txt\">\r\n <a href=\"tel:${phone}\" target=\"external\" rel=\"noopener noreferrer\">${phone}</a>\r\n </div>\r\n </div>`\r\n : ''\r\n }\r\n ${\r\n typeof email === 'string' && email.indexOf('@') > 0\r\n ? `\r\n <div class=\"infobubble__contacts\">\r\n <div class=\"infobubble__ico\">\r\n ${icon('mail')}\r\n </div>\r\n <div class=\"infobubble__txt\">\r\n <a href=\"javascript:window.location.href = 'mailto:' + [\r\n '${email.split('@')[0]}',\r\n '${email.split('@')[1]}'].join('@')\"\r\n target=\"_self\" rel=\"noopener noreferrer\">\r\n ${email.split('@')[0]}<!---->@<!---->${email.split('@')[1]}\r\n </a>\r\n </div>\r\n </div>`\r\n : ''\r\n }\r\n\r\n <a class=\"btn btn-primary\" href=\"${href}\" target=\"${target}\" rel=\"noopener noreferrer\">\r\n ${pamFlag ? button : translations.linkMore}\r\n </a>\r\n <div>\r\n </div>`;\r\n\r\n return markup;\r\n}\r\n\r\n/**\r\n * Return the href and target value for\r\n * the given link data\r\n * @param linkData\r\n * @returns {{href: string, target: string}}\r\n */\r\nconst linkAttrs = (linkData) => {\r\n // specify return value format\r\n const res = { href: '', target: '' };\r\n\r\n // do we have the mandatory href and target values?\r\n if (linkData?.length !== 2) return res;\r\n\r\n // extract from source data\r\n const [href, target] = linkData;\r\n\r\n return {\r\n href,\r\n target,\r\n };\r\n};\r\n","// https://googlemaps.github.io/js-marker-clusterer/docs/reference.html\r\nconst clusterOptions = {\r\n // maxZoom: 15,\r\n // gridSize: 20,\r\n minimumClusterSize: 4,\r\n styles: [\r\n {\r\n textColor: 'white',\r\n width: 36,\r\n height: 36,\r\n url: CONF.ASSET_PATH + 'images/map/m1.png',\r\n },\r\n {\r\n textColor: 'white',\r\n width: 40,\r\n height: 40,\r\n url: CONF.ASSET_PATH + 'images/map/m2.png',\r\n },\r\n {\r\n textColor: 'white',\r\n width: 44,\r\n height: 44,\r\n url: CONF.ASSET_PATH + 'images/map/m3.png',\r\n },\r\n {\r\n textColor: 'white',\r\n width: 48,\r\n height: 48,\r\n url: CONF.ASSET_PATH + 'images/map/m4.png',\r\n },\r\n {\r\n textColor: 'white',\r\n width: 52,\r\n height: 52,\r\n url: CONF.ASSET_PATH + 'images/map/m5.png',\r\n },\r\n ],\r\n};\r\n\r\nconst markerStyles = [\r\n // {\r\n // elementType: 'labels',\r\n // stylers: [\r\n // {\r\n // visibility: 'off'\r\n // }\r\n // ]\r\n // },\r\n {\r\n elementType: 'labels.text.fill',\r\n stylers: [{ color: '#67767D' }],\r\n },\r\n {\r\n featureType: 'administrative.land_parcel',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative.neighborhood',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst markerImageDefault = {\r\n path: 'M20,0C8.9,0,0,8.7,0,19.5c0,3.5,1.9,8.2,5.3,13.8c1.2,2,2.6,4.1,4.1,6.2c2,2.8,4.1,5.6,6.2,8.3 c0.7,0.9,1.4,1.8,2.1,2.5c0.2,0.3,0.4,0.5,0.6,0.7c0.1,0.1,0.2,0.2,0.2,0.2L20,53l1.6-1.8c0,0,0.1-0.1,0.2-0.2 c0.2-0.2,0.4-0.4,0.6-0.7c0.6-0.7,1.3-1.6,2.1-2.5c2.1-2.6,4.3-5.4,6.2-8.3c1.5-2.1,2.9-4.2,4.1-6.2c3.4-5.6,5.3-10.2,5.3-13.8 C40,8.7,31.1,0,20,0z M20,27c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7s7,3.1,7,7C27,23.9,23.9,27,20,27z',\r\n fillOpacity: 1,\r\n fillColor: '#41535d',\r\n strokeWeight: 0,\r\n scale: 0.5,\r\n};\r\n\r\nconst markerImagePlus = {\r\n path: 'M20.00006,0a19.71993,19.71993,0,0,0-20,19.53406c0,3.54517,1.89283,8.16449,5.261,13.75617,1.20142,1.99456,2.573,4.07757,4.083,6.22277,1.991,2.82831,4.12048,5.62329,6.24975,8.26465.74537.92456,1.438,1.76441,2.06031,2.50434q.32775.38973.58105.6853c.102.1192.17334.2019.21167.24609L20.00006,53l1.553-1.78662c.03845-.04419.10987-.12689.21192-.24609.168-.19641.36242-.42548.58105-.6853.62219-.73993,1.3147-1.57978,2.06006-2.50434,2.12939-2.64136,4.25891-5.43634,6.24976-8.26465,1.51-2.1452,2.88171-4.22821,4.083-6.22277,3.36817-5.59168,5.26123-10.211,5.26123-13.75617A19.72007,19.72007,0,0,0,20.00006,0ZM30.46515,21.94917H22.1861v8.27905H17.814V21.94917H9.535V17.577H17.814V9.298H22.1861V17.577h8.27905Z',\r\n fillOpacity: 1,\r\n fillColor: '#41535d',\r\n strokeWeight: 0,\r\n scale: 0.5,\r\n};\r\n\r\nexport { markerStyles, clusterOptions, markerImageDefault, markerImagePlus };\r\n","/**\r\n * Function to sort alphabetically an array of objects by some specific key.\r\n * @param {String} property Key of the object to sort.\r\n */\r\nfunction dynamicSort(property) {\r\n let sortOrder = 1;\r\n\r\n if (property[0] === '-') {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n\r\n return function (a, b) {\r\n if (sortOrder == -1) {\r\n return b[property].localeCompare(a[property]);\r\n } else {\r\n return a[property].localeCompare(b[property]);\r\n }\r\n };\r\n}\r\n\r\nfunction sortObject(obj) {\r\n const arr = [];\r\n for (const prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n arr.push({\r\n key: prop,\r\n value: obj[prop],\r\n });\r\n }\r\n }\r\n arr.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n //arr.sort(function(a, b) { a.value.toLowerCase().localeCompare(b.value.toLowerCase()); }); //use this to sort as strings\r\n return arr; // returns array\r\n}\r\n\r\nfunction htmlToText(value) {\r\n const tmp = document.createElement('div');\r\n tmp.innerHTML = value;\r\n return tmp.innerText;\r\n}\r\n\r\n/**\r\n * Sort object by fixed order\r\n * Stammwerke (Reihenfolge WIRTGEN, VÖGELE, HAMM, KLEEMANN, BENNINGHOVEN, CIBER, JOHN DEERE)\r\n * @param {object} data - JSON\r\n * @param {array} sortlist - Array with brands\r\n */\r\n// function sortBrands(data, sortlist = ['wirtgen', 'voegele', 'hamm', 'kleemann', 'benninghoven', 'ciber', 'johndeere']) {\r\n// const result = {\r\n// dealers: []\r\n// };\r\n\r\n// sortlist.forEach(term => {\r\n// result.dealers.push(data.filter(obj => obj.brands.includes(term)));\r\n// });\r\n\r\n// return result;\r\n// }\r\n\r\nexport { dynamicSort, sortObject, htmlToText };\r\n","import { icon } from '../../a/icon';\r\nimport { dynamicSort } from './helper';\r\n\r\n/**\r\n * Render dealer search results\r\n * @param {object} data - JSON\r\n * @param {object} translations - JSON translations\r\n * @param {string} title - title\r\n */\r\nfunction renderData(data, translations, title, button) {\r\n let result = '';\r\n const pamFlag = document.querySelector('.dealer__results__pam') ? true : false;\r\n\r\n if (data.length > 0) {\r\n result += `<h1 class=\"hdl hdl--2 text-center\">${title}</h1>`;\r\n\r\n result += data\r\n .map((item) => {\r\n const phone = pamFlag && item.pam_phone ? item.pam_phone : item.phone;\r\n const email = pamFlag && item.pam_email ? item.pam_email : item.email;\r\n return `\r\n <div class=\"row dealer__item\">\r\n <div class=\"col-xs-12 col-lg-8 offset-lg-2\">\r\n <h3 class=\"hdl hdl--3\">${item.company}</h3>\r\n </div>\r\n <div class=\"col-sm-7 col-lg-5 offset-lg-2\">\r\n <div class=\"iconlist__contacts\">\r\n <div class=\"iconlist\">\r\n <div class=\"iconlist__ico\">\r\n <a target=\"external\" href=\"${\r\n item.alternateRoutePlannerLink === ''\r\n ? 'https://www.google.com/maps/dir/Current+Location/' +\r\n item.coordinates[0] +\r\n ',' +\r\n item.coordinates[1]\r\n : item.alternateRoutePlannerLink\r\n }\">${icon('route')}</a>\r\n </div>\r\n <div class=\"iconlist__content\">\r\n ${item.street1 ? item.street1 + '<br>' : ''}\r\n ${item.street2 ? item.street2 + '<br>' : ''}\r\n ${item.zip ? item.zip : ''} ${item.city ? item.city + '<br>' : ''}\r\n ${item.country ? item.country : ''}\r\n </div>\r\n </div>\r\n\r\n ${\r\n typeof email === 'string' && email.indexOf('@') > 0\r\n ? `\r\n <div class=\"iconlist\">\r\n <div class=\"iconlist__ico\">\r\n ${icon('mail')}\r\n </div>\r\n <div class=\"iconlist__content\">\r\n <a href=\"javascript:window.location.href = 'mailto:' + ['${email.split('@')[0]}','${\r\n email.split('@')[1]\r\n }'].join('@')\"\r\n target=\"_self\" rel=\"noopener noreferrer\">\r\n ${email.split('@')[0]}<!---->@<!---->${email.split('@')[1]}\r\n </a>\r\n </div>\r\n </div>\r\n `\r\n : ''\r\n }\r\n\r\n <div class=\"iconlist\">\r\n <div class=\"iconlist__ico\">\r\n ${icon('telefon')}\r\n </div>\r\n <div class=\"iconlist__content\">\r\n ${item.phone ? `<a href=\"tel:${item.phone}\">${item.phone}</a><br>` : ''}\r\n </div>\r\n </div>\r\n\r\n\r\n ${\r\n (pamFlag && item.pam_contact_person) ||\r\n (Array.isArray(item.contactPerson) ? item.contactPerson.join().length : item.contactPerson.length)\r\n ? `\r\n <div class=\"iconlist\">\r\n <div class=\"iconlist__ico\">\r\n ${icon('ansprechpartner')}\r\n </div>\r\n <div class=\"iconlist__content\">\r\n ${\r\n pamFlag && item.pam_contact_person\r\n ? item.pam_contact_person\r\n : item.contactPerson && Array.isArray(item.contactPerson)\r\n ? item.contactPerson.join(', ')\r\n : item.contactPerson\r\n }\r\n </div>\r\n </div>`\r\n : ''\r\n }\r\n </div>\r\n\r\n ${\r\n pamFlag && item.pam_other_support\r\n ? `<p class=\"iconlist__link iconlist__support\">${item.pam_other_support}</p>`\r\n : ''\r\n }\r\n\r\n ${\r\n item.internet[0]\r\n ? `<p class=\"iconlist__link\">\r\n <a class=\"link\" href=\"${item.internet[0]}\" target=\"${item.internet[1]}>${icon('arrow')} ${\r\n pamFlag ? button : translations.linkMore\r\n }</a>\r\n </p>`\r\n : ''\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"col-sm-5 col-lg-3\">\r\n <div class=\"dealer__brands\">\r\n ${item.brands\r\n .map((brand) => {\r\n return `<div class=\"dealer__logo ${brand}\">\r\n <img height=\"20\" src=\"${CONF.ASSET_PATH}images/logo/${brand.toLowerCase()}.svg\" alt=\"${brand}\">\r\n </div>`;\r\n })\r\n .join('')}\r\n </div>\r\n </div>\r\n </div>`;\r\n })\r\n .join('');\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport default function dealer__results(data) {\r\n let translations;\r\n let dealersearch;\r\n let markup = '';\r\n\r\n try {\r\n dealersearch = JSON.parse(document.getElementById('dealersearch').textContent);\r\n translations = dealersearch.translations;\r\n } catch (e) {\r\n console.log('Fallback Translation', e);\r\n translations = {\r\n translations: {\r\n phone: 'Phone',\r\n fax: 'Fax',\r\n email: 'E-Mail',\r\n internet: 'Internet',\r\n contactPerson: 'Contact',\r\n linkMore: 'More Information',\r\n dealer: 'Dealer',\r\n branch: 'Branch',\r\n headquarter: 'Headquarter',\r\n },\r\n };\r\n }\r\n\r\n const dataDealer = data.filter((item) => item.dealer === true).sort(dynamicSort('company'));\r\n const dataBranch = data.filter((item) => item.branch === true).sort(dynamicSort('company'));\r\n const dataHeadquarter = data.filter((item) => item.headquarter === true).sort(dynamicSort('headquarterIndex'));\r\n\r\n markup += renderData(dataDealer, translations, translations.dealer, translations.pam_btn_dealer);\r\n markup += renderData(dataBranch, translations, translations.branch, translations.pam_btn_branch);\r\n markup += renderData(dataHeadquarter, translations, translations.headquarter, translations.pam_btn_headquarter);\r\n\r\n return markup;\r\n}\r\n\r\nexport { dealer__results };\r\n","import 'bootstrap-select';\r\nimport union from 'lodash/union';\r\nimport MarkerClusterer from '@google/markerclusterer';\r\nimport GoogleMapsLoader from 'google-maps';\r\nimport infobubble from '../../m/infobubble';\r\nimport { clusterOptions, markerImageDefault as markerImage, markerStyles } from './config';\r\nimport { dealer__results } from './dealer__results';\r\nimport { htmlToText } from './helper';\r\nimport { track } from '../../../core/js/libs/TrackingService';\r\n\r\nlet dataSource = null;\r\nlet map;\r\nlet google;\r\nlet markerCluster;\r\nlet markers = [];\r\nconst mapElement = document.querySelector('.map');\r\nGoogleMapsLoader.VERSION = 'weekly';\r\nGoogleMapsLoader.KEY = 'AIzaSyCUHxUNeguMQK1hLWvT8at7AAN-g-ZJLuk';\r\n\r\n// Switch between Placeholder Image and Map with results\r\nconst switchView = (visible = 'placeholder') => {\r\n if (visible === 'placeholder') {\r\n $('.dealer .map-placeholder').show();\r\n $('.dealer .map').hide();\r\n $('.dealer__results').hide();\r\n } else {\r\n $('.dealer .map-placeholder').hide();\r\n $('.dealer .map').show();\r\n $('.dealer__results').show();\r\n }\r\n};\r\n\r\n/**\r\n * loadMarkers - Add markers on google map\r\n * @param {[array]} data [data source]\r\n */\r\nconst loadMarkers = (data, clearMap = true) => {\r\n const bounds = new google.maps.LatLngBounds();\r\n\r\n /**\r\n * Clears all markers/clusters.\r\n */\r\n const clearMarkers = () => {\r\n markers.forEach((mark) => {\r\n mark.setMap(null);\r\n });\r\n markers = [];\r\n markerCluster.clearMarkers();\r\n };\r\n\r\n if (clearMap && markerCluster !== undefined) {\r\n clearMarkers();\r\n }\r\n\r\n for (const item of data) {\r\n // Skip invalid coordinates\r\n let coordinates = item.coordinates;\r\n if (coordinates.length === 2) {\r\n coordinates = item.coordinates.map((value) => parseFloat(value));\r\n } else {\r\n console.warn(`Invalid coordinates!! Skip address id ${item.id}, ${item.company}`);\r\n continue;\r\n }\r\n\r\n const iw = new google.maps.InfoWindow({\r\n content: infobubble(item),\r\n });\r\n\r\n // Set Marker Color for different brands\r\n if (item.branch) {\r\n // Niederlassung (branch) schiefergrau\r\n markerImage.fillColor = '#41535d';\r\n } else if (item.dealer) {\r\n // Händler (dealer) mittelgrau\r\n markerImage.fillColor = '#67767D';\r\n } else {\r\n // Stammwerk (headquarter) Brand colors\r\n if (item.brands.includes('wirtgen')) {\r\n markerImage.fillColor = '#ee5603';\r\n } else if (item.brands.includes('voegele')) {\r\n markerImage.fillColor = '#057e53';\r\n } else if (item.brands.includes('hamm')) {\r\n markerImage.fillColor = '#f1510f';\r\n } else if (item.brands.includes('kleemann')) {\r\n markerImage.fillColor = '#1755a2';\r\n } else if (item.brands.includes('benninghoven')) {\r\n markerImage.fillColor = '#116097';\r\n }\r\n }\r\n\r\n const posLatLng = new google.maps.LatLng(coordinates[0], coordinates[1]);\r\n const marker = new google.maps.Marker({\r\n position: posLatLng,\r\n icon: markerImage,\r\n title: htmlToText(item.company),\r\n });\r\n marker.addListener('click', () => iw.open(map, marker));\r\n // Customize InfoWindow\r\n google.maps.event.addListener(iw, 'domready', function () {\r\n // Reference elements of the infowindow\r\n const closeBtn = $('.gm-ui-hover-effect');\r\n closeBtn.html(\r\n '<div class=\"closeico\"><svg class=\"icon icon-plus \"><use xlink:href=\"#icon-plus\"></use></svg></div>'\r\n );\r\n });\r\n bounds.extend(posLatLng);\r\n markers.push(marker);\r\n }\r\n\r\n // Add a marker clusterer to manage the markers.\r\n map.fitBounds(bounds);\r\n markerCluster = new MarkerClusterer(map, markers, clusterOptions);\r\n\r\n // Set min zoom level if less then 4 points\r\n if (data.length < 4) {\r\n const zoom = map.getZoom();\r\n\r\n if (zoom > 10) {\r\n map.setZoom(10);\r\n }\r\n }\r\n};\r\n\r\nasync function loadData(markerUrl) {\r\n try {\r\n return await $.ajax({\r\n url: markerUrl,\r\n dataType: 'json',\r\n });\r\n } catch (error) {\r\n return null;\r\n }\r\n}\r\n\r\nfunction hideDD() {\r\n const countrySelect = document.querySelector('.dealer__country');\r\n $(countrySelect).on('loaded.bs.select', function () {\r\n $(countrySelect.closest('.dropdown')).addClass('invisible');\r\n });\r\n}\r\n\r\n/**\r\n * Init Google Maps\r\n */\r\n\r\n// continents are defined in iso\r\n// https://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_by_continent_%28data_file%29\r\n\r\n$.fn.DealerView = function () {\r\n if (!this) {\r\n return false;\r\n }\r\n\r\n /**\r\n * Return key/value Object with countries\r\n * @param {string} region - key for region\r\n * @return {object} - JSON Object\r\n */\r\n const getCountries = (region) => {\r\n const dealersearch = JSON.parse(document.getElementById('dealersearch').textContent);\r\n const countries = dealersearch.regions[region];\r\n\r\n return countries;\r\n };\r\n\r\n /**\r\n * Return key/value Object with provinces\r\n * @param {string} region - key for region\r\n * @param {string} country - key for country iso code\r\n * @return {object} - JSOn Object\r\n */\r\n const getProvinces = (region, country) => {\r\n let provinces = [];\r\n\r\n if (dataSource === null) {\r\n return provinces;\r\n }\r\n // Filter data\r\n const resultsCopy = dataSource.dealers.filter((obj) => (obj.region === region && obj.iso) === country);\r\n resultsCopy.forEach((item) => {\r\n provinces = union(provinces, item.province);\r\n // provinces.push(...item.province);\r\n });\r\n provinces.sort();\r\n provinces = provinces.map((item) => {\r\n return { [item]: item };\r\n });\r\n return provinces;\r\n };\r\n\r\n /**\r\n * filterByRegion\r\n * @param {string} region - key for region\r\n */\r\n const filterByRegion = (region) => {\r\n // Update selectbox\r\n const countries = getCountries(region);\r\n updateSelect('select.dealer__country', countries);\r\n $('.dropdown.dealer__country').removeClass('invisible');\r\n\r\n // Show Placeholder image only...\r\n switchView('placeholder');\r\n $('.dropdown.dealer__province').addClass('invisible');\r\n };\r\n\r\n /**\r\n * filterByCountry\r\n * @param {string} country - JSON key for country\r\n */\r\n const filterByCountry = (country) => {\r\n const region = $('select.dealer__region option:selected').val();\r\n const countryIso = country.substring(3);\r\n const dealerExport = CONF.DEALER_EXPORT\r\n ? CONF.DEALER_EXPORT + country + '.json'\r\n : `/${country}/technical-pages/dealer-search/export/index.json`;\r\n\r\n loadData(dealerExport).then((data) => {\r\n dataSource = data;\r\n\r\n if (dataSource !== null) {\r\n const provinces = getProvinces(region, countryIso);\r\n\r\n // Update Selectbox provinces\r\n updateSelect('select.dealer__province', provinces);\r\n // Filter data\r\n if (country !== '') {\r\n if (Object.keys(provinces).length > 0) {\r\n $('.dropdown.dealer__province').removeClass('invisible');\r\n switchView('placeholder');\r\n } else {\r\n const resultsCopy = dataSource.dealers.filter((obj) => obj.region === region && obj.iso === countryIso);\r\n switchView('map');\r\n\r\n track({ eventtype: 'contactFilter', region, country: countryIso });\r\n GoogleMapsLoader.load(() => {\r\n loadMarkers(resultsCopy);\r\n });\r\n\r\n updateResults(resultsCopy);\r\n $('.dropdown.dealer__province').addClass('invisible');\r\n }\r\n }\r\n } else {\r\n $('.dropdown.dealer__province').addClass('invisible');\r\n switchView('placeholder');\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * filterByProvince\r\n * @param {string} province - JSON key for province\r\n */\r\n const filterByProvince = (province) => {\r\n const region = $('select.dealer__region option:selected').val();\r\n const country = $('select.dealer__country option:selected').val();\r\n const countryIso = country.substring(3);\r\n\r\n if (province === '') {\r\n location.reload();\r\n }\r\n\r\n // Filter data\r\n if (dataSource !== null) {\r\n let resultsCopy = dataSource.dealers.filter((obj) => (obj.region === region && obj.iso) === countryIso);\r\n if (province) {\r\n resultsCopy = resultsCopy.filter((obj) => obj.province.includes(province));\r\n track({ eventtype: 'contactfilter', region, country: countryIso, province });\r\n }\r\n switchView('map');\r\n GoogleMapsLoader.load(() => {\r\n loadMarkers(resultsCopy);\r\n });\r\n updateResults(resultsCopy);\r\n } else {\r\n $('.dropdown.dealer__province').addClass('invisible');\r\n switchView('placeholder');\r\n }\r\n };\r\n\r\n /**\r\n * Update select with data\r\n * @param {string} sel - css selector\r\n * @param {object} data - key/value object\r\n */\r\n const updateSelect = function (sel, data) {\r\n const el = $(sel);\r\n // const sortedKeys = Object.keys(data).sort();\r\n\r\n el.html('');\r\n el.append(new Option(el.data('noneSelectedText'), ''));\r\n data.forEach((obj) => {\r\n const key = Object.keys(obj)[0];\r\n const value = obj[key];\r\n el.append(new Option(value, key));\r\n });\r\n el.selectpicker('refresh');\r\n };\r\n\r\n /**\r\n * Update dealer contact list view\r\n * @param {object} data - marker object\r\n */\r\n const updateResults = function (data) {\r\n switchView('map');\r\n\r\n const markup = dealer__results(data);\r\n $('.dealer__ajax').html(markup);\r\n };\r\n\r\n // ===========================================================================\r\n // == MAIN jQuery Plugin Function ==\r\n // ===========================================================================\r\n\r\n // Init Google maps\r\n initMaps();\r\n\r\n // Iterate over all components\r\n return this.each(function () {\r\n const elem = $(this);\r\n\r\n const dealRegion = elem.find('select.dealer__region');\r\n const dealCountry = elem.find('select.dealer__country');\r\n const dealProvince = elem.find('select.dealer__province');\r\n\r\n // Inital country\r\n setTimeout(function () {\r\n const curCountry = dealCountry.val();\r\n if (curCountry) {\r\n filterByCountry(curCountry);\r\n }\r\n }, 300);\r\n\r\n // Event Handlers\r\n dealRegion.on('change', function () {\r\n filterByRegion(this.value);\r\n });\r\n\r\n dealCountry.on('change', function () {\r\n filterByCountry(this.value);\r\n });\r\n\r\n dealProvince.on('change', function () {\r\n filterByProvince(this.value);\r\n });\r\n try {\r\n let countryDetected = detectionresult.data.ipDetection.country;\r\n if (countryDetected) {\r\n countryDetected = countryDetected.toLowerCase();\r\n const dealersearch = JSON.parse(document.getElementById('dealersearch').textContent);\r\n for (const key in dealersearch.regions) {\r\n const region = dealersearch.regions[key];\r\n Object.values(region).forEach((country) => {\r\n const parts = Object.keys(country)[0].split('-');\r\n if (countryDetected === parts[1]) {\r\n const regionSelect = document.querySelector('select.dealer__region');\r\n const countrySelect = document.querySelector('select.dealer__country');\r\n $(regionSelect).val(key);\r\n $(regionSelect).selectpicker('refresh');\r\n $(regionSelect).trigger('change');\r\n\r\n $(countrySelect).val(Object.keys(country)[0]);\r\n $(countrySelect).removeClass('invisible');\r\n $(countrySelect).selectpicker('refresh');\r\n $(countrySelect).trigger('change');\r\n\r\n $(region).on('loaded.bs.select', () => {\r\n $(regionSelect).val(key);\r\n $(regionSelect).selectpicker('refresh');\r\n $(regionSelect).trigger('change');\r\n\r\n $(countrySelect).val(Object.keys(country)[0]);\r\n $(countrySelect).removeClass('invisible');\r\n $(countrySelect).selectpicker('refresh');\r\n $(countrySelect).selectpicker('render');\r\n $(countrySelect).trigger('change');\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.warn('Country was not detected!!!');\r\n hideDD();\r\n }\r\n });\r\n};\r\n\r\n// Init Google Maps\r\nfunction initMaps() {\r\n GoogleMapsLoader.load((googleapi) => {\r\n google = googleapi;\r\n\r\n /**\r\n * Create Google Map zoom instance\r\n * https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions.minZoom\r\n */\r\n map = new google.maps.Map(mapElement, {\r\n styles: markerStyles,\r\n streetViewControl: false,\r\n mapTypeControl: false,\r\n minZoom: 2,\r\n fullscreenControl: false,\r\n mapTypeControlOptions: {\r\n mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID],\r\n },\r\n });\r\n\r\n // This marker is 20 pixels wide by 32 pixels high.\r\n markerImage.size = new google.maps.Size(21, 27);\r\n // The origin for this image is (0, 0).\r\n markerImage.origin = new google.maps.Point(0, 0);\r\n // The anchor for this image is the base of the pointer at (10, 27). Use double number because scale is 0.5 ?!\r\n markerImage.anchor = new google.maps.Point(20, 54);\r\n });\r\n}\r\n\r\n$('.dealer').DealerView();\r\n"],"sourceRoot":""}