{"version":3,"sources":["dbs.gmaps.ts"],"names":["DBS","MarkerWithPopup","_super","__extends","google","maps","Marker","GoogleMap","xmlPath","mapId","map","infoWindow","initialZoom","directionsDisplay","DirectionsRenderer","directionsService","DirectionsService","placeMarkers","Array","loadXmlDocument","xml","placemarks","responseXML","documentElement","getElementsByTagName","Map","document","getElementById","zoom","center","LatLng","mapTypeId","MapTypeId","ROADMAP","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","bounds","LatLngBounds","forEach","value","extend","getPosition","zoomChangeBoundsListener","getZoom","setZoom","removeListener","fitBounds","findMapCenterAndZoom","half","$","parent","appendTo","hide","attr","text","getTitle","setupDirectionsBranchList","element","branchList","createElement","getIcon","toString","indexOf","link","href","addEventListener","ev","preventDefault","trigger","window","scrollTop","offset","top","innerText","listItem","appendChild","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","Initialize","XmlPath","MapId","ajax","url","complete"],"mappings":"IAQOA,6WALPC,gBAAA,SAAAC,GAAA,SAAAD,mDAGA,OAH8BE,UAAAF,EAAAC,GAG9BD,EAHA,CAA8BG,OAAOC,KAAKC,SAK1C,SAAON,IAAI,SAAAO,GAEP,IAAIC,EACAC,EAEAC,EACAC,EACAC,EAEAC,EAAoB,IAAIT,OAAOC,KAAKS,mBACpCC,EAAoB,IAAIX,OAAOC,KAAKW,kBACpCC,EAAe,IAAIC,MAEvB,SAASC,EAAgBC,GAErB,IAAMC,EAAcD,EAAIE,YAA4BC,gBAAgBC,qBAAqB,aAEzFd,EAAM,IAAIN,OAAOC,KAAKoB,IAAIC,SAASC,eAAelB,GAAQ,CACtDmB,KAAM,GACNC,OAAQ,IAAIzB,OAAOC,KAAKyB,OAAO,EAAG,GAClCC,UAAW3B,OAAOC,KAAK2B,UAAUC,UAGrC,IAAK,IAAIC,EAAI,EAAGA,EAAIb,EAAWc,OAAQD,IACvC,CACI,IAAME,EAAYf,EAAWa,GAEvBG,EAAOhB,EAAWa,GAAGV,qBAAqB,QAAQ,GAAGc,WAAWC,UAChEC,EAAOnB,EAAWa,GAAGV,qBAAqB,eAAe,GAAGiB,WAAW,GAAGF,UAC1EG,EAAOrB,EAAWa,GAAGV,qBAAqB,YAAY,GAAGiB,WAAW,GAAGF,UAEvEI,EAASP,EAAUZ,qBAAqB,eAAe,GAAGc,WAAWC,UAAUK,MAAM,KACrFC,EAAQ,IAAIzC,OAAOC,KAAKyB,OAAOgB,WAAWH,EAAO,IAAKG,WAAWH,EAAO,KAExEI,EAAS,IAAI9C,gBAAgB,CAC/BS,IAAKA,EACLsC,SAAUH,EACVI,MAAOZ,EACPK,KAAMA,IAEVK,EAAOG,KAAO,OAAOb,EAAI,QAAQG,EAEjCpC,OAAOC,KAAK8C,MAAMC,YAAYL,EAAQ,QAAS,WAEzB,MAAdpC,GAEAA,EAAW0C,SAGf1C,EAAa,IAAIP,OAAOC,KAAKiD,WAAW,CACpCC,QAAUC,KAAyBN,QAG5BO,KAAK/C,EAAK8C,QAGzBvC,EAAayC,KAAKX,IAQ1B,WAEI,GAAW,MAAPrC,EAEA,OAGJ,IAAMiD,EAAS,IAAIvD,OAAOC,KAAKuD,aAC/B3C,EAAa4C,QAAQ,SAACC,GAElBH,EAAOI,OAAOD,EAAME,iBAGxB5D,OAAOC,KAAK8C,MAAMC,YAAY1C,EAAK,eAAgB,WAE/C,IAAMuD,EAA2B7D,OAAOC,KAAK8C,MAAMC,YAAY1C,EAAK,iBAAkB,WAE7D,GAAjB8C,KAAKU,WAAkBtD,IAGvB4C,KAAKW,QAAQ,IACbvD,GAAc,GAElBR,OAAOC,KAAK8C,MAAMiB,eAAeH,OAIzCrD,GAAc,EACdF,EAAI2D,UAAUV,GAjCdW,GAoCJ,WAEI,GAA4B,IAAxBrD,EAAakB,OACjB,CACI,IAAMoC,EAAOC,EAAE,kBAAkBC,SACjCD,EAAE,oBAAoBE,SAASH,GAC/BC,EAAE,kBAAkBG,OACpBH,EAAE,4BAA4BG,OAGlC,IAAK,IAAIzC,EAAI,EAAGA,EAAIjB,EAAakB,OAAQD,IAErCsC,EAAE,cACGI,KAAK,QAAS1C,GACd2C,KAAK5D,EAAaiB,GAAG4C,YACrBJ,SAAS,wBAlDlBK,GAsDJ,WAEI,IAAMC,EAAUtD,SAASC,eAAkBlB,EAAK,gBAChD,GAAe,MAAXuE,EAEA,OAKJ,IAFA,IAAMC,EAAavD,SAASwD,cAAc,iBAEjChD,GAEL,IAAMQ,EAAOzB,EAAaiB,GAAGiD,UAC7B,IAA2D,EAAvDzC,EAAK0C,WAAWC,QAAQ,6CAK5B,IAAMC,EAAO5D,SAASwD,cAAc,KACpCI,EAAKC,KAAO,IACZD,EAAKE,iBAAiB,QAAS,SAACC,GAAc,OAACA,EAAGC,iBAmD9BxD,EAnDmEA,EAoD3F9B,OAAOC,KAAK8C,MAAMwC,QAAQ1E,EAAaiB,GAAI,cAC3CsC,EAAEoB,QAAQC,UAAUrB,EAAE,IAAI/D,GAASqF,SAASC,KAFhD,IAA4B7D,IAlDpBoD,EAAKU,UAAY/E,EAAaiB,GAAG4C,WAEjC,IAAMmB,EAAWvE,SAASwD,cAAc,MACxCe,EAASC,YAAYZ,GAErBL,EAAWiB,YAAYD,IAhBlB/D,EAAI,EAAGA,EAAIjB,EAAakB,OAAQD,MAAhCA,GAmBT8C,EAAQkB,YAAYjB,GAlFpBkB,GAqFJ,SAASC,EAAgBX,GAErBA,EAAGC,iBAEH,IAAMW,EAAe3E,SAASC,eAAkBlB,EAAK,SAA8BqD,MAC7EwC,EAA0C,IAAxBrF,EAAakB,OACPlB,EAAa,GACbA,EAAcS,SAASC,eAAkBlB,EAAK,OAA6BqD,OAEzGjD,EAAkB0F,OAAO7F,GACzBG,EAAkB2F,SAAS9E,SAASC,eAAkBlB,EAAK,gBAE3DM,EAAkB0F,MAAM,CACpBC,OAAQL,EACRM,YAAaL,EAAetC,cAC5B4C,WAAYxG,OAAOC,KAAKwG,WAAWC,QACnCC,WAAY3G,OAAOC,KAAK2G,WAAWC,SACnCC,0BAA0B,GAC3BC,GAGP,SAASA,EAAkBC,EAAsCC,GAE7D,IAAMC,EAAa5F,SAASC,eAAkBlB,EAAK,eAC7C8G,EAAW7F,SAASC,eAAkBlB,EAAK,UAE7C4G,IAAWjH,OAAOC,KAAKmH,iBAAiBC,IAExCH,EAAWI,MAAMC,QAAU,QAC3BJ,EAASG,MAAMC,QAAU,OACzB9G,EAAkB+G,cAAcR,KAIhCE,EAAWI,MAAMC,QAAU,OAC3BJ,EAASG,MAAMC,QAAU,SASjBpH,EAAAsH,WAAhB,SAA2BC,EAAiBC,GAExCvH,EAAUsH,EACVrH,EAAQsH,EAERvD,EAAEwD,KAAK,CACHC,IAAKzH,EACL0H,SAAU/G,IAGIO,SAASC,eAAkBlB,EAAK,WACxC+E,iBAAiB,QAASY,IAzMjC,CAAApG,EAAAO,YAAAP,EAAAO,UAAS,KAApB,CAAOP,MAAAA,IAAG","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 $(\"