/* BEGIN map.google-maps.js */
(function(n,t,i){"use strict";t.Modules.register({name:"Geolocation.GoogleMapsMapAdapter",version:"1.0.0",description:"Contains the GoogleMapsMapAdapter class for use with the WOW.Geolocation.Map component.",dependencies:["APIs.GoogleMaps","Geolocation.Map"]},function(){function f(n,t,i){return(i||u(n)).infoWindowMapping.get(t)}function v(n,t,i){var e=(i||u(n)).infoWindowMapping,r=e.get(t),f,o;return r||(f=t.position,o=Object.assign({},t.options,{content:t.element,position:{lat:f.latitude,lng:f.longitude}}),r=new google.maps.InfoWindow(o),e.set(t,r)),r}function o(n,t,i){return(i||u(n)).markerMapping.get(t)}function y(n,t,i){var r,o,f,e;return i=i||u(n),r=i.markerMapping.get(t),r||(o=t.position,f=t.options,e=Object.assign({},f,{animation:"animation"in f?f.animation:google.maps.Animation.DROP,map:i.gmap,title:t.tooltip,position:{lat:o.latitude,lng:o.longitude}}),"label"in e&&delete e.label,r=new google.maps.Marker(e),i.markerMapping.set(t,r)),r}function c(n,t,r,f){var o=u(n),s=o.labelUid++,e=f||{};if(r.length<2){e.label=r;f||t.setOptions(e);return}e.label={text:r,fontFamily:'Roboto,Arial,sans-serif,"label-'+s+'"'};o.labelUpdates.unshift({label:r,tries:0,uid:s});setTimeout(l.bind(i,o.labelUpdates,n.element),100);f||t.setOptions(e)}function l(n,t){var f=n.length,r,u;if(f!==0){while(f--)r=n[f],u=t.querySelector("div[style*='label-"+r.uid+"']"),u?u.innerText=r.label:r.tries>=10?u=!0:r.tries++,u&&n.splice(f,1);n.length>0&&setTimeout(l.bind(i,n,t),100)}}function GoogleMapsMapAdapter(){}var h=t.APIs.GoogleMaps,u=new t.Core.PrivatePropertyManager({eventListenerMapping:null,gmap:null,infoWindowMapping:null,labelUid:null,labelUpdates:null,markerMapping:null}),e=t.Geolocation.Point,a=t.Geolocation.Bounds,p=t.Geolocation.MapEventListener,w=t.Geolocation.MapMarker,b=t.Geolocation.MapPanel,s=[],GoogleMapsMapAdapter,r;GoogleMapsMapAdapter.prototype=Object.create(t.Geolocation.MapAdapter.prototype);r=GoogleMapsMapAdapter.prototype;Object.defineProperties(r,{constructor:{value:GoogleMapsMapAdapter},googleMap:{enumerable:!0,get:function(){return this instanceof GoogleMapsMapAdapter?u(this).gmap:null}}});r.initialize=function(){var t=this.options,r=null,i;if(!h.isLoaded)return s.indexOf(this)===-1&&s.push(this),"apiKey"in t&&typeof t.apiKey=="string"&&t.apiKey.length>0&&(r=t.apiKey,delete t.apiKey),h.load(r),!1;if(typeof t.zoom!="number"&&(t.zoom=4),"center"in t&&!(t.center instanceof e))try{t.center=new e(t.center)}catch(f){}return t.center instanceof e||(t.center=new e(36.6956321979,-96.9154513745)),t.center=new google.maps.LatLng(t.center.latitude,t.center.longitude),i=new google.maps.Map(this.element,t),u.merge(this,{eventListenerMapping:new WeakMap,gmap:i,infoWindowMapping:new WeakMap,labelUid:0,labelUpdates:[],markerMapping:new WeakMap}),n.gmap=i,n.ma=u(this).markerMapping,!0};r.getBounds=function(){return a.fromLatLngBounds(u(this).gmap.getBounds())};r.getCenter=function(){return e(u(this).gmap.getCenter())};r.onMapEventListenerAdded=function(n){var t=u(this),i;t.eventListenerMapping.delete(n);i=t.gmap.addListener(n.event,n.callback);t.eventListenerMapping.set(n,i)};r.onMapEventListenerRemoved=function(n){var t=u(this).eventListenerMapping.get(n);t&&t.remove()};r.onMarkerAdded=function(n){var i=y(this,n),t=n.label;t&&c(this,i,t)};r.onMarkerEventListenerAdded=function(n,t){var i=u(this),r=o(this,n,i),f;i.eventListenerMapping.delete(t);r&&(f=r.addListener(t.event,t.callback),i.eventListenerMapping.set(t,f))};r.onMarkerEventListenerRemoved=function(n,t){var i=u(this).eventListenerMapping.get(t);i&&i.remove()};r.onMarkerOptionsChanged=function(n,t){var i=o(this,n),r;i&&("tooltip"in t&&(t.title=t.tooltip),"label"in t&&(r=t.label,r.length>1&&c(this,i,r,t)),i.setOptions(t))};r.onMarkerRemoved=function(n){var t=o(this,n);t&&t.setMap(null)};r.onPanelAdded=function(n){if(v(this,n),n.visible)this.onPanelShown(n)};r.onPanelAttachedToMarker=function(n,t){var i,r,e;n.visible&&(i=u(this),r=f(this,n,i),e=o(this,t,i),r&&e&&r.open(i.gmap,e))};r.onPanelEventListenerAdded=function(n,t){var i=u(this),e=f(this,n,i),r=t.event,o;i.eventListenerMapping.delete(t);e&&(r==="close"&&(r="closeclick"),o=e.addListener(r,t.callback),i.eventListenerMapping.set(t,o))};r.onPanelEventListenerRemoved=function(n,t){var i=u(this).eventListenerMapping.get(t);i&&i.remove()};r.onPanelHidden=function(n){var t=f(this,n);t&&t.close()};r.onPanelOptionsChanged=function(n,t){var i=f(this,n);i&&i.setOptions(t)};r.onPanelPositionChanged=function(n,t){var i;n.marker||(i=f(this,n),i&&i.setPosition(t.toLatLng()))};r.onPanelRemoved=function(n){var t=f(this,n);t&&t.close()};r.onPanelShown=function(n){var t=u(this),i=f(this,n,t),r=n.marker,e=r?o(this,r,t):null;i&&(e?i.open(t.gmap,e):i.open(t.gmap))};r.setBounds=function(n){u(this).gmap.fitBounds(n.toLatLngBounds())};r.setCenter=function(n){u(this).gmap.setCenter(n.toLatLng())};h.onLoad(function(){var n=0,t=s.length;for(n,t;n<t;n++)s[n].initialize()});return GoogleMapsMapAdapter})})(window,Whereoware);
/* END   map.google-maps.js */
