// source --> https://www.amyryangroup.com/wp-content/plugins/gravityview-maps/assets/js/gk-maps-form-address-auto-complete.min.js?ver=3.8.0 
(($,obj,GravityMaps)=>{"use strict";(GravityMaps.formAddressAutocomplete=obj).data=window.GKMapsFormAddressAutocompleteData,obj.hooks=GravityMaps.hooks,obj.INPUT_MAP={address1:1,address2:2,city:3,state:4,postalCode:5,country:6},obj.ready=()=>{obj.initAutoComplete()},obj.initAutoComplete=()=>{void 0!==obj.data.fields&&Array.isArray(obj.data.fields)&&obj.data.fields.forEach(obj.initField)},obj.getFieldId=field=>obj.hooks.applyFilters("gk.maps.autocomplete_field_id",`#input_${field.formId}_`+field.id,field),obj.getInputId=(field,inputId)=>{void 0===inputId&&(inputId=1);var fieldId=obj.getFieldId(field);return obj.hooks.applyFilters("gk.maps.autocomplete_input_id",fieldId+"_"+inputId,field,inputId)},obj.initField=field=>{const $input=$(obj.getInputId(field,obj.INPUT_MAP.address1));if($input.length){obj.hooks.doAction("gk.maps.autocomplete_field_init",field,$input);var options={fields:["address_components","geometry"],strictBounds:!1};switch(field.addressType){case"international":break;case"canadian":options.componentRestrictions={country:window.gravitykit.maps.iso_3166_1_alpha_2.getCode("canada")};break;default:options.componentRestrictions={country:window.gravitykit.maps.iso_3166_1_alpha_2.getCode(field.addressType)}}$input.on("focus",()=>{$input.on("keypress.gkAutocomplete",event=>{13===event.keyCode&&(event.preventDefault(),$input.off("keypress.gkAutocomplete"))})}),field.autocomplete=new google.maps.places.Autocomplete($input[0],options),field.autocomplete.addListener("place_changed",()=>obj.onPlaceSelection(field))}},obj.onPlaceSelection=field=>{if(void 0!==field.autocomplete&&void 0!==field.autocomplete.fields){var $address1Field=$(obj.getInputId(field,obj.INPUT_MAP.address1)),$address2Field=$(obj.getInputId(field,obj.INPUT_MAP.address2)),$postalField=$(obj.getInputId(field,obj.INPUT_MAP.postalCode)),place=field.autocomplete.getPlace();let address1="",postcode="";for(const component of place.address_components){let $field;switch(component.types[0]){case"street_number":address1=component.long_name+" "+address1;break;case"route":address1+=component.short_name;break;case"postal_code":postcode=""+component.long_name+postcode;break;case"postal_code_suffix":postcode=postcode+"-"+component.long_name;break;case"locality":case"postal_town":($field=$(obj.getInputId(field,obj.INPUT_MAP.city))).length&&$field.val(component.long_name);break;case"administrative_area_level_2":($field=$(obj.getInputId(field,obj.INPUT_MAP.city))).length&&!$field.val()&&$field.val(component.long_name);break;case"administrative_area_level_1":($field=$(obj.getInputId(field,obj.INPUT_MAP.state))).length&&$field.val(component.long_name);break;case"country":($field=$(obj.getInputId(field,obj.INPUT_MAP.country))).length&&$field.val(component.long_name)}}$address1Field.length&&address1.length&&$address1Field.val(address1),$postalField.length&&postcode.length&&$postalField.val(postcode);var $postalField=$("<input>").attr({type:"hidden",value:place.geometry.location.lat(),name:`gk-gravitymap-geolocation[${field.id}][latitude]`}),$inputLng=$("<input>").attr({type:"hidden",value:place.geometry.location.lng(),name:`gk-gravitymap-geolocation[${field.id}][longitude]`}),place={address_components:place.address_components,geometry:{location:place.geometry.location.toJSON(),viewport:place.geometry.viewport.toJSON()}},place=$("<input>").attr({type:"hidden",value:JSON.stringify(place),name:`gk-gravitymap-geolocation[${field.id}][data]`});$(obj.getFieldId(field)).append($postalField,$inputLng,place),$address2Field.length?$address2Field.trigger("focus"):$address1Field.length&&$address1Field.trigger("focus")}},$(document).ready(obj.ready)})(window.jQuery,{},(window.wp,window.GravityKit.GravityMaps));