{"version":3,"file":"webpack-chunks/chunk.scripts_components_dealers_js.099251f522a50381d489.js","mappings":"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","sources":["webpack://detroit/./scripts/components/dealers.js","webpack://detroit/./scripts/constants.js","webpack://detroit/./scripts/utils/domWrap.js","webpack://detroit/./scripts/utils/htm.js","webpack://detroit/./scripts/utils/http.js","webpack://detroit/./scripts/utils/prettifyTime.js"],"sourcesContent":["import h from '../utils/htm';\r\nimport http from '../utils/http';\r\nimport { mapURL } from '../constants';\r\nimport prettifyTime from '../utils/prettifyTime';\r\nimport { MarkerWithLabel } from '@googlemaps/markerwithlabel';\r\nimport domWrap from '../utils/domWrap';\r\nimport Mustache from 'mustache';\r\n\r\n\r\nlet locationAllowed = true;\r\nlet lastClickedMarker = null;\r\nconst\tfilters = [\r\n\t{ 'Name': 'Elite Support', fnFilter: (location) => { return location.eliteSupport === true; } },\r\n\t{ 'Name': 'Parts', fnFilter: (location) => { return location.departments.findIndex(x => x.name === 'Parts') > -1; } },\r\n\t{ 'Name': 'Service', fnFilter: (location) => { return location.departments.findIndex(x => x.name === 'Service') > -1; } },\r\n\t{ 'Name': 'Distributors', fnFilter: (location) => { return location.entityType === 'Distributor' || location.entityType === 'Distributor Branch'; } },\r\n\t{ 'Name': 'Body Shop', fnFilter: (location) => { return location.isBodyShop === true; } }\r\n],\r\nweekDays = [\r\n\t'sunday',\r\n\t'monday',\r\n\t'tuesday',\r\n\t'wednesday',\r\n\t'thursday',\r\n\t'friday',\r\n\t'saturday'\r\n],\r\ncurrentDay = (new Date()).getDay(),\r\ndayOfWeek = weekDays.find((item, index) => {\r\n\treturn index === currentDay;\r\n});\r\n\r\nconst svcGeoLocation = (function () {\r\n\r\n\tconst svcBrowser = {\r\n\t\tGetGeoLocation: () => {\r\n\t\t\treturn navigator.geolocation\r\n\t\t}\r\n\t}\r\n\r\n\tconst svcMock = {\r\n\t\tGetGeoLocation: () => {\r\n\t\t\tfunction getCurrentPosition(fn) {\r\n\t\t\t\tconst response = {\r\n\t\t\t\t\tcoords: {\r\n\t\t\t\t\t\taccuracy: 173732014426563903,\r\n\t\t\t\t\t\taltitude: null,\r\n\t\t\t\t\t\taltitudeAccuracy: null,\r\n\t\t\t\t\t\theading: null,\r\n\t\t\t\t\t\tlatitude: 35.884280,\r\n\t\t\t\t\t\tlongitude: -84.229030,\r\n\t\t\t\t\t\tspeed: null\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttimestamp: Date.now()\r\n\t\t\t\t};\r\n\t\t\t\tfn(response);\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tgetCurrentPosition\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\treturn (navigator.geolocation)\r\n\t\t? svcBrowser\r\n\t\t: svcMock\r\n})();\r\n\r\nconst svcGeoMock = {\r\n\tGetMap: () => {\r\n\r\n\t\tlet element = undefined;\r\n\r\n\t\tfunction DirectionsRenderer() { }\r\n\r\n\t\tfunction DirectionsService() { }\r\n\r\n\t\tconst event = {\r\n\t\t\taddListener: (element, trigger, fn) => {\r\n\t\t\t\tfn();\r\n\t\t\t},\r\n\t\t\ttrigger: () => { }\r\n\t\t}\r\n\r\n\t\tfunction Geocoder() {\r\n\t\t\tthis.geocode = (options, fnOnReturn) => {\r\n\t\t\t\tconst results = [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\taddress_components: [{ long_name: '', short_name: '', types: [] }],\r\n\t\t\t\t\t\tformatted_address: 'Knoxville, TN, USA',\r\n\t\t\t\t\t\tgeometry: {\r\n\t\t\t\t\t\t\tbounds: {\r\n\t\t\t\t\t\t\t\tIa: { hi: 0, lo: 0 },\r\n\t\t\t\t\t\t\t\tUa: { hi: 0, lo: 0 }\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tlocation: {\r\n\t\t\t\t\t\t\t\tlat: () => { return 35.960636; },\r\n\t\t\t\t\t\t\t\tlng: () => { return -83.920738; },\r\n\t\t\t\t\t\t\t\tlocation_type: ''\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tviewport: {\r\n\t\t\t\t\t\t\t\tIa: { hi: 0, lo: 0 },\r\n\t\t\t\t\t\t\t\tUa: { hi: 0, lo: 0 }\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplace_id: '',\r\n\t\t\t\t\t\ttypes: []\r\n\t\t\t\t\t}\r\n\t\t\t\t];\r\n\t\t\t\tconst status = 'OK';\r\n\t\t\t\tfnOnReturn(results, status);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction LatLng(lat, lng) {\r\n\t\t\tthis.lat = (lat) => { return lat; }\r\n\t\t\tthis.lng = (lng) => { return lng; }\r\n\t\t}\r\n\r\n\t\tfunction Map(elm, obj, options) {\r\n\t\t\telement = elm;\r\n\r\n\t\t\tthis.getBounds = () => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tgetNorthEast: () =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlat: () => { return 37.58852546746177; },\r\n\t\t\t\t\t\t\tlng: () => { return -81.6960077546875; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetSouthWest: () => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlat: () => { return 34.298492348992134; },\r\n\t\t\t\t\t\t\tlng: () => { return -86.1454706453125; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfunction Point(x, y) { this.x = x, this.y = y }\r\n\r\n\t\tfunction Size(height, width) { this.height = height, this.width = width }\r\n\r\n\t\treturn {\r\n\t\t\tAnimation: { BOUNCE: 1 },\r\n\t\t\tDirectionsRenderer,\r\n\t\t\tDirectionsService,\r\n\t\t\tDirectionsStatus: { OK: 'OK' },\r\n\t\t\tGeocoder,\r\n\t\t\tGeocoderStatus: { OK: 'OK' },\r\n\t\t\tevent,\r\n\t\t\tLatLng,\r\n\t\t\tMap,\r\n\t\t\tplaces: undefined,\r\n\t\t\tPoint,\r\n\t\t\tSize,\r\n\t\t\tTravelMode: { DRIVING: 'DRIVING' }\r\n\t\t};\r\n\t}\r\n};\r\n\r\nfunction filterParts(location) {\r\n\tconst index = location.departments.findIndex(x => x.Name.toLowerCase() === 'parts');\r\n\treturn index > -1;\r\n}\r\n\r\nfunction drawHours(day) {\r\n\t\r\n\tconst obj = {\r\n\t\thours: '',\t\r\n\t\tlabel: '',\r\n\t\tstatus: ''\r\n\t};\r\n\r\n\tif (day !== undefined) {\r\n\t\tif (day.status === 'Closed') {\r\n\t\t\tobj.label = obj.status = 'Closed';\r\n\t\t} else {\r\n\t\t\tobj.hours = obj.label = prettifyTime(day.text);\r\n\t\t\tobj.status = 'Open';\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj;\r\n}\r\n\r\nfunction cleanupLocations(locations = []) {\r\n\tlocations.forEach(location => setTimeout(() => location.marker.setMap(null), 20));\r\n}\r\n\r\nfunction titleCase(str) {\r\n\tstr = str.replace(/([^\\W_]+[^\\s-]*) */g, txt => txt.substr(1).length > 2 ? txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() : txt);\r\n\r\n\t// Certain minor words should be left lowercase unless \r\n\t// they are the first or last words in the string\r\n\t[\r\n\t\t'A', 'An', 'The', 'And', 'But', 'For', 'Nor', 'At', // , 'As', 'Or', 'In'\r\n\t\t'By', 'For', 'From', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'\r\n\t].forEach(lower => str = str.replace(new RegExp('\\\\s' + lower+ '\\\\s', 'ig'), txt => txt.toLowerCase()));\r\n\r\n\t// Certain words such as initialisms or acronyms should be left uppercase\r\n\t[\r\n\t\t'Id', 'Tv'\r\n\t].forEach(upper => str = str.replace(new RegExp('\\\\b' + upper + '\\\\b', 'g'),upper.toUpperCase()));\r\n\t\r\n\treturn str;\r\n}\r\n\r\nfunction getPolyCoords(legs, coordAccuracy) {\r\n\tvar polyCoords = [],\r\n\t\tskippedCoords = 0;\r\n\tlegs.forEach(function(leg) {\r\n\t\tleg.steps.forEach(function(step) {\r\n\t\t\tstep.path.forEach(function(nextSegment) {\r\n\t\t\t\tif (skippedCoords < coordAccuracy) {\r\n\t\t\t\t\tskippedCoords += 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpolyCoords.push([nextSegment.lat(), nextSegment.lng()]);\r\n\t\t\t\t\tskippedCoords = 0;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\treturn polyCoords;\r\n}\r\n\r\nfunction getDistance(lat1, lon1, lat2, lon2) {\r\n\tvar R = 6371; // Radius of the earth in km\r\n\tvar dLat = deg2rad(lat2 - lat1); // deg2rad below\r\n\tvar dLon = deg2rad(lon2 - lon1);\r\n\tvar a =\r\n\t\tMath.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n\t\tMath.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *\r\n\t\tMath.sin(dLon / 2) * Math.sin(dLon / 2);\r\n\tvar c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n\tvar d = R * c; // Distance in km\r\n\treturn d * 0.621371; // Return miles\r\n}\r\n\r\nfunction deg2rad(deg) {\r\n\treturn deg * (Math.PI / 180)\r\n}\r\n\r\nfunction hashCode(code) {\r\n\tvar hash = 0;\r\n\tif (code.length == 0) return hash;\r\n\tfor (var i = 0; i < code.length; i++) {\r\n\t\tvar char = code.charCodeAt(i);\r\n\t\thash = ((hash << 5) - hash) + char;\r\n\t\thash = hash & hash; // Convert to 32bit integer\r\n\t}\r\n\treturn hash;\r\n}\r\n\r\nexport default async dealers => {\r\n\tconst { default: _ } = await import('lodash'),\r\n\t\t{ default: MapsLoader } = await import('load-google-maps-api'),\r\n\t\tMaps = await MapsLoader({ v: '3.30', key: 'AIzaSyDaQ_hqfOHLci8Vzk7nr5Gis02IhJvEd4U', libraries: ['places'] }),\r\n\t\tdealersElement = domWrap(dealers),\r\n\t\tfiltersElement = domWrap(dealersElement.querySelector('[filters]')),\r\n\t\tlistContainer = dealersElement.querySelector('[list]'),\r\n\t\ttabs = [],\r\n\t\tdetailsPopup = document.getElementById('details-popup'),\r\n\t\tpopupBody = document.getElementById('popup-body'),\r\n\t\tpopupTemplate = dealers.querySelector('[data-target=\"[TEMPLATE-DETAILS]\"]');\r\n\tlet accuracy = 10,\r\n\t\tcurrentLocation = {},\r\n\t\tgeo = new Maps.Geocoder(),\r\n\t\tdirectionsService = new Maps.DirectionsService(),\r\n\t\tdirectionsDisplay = new Maps.DirectionsRenderer(),\r\n\t\tlocations,\r\n\t\tmap,\r\n\t\tpendingCall = getListings().catch(()=>{}),\r\n\t\tdataCach = {},\r\n\t\tisFullScreen = () => dealersElement.classList.contains('fullscreen'),\r\n\t\tgetListingsUrl = dealersElement.getAttribute('getlistings'),\r\n\t\troot = dealersElement.getAttribute('root') || '',\r\n\t\tgetOptions = function() {\r\n\t\t\treturn isFullScreen() ?\r\n\t\t\t\t{\r\n\t\t\t\t\tzoom: 10\r\n\t\t\t\t\t, mapTypeControl: false\r\n\t\t\t\t\t, streetViewControl: false\r\n\t\t\t\t\t, scrollwheel: false\r\n\t\t\t\t\t, draggable: true\r\n\t\t\t\t} :\r\n\t\t\t\t{\r\n\t\t\t\t\tzoom: 8\r\n\t\t\t\t\t, mapTypeControl: false\r\n\t\t\t\t\t, streetViewControl: false\r\n\t\t\t\t\t, scrollwheel: false\r\n\t\t\t\t\t, draggable: true\r\n\t\t\t\t};\r\n\t\t},\r\n\t\tlastZ = 100;\r\n\r\n\tconst _emptyDepartment = {\r\n\t\tfax: '',\r\n\t\tphone: '',\r\n\t\tschedule: {\r\n\t\t\tsunday: drawHours(undefined),\r\n\t\t\tmonday: drawHours(undefined),\r\n\t\t\ttuesday: drawHours(undefined),\r\n\t\t\twednesday: drawHours(undefined),\r\n\t\t\tthursday: drawHours(undefined),\r\n\t\t\tfriday: drawHours(undefined),\r\n\t\t\tsaturday: drawHours(undefined)\r\n\t\t},\r\n\t\ttoday: drawHours(undefined)\r\n\t};\r\n\r\n\tfiltersElement.innerHTML = filters.reduce(function(str, cur, key) {\r\n\t\treturn str + h('div class=\"filter\" data-filter=\"' + cur.Name + '\"', h('span', cur.Name));\r\n\t}, '');\r\n\r\n\tdealersElement.on('click', '[filters-toggle]', function () {\r\n\t\tif (!this.classList.contains('open')) {\r\n\t\t\tthis.classList.add('open');\r\n\t\t\tfiltersElement.style.display = 'flex';\r\n\t\t} else {\r\n\t\t\tthis.classList.remove('open');\r\n\t\t\tfiltersElement.style.display = 'none';\r\n\t\t}\r\n\t});\r\n\r\n\tdealersElement.on('click', '[filters] > .filter', function() {\r\n\t\tvar btn = this,\r\n\t\t\tkey = btn.getAttribute('data-filter'),\r\n\t\t\titem = filters.find(function(itm) { return itm.Name === key; }),\r\n\t\t\tcount;\r\n\r\n\t\tif (item.selected) {\r\n\t\t\titem.selected = false;\r\n\t\t\tbtn.classList.remove('selected');\r\n\t\t}\r\n\t\telse {\r\n\t\t\titem.selected = true;\r\n\t\t\tbtn.classList.add('selected');\r\n\t\t}\r\n\r\n\t\tcount = dealersElement.querySelectorAll('[filters] > .selected').length;\r\n\r\n\t\tdealersElement.querySelector('[filters-toggle] > span').innerHTML = count > 0\r\n\t\t\t? ' (' + count + ')'\r\n\t\t\t: '';\r\n\r\n\t\tdrawLocations({ container: dealersElement.querySelector('[list]'), locations, map, root });\r\n\t});\r\n\r\n\tdealersElement.on('click', 'button[search]', function (e) {\r\n\t\tif (e.isTrusted) {\r\n\t\t\tlocationAllowed = true;\r\n\t\t}\r\n\t\tsearch(e)\r\n\t});\r\n\tdealersElement.on('keypress', 'input[name=\"location\"]', function(e) {\r\n\t\tif (e.which == 13) {\r\n\t\t\tlocationAllowed = true;\r\n\t\t\tsearch(e);\r\n\t\t}\r\n\t});\r\n\r\n\tdealersElement.on('click', 'button[route]', route);\r\n\tdealersElement.on('keypress', 'input[name=\"start\"], input[name=\"end\"]', function(e) {\r\n\t\tif (e.which == 13) {\r\n\t\t\troute(e);\r\n\t\t}\r\n\t});\r\n\r\n\tdealersElement.on('click', 'button[geo]', function() {\r\n\t\tvar geo = this;\r\n\t\tfillGeo(this.parentNode.querySelector('input[type=\"text\"]'))\r\n\t\t\t.then(function () {\r\n\r\n\t\t\t\tconst alias = geo.getAttribute('data-button');\r\n\r\n\t\t\t\tif (alias === null) {\r\n\t\t\t\t\tconsole.error('A alias could not be found');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst btn = dealersElement.querySelector(`button[${alias}]`);\r\n\r\n\t\t\t\tif (btn === null) {\r\n\t\t\t\t\tconsole.error(`The button [${alias}] could not be found`);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tdomWrap(btn).trigger('click');\r\n\t\t});\r\n\t});\r\n\r\n\tdealersElement.on('click', '.dealer-pin-icon', function () {\r\n\t\tconst markerIndex = this.getAttribute('data-marker-index');\r\n\t\tconst visibleIndex = this.getAttribute('data-marker-visible-index')\r\n\t\tif (markerIndex !== null && locations[markerIndex]) {\r\n\t\t\tconst marker = locations[markerIndex].marker;\r\n\r\n\t\t\tif (lastClickedMarker && lastClickedMarker !== marker) {\r\n\t\t\t\tif (lastClickedMarker.originalIcon) {\r\n\t\t\t\t\tlastClickedMarker.setIcon(lastClickedMarker.originalIcon);\r\n\r\n\t\t\t\t\tconst prevVisibleIndex = lastClickedMarker.visibleIndex;\r\n\r\n\t\t\t\t\tlastClickedMarker.set('labelClass', 'marker-label high-z-label');\r\n\t\t\t\t\tlastClickedMarker.set('labelContent', prevVisibleIndex);\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif (lastClickedMarker.label && lastClickedMarker.label.div) {\r\n\t\t\t\t\t\t\tlastClickedMarker.label.div.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t\t} else if (marker.labelDiv) {\r\n\t\t\t\t\t\t\tlastClickedMarker.labelDiv.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdocument.querySelectorAll('.high-z-label').forEach(el => {\r\n\t\t\t\t\t\t\t\tel.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 50);\r\n\r\n\t\t\t\t\tconst currentMap = lastClickedMarker.getMap();\r\n\t\t\t\t\tif (currentMap) {\r\n\t\t\t\t\t\tconst currentZIndex = lastClickedMarker.zIndex || 0;\r\n\t\t\t\t\t\tlastClickedMarker.setMap(null);\r\n\t\t\t\t\t\tlastClickedMarker.setMap(currentMap);\r\n\t\t\t\t\t\tlastClickedMarker.zIndex = currentZIndex; // Preserve z-index\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Now process the newly clicked marker\r\n\t\t\tlastZ += 1;\r\n\t\t\tmarker.zIndex = lastZ;\r\n\r\n\t\t\t// Store the visible index for later restoration\r\n\t\t\tmarker.visibleIndex = visibleIndex;\r\n\r\n\t\t\t// Store original icon if not already stored\r\n\t\t\tif (!marker.originalIcon) {\r\n\t\t\t\tmarker.originalIcon = marker.getIcon();\r\n\t\t\t}\r\n\r\n\t\t\tconst currentIcon = marker.getIcon();\r\n\t\t\tconst iconUrl = (typeof currentIcon === 'string') ? currentIcon : currentIcon.url;\r\n\r\n\t\t\tconst img = new Image();\r\n\t\t\timg.crossOrigin = \"Anonymous\";\r\n\t\t\timg.onload = function () {\r\n\t\t\t\tconst canvas = document.createElement('canvas');\r\n\t\t\t\tcanvas.width = img.width;\r\n\t\t\t\tcanvas.height = img.height;\r\n\t\t\t\tconst ctx = canvas.getContext('2d');\r\n\r\n\t\t\t\tctx.drawImage(img, 0, 0);\r\n\r\n\t\t\t\tconst imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n\t\t\t\tconst data = imageData.data;\r\n\r\n\t\t\t\t// Loop through each pixel\r\n\t\t\t\tfor (let i = 0; i < data.length; i += 4) {\r\n\t\t\t\t\tconst red = data[i];\r\n\t\t\t\t\tconst green = data[i + 1];\r\n\t\t\t\t\tconst blue = data[i + 2];\r\n\r\n\t\t\t\t\t// RGB values all close to 255 indicate white\r\n\t\t\t\t\tif (red > 240 && green > 240 && blue > 240) {\r\n\t\t\t\t\t\t// Keep white pixels as they are\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t} else if (data[i + 3] > 0) {\r\n\t\t\t\t\t\tdata[i] = 0;\r\n\t\t\t\t\t\tdata[i + 1] = 0;\r\n\t\t\t\t\t\tdata[i + 2] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tctx.putImageData(imageData, 0, 0);\r\n\r\n\t\t\t\tconst modifiedIconUrl = canvas.toDataURL();\r\n\t\t\t\tmarker.setIcon({\r\n\t\t\t\t\turl: modifiedIconUrl,\r\n\t\t\t\t\tscaledSize: currentIcon.scaledSize,\r\n\t\t\t\t\tsize: currentIcon.size,\r\n\t\t\t\t\torigin: currentIcon.origin,\r\n\t\t\t\t\tanchor: currentIcon.anchor\r\n\t\t\t\t});\r\n\r\n\t\t\t\tmarker.set('labelContent', visibleIndex.toString());\r\n\t\t\t\tmarker.set('labelClass', 'marker-label !tw-text-black high-z-label');\r\n\t\t\t\tmarker.set('labelInBackground', false);\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (marker.label && marker.label.div) {\r\n\t\t\t\t\t\tmarker.label.div.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t} else if (marker.labelDiv) {\r\n\t\t\t\t\t\tmarker.labelDiv.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.querySelectorAll('.high-z-label').forEach(el => {\r\n\t\t\t\t\t\t\tel.style.zIndex = (lastZ + 1).toString();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50);\r\n\r\n\t\t\t\tlastClickedMarker = marker;\r\n\t\t\t};\r\n\t\t\timg.src = iconUrl;\r\n\t\t}\r\n\t});\r\n\tdealersElement.on('click', 'div[close]', function() {\r\n\t\t// TODO Needs rewrite. Could cause side effects.\r\n\t\t[...document.querySelectorAll('[selected]')].forEach(element => element.innerHTML = '');\r\n\t})\r\n\r\n\tdealersElement.on('click', '#btnXLMap', function () {\r\n\t\ttoggleFullScreen();\r\n\t});\r\n\r\n\tdealersElement.on('click', '#btnReduceMap', function () {\t\t\r\n\t\ttoggleFullScreen();\r\n\t});\r\n\r\n\tdealersElement.on('click', '.expandible .default', function() {\r\n\t\tthis.classList.toggle('detail');\r\n\t\tdomWrap(this.closest('.expandible')?.querySelector('.extended')).classList.toggle('expanded');\r\n\t});\r\n\r\n\tdealersElement.on('click', 'button.details', function() {\r\n\t\tif (isFullScreen()) {\r\n\t\t\tdomWrap(this.closest('.location')?.querySelector('header h2 a')).trigger('click');\r\n\t\t} else {\r\n\t\t\tthis.classList.toggle('detail');\r\n\t\t\tdomWrap(this.closest('.location')?.querySelector('div.details')).classList.toggle('expanded');\r\n\t\t}\r\n\t});\r\n\r\n\tdealersElement\r\n\t\t.on('mouseenter','.location',function() {\r\n\t\t\tconst marker = locations[this.getAttribute('data-index')].marker;\r\n\t\t\tlastZ += 1;\r\n\t\t\tmarker.zIndex = lastZ;\r\n\t\t\tmarker.setMap(map);\r\n\t\t\tmarker.setAnimation(Maps.Animation.BOUNCE);\r\n\t\t\tsetTimeout(() => marker.setAnimation(null), 500);\r\n\t\t})\r\n\t\t.on('mouseleave','.location', function() {\r\n\t\t\tlocations[this.getAttribute('data-index')].marker.setAnimation(null);\r\n\t\t});\r\n\r\n\tdealersElement.on('click', '#btn-popup', () => {\r\n\r\n\t\tif (isFullScreen()) {\r\n\t\t\tdetailsPopup.style.display = 'none';\r\n\t\t\tdetailsPopup.classList.remove('tw-popup-open');\t\t\t\r\n\t\t} else {\r\n\t\t\tdetailsPopup.classList.remove('tw-popup-open');\r\n\t\t\tsetTimeout(() => { detailsPopup.style.display = 'none'; }, 1000);\r\n\t\t}\r\n\t});\r\n\r\n\t[...dealersElement.querySelectorAll('input[name=\"location\"],input[name=\"start\"],input[name=\"end\"]')].forEach(element => {\r\n\t\tif(Maps.places)\r\n\t\t\tnew Maps.places.Autocomplete(element, { types: ['geocode'] });\r\n\t});\r\n\t\r\n\t[...dealersElement.querySelectorAll('[tab]')].forEach(button => {\r\n\t\tconst target = button.getAttribute('data-target');\r\n\t\tif (target !== null) {\r\n\t\t\tconst section = document.getElementById(target);\r\n\t\t\tif (section !== null) {\r\n\t\t\t\tconst tab = {\r\n\t\t\t\t\tid: target,\r\n\t\t\t\t\tbutton,\r\n\t\t\t\t\tcontainer: section\r\n\t\t\t\t};\r\n\t\t\t\ttabs.push(tab);\r\n\r\n\t\t\t\tbutton.onclick = () => {\r\n\t\t\t\t\tfor (let i = 0, l = tabs.length; i < l; i++) {\r\n\t\t\t\t\t\tif (tabs[i].id === tab.id) {\r\n\t\t\t\t\t\t\ttabs[i].button.classList.add('selected');\r\n\t\t\t\t\t\t\ttabs[i].container.style.display = 'block';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttabs[i].button.classList.remove('selected');\r\n\t\t\t\t\t\t\ttabs[i].container.style.display = 'none';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t});\r\n\r\n\tsetMap();\r\n\r\n\tfunction drawLocations({ container, locations, map, root = '' }) {\r\n\t\tconst selectedFilters = filters.filter((x) => x.selected);\r\n\r\n\t\tconst filteredLocations = locations.filter((location) => {\r\n\t\t\treturn !selectedFilters.find((filter) => {\r\n\t\t\t\treturn !filter.fnFilter(location);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tpopulateHeader(filteredLocations.length);\r\n\r\n\t\tpopulateListings(filteredLocations, selectedFilters, map);\r\n\t}\r\n\tfunction fillGeo(el) {\r\n\t\tconst parent = el.parentNode;\r\n\t\tfunction cancel() {\r\n\t\t\tel.classList.remove('loading-location')\r\n\t\t\tel.removeEventListener('click', cancel);\r\n\t\t}\r\n\r\n\t\tif (parent.classList.contains('loading-location')) {\r\n\t\t\treturn new Promise((resolve, reject) => reject());\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tparent.classList.add('loading-location');\r\n\t\t\tparent.classList.remove('fallback');\r\n\t\t\tparent.addEventListener('click', cancel);\r\n\r\n\t\t\tsvcGeoLocation.GetGeoLocation().getCurrentPosition(position => {\r\n\t\t\t\tif (!parent.classList.contains('loading-location'))\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\tgeo.geocode(\r\n\t\t\t\t\t{ 'location': { lat: position.coords.latitude, lng: position.coords.longitude } },\r\n\t\t\t\t\tfunction (results, status) {\r\n\t\t\t\t\t\tif (!parent.classList.contains('loading-location'))\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\tif (status === Maps.GeocoderStatus.OK) {\r\n\t\t\t\t\t\t\tif (results[0]) {\r\n\t\t\t\t\t\t\t\tel.value = results[0].formatted_address;\r\n\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treject();\r\n\t\t\t\t\t\t\t\tconsole.info('No results found');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treject();\r\n\t\t\t\t\t\t\tconsole.info('Geocoder failed due to: ' + status);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tparent.classList.remove('fallback')\r\n\t\t\t\t\t\tparent.classList.remove('loading-location')\r\n\t\t\t\t\t\tparent.removeEventListener('click', cancel);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}, PosError => {\r\n\t\t\t\tconsole.log(PosError);\r\n\t\t\t\tlocationAllowed = false;\r\n\t\t\t\tgeoFallback(el).then(resolve).catch(reject);\r\n\t\t\t\tparent.classList.add('fallback')\r\n\t\t\t\tparent.removeEventListener('click', cancel);\r\n\t\t\t}, { enableHighAccuracy: true, maximumAge: 10000, timeout: navigator.userAgent.toLowerCase().indexOf(\"android\") > -1 ? 15000 : 5000 });\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getListings(opt, dataCach, url) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!opt) {\r\n\t\t\t\treject();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst hash = hashCode(JSON.stringify(opt));\r\n\t\t\topt.type = 'DET';\r\n\t\t\tif (dataCach[hash]) {\r\n\t\t\t\tresolve(dataCach[hash]);\r\n\t\t\t} else {\r\n\t\t\t\thttp(url).get(opt).then(data => {\r\n\t\t\t\t\tdataCach[hash] = data;\r\n\t\t\t\t\tresolve(data);\r\n\t\t\t\t}).catch(reject);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction geoFallback(el) {\r\n\t\tconst parent = el.parentNode;\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (parent.classList.contains('loading-location') || el.value === '') {\r\n\t\t\t\thttp('https://api.ipstack.com/check?access_key=7652d0f71a5071a6044703dc68df0d05&output=json&legacy=1')\r\n\t\t\t\t\t.get()\r\n\t\t\t\t\t.then(data => {\r\n\t\t\t\t\t\tif (data.city && data.region_code) {\r\n\t\t\t\t\t\t\tel.value = data.city + ', ' + data.region_code;\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\treject();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tparent.classList.remove('loading-location');\r\n\t\t\t\t\t}).catch(() => {\r\n\t\t\t\t\t\treject();\r\n\t\t\t\t\t\tparent.classList.remove('loading-location');\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getDepartmentLookup(departments) {\r\n\t\tconst collection = {};\r\n\r\n\t\tfor (let i = 0, l = departments.length; i < l; i++) {\r\n\r\n\t\t\tconst key = _.kebabCase(departments[i].type);\r\n\r\n\t\t\tconst today = drawHours(departments[i].schedule[dayOfWeek]);\r\n\t\t\ttoday.status = `${today.status} Today`;\r\n\r\n\t\t\tcollection[key] = {\r\n\t\t\t\tfax: departments[i].fax,\r\n\t\t\t\tphone: departments[i].phone,\r\n\t\t\t\tschedule: {\r\n\t\t\t\t\tsunday: drawHours(departments[i].schedule.sunday),\r\n\t\t\t\t\tmonday: drawHours(departments[i].schedule.monday),\r\n\t\t\t\t\ttuesday: drawHours(departments[i].schedule.tuesday),\r\n\t\t\t\t\twednesday: drawHours(departments[i].schedule.wednesday),\r\n\t\t\t\t\tthursday: drawHours(departments[i].schedule.thursday),\r\n\t\t\t\t\tfriday: drawHours(departments[i].schedule.friday),\r\n\t\t\t\t\tsaturday: drawHours(departments[i].schedule.saturday)\r\n\t\t\t\t},\r\n\t\t\t\ttoday\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn collection;\r\n\t}\r\n\r\n\tfunction getLocation(item, visibleIndex) {\r\n\t\t\r\n\t\tconst encodedUrl = encodeURIComponent\r\n\t\t\t(`${item.address},${item.city},${item.state},${item.zip}`);\r\n\r\n\t\tconst mapLink = `${mapURL}${encodedUrl}`;\r\n\t\t\r\n\t\tconst isLocationOpen = isOpen(item);\r\n\t\t\r\n\t\tconst address = titleCase\r\n\t\t\t(`${item.address}, ${item.city}, ${item.state} ${item.zip}`);\r\n\r\n\t\tconst departments = getDepartmentLookup(item.departments);\r\n\t\t\r\n\t\tconst showParts = departments['parts'] !== undefined;\r\n\r\n\t\tconst parts = showParts ? departments['parts'] : _emptyDepartment;\r\n\r\n\t\tconst showSales = departments['sales'] !== undefined;\r\n\r\n\t\tconst sales = showSales ? departments['sales'] : _emptyDepartment;\r\n\r\n\t\tconst showService = departments['service'] !== undefined;\r\n\r\n\t\tconst service = showService ? departments['service'] : _emptyDepartment;\r\n\t\t\r\n\t\tconst fullServiceList = item.services\r\n\t\t\t.concat(item.amenitiesList)\r\n\t\t\t.concat(item.productList)\r\n\t\t\t.sort()\r\n\t\t\t.map((x) => ' ' + x);\r\n\t\t\r\n\t\tconst prepend = {\r\n\t\t\taddressDisplay: address,\r\n\t\t\tdealerUrl: `/dealer/${item.code}`,\r\n\t\t\tisClosed: !isLocationOpen,\r\n\t\t\tisOpen: isLocationOpen,\r\n\t\t\tmapLink,\r\n\t\t\tparts,\r\n\t\t\tsales,\r\n\t\t\tservice,\r\n\t\t\tserviceList: fullServiceList.toString(),\r\n\t\t\tshowDetails: !item.isInternational,\r\n\t\t\tshowDirections: !item.isInternational,\r\n\t\t\tshowDistance: !item.isInternational,\r\n\t\t\tshowParts,\r\n\t\t\tshowSales,\r\n\t\t\tshowService,\r\n\t\t\tshowWebsite: item.website !== undefined,\r\n\t\t\tvisibleIndex\r\n\t\t}\r\n\t\t\r\n\t\tconst copy = Object.assign(item, prepend);\r\n\r\n\t\treturn copy;\r\n\t}\r\n\r\n\tfunction getMapListings(listings, selectedFilters, map) {\r\n\t\tconst mapListings = [];\r\n\r\n\t\tconst sortedListings = listings\r\n\t\t\t.sort((x, y) => x.distance - y.distance);\r\n\r\n\t\tfor (let i = 0; i < sortedListings.length; i++) {\r\n\r\n\t\t\tconst visibleIndex = i + 1;\r\n\r\n\t\t\tconst location = getLocation(sortedListings[i], visibleIndex);\t\t\t\r\n\r\n\t\t\tlocation.marker.label.set('labelContent', visibleIndex);\r\n\t\t\tlocation.marker.label.labelDiv.textContent = visibleIndex;\r\n\t\t\tlocation.marker.setMap(map);\r\n\r\n\t\t\tmapListings.push(location);\r\n\t\t}\r\n\r\n\t\treturn mapListings;\r\n\t}\r\n\r\n\tfunction inputAlert(elements) {\t\t\r\n\t\tsetBorderColor(elements, 'red');\r\n\r\n\t\tsetTimeout(() => { setBorderColor(elements, 'transparent'); }, 1000);\r\n\t}\r\n\r\n\tfunction loading(el) { }\t\t\r\n\r\n\tfunction isOpen(location) {\r\n\t\tfor (let i = 0, l = location.departments.length; i < l; i++) {\r\n\t\t\tconst dep = location.departments[i];\r\n\t\t\tconst minutesSinceMidnightGMT = Math.round(((new Date()).getTime() - (new Date()).setHours(0, 0, 0, 0)) / 60000) + (new Date()).getTimezoneOffset();\r\n\t\t\tconst isLocationOpen = dep.schedule[dayOfWeek].status === 'Closed'\r\n\t\t\t\t? false\r\n\t\t\t\t: dep.schedule[dayOfWeek].status === 'AllDay'\r\n\t\t\t\t|| dep.schedule[dayOfWeek].open <= minutesSinceMidnightGMT && dep.schedule[dayOfWeek].close >= minutesSinceMidnightGMT;\r\n\r\n\t\t\tif (isLocationOpen)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tfunction locationInit(item, index) {\r\n\t\titem.marker = makeMarker(item);\r\n\t\titem.index = index;\r\n\r\n\t\tif (item.marker !== undefined) {\r\n\t\t\titem.marker.addListener('click', function () {\r\n\t\t\t\tconst location = getLocation(item, 0);\r\n\t\t\t\tpopulateDetails(location)\r\n\t\t\t});\r\n\r\n\t\t\tif (item.marker.getMap() !== map) {\r\n\t\t\t\titem.marker.setMap(map);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\titem.distance = Math.round(getDistance(item.latitude, item.longitude, currentLocation.lat(), currentLocation.lng()));\r\n\r\n\t\tif (item.entityType.indexOf('Distributor') > -1) {\r\n\t\t\titem['Distributor'] = true;\r\n\t\t}\r\n\r\n\t\titem.departments.forEach(function (dep) {\r\n\t\t\tif (!item.Distributor) {\r\n\t\t\t\titem[dep.type] = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn item;\r\n\t}\r\n\r\n\tfunction makeMarker(item) {\r\n\t\tlastZ += 1;\r\n\r\n\t\tconst iconConfig = {\r\n\t\t\turl: '/images/map-pin.png',\r\n\t\t\tsize: new Maps.Size(42, 68),\r\n\t\t\torigin: new Maps.Point(0, 0),\r\n\t\t\tanchor: new Maps.Point(15, 49),\r\n\t\t\tscaledSize: new Maps.Size(30, 49)\r\n\t\t};\r\n\r\n\t\tconst markerOptions = {\r\n\t\t\tposition: new Maps.LatLng(item.latitude, item.longitude),\r\n\t\t\ttitle: item.name,\r\n\t\t\tzIndex: lastZ,\r\n\t\t\tdraggable: false,\r\n\t\t\tclickable: true,\r\n\t\t\tlabelContent: '',\r\n\t\t\tlabelAnchor: new Maps.Point(-15, -40),\r\n\t\t\tlabelClass: 'marker-label', // the CSS class for the label\r\n\t\t\tlabelInBackground: false,\r\n\t\t\ticon: iconConfig\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\tconst marker = new MarkerWithLabel(markerOptions);\r\n\t\t\tmarker.originalIcon = { ...iconConfig };\r\n\t\t\treturn marker;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tconsole.log('Error: ', e);\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction populateDetails(location) {\r\n\t\t\r\n\t\tpopupBody.innerHTML = Mustache.render(popupTemplate.innerHTML, location);\r\n\r\n\t\tdetailsPopup.style.display = 'block';\r\n\t\tsetTimeout(() => { detailsPopup.classList.add('tw-popup-open'); }, 1);\r\n\r\n\t\t[...popupBody.querySelectorAll('[data-toggleHours]')].forEach((element) => {\r\n\r\n\t\t\tconst targetAlias = element.getAttribute('data-toggleHours');\r\n\r\n\t\t\tif (targetAlias === null) {\r\n\t\t\t\tconsole.error('A target alias could not be found');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst target = document.getElementById(targetAlias);\r\n\r\n\t\t\tif (target === null) {\r\n\t\t\t\tconsole.error(`The target ${targetAlias} could not be found`);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\telement.onclick = () => {\r\n\t\t\t\tif (element.classList.contains('tw-icon-after-rotate')){\r\n\t\t\t\t\telement.classList.remove('tw-icon-after-rotate');\r\n\t\t\t\t\ttarget.style.display = 'none';\r\n\t\t\t\t} else {\r\n\t\t\t\t\telement.classList.add('tw-icon-after-rotate');\r\n\t\t\t\t\ttarget.style.display = 'block';\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\r\n\tfunction populateHeader(count) {\r\n\t\tconst template = dealers.querySelector('[data-target=\"[TEMPLATE-LISTING-HEADER]\"]');\r\n\t\tconst targets = dealers.querySelectorAll('[data-target=\"[LISTING-HEADER]\"]');\r\n\r\n\t\tconst loadingTemplate = dealers.querySelector('[data-target=\"[TEMPLATE-LISTING-LOADING]\"')\r\n\t\tconst loadingTarget = dealers.querySelector('[data-target=\"[LISTING-LOADING]\"')\r\n\r\n\t\tlet locationSummary = `${count} Location`;\r\n\r\n\t\tif (count > 1)\r\n\t\t\tlocationSummary += 's';\r\n\r\n\t\tlocationSummary += ' Found';\r\n\r\n\t\tconst model = {\r\n\t\t\tlocationsFound: locationSummary,\r\n\t\t\tshowLocationsFound: count > 0,\r\n\t\t\tshowNoLocationsFound: count === 0\r\n\t\t};\r\n\r\n\t\tconst loadingModel = {\r\n\t\t\tshowLocationsFound: count > 0,\r\n\t\t\tshowNoLocationsFound: count === 0 && locationAllowed,\r\n\t\t\tlocationDisabled: !locationAllowed && count === 0\r\n\t\t}\r\n\r\n\t\ttargets.forEach((target) => \r\n\t\t\t{target.innerHTML = Mustache.render(template.innerHTML, model)}\r\n\t\t)\r\n\t\tloadingTarget.innerHTML = Mustache.render(loadingTemplate.innerHTML, loadingModel)\r\n\t}\r\n\r\n\tfunction populateListings(listings, selectedFilters, map) {\r\n\r\n\t\tconst template = dealers.querySelector('[data-target=\"[TEMPLATE-LISTINGS]\"]');\r\n\r\n\t\tconst mapListings = getMapListings(listings, selectedFilters, map);\r\n\t\t\r\n\t\tlistContainer.innerHTML = Mustache.render(template.innerHTML, { listings: mapListings });\r\n\r\n\t\tmapListings.forEach(location => {\t\t\r\n\t\t\t\r\n\t\t\tconst btnDetails = listContainer.querySelector(`[data-details=\"details-${location.index}\"]`);\r\n\t\t\t\r\n\t\t\tif (btnDetails !== null)\r\n\t\t\t\tbtnDetails.onclick = () => { populateDetails(location); };\t\t\t\r\n\t\t});\r\n\t}\t\t\t\r\n\r\n\tfunction route() {\r\n\t\tvar boxes = [\r\n\t\t\tdocument.getElementById('txtStart'),\r\n\t\t\tdocument.getElementById('txtEnd')\r\n\t\t],\r\n\t\t\taddrFrom = (dealersElement.querySelector('input[name=\"start\"]')?.value || '').trim(),\r\n\t\t\taddrTo = (dealersElement.querySelector('input[name=\"end\"]')?.value || '').trim();\r\n\t\tif (addrFrom.length > 1 && addrTo.length > 1) {\r\n\t\t\tloading(listContainer);\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: addrFrom,\r\n\t\t\t\tdestination: addrTo,\r\n\t\t\t\ttravelMode: Maps.TravelMode.DRIVING\r\n\t\t\t}, function (result, status) {\r\n\t\t\t\tvar polyCoords;\r\n\t\t\t\tif (status == Maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tpolyCoords = getPolyCoords(result.routes[0].legs, (accuracy / 2) * 28);\r\n\t\t\t\t\tcurrentLocation = result.routes[0].legs[0].start_location;\r\n\r\n\t\t\t\t\tmap = new Maps.Map(dealersElement.querySelector(\"[map]\"), getOptions());\r\n\t\t\t\t\tdirectionsDisplay.setMap(map);\r\n\t\t\t\t\tdirectionsDisplay.setOptions({ suppressMarkers: true });\r\n\t\t\t\t\tdirectionsDisplay.setDirections(result);\r\n\t\t\t\t\tMaps.event.addListener(map, 'bounds_changed', _.throttle(function (event) {\r\n\t\t\t\t\t\tvar bounds = map.getBounds(),\r\n\t\t\t\t\t\t\tne = bounds.getNorthEast(),\r\n\t\t\t\t\t\t\tsw = bounds.getSouthWest();\r\n\r\n\t\t\t\t\t\tpendingCall = getListings({\r\n\t\t\t\t\t\t\tnorth: ne.lat(),\r\n\t\t\t\t\t\t\tsouth: sw.lat(),\r\n\t\t\t\t\t\t\teast: ne.lng(),\r\n\t\t\t\t\t\t\twest: sw.lng()\r\n\t\t\t\t\t\t}, dataCach, getListingsUrl).then(function (data) {\r\n\t\t\t\t\t\t\tcleanupLocations(locations);\r\n\t\t\t\t\t\t\tlocations = data.filter(function (item) {\r\n\t\t\t\t\t\t\t\treturn polyCoords.find(function (coord) {\r\n\t\t\t\t\t\t\t\t\treturn getDistance(coord[0], coord[1], item.latitude, item.longitude) < accuracy;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}).map((item, index) => locationInit(item, index));\r\n\t\t\t\t\t\t\tdrawLocations({ container: dealersElement.querySelector('[list]'), locations, map, root });\r\n\t\t\t\t\t\t}).catch(() => { });\r\n\t\t\t\t\t}, 500, { 'leading': false }));\r\n\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tconsole.info(\"Directions was not successful for the following reason: \" + status);\r\n\t\t\t\t\tinputAlert(boxes);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (addrFrom.length < 2) {\r\n\t\t\t\tinputAlert([boxes[0]]);\r\n\t\t\t}\r\n\t\t\tif (addrTo.length < 2) {\r\n\t\t\t\tinputAlert([boxes[1]]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction search(e) {\r\n\t\tconst tab = dealersElement.querySelector('[data-target=\"location\"]');\r\n\t\tconst addr = (dealersElement.querySelector('input[name=\"location\"]')?.value || '').trim();\r\n\r\n\r\n\t\tif (addr.length > 1) {\r\n\t\t\tloading(listContainer);\r\n\r\n\t\t\tgeo.geocode({ 'address': addr }, (results, status) => {\r\n\t\t\t\tif (status === Maps.GeocoderStatus.OK) {\r\n\t\t\t\t\tcurrentLocation = results[0].geometry.location;\r\n\t\t\t\t\tmap = new Maps.Map(dealersElement.querySelector(\"[map]\"), Object.assign({\r\n\t\t\t\t\t\tcenter: results[0].geometry.location\r\n\t\t\t\t\t}, getOptions()));\r\n\t\t\t\t\tMaps.event.addListener(map, 'bounds_changed', _.throttle(() => {\r\n\t\t\t\t\t\tconst bounds = map.getBounds();\r\n\t\t\t\t\t\tconst ne = bounds.getNorthEast();\r\n\t\t\t\t\t\tconst sw = bounds.getSouthWest();\r\n\t\t\t\t\t\tconst location = {\r\n\t\t\t\t\t\t\tnorth: ne.lat(),\r\n\t\t\t\t\t\t\tsouth: sw.lat(),\r\n\t\t\t\t\t\t\teast: ne.lng(),\r\n\t\t\t\t\t\t\twest: sw.lng()\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tpendingCall = getListings(location, dataCach, getListingsUrl)\r\n\t\t\t\t\t\t\t.then(data => {\r\n\t\t\t\t\t\t\t\tcleanupLocations(locations);\r\n\t\t\t\t\t\t\t\tlocations = data.map((item, index) => locationInit(item, index));\r\n\t\t\t\t\t\t\t\tdrawLocations({\r\n\t\t\t\t\t\t\t\t\tcontainer: dealersElement.querySelector('[list]'),\r\n\t\t\t\t\t\t\t\t\tlocations,\r\n\t\t\t\t\t\t\t\t\tmap,\r\n\t\t\t\t\t\t\t\t\troot\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}).catch(() => { });\r\n\t\t\t\t\t}, 500, { 'leading': false }));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.info(\"Geocode was not successful for the following reason: \" + status);\r\n\t\t\t\t\tinputAlert([document.getElementById('txtLocation')]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tinputAlert([document.getElementById('txtLocation')]);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setBorderColor(elements, color) {\r\n\t\tfor (let i = 0, l = elements.length; i < l; i++)\r\n\t\t\telements[i].style.borderColor = color;\r\n\t}\r\n\r\n\tfunction setMap() {\r\n\r\n\t\tconst button = dealersElement.querySelector('.tw-btn-tab.selected');\r\n\r\n\t\tconst btnAction = button.getAttribute('data-target');\r\n\r\n\t\tif (btnAction === 'location') {\r\n\t\t\tconst location = document.getElementById('txtLocation');\r\n\r\n\t\t\tif (!location) {\r\n\t\t\t\tconsole.error('The text field \"location\" could not be found');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (location.value !== '') {\r\n\t\t\t\tsearch();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else if (btnAction === 'route') {\r\n\t\t\tconst start = document.getElementById('txtStart');\r\n\r\n\t\t\tif (!start) {\r\n\t\t\t\tconsole.error('The text field \"start\" could not be found');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst end = document.getElementById('txtEnd');\r\n\r\n\t\t\tif (!end) {\r\n\t\t\t\tconsole.error('The text field \"end\" could not be found');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (start.value !== '' && end.value !== '') {\r\n\t\t\t\troute();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfillGeo(dealersElement.querySelector('input[name=\"location\"],input[name=\"start\"]'))\r\n\t\t\t.then(() => domWrap(dealersElement.querySelector('button[search]')).trigger('click'))\r\n\t\t\t.catch(() => { });\r\n\t}\r\n\r\n\tfunction toggleFullScreen() {\r\n\r\n\t\tconst targets = dealers.querySelectorAll('[data-target=\"[LISTING-HEADER]\"]');\r\n\r\n\t\ttargets.forEach((target) => { \r\n\t\t\tif (target.style.display === \"none\") {\r\n\t\t\t\ttarget.style.display = 'block';\r\n\t\t\t} else {\r\n\t\t\t\ttarget.style.display = 'none';\r\n\t\t\t}\r\n\t\t})\r\n\t\tconst center = map.getCenter();\r\n\r\n\t\tlet options = undefined;\r\n\r\n\t\tdealersElement.classList.toggle('fullscreen');\r\n\r\n\t\toptions = getOptions();\r\n\r\n\t\tmap.setZoom(options.zoom);\r\n\r\n\t\tdocument.body.classList.toggle('takeover-active');\r\n\r\n\t\tMaps.event.trigger(map, 'resize');\r\n\r\n\t\tmap.setCenter(center);\r\n\r\n\t\tsetMap();\r\n\t}\r\n};","export const iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );\r\nexport const rootURL = window.location.hostname.indexOf('tombrasweb.com') !== -1 ? 'https://demanddetroit.azurewebsites.net/umbraco/Api' : '/umbraco/Api';\r\nexport const mapURL = iOS ? 'http://maps.apple.com/?daddr=' : 'https://www.google.com/maps/?q=';\r\nexport const jwpKey = 'xEwXa9XU/SCzKj/Nfo6NTe5UbOa4kcCl6rCAN2+tUuDtjwR+';\r\nexport const jwpPlayerId = 'Bwa5mKtT';","const domWrap = (element) => {\r\n\tif(!element) element = document.createElement('div');\r\n\telement.store = element.store || {};\r\n\telement.on = (action,delegationOrFn, fn) => {\r\n\t\tif(typeof delegationOrFn === 'function') fn = delegationOrFn;\r\n\t\tlet delegation = typeof delegationOrFn === 'string' ? delegationOrFn : false;\r\n\t\tif(!fn) return;\r\n\t\telement.addEventListener(action, function(event){\r\n\t\t\tfor (let target = event.target; target && target!=this; target=target.parentNode) {\r\n\t\t\t\t// loop parent nodes from the target to the delegation node\r\n\t\t\t\tif (!delegation || target.matches(delegation)) {\r\n\t\t\t\t\tfn.call(target, event);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, false);\r\n\t\treturn element;\r\n\t};\r\n\telement.setSelected = (className = 'selected') => {\r\n\t\t[...element.parentNode.childNodes].forEach(node => node.classList?.remove(className));\r\n\t\telement.classList?.add(className);\r\n\t\treturn element;\r\n\t};\r\n\telement.trigger = event => {\r\n\t\telement.dispatchEvent(new Event(event,{bubbles:true}));\r\n\t\treturn element;\r\n\t};\r\n\telement.css = styles => {\r\n\t\tObject.keys(styles).forEach(key => element.style[key] = styles[key]);\r\n\t\treturn element;\r\n\t};\r\n\telement.slideUp = (duration=500, fn = ()=>{}) => {\r\n\t\telement.css({\r\n \ttransitionProperty: 'height, margin, padding',\r\n \ttransitionDuration: duration + 'ms',\r\n \tboxSizing: 'border-box',\r\n \theight: element.offsetHeight + 'px',\r\n \toverflow: 'hidden',\r\n \tpaddingTop: 0,\r\n \tpaddingBottom: 0,\r\n \tmarginTop: 0,\r\n \tmarginBottom: 0,\r\n\t\t});\r\n setTimeout( () => {\r\n\t\t\telement.css({\r\n\t\t\t\tdisplay: 'none',\r\n\t\t\t\theight: null,\r\n\t\t\t\tpaddingTop: null,\r\n\t\t\t\tpaddingBottom: null,\r\n\t\t\t\tmarginTop: null,\r\n\t\t\t\tmarginBottom: null,\r\n\t\t\t\toverflow: null,\r\n\t\t\t\ttransitionDuration: null,\r\n\t\t\t\ttransitionProperty: null,\r\n\t\t\t});\r\n\t\t\tfn();\r\n\t\t}, duration);\r\n\t\treturn element;\r\n }\r\n\telement.slideDown = (duration=500, fn = ()=>{}) => {\r\n\t\telement.css({\r\n\t\t\tdisplay: null\r\n\t\t});\r\n\t\telement.css({\r\n\t\t\tdisplay: window.getComputedStyle(element).display === 'none' ? 'block' : window.getComputedStyle(element).display,\r\n\t\t\toverflow: 'hidden',\r\n\t\t\tboxSizing: 'border-box',\r\n\t\t\ttransitionProperty: \"height, margin, padding\",\r\n\t\t\ttransitionDuration: duration + 'ms',\r\n\t\t\theight: element.offsetHeight + 'px',\r\n\t\t\tpaddingTop: null,\r\n\t\t\tpaddingBottom: null,\r\n\t\t\tmarginTop: null,\r\n\t\t\tmarginBottom: null,\r\n\t\t});\r\n setTimeout( () => {\r\n\t\t\telement.css({\r\n\t\t\t\theight: null,\r\n\t\t\t\toverflow: null,\r\n\t\t\t\ttransitionDuration: null,\r\n\t\t\t\ttransitionProperty: null,\r\n\t\t\t});\r\n\t\t\tfn();\r\n\t\t}, duration);\r\n\t\treturn element;\r\n }\r\n\telement.slideToggle = (duration=500, fn = ()=>{}) => {\r\n\t\telement[window.getComputedStyle(element).display === 'none' ? 'slideDown' : 'slideUp'](duration,fn);\r\n\t\treturn element;\r\n\t};\r\n\telement.wrapInner = (wrapper) => {\r\n\t\telement.appendChild(wrapper);\r\n\t\twhile (element.firstChild !== wrapper) {\r\n\t\t\twrapper.appendChild(element.firstChild);\r\n\t \t}\r\n\t\treturn element;\r\n\t};\r\n\telement.data = (key, value) => {\r\n\t\tif(value) {\r\n\t\t\telement.store[key] = value;\r\n\t\t\treturn element;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn element.store[key];\r\n\t\t}\r\n\t}\r\n\r\n\telement.check = {\r\n\t\tget overflowLeft() {\r\n\t\t\treturn overflowHorizontal(element) && element.scrollLeft > 0;\r\n\t\t},\r\n\t\tget overflowRight() {\r\n\t\t\treturn overflowHorizontal(element) && element.scrollWidth - element.scrollLeft > element.offsetWidth;\r\n\t\t}\r\n\t};\r\n\r\n\treturn element;\r\n};\r\n\r\nfunction overflowHorizontal(element){\r\n\treturn element.scrollWidth - element.offsetWidth > 1;\r\n}\r\n\r\n\r\nexport default domWrap;","function htm(selector,content){\r\n let current = [];\r\n\r\n function self(selector,content){\r\n if(typeof selector === 'string' && selector.trim() !== ''){\r\n current.push(['<', selector, '>',content || '',''].join(''));\r\n }\r\n return self;\r\n }\r\n\r\n self.toString = () => current.join('');\r\n\r\n Object.defineProperty(self, 'Nodes', {\r\n get() { \r\n let template = document.createElement('div');\r\n template.innerHTML = self.toString();\r\n return template.childNodes;\r\n }\r\n });\r\n\r\n Object.defineProperty(self, 'Node', {\r\n get() { \r\n return this.Nodes.length === 1 ? this.Nodes[0] : document.createRange().createContextualFragment(self.toString());\r\n }\r\n });\r\n\r\n return self(selector,content);\r\n}\r\n\r\nexport default htm;","import { rootURL } from '../constants';\r\n\r\nfunction request({method,url,data}){\r\n return new Promise( (resolve,reject) => {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function(){\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n const data = response();\r\n resolve(response());\r\n } else {\r\n error();\r\n } \r\n }\r\n xhr.onerror = xhr.onabort = error;\r\n function error(){\r\n reject(response() || {ExceptionMessage:'Cannot connect to server, please try again in a few minutes.'});\r\n }\r\n function response(){\r\n return typeof xhr.response === 'string' ? JSON.parse(xhr.response) : xhr.response;\r\n }\r\n xhr.open(method,\r\n (url.indexOf('.json') === -1 && url.indexOf('https://') === -1 && url.indexOf('http://') === -1 ? rootURL : '') + \r\n url + \r\n (method === 'GET' && !!data ? '?' + Object.keys(data).map(key => `${key}=${encodeURIComponent(data[key])}`).join('&') : '')\r\n );\r\n xhr.setRequestHeader('Accept','application/json, text/plain, */*');\r\n if(method === 'POST'){\r\n xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');\r\n }\r\n \r\n xhr.responseType = 'json';\r\n xhr.send(data ? method === 'POST' ? data : JSON.stringify(data) : undefined); \r\n });\r\n}\r\n\r\nfunction http(url){\r\n return {\r\n get(data){\r\n return request({method:'GET',url,data});\r\n },\r\n create(data){\r\n if(typeof data === 'object'){\r\n data = (new URLSearchParams(data)).toString()\r\n }\r\n return request({method:'POST',url,data});\r\n }\r\n };\r\n}\r\n\r\nexport default http;","export default str => {\r\n\tstr = str.trim();\r\n\tvar split = str.match(/\\d\\d:\\d\\d[A|P]M/g);\r\n\tif (str === 'Closed') {\r\n\t\treturn str;\r\n\t}\r\n\tif (split && split[0] !== split[1]) {\r\n\t\treturn split.map(function(cur) {\r\n\t\t\treturn cur[0] === '0' ? cur.substr(1) : cur;\r\n\t\t}).join(' - ');\r\n\t}\r\n\r\n\treturn '24 Hours';\r\n};"],"names":["h","http","mapURL","prettifyTime","MarkerWithLabel","domWrap","Mustache","locationAllowed","lastClickedMarker","filters","fnFilter","location","eliteSupport","departments","findIndex","x","name","entityType","isBodyShop","weekDays","currentDay","Date","getDay","dayOfWeek","find","item","index","svcGeoLocation","svcBrowser","GetGeoLocation","navigator","geolocation","svcMock","getCurrentPosition","fn","response","coords","accuracy","altitude","altitudeAccuracy","heading","latitude","longitude","speed","timestamp","now","svcGeoMock","GetMap","element","undefined","DirectionsRenderer","DirectionsService","event","addListener","trigger","Geocoder","geocode","options","fnOnReturn","results","address_components","long_name","short_name","types","formatted_address","geometry","bounds","Ia","hi","lo","Ua","lat","lng","location_type","viewport","place_id","status","LatLng","Map","elm","obj","getBounds","getNorthEast","getSouthWest","Point","y","Size","height","width","Animation","BOUNCE","DirectionsStatus","OK","GeocoderStatus","places","TravelMode","DRIVING","filterParts","Name","toLowerCase","drawHours","day","hours","label","text","cleanupLocations","locations","forEach","setTimeout","marker","setMap","titleCase","str","replace","txt","substr","length","charAt","toUpperCase","lower","RegExp","upper","getPolyCoords","legs","coordAccuracy","polyCoords","skippedCoords","leg","steps","step","path","nextSegment","push","getDistance","lat1","lon1","lat2","lon2","R","dLat","deg2rad","dLon","a","Math","sin","cos","c","atan2","sqrt","d","deg","PI","hashCode","code","hash","i","char","charCodeAt","dealers","default","_","MapsLoader","Maps","v","key","libraries","dealersElement","filtersElement","querySelector","listContainer","tabs","detailsPopup","document","getElementById","popupBody","popupTemplate","currentLocation","geo","directionsService","directionsDisplay","map","pendingCall","getListings","catch","dataCach","isFullScreen","classList","contains","getListingsUrl","getAttribute","root","getOptions","zoom","mapTypeControl","streetViewControl","scrollwheel","draggable","lastZ","_emptyDepartment","fax","phone","schedule","sunday","monday","tuesday","wednesday","thursday","friday","saturday","today","innerHTML","reduce","cur","on","add","style","display","remove","btn","itm","count","selected","querySelectorAll","drawLocations","container","e","isTrusted","search","which","route","fillGeo","parentNode","then","alias","console","error","markerIndex","visibleIndex","originalIcon","setIcon","prevVisibleIndex","set","div","zIndex","toString","labelDiv","el","currentMap","getMap","currentZIndex","getIcon","currentIcon","iconUrl","url","img","Image","crossOrigin","onload","canvas","createElement","ctx","getContext","drawImage","imageData","getImageData","data","red","green","blue","putImageData","modifiedIconUrl","toDataURL","scaledSize","size","origin","anchor","src","toggleFullScreen","toggle","closest","setAnimation","Autocomplete","button","target","section","tab","id","onclick","l","selectedFilters","filter","filteredLocations","populateHeader","populateListings","parent","cancel","removeEventListener","Promise","resolve","reject","addEventListener","position","value","info","PosError","log","geoFallback","enableHighAccuracy","maximumAge","timeout","userAgent","indexOf","opt","JSON","stringify","type","get","city","region_code","getDepartmentLookup","collection","kebabCase","getLocation","encodedUrl","encodeURIComponent","address","state","zip","mapLink","isLocationOpen","isOpen","showParts","parts","showSales","sales","showService","service","fullServiceList","services","concat","amenitiesList","productList","sort","prepend","addressDisplay","dealerUrl","isClosed","serviceList","showDetails","isInternational","showDirections","showDistance","showWebsite","website","copy","Object","assign","getMapListings","listings","mapListings","sortedListings","distance","textContent","inputAlert","elements","setBorderColor","loading","dep","minutesSinceMidnightGMT","round","getTime","setHours","getTimezoneOffset","open","close","locationInit","makeMarker","populateDetails","Distributor","iconConfig","markerOptions","title","clickable","labelContent","labelAnchor","labelClass","labelInBackground","icon","render","targetAlias","template","targets","loadingTemplate","loadingTarget","locationSummary","model","locationsFound","showLocationsFound","showNoLocationsFound","loadingModel","locationDisabled","btnDetails","boxes","addrFrom","trim","addrTo","destination","travelMode","result","routes","start_location","setOptions","suppressMarkers","setDirections","throttle","ne","sw","north","south","east","west","coord","addr","center","color","borderColor","btnAction","start","end","getCenter","setZoom","body","setCenter","iOS","match","rootURL","window","hostname","jwpKey","jwpPlayerId","store","action","delegationOrFn","delegation","matches","call","setSelected","className","childNodes","node","dispatchEvent","Event","bubbles","css","styles","keys","slideUp","duration","transitionProperty","transitionDuration","boxSizing","offsetHeight","overflow","paddingTop","paddingBottom","marginTop","marginBottom","slideDown","getComputedStyle","slideToggle","wrapInner","wrapper","appendChild","firstChild","check","overflowLeft","overflowHorizontal","scrollLeft","overflowRight","scrollWidth","offsetWidth","htm","selector","content","current","self","split","join","defineProperty","Nodes","createRange","createContextualFragment","request","method","xhr","XMLHttpRequest","onerror","onabort","ExceptionMessage","parse","setRequestHeader","responseType","send","create","URLSearchParams"],"sourceRoot":""}