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

${name}

${desc}`;\r\n\r\n google.maps.event.addListener(marker,\r\n \"click\",\r\n function (this: MarkerWithPopup)\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.html\r\n });\r\n infoWindow.open(map, marker);\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 const markerPos = value.getPosition();\r\n if (markerPos != null)\r\n {\r\n bounds.extend(markerPos);\r\n }\r\n });\r\n\r\n google.maps.event.addListener(map,\r\n \"zoom_changed\",\r\n () =>\r\n {\r\n const zoomChangeBoundsListener = google.maps.event.addListener(map,\r\n \"bounds_changed\",\r\n function (this: google.maps.Map)\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 const title = placeMarkers[i].getTitle();\r\n if (title == null)\r\n {\r\n continue;\r\n }\r\n\r\n $(\"