File: /var/www/vfconf/wp-content/plugins/so-widgets-bundle/js/sow.google-map.min.js
function soGoogleMapInitialize(){jQuery(window.sowb).trigger("sow-google-map-loaded")}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],hasMapStyles:!1,drawMarkerEl:o=>{if(void 0===o||!1===o)return null;const e=document.createElement("img");return e.src=o,e.loading="lazy",e},showMap:function(o,e,a){var t=Number(a.zoom);t||(t=14),window.matchMedia("(max-width: "+a.breakpoint+"px)").matches&&(t=a.mobileZoom);var i={zoom:t,gestureHandling:a.gestureHandling,disableDefaultUI:a.disableUi,zoomControl:a.zoomControl,panControl:a.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[window.google.maps.MapTypeId.ROADMAP,window.google.maps.MapTypeId.SATELLITE,"user_map_style"]}};this.hasMapStyles=a.mapStyles&&Object.keys(a.mapStyles).length>0,this.hasMapStyles||(i.mapId=a.id);var s=new window.google.maps.Map(o,i),n={name:a.mapName};if(this.hasMapStyles){var r=new window.google.maps.StyledMapType(a.mapStyles,n);s.mapTypes.set("user_map_style",r),s.setMapTypeId("user_map_style")}a.markerAtCenter&&(this.centerMarker=this.addMarker(e,s,a.markerIcon,a.markersDraggable),s.centerMarker=this.centerMarker),this.linkAutocompleteField(a.autocomplete,a.autocompleteElement,s,a),this.showMarkers(a.markerPositions,s,a),this.showDirections(a.directions,s,a),sowb.SiteOriginGoogleMapInstances.push(s)},linkAutocompleteField:function(e,a,t,i){if(e&&a){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){t.setZoom(15),t.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(a);e.addListener("place_changed",function(){var o=e.getPlace();t.setZoom(15),o.geometry&&(t.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),window.google.maps.event.addListener(a,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),a=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=a+(t?", "+t:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,a){if(a===window.google.maps.GeocoderStatus.OK&&e.length>0){var t=e[0].formatted_address;n.val(t),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},addMarker:function(o,e,a,t){const i={position:o,map:e,gmpDraggable:t,draggable:t,title:""};return this.hasMapStyles?("string"==typeof a&&(i.icon=a),new window.google.maps.Marker(i)):(i.content=this.drawMarkerEl(a),new window.google.maps.marker.AdvancedMarkerElement(i))},showMarkers:function(o,e,a){if(o&&o.length){this.infoWindows=[];for(var t=[],i=0;i<o.length;i++){var s=parseInt(i/10);t.length===s&&(t[s]=[]),t[s][i%10]=o[i]}var n=function(o){var t=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,s=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){const n=t||a.markerIcon,r=this.addMarker(o,e,n,a.markersDraggable);if(i){var l={content:i};s&&(l.maxWidth=s);var p=a.markerInfoDisplay;l.disableAutoPan="always"===p;var g=new window.google.maps.InfoWindow(l);this.infoWindows.push(g);var d=p;"always"===p&&(d="click",g.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(d,function(){g.open(e,r),"always"===p||a.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==g&&o.close()}))}.bind(this)),"mouseover"===p&&r.addListener("mouseout",(function(){setTimeout((function(){g.close()}),100)}))}}.bind(this)).fail((function(o){r=o===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var a=0,t=0;t<o.length&&!r;t++)n(o[t]).then((function(){++a===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(t.shift(),t)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var a=new window.google.maps.DirectionsRenderer;a.setMap(e),(new window.google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,t){t===window.google.maps.DirectionsStatus.OK&&(a.setOptions({preserveViewport:o.preserveViewport}),a.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),a=new o.Deferred;0===e.length?a.resolve():e.each(function(e,t){if(void 0!==window.google.maps.places){var i=new window.google.maps.places.Autocomplete(t),s=o(t).siblings(".sow-google-map-canvas");if(s.length>0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=t,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),a.resolve()}.bind(this)).fail((function(){s.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),a.reject()}))}}else a.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),a.always(function(){o(".sow-google-map-canvas").each(function(e,a){var t=o(a);if(t.data("initialized"))return!0;var i=t.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(t.get(0),o,i),t.data("initialized",!0)}.bind(this)).fail((function(){t.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new window.google.maps.Geocoder),this._geocoder},getLocation:function(e){var a,t=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(a=new window.google.maps.LatLng(s[0],s[1]),isNaN(a.lat())||isNaN(a.lng())||(i={location:{lat:a.lat(),lng:a.lng()}}))}if(i.hasOwnProperty("location"))t.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===window.google.maps.GeocoderStatus.OK?t.resolve(o[0].geometry.location):e===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):t.reject(e):e!==window.google.maps.GeocoderStatus.ZERO_RESULTS&&e!==window.google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return t}}},jQuery(window.sowb).on("sow-google-map-loaded",(function(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()})),jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=["marker"];const e=()=>{if("object"!=typeof window.wp||"object"!=typeof window.wp.data||void 0===window.google.maps)return void setTimeout(e,250);const o=wp.data.subscribe(()=>{0!==wp.data.select("core/block-editor").getBlocks().length&&(soGoogleMapInitialize(),o(),sowb.loadGoogleMapsAPI(!0))})};sowb.setupGoogleMaps=function(a,t=!1){var i=o(".sow-google-map-canvas");if(i.length&&(o("body.wp-admin").length&&sowb.googleMapsData.libraries.push("places"),i.each((function(e,a){var t=o(a);if(t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),t.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),t||void 0===window.google.maps))if(o("body.wp-admin").length){if(o("#sow-google-maps-js").length||sowb.loadGoogleMapsAPI(t),o(".editor-styles-wrapper").length)return void e();setTimeout((function(){soGoogleMapInitialize()}),250)}else sowb.loadGoogleMapsAPI(t),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250)},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&(e||void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");let a="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize&loading=async";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(a+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var t=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var a;"string"==typeof e&&(a=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),a&&a.length&&a[0]&&(o(".sow-google-map-canvas").each((function(e,a){var t=o(a);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}})),sowb.googleMapsData.ApiError=!0),t.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),sowb.mapsApiInitialized||(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0)}))):(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0)},sowb.setupGoogleMaps(),o(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));