STRATO-apps/wordpress_03/app/wp-content/plugins/fluentformpro/public/js/ff_address_autocomplete.js
SHA-256: 03456bbd47ea78a4621d8dba60ee2c01a5e94381aa861df5cc6ced5359799358
(()=>{function e(e,a){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,a){if(e){if("string"==typeof e)return t(e,a);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,a):void 0}}(e))||a&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){s=!0,i=e},f:function(){try{l||null==n.return||n.return()}finally{if(s)throw i}}}}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}jQuery(document).ready(function(t){function a(a,n){var o,r={address_line_1:"",address_line_2:"",city:"",state:"",zip:"",country:""},i=e(a.address_components);try{for(i.s();!(o=i.n()).done;){var s=o.value;switch(s.types[0]){case"street_number":if(l(a.name,s.long_name))break;r.address_line_1="".concat(s.long_name," ").concat(r.address_line_1).trim();break;case"route":if(l(a.name,s.short_name))break;r.address_line_1?r.address_line_1+=" "+s.short_name:r.address_line_1=s.short_name;break;case"postal_code":r.zip="".concat(s.long_name).concat(r.zip);break;case"postal_code_suffix":r.zip="".concat(r.zip,"-").concat(s.long_name);break;case"locality":case"postal_town":r.city=s.long_name;break;case"administrative_area_level_1":r.state||r.country?!r.state&&r.country:r.state=s.long_name;break;case"administrative_area_level_2":!r.state&&r.country&&(r.state=s.long_name);break;case"administrative_area_level_3":case"administrative_area_level_4":r.address_line_2?r.address_line_2=" "+s.short_name:r.address_line_2=s.short_name;case"country":r.country=s.short_name}}}catch(e){i.e(e)}finally{i.f()}if(r.address_line_1||(r.address_line_1=a.name),a.latLng){var c=n.closest("form");c.find("input[data-key_name='latitude']").val(a.latLng.lat),c.find("input[data-key_name='longitude']").val(a.latLng.lng)}a.name!=r.address_line_1&&void 0!==a.name&&(n.find("input[data-key_name='address_line_2']").length?(r.address_line_2=r.address_line_1,r.address_line_1=a.name):r.address_line_1=a.name+" "+r.address_line_1);var d=t.Event("fluentform_googlemaps_address_parse",{address:r,place:a,container:n});t(document).trigger(d),r=d.address,n.find(":input").val("").trigger("change"),t.each(r,function(e,t){t&&("country"==e?n.find("select[data-key_name='"+e+"']").val(t).trigger("change"):n.find("input[data-key_name='"+e+"']").val(t).trigger("change"))})}function n(e,n,o){if(void 0!==o.data("ff_with_g_map")){var r=t(e).closest(".ff_map_autocomplete");if($mapDom=r.find(".ff_g_map"),$mapDom.length||(t("<div/>",{class:"ff_g_map",id:"ff_map_elm_"+t(e).attr("id"),style:"height:300px"}).appendTo(r),$mapDom=r.find(".ff_g_map")),document.getElementById($mapDom.attr("id"))){var i=new google.maps.Map(document.getElementById($mapDom.attr("id")),{center:{lat:50.064192,lng:-130.605469},zoom:3}),l=new google.maps.Marker({map:i,draggable:!0,anchorPoint:new google.maps.Point(0,-29)});if(l.setVisible(!1),!n.geometry||!n.geometry.location)return;google.maps.event.addListener(l,"dragend",function(e){(new google.maps.Geocoder).geocode({latLng:e.latLng},function(t,n){n==google.maps.GeocoderStatus.OK&&t[0]&&(t[0].latLng=e.latLng,a(t[0],o))})}),n.geometry.viewport?i.fitBounds(n.geometry.viewport):(i.setCenter(n.geometry.location),i.setZoom(17)),l.setPosition(n.geometry.location),l.setVisible(!0)}}}function o(e,o){navigator.geolocation?navigator.geolocation.getCurrentPosition(function(t){var r={lat:t.coords.latitude,lng:t.coords.longitude};(new google.maps.Geocoder).geocode({latLng:r},function(t,i){i==google.maps.GeocoderStatus.OK&&t[0]&&(t[0].latLng=r,a(t[0],o),n(e,t[0],o))})},function(){r().then(function(a){a?i(e,a,o):t(e).val("")})}):r().then(function(a){a?i(e,a,o):t(e).val("")})}function r(){var e=window.ff_gmap_vars.api_key;return fetch("https://www.googleapis.com/geolocation/v1/geolocate?key="+e,{method:"POST",headers:{"Content-Type":"application/json"}}).then(function(e){if(console.log(e),!e.ok)throw new Error("Google IP Geolocation failed");return e.json()}).then(function(e){return{lat:e.location.lat,lng:e.location.lng,accuracy:e.accuracy}}).catch(function(e){return console.error("Error fetching IP location:",e),null})}function i(e,t,o){(new google.maps.Geocoder).geocode({latLng:t},function(r,i){i==google.maps.GeocoderStatus.OK&&r[0]&&(r[0].latLng=t,a(r[0],o),n(e,r[0],o))})}function l(e,t){return e&&e.includes(t)}t(document).on("elementor/popup/show",function(e,t,a){window.fluentform_gmap_callback()}),window.fluentform_gmap_callback=function(){t(".ff_map_autocomplete").each(function(e,r){var i=t(r),l=i.find("input[data-key_name='address_line_1']").attr("id"),s=i.find("#"+l)[0],c=void 0!==i.data("ff_with_auto_locate")&&i.data("ff_with_auto_locate"),d=new google.maps.places.Autocomplete(s,{fields:["formatted_address","name","address_components","geometry","icon"]}),f=i.find("select[data-key_name='country']");if(f.length){var u=f.data("autocomplete_restrictions"),_=[];for(var m in u)_.push(u[m]);_.length>0&&d.setComponentRestrictions({country:_})}c&&"no"!=c&&("on_load"==c&&o(s,i),t(s).parent().find(".ff_input-group-append").on("click",function(){t(s).val("Please wait .."),o(s,i)}));d.addListener("place_changed",function(){var e=d.getPlace();e.geometry&&e.geometry.location&&(e.latLng=e.geometry.location,n(s,e,i),a(e,i))})})},t(".ff_html5_geolocate").each(function(){var e=t(this),a=e.data("ff_html5_locate")||"on_click",n=e.find("input[data-key_name='address_line_1']").parent().find(".ff_input-group-append"),o={},r=null;function i(e){return parseFloat(e).toFixed(5)}try{var l=JSON.parse(localStorage.getItem("ff_nominatim_geocode_cache")||"{}");Object.assign(o,l)}catch(e){console.warn("Could not load geocode cache from localStorage")}function s(a){navigator.geolocation?(e.addClass("ff-locating"),n.length&&n.prop("disabled",!0),navigator.geolocation.getCurrentPosition(function(r){var l=r.coords.latitude,s=r.coords.longitude,d=e.closest("form");d.find("input[data-key_name='latitude'][name^='"+e.data("name")+"']").val(l),d.find("input[data-key_name='longitude'][name^='"+e.data("name")+"']").val(s);var f=function(e,t){var a="".concat(i(e),"_").concat(i(t));return o[a]}(l,s);f?c(f,a):setTimeout(function(){t.ajax({url:"https://nominatim.openstreetmap.org/reverse",data:{format:"json",lat:l,lon:s,addressdetails:1},type:"GET",dataType:"json",success:function(n){if(n&&n.address){!function(e,t,a){var n="".concat(i(e),"_").concat(i(t));o[n]=a;try{var r=JSON.parse(localStorage.getItem("ff_nominatim_geocode_cache")||"{}");r[n]=a,localStorage.setItem("ff_nominatim_geocode_cache",JSON.stringify(r))}catch(e){console.warn("Could not save geocode data to localStorage")}}(l,s,n);var r=e.find(".ff_geocode_attribution");if(!r.length){r=t("<div/>",{class:"ff_geocode_attribution",style:"font-size:12px;color:#555;margin-top:2px;"});var d=e.find(".ff_input-group");d.length?r.insertAfter(d):e.append(r)}r.html('Geocoding data © <a href="https://www.openstreetmap.org/copyright" target="_blank">OSM contributors</a>')}c(n,a)},error:function(t){e.removeClass("ff-locating"),429===t.status?alert("Too many requests to geocoding service. Please try again in a few moments."):alert("Failed to fetch address from coordinates."),n.length&&n.prop("disabled",!1),"function"==typeof a&&a()}})},500*Math.random())},function(t){e.removeClass("ff-locating"),alert("Geolocation failed or was denied."),"function"==typeof a&&a()})):(alert("Geolocation is not supported by this browser."),"function"==typeof a&&a())}function c(t,a){e.removeClass("ff-locating"),t&&t.address?(t.address.road&&e.find("input[data-key_name='address_line_1']").val(t.address.road),t.address.city&&e.find("input[data-key_name='city']").val(t.address.city),t.address.state&&e.find("input[data-key_name='state']").val(t.address.state),t.address.postcode&&e.find("input[data-key_name='zip']").val(t.address.postcode),t.address.country_code&&e.find("select[data-key_name='country']").val(t.address.country_code.toUpperCase())):alert("Could not determine address from location."),n.length&&(n.prop("disabled",!1),setTimeout(function(){n.prop("disabled",!1)},1e3)),"function"==typeof a&&a()}"on_load"===a?s():"on_click"===a&&n.length&&n.off("click.ff_html5_locate").on("click.ff_html5_locate",function(){if(r)return!1;var t=e.find("input[data-key_name='address_line_1']"),a=t.val();return t.val("Please wait ..."),r=setTimeout(function(){r=null},2e3),s(function(){t.val()&&"Please wait ..."!==t.val()||t.val(a)}),!1})})}(jQuery))})();