{"version":3,"sources":["dbs.gmaps.ts"],"names":["DBS","MarkerWithPopup","_super","__extends","google","maps","Marker","mapId","map","infoWindow","initialZoom","directionsDisplay","directionsService","placeMarkers","loadXmlDocument","xml","placemarks","responseXML","documentElement","getElementsByTagName","Map","document","getElementById","zoom","center","LatLng","mapTypeId","MapTypeId","ROADMAP","bounds","i","length","placemark","name_1","firstChild","nodeValue","desc","childNodes","icon","coords","split","point","parseFloat","marker","position","title","html","event","addListener","close","InfoWindow","content","this","open","push","LatLngBounds","forEach","value","extend","getPosition","zoomChangeBoundsListener","getZoom","setZoom","removeListener","fitBounds","half","$","parent","appendTo","hide","attr","text","getTitle","setupDirectionsBranchList","element","getIcon","toString","indexOf","link","createElement","href","addEventListener","ev","preventDefault","trigger","window","scrollTop","offset","top","innerText","listItem","appendChild","branchList","setupHtmlBranchList","fetchDirections","fromAddress","destinationObj","setMap","setPanel","route","origin","destination","travelMode","TravelMode","DRIVING","unitSystem","UnitSystem","IMPERIAL","provideRouteAlternatives","presentDirections","result","status","directions","errorMsg","DirectionsStatus","OK","style","display","setDirections","GoogleMap","DirectionsRenderer","DirectionsService","Array","Initialize","XmlPath","MapId","ajax","url","complete"],"mappings":"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","file":"dbs.gmaps.js","sourcesContent":["/// \r\n/// \r\n\r\nclass MarkerWithPopup extends google.maps.Marker\r\n{\r\n html: string;\r\n}\r\n\r\nmodule DBS.GoogleMap\r\n{\r\n let xmlPath: string;\r\n let mapId: string;\r\n\r\n let map: google.maps.Map;\r\n let infoWindow: google.maps.InfoWindow;\r\n let initialZoom: boolean;\r\n\r\n let directionsDisplay = new google.maps.DirectionsRenderer();\r\n let directionsService = new google.maps.DirectionsService();\r\n let placeMarkers = new Array();\r\n\r\n function loadXmlDocument(xml: JQueryXHR): void\r\n {\r\n const placemarks = (xml.responseXML as XMLDocument).documentElement.getElementsByTagName(\"Placemark\");\r\n\r\n map = new google.maps.Map(document.getElementById(mapId), {\r\n zoom: 16,\r\n center: new google.maps.LatLng(0, 0),\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n });\r\n\r\n for (let i = 0; i < placemarks.length; i++)\r\n {\r\n const placemark = placemarks[i];\r\n\r\n const name = placemarks[i].getElementsByTagName(\"name\")[0].firstChild.nodeValue;\r\n const desc = placemarks[i].getElementsByTagName(\"description\")[0].childNodes[1].nodeValue;\r\n const icon = placemarks[i].getElementsByTagName(\"iconHref\")[0].childNodes[1].nodeValue;\r\n\r\n const coords = placemark.getElementsByTagName(\"coordinates\")[0].firstChild.nodeValue.split(\",\");\r\n const point = new google.maps.LatLng(parseFloat(coords[1]), parseFloat(coords[0]));\r\n\r\n const marker = new MarkerWithPopup({\r\n map: map,\r\n position: point,\r\n title: name,\r\n icon: icon\r\n });\r\n marker.html = `

${name}

${desc}`;\r\n\r\n google.maps.event.addListener(marker, \"click\", function()\r\n {\r\n if (infoWindow != null)\r\n {\r\n infoWindow.close();\r\n }\r\n\r\n infoWindow = new google.maps.InfoWindow({\r\n content: (this as MarkerWithPopup).html\r\n });\r\n\r\n infoWindow.open(map, this);\r\n });\r\n\r\n placeMarkers.push(marker);\r\n }\r\n\r\n findMapCenterAndZoom();\r\n setupDirectionsBranchList();\r\n setupHtmlBranchList();\r\n }\r\n\r\n function findMapCenterAndZoom(): void\r\n {\r\n if (map == null)\r\n {\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n placeMarkers.forEach((value: google.maps.Marker) =>\r\n {\r\n bounds.extend(value.getPosition());\r\n });\r\n\r\n google.maps.event.addListener(map, \"zoom_changed\", () =>\r\n {\r\n const zoomChangeBoundsListener = google.maps.event.addListener(map, \"bounds_changed\", function()\r\n {\r\n if (this.getZoom() > 12 && initialZoom)\r\n {\r\n // Change max/min zoom here\r\n this.setZoom(12);\r\n initialZoom = false;\r\n }\r\n google.maps.event.removeListener(zoomChangeBoundsListener);\r\n });\r\n });\r\n\r\n initialZoom = true;\r\n map.fitBounds(bounds);\r\n }\r\n\r\n function setupDirectionsBranchList(): void\r\n {\r\n if (placeMarkers.length === 1)\r\n {\r\n const half = $(\"#google-map-to\").parent();\r\n $(\"#google-map-from\").appendTo(half);\r\n $(\"#google-map-to\").hide();\r\n $(\"label[for=google-map-to]\").hide();\r\n }\r\n\r\n for (let i = 0; i < placeMarkers.length; i++)\r\n {\r\n $(\"