{"version":3,"file":"webpack-chunks/chunk.scripts_components_addressLookup_js.5d854254e328c27aa02c.js","mappings":"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","sources":["webpack://selectrucks/./scripts/components/addressLookup.js"],"sourcesContent":["export default async script => { // script[type=\"addressLookup\"]\n 'use strict';\n\n if (!google.maps) {\n console.warn('addressLookup -> google.maps is missing');\n return;\n }\n\n const geocoder = new google.maps.Geocoder();\n\n const dataset = script.dataset;\n\n if (!dataset || !dataset.containerid || !dataset.select\n || !dataset.tokenheader || !dataset.tokenrequest || !dataset.distanceapi) {\n console.warn('addressLookup -> dataset.containerid, dataset.select, dataset.tokenHeader, dataset.tokenRequest, and dataset.distanceApi are required');\n return;\n }\n\n const container = document.getElementById(dataset.containerid);\n\n if (!container) {\n console.warn(`addressLookup -> The id: ${dataset.containerid} is invalid`);\n return;\n }\n\n const select = document.getElementById(dataset.select);\n\n if (!select) {\n console.warn(`addressLookup -> The id: ${dataset.select} is invalid`);\n return;\n }\n\n const autocomplete = new google.maps.places.Autocomplete(container);\n\n let timer;\n\n const getDealers = (function () {\n\n function fillDealerList(dealers) {\n const ulDealers = document.getElementById(\"listDealers\");\n ulDealers.innerHTML = '';\n //select.innerHTML = '';\n\n //const firstOption = document.createElement('option');\n //firstOption.value = '';\n //firstOption.setAttribute('disabled', 'disabled');\n //firstOption.innerHTML = '-- select a dealer --'; \n //select.options.add(firstOption);\n //firstOption.selected = 'selected';\n\n for (let i = 0, l = dealers.length; i < l && i < 10; i++) {\n\n const dealerOption = document.createElement('option');\n dealerOption.value = dealers[i].id;\n dealerOption.innerHTML = dealers[i].name;\n\n const addressOption = document.createElement('option');\n addressOption.value = dealers[i].id;\n addressOption.setAttribute('disabled', 'disabled');\n addressOption.style.backgroundColor = '#eeeeee';\n addressOption.innerHTML = `   ${dealers[i].city}, ${dealers[i].province}`;\n\n //select.options.add(dealerOption);\n //select.options.add(addressOption);\n\n const liDealer = document.createElement('li');\n liDealer.value = dealers[i].id;\n liDealer.addEventListener('click', () => selectDealer(dealers[i]));\n\n const labelName = document.createElement('label');\n labelName.classList.add('name');\n labelName.innerHTML = dealers[i].name.toUpperCase();\n //labelName.addEventListener('click', selectDealer);\n\n const labelAddress = document.createElement('label');\n labelAddress.classList.add('address');\n labelAddress.innerHTML = `   ${dealers[i].city.toUpperCase()}, ${dealers[i].province.toUpperCase()}`;\n\n const labelDistance = document.createElement('label');\n labelDistance.classList.add('distance');\n labelDistance.innerHTML = `   ${dealers[i].distance} Miles Away`;\n\n liDealer.appendChild(labelName);\n liDealer.appendChild(labelAddress);\n liDealer.appendChild(labelDistance);\n ulDealers.appendChild(liDealer);\n\n }\n\n select.classList.remove('bg-processing');\n select.disabled = false;\n }\n\n function selectDealer(dealer) {\n //console.log('here');\n //console.log(dealer);\n document.getElementById('dealerSelected').value = dealer.id;\n //console.log(document.getElementById('dealerSelected').value);\n document.getElementById('selectDealer').innerHTML = dealer.name.toUpperCase();\n document.getElementById('selectDealer').classList.remove('expandedp')\n }\n\n function locateCurrentPosition() {\n }\n\n function onGeoLookupReturn(results, status) {\n if (status === google.maps.GeocoderStatus.OK) {\n const latitude = results[0].geometry.location.lat();\n const longitude = results[0].geometry.location.lng();\n const url = `${dataset.distanceapi}?latitude=${latitude}&longitude=${longitude}&radius=5000&decimalPlaces=1&measureUnit=Miles`;\n\n $.ajax({\n method: 'GET',\n url: url,\n beforeSend: (xhr) => {\n xhr.setRequestHeader(dataset.tokenheader, dataset.tokenrequest)\n },\n contentType: \"application/json;charset=utf-8\",\n success: (response) => {\n fillDealerList(response);\n },\n error: (e) => {\n console.error(e);\n throwError();\n }\n });\n } else {\n throwError();\n }\n }\n\n function throwError() {\n select.classList.add('sel-disabled');\n select.classList.remove('bg-processing');\n container.value = '[ERROR]';\n }\n\n return (coordinates) => {\n select.classList.remove('sel-disabled');\n select.classList.add('bg-processing');\n\n if (coordinates) {\n onGeoLookupReturn(coordinates, google.maps.GeocoderStatus.OK);\n } else {\n const address = container.value;\n geocoder.geocode({ 'address': address }, onGeoLookupReturn);\n }\n }\n })();\n\n // Action(s)\n google.maps.event.addListener(autocomplete, 'place_changed', getDealers);\n\n navigator.geolocation.getCurrentPosition(\n position => {\n if (position && position.coords && position.coords.latitude && position.coords.longitude) {\n const results = [{\n geometry: {\n location: {\n lat: () => { return position.coords.latitude; },\n lng: () => { return position.coords.longitude; }\n }\n }\n }];\n getDealers(results);\n }\n },\n error => { },\n {\n enableHighAccuracy: true,\n timeout: 10000,\n maximumAge: 1000\n }\n );\n\n select.disabled = 'disabled';\n select.classList.add('sel-disabled');\n};\n"],"names":["script","google","maps","console","warn","geocoder","Geocoder","dataset","containerid","select","tokenheader","tokenrequest","distanceapi","container","document","getElementById","autocomplete","places","Autocomplete","timer","getDealers","fillDealerList","dealers","ulDealers","innerHTML","i","l","length","dealerOption","createElement","value","id","name","addressOption","setAttribute","style","backgroundColor","city","province","liDealer","addEventListener","selectDealer","labelName","classList","add","toUpperCase","labelAddress","labelDistance","distance","appendChild","remove","disabled","dealer","locateCurrentPosition","onGeoLookupReturn","results","status","GeocoderStatus","OK","latitude","geometry","location","lat","longitude","lng","url","$","ajax","method","beforeSend","xhr","setRequestHeader","contentType","success","response","error","e","throwError","coordinates","address","geocode","event","addListener","navigator","geolocation","getCurrentPosition","position","coords","enableHighAccuracy","timeout","maximumAge"],"sourceRoot":""}