"use strict";!function(e){var o=null,t=null;DRTS.Location.api.autocomplete=function(o,t){var a=e(o);if(a.length){var n=DRTS.Location.api._getAutocompleteOptions(void 0,!0);a.each((function(e,o){if(!o.dataset.gmapsAutocompleteInitialized){var a=new google.maps.places.Autocomplete(o,n);a.setFields(["geometry","address_components","formatted_address"]),a.addListener("place_changed",(function(){var e=a.getPlace();e.geometry?(console.log("GoogleMaps autocomplete results:",e),t(DRTS.Location.googlemaps.parsePlace(e))):console.warn("GoogleMaps autocomplete: No geometry available for input: "+e.name)})),o.addEventListener("keydown",(function(e){"Enter"===e.key&&e.preventDefault()})),o.dataset.gmapsAutocompleteInitialized="true"}}))}},DRTS.Location.api.getSuggestions=function(e,t){o||(o=new google.maps.places.AutocompleteService),o.getPlacePredictions(DRTS.Location.api._getAutocompleteOptions(e),(function(e,o){if(o===google.maps.places.PlacesServiceStatus.OK&&e){console.log("GoogleMaps place predictions:",e);var a=[],n=!0,i=!1,c=void 0;try{for(var l,s=e[Symbol.iterator]();!(n=(l=s.next()).done);n=!0){var p=l.value;a.push({text:p.description,placeId:p.place_id})}}catch(e){i=!0,c=e}finally{try{!n&&s.return&&s.return()}finally{if(i)throw c}}t(a)}else t([])}))},DRTS.Location.api.geocodeSuggestion=function(e,o,a){t||(t=new google.maps.places.PlacesService(document.createElement("div"))),t.getDetails({placeId:e.placeId,sessionToken:DRTS.Location.api._autocompleteSessionToken,fields:["geometry"]},(function(t,n){if(n===google.maps.places.PlacesServiceStatus.OK){console.log("GoogleMaps place details:",t,t.geometry.viewport.toString());var i=t.geometry.location,c=t.geometry.viewport;o([i.lat(),i.lng()],[c.getSouthWest().lat(),c.getSouthWest().lng(),c.getNorthEast().lat(),c.getNorthEast().lng()]),DRTS.Location.api._autocompleteSessionToken=null}else{var l=new Error("Geocoding place (ID: "+e.placeId+") failed due to: "+n);if(!a)throw l;a(l)}}))},DRTS.Location.api._getAutocompleteOptions=function(e){var o={componentRestrictions:{country:[]}};return arguments.length>1&&void 0!==arguments[1]&&arguments[1]||(DRTS.Location.api._autocompleteSessionToken||(DRTS.Location.api._autocompleteSessionToken=new google.maps.places.AutocompleteSessionToken),o.sessionToken=DRTS.Location.api._autocompleteSessionToken),DRTS_Location_googlemapsAutocomplete.type&&(o.types=[DRTS_Location_googlemapsAutocomplete.type]),DRTS_Location_googlemapsAutocomplete.country&&DRTS_Location_googlemapsAutocomplete.country instanceof Array&&(o.componentRestrictions.country=DRTS_Location_googlemapsAutocomplete.country),void 0!==e&&(o.input=e),o}}(jQuery);