@react-google-maps/api
Version:
React.js Google Maps API integration
1 lines • 156 kB
JavaScript
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{createContext as o,useContext as s,memo as i,useState as r,useRef as a,useEffect as l,PureComponent as p,useMemo as u,Children as h,isValidElement as d,cloneElement as g,createRef as c}from"react";import*as m from"react-dom";import{createPortal as v}from"react-dom";function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function y(e){var t=function(e,t){if("object"!=f(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=f(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==f(t)?t:t+""}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var w,M;var C=L(function(){if(M)return w;M=1;var e=process.env.NODE_ENV;return w=function(t,n,o,s,i,r,a,l){if("production"!==e&&void 0===n)throw new Error("invariant requires an error message argument");if(!t){var p;if(void 0===n)p=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[o,s,i,r,a,l],h=0;(p=new Error(n.replace(/%s/g,(function(){return u[h++]})))).name="Invariant Violation"}throw p.framesToPop=1,p}}}()),x=o(null);function k(){C(!!s,"useGoogleMap is React hook and requires React version 16.8+");var e=s(x);return C(!!e,"useGoogleMap needs a GoogleMap available up in the tree"),e}function P(e,t,n,o){var s,i,r={};return s=e,i=(e,s)=>{var i=n[s];i!==t[s]&&(r[s]=i,e(o,i))},Object.keys(s).forEach((e=>i(s[e],e))),r}function O(e,t,n){var o,s,i,r=(o=n,s=function(n,o,s){return"function"==typeof e[s]&&n.push(google.maps.event.addListener(t,o,e[s])),n},i=[],Object.keys(o).reduce((function(e,t){return s(e,o[t],t)}),i));return r}function E(e){google.maps.event.removeListener(e)}function S(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(E)}function D(e){var{updaterMap:t,eventMap:n,prevProps:o,nextProps:s,instance:i}=e,r=O(s,i,n);return P(t,o,s,i),r}var I={onDblClick:"dblclick",onDragEnd:"dragend",onDragStart:"dragstart",onMapTypeIdChanged:"maptypeid_changed",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseDown:"mousedown",onMouseUp:"mouseup",onRightClick:"rightclick",onTilesLoaded:"tilesloaded",onBoundsChanged:"bounds_changed",onCenterChanged:"center_changed",onClick:"click",onDrag:"drag",onHeadingChanged:"heading_changed",onIdle:"idle",onProjectionChanged:"projection_changed",onResize:"resize",onTiltChanged:"tilt_changed",onZoomChanged:"zoom_changed"},j={extraMapTypes(e,t){t.forEach((function(t,n){e.mapTypes.set(String(n),t)}))},center(e,t){e.setCenter(t)},clickableIcons(e,t){e.setClickableIcons(t)},heading(e,t){e.setHeading(t)},mapTypeId(e,t){e.setMapTypeId(t)},options(e,t){e.setOptions(t)},streetView(e,t){e.setStreetView(t)},tilt(e,t){e.setTilt(t)},zoom(e,t){e.setZoom(t)}};i((function(t){var{children:n,options:o,id:s,mapContainerStyle:i,mapContainerClassName:p,center:u,onClick:h,onDblClick:d,onDrag:g,onDragEnd:c,onDragStart:m,onMouseMove:v,onMouseOut:f,onMouseOver:y,onMouseDown:b,onMouseUp:L,onRightClick:w,onCenterChanged:M,onLoad:C,onUnmount:k}=t,[P,O]=r(null),E=a(null),[S,D]=r(null),[I,j]=r(null),[B,_]=r(null),[T,U]=r(null),[z,R]=r(null),[A,Z]=r(null),[V,W]=r(null),[N,H]=r(null),[G,F]=r(null),[K,Y]=r(null),[q,J]=r(null),[X,$]=r(null);return l((()=>{o&&null!==P&&P.setOptions(o)}),[P,o]),l((()=>{null!==P&&void 0!==u&&P.setCenter(u)}),[P,u]),l((()=>{P&&d&&(null!==I&&google.maps.event.removeListener(I),j(google.maps.event.addListener(P,"dblclick",d)))}),[d]),l((()=>{P&&c&&(null!==B&&google.maps.event.removeListener(B),_(google.maps.event.addListener(P,"dragend",c)))}),[c]),l((()=>{P&&m&&(null!==T&&google.maps.event.removeListener(T),U(google.maps.event.addListener(P,"dragstart",m)))}),[m]),l((()=>{P&&b&&(null!==z&&google.maps.event.removeListener(z),R(google.maps.event.addListener(P,"mousedown",b)))}),[b]),l((()=>{P&&v&&(null!==A&&google.maps.event.removeListener(A),Z(google.maps.event.addListener(P,"mousemove",v)))}),[v]),l((()=>{P&&f&&(null!==V&&google.maps.event.removeListener(V),W(google.maps.event.addListener(P,"mouseout",f)))}),[f]),l((()=>{P&&y&&(null!==N&&google.maps.event.removeListener(N),H(google.maps.event.addListener(P,"mouseover",y)))}),[y]),l((()=>{P&&L&&(null!==G&&google.maps.event.removeListener(G),F(google.maps.event.addListener(P,"mouseup",L)))}),[L]),l((()=>{P&&w&&(null!==K&&google.maps.event.removeListener(K),Y(google.maps.event.addListener(P,"rightclick",w)))}),[w]),l((()=>{P&&h&&(null!==q&&google.maps.event.removeListener(q),J(google.maps.event.addListener(P,"click",h)))}),[h]),l((()=>{P&&g&&(null!==X&&google.maps.event.removeListener(X),$(google.maps.event.addListener(P,"drag",g)))}),[g]),l((()=>{P&&M&&(null!==S&&google.maps.event.removeListener(S),D(google.maps.event.addListener(P,"center_changed",M)))}),[h]),l((()=>{var e=null===E.current?null:new google.maps.Map(E.current,o);return O(e),null!==e&&C&&C(e),()=>{null!==e&&k&&k(e)}}),[]),e("div",{id:s,ref:E,style:i,className:p,children:e(x.Provider,{value:P,children:null!==P?n:null})})}));class B extends p{constructor(){super(...arguments),b(this,"state",{map:null}),b(this,"registeredEvents",[]),b(this,"mapRef",null),b(this,"getInstance",(()=>null===this.mapRef?null:new google.maps.Map(this.mapRef,this.props.options))),b(this,"panTo",(e=>{var t=this.getInstance();t&&t.panTo(e)})),b(this,"setMapCallback",(()=>{null!==this.state.map&&this.props.onLoad&&this.props.onLoad(this.state.map)})),b(this,"getRef",(e=>{this.mapRef=e}))}componentDidMount(){var e=this.getInstance();this.registeredEvents=D({updaterMap:j,eventMap:I,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{map:e}}),this.setMapCallback)}componentDidUpdate(e){null!==this.state.map&&(S(this.registeredEvents),this.registeredEvents=D({updaterMap:j,eventMap:I,prevProps:e,nextProps:this.props,instance:this.state.map}))}componentWillUnmount(){null!==this.state.map&&(this.props.onUnmount&&this.props.onUnmount(this.state.map),S(this.registeredEvents))}render(){return e("div",{id:this.props.id,ref:this.getRef,style:this.props.mapContainerStyle,className:this.props.mapContainerClassName,children:e(x.Provider,{value:this.state.map,children:null!==this.state.map?this.props.children:null})})}}function _(e,t,n,o,s,i,r){try{var a=e[i](r),l=a.value}catch(e){return void n(e)}a.done?t(l):Promise.resolve(l).then(o,s)}function T(e){return function(){var t=this,n=arguments;return new Promise((function(o,s){var i=e.apply(t,n);function r(e){_(i,o,s,r,a,"next",e)}function a(e){_(i,o,s,r,a,"throw",e)}r(void 0)}))}}function U(e){var{googleMapsApiKey:t,googleMapsClientId:n,version:o="weekly",language:s,region:i,libraries:r,channel:a,mapIds:l,authReferrerPolicy:p}=e,u=[];return C(t&&n||!(t&&n),"You need to specify either googleMapsApiKey or googleMapsClientId for @react-google-maps/api load script to work. You cannot use both at the same time."),t?u.push("key=".concat(t)):n&&u.push("client=".concat(n)),o&&u.push("v=".concat(o)),s&&u.push("language=".concat(s)),i&&u.push("region=".concat(i)),r&&r.length&&u.push("libraries=".concat(r.sort().join(","))),a&&u.push("channel=".concat(a)),l&&l.length&&u.push("map_ids=".concat(l.join(","))),p&&u.push("auth_referrer_policy=".concat(p)),u.push("loading=async"),u.push("callback=initMap"),"https://maps.googleapis.com/maps/api/js?".concat(u.join("&"))}var z="undefined"!=typeof document;function R(e){var{url:t,id:n,nonce:o}=e;return z?new Promise((function(e,s){var i=document.getElementById(n),r=window;if(i){var a=i.getAttribute("data-state");if(i.src===t&&"error"!==a){if("ready"===a)return e(n);var l=r.initMap,p=i.onerror;return r.initMap=function(){l&&l(),e(n)},void(i.onerror=function(e){p&&p(e),s(e)})}i.remove()}var u=document.createElement("script");u.type="text/javascript",u.src=t,u.id=n,u.async=!0,u.nonce=o||"",u.onerror=function(e){u.setAttribute("data-state","error"),s(e)},r.initMap=function(){u.setAttribute("data-state","ready"),e(n)},document.head.appendChild(u)})).catch((e=>{throw console.error("injectScript error: ",e),e})):Promise.reject(new Error("document is undefined"))}function A(e){var t=e.href;return!(!t||0!==t.indexOf("https://fonts.googleapis.com/css?family=Roboto")&&0!==t.indexOf("https://fonts.googleapis.com/css?family=Google+Sans+Text"))||("style"===e.tagName.toLowerCase()&&e.styleSheet&&e.styleSheet.cssText&&0===e.styleSheet.cssText.replace("\r\n","").indexOf(".gm-style")?(e.styleSheet.cssText="",!0):"style"===e.tagName.toLowerCase()&&e.innerHTML&&0===e.innerHTML.replace("\r\n","").indexOf(".gm-style")?(e.innerHTML="",!0):"style"===e.tagName.toLowerCase()&&!e.styleSheet&&!e.innerHTML)}function Z(){var e=document.getElementsByTagName("head")[0];if(e){var t=e.insertBefore.bind(e);e.insertBefore=function(n,o){return A(n)||Reflect.apply(t,e,[n,o]),n};var n=e.appendChild.bind(e);e.appendChild=function(t){return A(t)||Reflect.apply(n,e,[t]),t}}}var V=!1;function W(){return e("div",{children:"Loading..."})}var N,H={id:"script-loader",version:"weekly"};class G extends p{constructor(){super(...arguments),b(this,"check",null),b(this,"state",{loaded:!1}),b(this,"cleanupCallback",(()=>{delete window.google.maps,this.injectScript()})),b(this,"isCleaningUp",T((function*(){return new Promise((function(e){if(V){if(z)var t=window.setInterval((function(){V||(window.clearInterval(t),e())}),1)}else e()}))}))),b(this,"cleanup",(()=>{V=!0;var e=document.getElementById(this.props.id);e&&e.parentNode&&e.parentNode.removeChild(e),Array.prototype.slice.call(document.getElementsByTagName("script")).filter((function(e){return"string"==typeof e.src&&e.src.includes("maps.googleapis")})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)})),Array.prototype.slice.call(document.getElementsByTagName("link")).filter((function(e){return"https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans"===e.href})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)})),Array.prototype.slice.call(document.getElementsByTagName("style")).filter((function(e){return void 0!==e.innerText&&e.innerText.length>0&&e.innerText.includes(".gm-")})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)}))})),b(this,"injectScript",(()=>{this.props.preventGoogleFontsLoading&&Z(),C(!!this.props.id,'LoadScript requires "id" prop to be a string: %s',this.props.id),R({id:this.props.id,nonce:this.props.nonce,url:U(this.props)}).then((()=>{this.props.onLoad&&this.props.onLoad(),this.setState((function(){return{loaded:!0}}))})).catch((e=>{this.props.onError&&this.props.onError(e),console.error("\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (".concat(this.props.googleMapsApiKey||"-",") or Client ID (").concat(this.props.googleMapsClientId||"-",") to <LoadScript />\n Otherwise it is a Network issue.\n "))}))})),b(this,"getRef",(e=>{this.check=e}))}componentDidMount(){if(z){if(window.google&&window.google.maps&&!V)return void console.error("google api is already presented");this.isCleaningUp().then(this.injectScript).catch((function(e){console.error("Error at injecting script after cleaning up: ",e)}))}}componentDidUpdate(e){this.props.libraries!==e.libraries&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),z&&e.language!==this.props.language&&(this.cleanup(),this.setState((function(){return{loaded:!1}}),this.cleanupCallback))}componentWillUnmount(){if(z){this.cleanup();window.setTimeout((()=>{this.check||(delete window.google,V=!1)}),1),this.props.onUnmount&&this.props.onUnmount()}}render(){return t(n,{children:[e("div",{ref:this.getRef}),this.state.loaded?this.props.children:this.props.loadingElement||e(W,{})]})}}function F(e,t){if(null==e)return{};var n,o,s=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function K(e){var{id:t=H.id,version:n=H.version,nonce:o,googleMapsApiKey:s,googleMapsClientId:i,language:p,region:u,libraries:h,preventGoogleFontsLoading:d,channel:g,mapIds:c,authReferrerPolicy:m}=e,v=a(!1),[f,y]=r(!1),[b,L]=r(void 0);l((function(){return v.current=!0,()=>{v.current=!1}}),[]),l((function(){z&&d&&Z()}),[d]),l((function(){f&&C(!!window.google,"useLoadScript was marked as loaded, but window.google is not present. Something went wrong.")}),[f]);var w=U({version:n,googleMapsApiKey:s,googleMapsClientId:i,language:p,region:u,libraries:h,channel:g,mapIds:c,authReferrerPolicy:m});l((function(){function e(){v.current&&(y(!0),N=w)}z&&(window.google&&window.google.maps&&N===w?e():R({id:t,url:w,nonce:o}).then(e).catch((function(e){v.current&&L(e),console.warn("\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (".concat(s||"-",") or Client ID (").concat(i||"-",")\n Otherwise it is a Network issue.\n ")),console.error(e)})))}),[t,w,o]);var M=a(void 0);return l((function(){M.current&&h!==M.current&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),M.current=h}),[h]),{isLoaded:f,loadError:b,url:w}}b(G,"defaultProps",H);var Y=["loadingElement","onLoad","onError","onUnmount","children"],q=e(W,{});var J=i((function(e){var{loadingElement:t,onLoad:n,onError:o,onUnmount:s,children:i}=e,r=F(e,Y),{isLoaded:a,loadError:p}=K(r);return l((function(){a&&"function"==typeof n&&n()}),[a,n]),l((function(){p&&"function"==typeof o&&o(p)}),[p,o]),l((function(){return()=>{s&&s()}}),[s]),a?i:t||q}));function X(e,t,n,o){return new(n||(n=Promise))((function(t,s){function i(e){try{a(o.next(e))}catch(e){s(e)}}function r(e){try{a(o.throw(e))}catch(e){s(e)}}function a(e){var o;e.done?t(e.value):(o=e.value,o instanceof n?o:new n((function(e){e(o)}))).then(i,r)}a((o=o.apply(e,[])).next())}))}function $(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}"function"==typeof SuppressedError&&SuppressedError;var Q,ee=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var o,s,i;if(Array.isArray(t)){if((o=t.length)!=n.length)return!1;for(s=o;0!=s--;)if(!e(t[s],n[s]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((o=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(s=o;0!=s--;)if(!Object.prototype.hasOwnProperty.call(n,i[s]))return!1;for(s=o;0!=s--;){var r=i[s];if(!e(t[r],n[r]))return!1}return!0}return t!=t&&n!=n},te=$(ee),ne="__googleMapsScriptId";!function(e){e[e.INITIALIZED=0]="INITIALIZED",e[e.LOADING=1]="LOADING",e[e.SUCCESS=2]="SUCCESS",e[e.FAILURE=3]="FAILURE"}(Q||(Q={}));class oe{constructor(e){var{apiKey:t,authReferrerPolicy:n,channel:o,client:s,id:i=ne,language:r,libraries:a=[],mapIds:l,nonce:p,region:u,retries:h=3,url:d="https://maps.googleapis.com/maps/api/js",version:g}=e;if(this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=t,this.authReferrerPolicy=n,this.channel=o,this.client=s,this.id=i||ne,this.language=r,this.libraries=a,this.mapIds=l,this.nonce=p,this.region=u,this.retries=h,this.url=d,this.version=g,oe.instance){if(!te(this.options,oe.instance.options))throw new Error("Loader must not be called again with different options. ".concat(JSON.stringify(this.options)," !== ").concat(JSON.stringify(oe.instance.options)));return oe.instance}oe.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?Q.FAILURE:this.done?Q.SUCCESS:this.loading?Q.LOADING:Q.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){var e=this.url;return e+="?callback=__googleMapsCallback&loading=async",this.apiKey&&(e+="&key=".concat(this.apiKey)),this.channel&&(e+="&channel=".concat(this.channel)),this.client&&(e+="&client=".concat(this.client)),this.libraries.length>0&&(e+="&libraries=".concat(this.libraries.join(","))),this.language&&(e+="&language=".concat(this.language)),this.region&&(e+="®ion=".concat(this.region)),this.version&&(e+="&v=".concat(this.version)),this.mapIds&&(e+="&map_ids=".concat(this.mapIds.join(","))),this.authReferrerPolicy&&(e+="&auth_referrer_policy=".concat(this.authReferrerPolicy)),e}deleteScript(){var e=document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise(((e,t)=>{this.loadCallback((n=>{n?t(n.error):e(window.google)}))}))}importLibrary(e){return this.execute(),google.maps.importLibrary(e)}loadCallback(e){this.callbacks.push(e),this.execute()}setScript(){var e,t;if(document.getElementById(this.id))this.callback();else{var n={key:this.apiKey,channel:this.channel,client:this.client,libraries:this.libraries.length&&this.libraries,v:this.version,mapIds:this.mapIds,language:this.language,region:this.region,authReferrerPolicy:this.authReferrerPolicy};Object.keys(n).forEach((e=>!n[e]&&delete n[e])),(null===(t=null===(e=null===window||void 0===window?void 0:window.google)||void 0===e?void 0:e.maps)||void 0===t?void 0:t.importLibrary)||(e=>{var t,n,o,s="The Google Maps JavaScript API",i="google",r="importLibrary",a="__ib__",l=document,p=window,u=(p=p[i]||(p[i]={})).maps||(p.maps={}),h=new Set,d=new URLSearchParams,g=()=>t||(t=new Promise(((r,p)=>X(this,0,void 0,(function*(){var g;for(o in yield n=l.createElement("script"),n.id=this.id,d.set("libraries",[...h]+""),e)d.set(o.replace(/[A-Z]/g,(e=>"_"+e[0].toLowerCase())),e[o]);d.set("callback",i+".maps."+a),n.src=this.url+"?"+d,u[a]=r,n.onerror=()=>t=p(Error(s+" could not load.")),n.nonce=this.nonce||(null===(g=l.querySelector("script[nonce]"))||void 0===g?void 0:g.nonce)||"",l.head.append(n)})))));u[r]?console.warn(s+" only loads once. Ignoring:",e):u[r]=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return h.add(e)&&g().then((()=>u[r](e,...n)))}})(n);var o=this.libraries.map((e=>this.importLibrary(e)));o.length||o.push(this.importLibrary("core")),Promise.all(o).then((()=>this.callback()),(e=>{var t=new ErrorEvent("error",{error:e});this.loadErrorCallback(t)}))}}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){var t=this.errors.length*Math.pow(2,this.errors.length);console.error("Failed to load Google Maps script, retrying in ".concat(t," ms.")),setTimeout((()=>{this.deleteScript(),this.setScript()}),t)}else this.onerrorEvent=e,this.callback()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach((e=>{e(this.onerrorEvent)})),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),!this.loading)if(this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version)return console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. This may result in undesirable behavior as options and script parameters may not match."),void this.callback();this.loading=!0,this.setScript()}}}var se=["maps"];function ie(e){var{id:t=H.id,version:n=H.version,nonce:o,googleMapsApiKey:s,language:i,region:p,libraries:h=se,preventGoogleFontsLoading:d,mapIds:g,authReferrerPolicy:c}=e,m=a(!1),[v,f]=r(!1),[y,b]=r(void 0);l((function(){return m.current=!0,()=>{m.current=!1}}),[]);var L=u((()=>new oe({id:t,apiKey:s,version:n,libraries:h,language:i||"en",region:p||"US",mapIds:g||[],nonce:o||"",authReferrerPolicy:c||"origin"})),[t,s,n,h,i,p,g,o,c]);l((function(){v||L.load().then((()=>{m.current&&f(!0)})).catch((e=>{b(e)}))}),[]),l((()=>{z&&d&&Z()}),[d]);var w=a();return l((()=>{w.current&&h!==w.current&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),w.current=h}),[h]),{isLoaded:v,loadError:y}}function re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var le={},pe={options(e,t){e.setOptions(t)}};var ue=i((function(e){var{options:t,onLoad:n,onUnmount:o}=e,i=s(x),[a,p]=r(null);return l((()=>{null!==a&&a.setMap(i)}),[i]),l((()=>{t&&null!==a&&a.setOptions(t)}),[a,t]),l((()=>{var e=new google.maps.TrafficLayer(ae(ae({},t),{},{map:i}));return p(e),n&&n(e),()=>{null!==a&&(o&&o(a),a.setMap(null))}}),[]),null}));class he extends p{constructor(){super(...arguments),b(this,"state",{trafficLayer:null}),b(this,"setTrafficLayerCallback",(()=>{null!==this.state.trafficLayer&&this.props.onLoad&&this.props.onLoad(this.state.trafficLayer)})),b(this,"registeredEvents",[])}componentDidMount(){var e=new google.maps.TrafficLayer(ae(ae({},this.props.options),{},{map:this.context}));this.registeredEvents=D({updaterMap:pe,eventMap:le,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{trafficLayer:e}}),this.setTrafficLayerCallback)}componentDidUpdate(e){null!==this.state.trafficLayer&&(S(this.registeredEvents),this.registeredEvents=D({updaterMap:pe,eventMap:le,prevProps:e,nextProps:this.props,instance:this.state.trafficLayer}))}componentWillUnmount(){null!==this.state.trafficLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.trafficLayer),S(this.registeredEvents),this.state.trafficLayer.setMap(null))}render(){return null}}b(he,"contextType",x);var de=i((function(e){var{onLoad:t,onUnmount:n}=e,o=s(x),[i,a]=r(null);return l((()=>{null!==i&&i.setMap(o)}),[o]),l((()=>{var e=new google.maps.BicyclingLayer;return a(e),e.setMap(o),t&&t(e),()=>{null!==e&&(n&&n(e),e.setMap(null))}}),[]),null}));class ge extends p{constructor(){super(...arguments),b(this,"state",{bicyclingLayer:null}),b(this,"setBicyclingLayerCallback",(()=>{null!==this.state.bicyclingLayer&&(this.state.bicyclingLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.bicyclingLayer))}))}componentDidMount(){var e=new google.maps.BicyclingLayer;this.setState((()=>({bicyclingLayer:e})),this.setBicyclingLayerCallback)}componentWillUnmount(){null!==this.state.bicyclingLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.bicyclingLayer),this.state.bicyclingLayer.setMap(null))}render(){return null}}b(ge,"contextType",x);var ce=i((function(e){var{onLoad:t,onUnmount:n}=e,o=s(x),[i,a]=r(null);return l((()=>{null!==i&&i.setMap(o)}),[o]),l((()=>{var e=new google.maps.TransitLayer;return a(e),e.setMap(o),t&&t(e),()=>{null!==i&&(n&&n(i),i.setMap(null))}}),[]),null}));class me extends p{constructor(){super(...arguments),b(this,"state",{transitLayer:null}),b(this,"setTransitLayerCallback",(()=>{null!==this.state.transitLayer&&(this.state.transitLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.transitLayer))}))}componentDidMount(){var e=new google.maps.TransitLayer;this.setState((function(){return{transitLayer:e}}),this.setTransitLayerCallback)}componentWillUnmount(){null!==this.state.transitLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.transitLayer),this.state.transitLayer.setMap(null))}render(){return null}}function ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ve(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}b(me,"contextType",x);var ye={onCircleComplete:"circlecomplete",onMarkerComplete:"markercomplete",onOverlayComplete:"overlaycomplete",onPolygonComplete:"polygoncomplete",onPolylineComplete:"polylinecomplete",onRectangleComplete:"rectanglecomplete"},be={drawingMode(e,t){e.setDrawingMode(t)},options(e,t){e.setOptions(t)}};var Le=i((function(e){var{options:t,drawingMode:n,onCircleComplete:o,onMarkerComplete:i,onOverlayComplete:a,onPolygonComplete:p,onPolylineComplete:u,onRectangleComplete:h,onLoad:d,onUnmount:g}=e,c=s(x),[m,v]=r(null),[f,y]=r(null),[b,L]=r(null),[w,M]=r(null),[k,P]=r(null),[O,E]=r(null),[S,D]=r(null);return l((()=>{null!==m&&m.setMap(c)}),[c]),l((()=>{t&&null!==m&&m.setOptions(t)}),[m,t]),l((()=>{null!==m&&m.setDrawingMode(null!=n?n:null)}),[m,n]),l((()=>{m&&o&&(null!==f&&google.maps.event.removeListener(f),y(google.maps.event.addListener(m,"circlecomplete",o)))}),[m,o]),l((()=>{m&&i&&(null!==b&&google.maps.event.removeListener(b),L(google.maps.event.addListener(m,"markercomplete",i)))}),[m,i]),l((()=>{m&&a&&(null!==w&&google.maps.event.removeListener(w),M(google.maps.event.addListener(m,"overlaycomplete",a)))}),[m,a]),l((()=>{m&&p&&(null!==k&&google.maps.event.removeListener(k),P(google.maps.event.addListener(m,"polygoncomplete",p)))}),[m,p]),l((()=>{m&&u&&(null!==O&&google.maps.event.removeListener(O),E(google.maps.event.addListener(m,"polylinecomplete",u)))}),[m,u]),l((()=>{m&&h&&(null!==S&&google.maps.event.removeListener(S),D(google.maps.event.addListener(m,"rectanglecomplete",h)))}),[m,h]),l((()=>{C(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing);var e=new google.maps.drawing.DrawingManager(fe(fe({},t),{},{map:c}));return n&&e.setDrawingMode(n),o&&y(google.maps.event.addListener(e,"circlecomplete",o)),i&&L(google.maps.event.addListener(e,"markercomplete",i)),a&&M(google.maps.event.addListener(e,"overlaycomplete",a)),p&&P(google.maps.event.addListener(e,"polygoncomplete",p)),u&&E(google.maps.event.addListener(e,"polylinecomplete",u)),h&&D(google.maps.event.addListener(e,"rectanglecomplete",h)),v(e),d&&d(e),()=>{null!==m&&(f&&google.maps.event.removeListener(f),b&&google.maps.event.removeListener(b),w&&google.maps.event.removeListener(w),k&&google.maps.event.removeListener(k),O&&google.maps.event.removeListener(O),S&&google.maps.event.removeListener(S),g&&g(m),m.setMap(null))}}),[]),null}));class we extends p{constructor(e){super(e),b(this,"registeredEvents",[]),b(this,"state",{drawingManager:null}),b(this,"setDrawingManagerCallback",(()=>{null!==this.state.drawingManager&&this.props.onLoad&&this.props.onLoad(this.state.drawingManager)})),C(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing)}componentDidMount(){var e=new google.maps.drawing.DrawingManager(fe(fe({},this.props.options),{},{map:this.context}));this.registeredEvents=D({updaterMap:be,eventMap:ye,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{drawingManager:e}}),this.setDrawingManagerCallback)}componentDidUpdate(e){null!==this.state.drawingManager&&(S(this.registeredEvents),this.registeredEvents=D({updaterMap:be,eventMap:ye,prevProps:e,nextProps:this.props,instance:this.state.drawingManager}))}componentWillUnmount(){null!==this.state.drawingManager&&(this.props.onUnmount&&this.props.onUnmount(this.state.drawingManager),S(this.registeredEvents),this.state.drawingManager.setMap(null))}render(){return null}}function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Me(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}b(we,"contextType",x);var xe={onAnimationChanged:"animation_changed",onClick:"click",onClickableChanged:"clickable_changed",onCursorChanged:"cursor_changed",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDraggableChanged:"draggable_changed",onDragStart:"dragstart",onFlatChanged:"flat_changed",onIconChanged:"icon_changed",onMouseDown:"mousedown",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onPositionChanged:"position_changed",onRightClick:"rightclick",onShapeChanged:"shape_changed",onTitleChanged:"title_changed",onVisibleChanged:"visible_changed",onZindexChanged:"zindex_changed"},ke={animation(e,t){e.setAnimation(t)},clickable(e,t){e.setClickable(t)},cursor(e,t){e.setCursor(t)},draggable(e,t){e.setDraggable(t)},icon(e,t){e.setIcon(t)},label(e,t){e.setLabel(t)},map(e,t){e.setMap(t)},opacity(e,t){e.setOpacity(t)},options(e,t){e.setOptions(t)},position(e,t){e.setPosition(t)},shape(e,t){e.setShape(t)},title(e,t){e.setTitle(t)},visible(e,t){e.setVisible(t)},zIndex(e,t){e.setZIndex(t)}},Pe={};var Oe=i((function(t){var{position:o,options:i,clusterer:a,noClustererRedraw:p,children:c,draggable:m,visible:v,animation:f,clickable:y,cursor:b,icon:L,label:w,opacity:M,shape:C,title:k,zIndex:P,onClick:O,onDblClick:E,onDrag:S,onDragEnd:D,onDragStart:I,onMouseOut:j,onMouseOver:B,onMouseUp:_,onMouseDown:T,onRightClick:U,onClickableChanged:z,onCursorChanged:R,onAnimationChanged:A,onDraggableChanged:Z,onFlatChanged:V,onIconChanged:W,onPositionChanged:N,onShapeChanged:H,onTitleChanged:G,onVisibleChanged:F,onZindexChanged:K,onLoad:Y,onUnmount:q}=t,J=s(x),[X,$]=r(null),[Q,ee]=r(null),[te,ne]=r(null),[oe,se]=r(null),[ie,re]=r(null),[ae,le]=r(null),[pe,ue]=r(null),[he,de]=r(null),[ge,ce]=r(null),[me,ve]=r(null),[fe,ye]=r(null),[be,Le]=r(null),[we,Me]=r(null),[xe,ke]=r(null),[Oe,Ee]=r(null),[Se,De]=r(null),[Ie,je]=r(null),[Be,_e]=r(null),[Te,Ue]=r(null),[ze,Re]=r(null),[Ae,Ze]=r(null),[Ve,We]=r(null);l((()=>{null!==X&&X.setMap(J)}),[J]),l((()=>{void 0!==i&&null!==X&&X.setOptions(i)}),[X,i]),l((()=>{void 0!==m&&null!==X&&X.setDraggable(m)}),[X,m]),l((()=>{o&&null!==X&&X.setPosition(o)}),[X,o]),l((()=>{void 0!==v&&null!==X&&X.setVisible(v)}),[X,v]),l((()=>{null==X||X.setAnimation(f)}),[X,f]),l((()=>{X&&void 0!==y&&X.setClickable(y)}),[X,y]),l((()=>{X&&void 0!==b&&X.setCursor(b)}),[X,b]),l((()=>{X&&void 0!==L&&X.setIcon(L)}),[X,L]),l((()=>{X&&void 0!==w&&X.setLabel(w)}),[X,w]),l((()=>{X&&void 0!==M&&X.setOpacity(M)}),[X,M]),l((()=>{X&&void 0!==C&&X.setShape(C)}),[X,C]),l((()=>{X&&void 0!==k&&X.setTitle(k)}),[X,k]),l((()=>{X&&void 0!==P&&X.setZIndex(P)}),[X,P]),l((()=>{X&&E&&(null!==Q&&google.maps.event.removeListener(Q),ee(google.maps.event.addListener(X,"dblclick",E)))}),[E]),l((()=>{X&&D&&(null!==te&&google.maps.event.removeListener(te),ne(google.maps.event.addListener(X,"dragend",D)))}),[D]),l((()=>{X&&I&&(null!==oe&&google.maps.event.removeListener(oe),se(google.maps.event.addListener(X,"dragstart",I)))}),[I]),l((()=>{X&&T&&(null!==ie&&google.maps.event.removeListener(ie),re(google.maps.event.addListener(X,"mousedown",T)))}),[T]),l((()=>{X&&j&&(null!==ae&&google.maps.event.removeListener(ae),le(google.maps.event.addListener(X,"mouseout",j)))}),[j]),l((()=>{X&&B&&(null!==pe&&google.maps.event.removeListener(pe),ue(google.maps.event.addListener(X,"mouseover",B)))}),[B]),l((()=>{X&&_&&(null!==he&&google.maps.event.removeListener(he),de(google.maps.event.addListener(X,"mouseup",_)))}),[_]),l((()=>{X&&U&&(null!==ge&&google.maps.event.removeListener(ge),ce(google.maps.event.addListener(X,"rightclick",U)))}),[U]),l((()=>{X&&O&&(null!==me&&google.maps.event.removeListener(me),ve(google.maps.event.addListener(X,"click",O)))}),[O]),l((()=>{X&&S&&(null!==fe&&google.maps.event.removeListener(fe),ye(google.maps.event.addListener(X,"drag",S)))}),[S]),l((()=>{X&&z&&(null!==be&&google.maps.event.removeListener(be),Le(google.maps.event.addListener(X,"clickable_changed",z)))}),[z]),l((()=>{X&&R&&(null!==we&&google.maps.event.removeListener(we),Me(google.maps.event.addListener(X,"cursor_changed",R)))}),[R]),l((()=>{X&&A&&(null!==xe&&google.maps.event.removeListener(xe),ke(google.maps.event.addListener(X,"animation_changed",A)))}),[A]),l((()=>{X&&Z&&(null!==Oe&&google.maps.event.removeListener(Oe),Ee(google.maps.event.addListener(X,"draggable_changed",Z)))}),[Z]),l((()=>{X&&V&&(null!==Se&&google.maps.event.removeListener(Se),De(google.maps.event.addListener(X,"flat_changed",V)))}),[V]),l((()=>{X&&W&&(null!==Ie&&google.maps.event.removeListener(Ie),je(google.maps.event.addListener(X,"icon_changed",W)))}),[W]),l((()=>{X&&N&&(null!==Be&&google.maps.event.removeListener(Be),_e(google.maps.event.addListener(X,"position_changed",N)))}),[N]),l((()=>{X&&H&&(null!==Te&&google.maps.event.removeListener(Te),Ue(google.maps.event.addListener(X,"shape_changed",H)))}),[H]),l((()=>{X&&G&&(null!==ze&&google.maps.event.removeListener(ze),Re(google.maps.event.addListener(X,"title_changed",G)))}),[G]),l((()=>{X&&F&&(null!==Ae&&google.maps.event.removeListener(Ae),Ze(google.maps.event.addListener(X,"visible_changed",F)))}),[F]),l((()=>{X&&K&&(null!==Ve&&google.maps.event.removeListener(Ve),We(google.maps.event.addListener(X,"zindex_changed",K)))}),[K]),l((()=>{var e=Ce(Ce(Ce({},i||Pe),a?Pe:{map:J}),{},{position:o}),t=new google.maps.Marker(e);return a?a.addMarker(t,!!p):t.setMap(J),o&&t.setPosition(o),void 0!==v&&t.setVisible(v),void 0!==m&&t.setDraggable(m),void 0!==y&&t.setClickable(y),"string"==typeof b&&t.setCursor(b),L&&t.setIcon(L),void 0!==w&&t.setLabel(w),void 0!==M&&t.setOpacity(M),C&&t.setShape(C),"string"==typeof k&&t.setTitle(k),"number"==typeof P&&t.setZIndex(P),E&&ee(google.maps.event.addListener(t,"dblclick",E)),D&&ne(google.maps.event.addListener(t,"dragend",D)),I&&se(google.maps.event.addListener(t,"dragstart",I)),T&&re(google.maps.event.addListener(t,"mousedown",T)),j&&le(google.maps.event.addListener(t,"mouseout",j)),B&&ue(google.maps.event.addListener(t,"mouseover",B)),_&&de(google.maps.event.addListener(t,"mouseup",_)),U&&ce(google.maps.event.addListener(t,"rightclick",U)),O&&ve(google.maps.event.addListener(t,"click",O)),S&&ye(google.maps.event.addListener(t,"drag",S)),z&&Le(google.maps.event.addListener(t,"clickable_changed",z)),R&&Me(google.maps.event.addListener(t,"cursor_changed",R)),A&&ke(google.maps.event.addListener(t,"animation_changed",A)),Z&&Ee(google.maps.event.addListener(t,"draggable_changed",Z)),V&&De(google.maps.event.addListener(t,"flat_changed",V)),W&&je(google.maps.event.addListener(t,"icon_changed",W)),N&&_e(google.maps.event.addListener(t,"position_changed",N)),H&&Ue(google.maps.event.addListener(t,"shape_changed",H)),G&&Re(google.maps.event.addListener(t,"title_changed",G)),F&&Ze(google.maps.event.addListener(t,"visible_changed",F)),K&&We(google.maps.event.addListener(t,"zindex_changed",K)),$(t),Y&&Y(t),()=>{null!==Q&&google.maps.event.removeListener(Q),null!==te&&google.maps.event.removeListener(te),null!==oe&&google.maps.event.removeListener(oe),null!==ie&&google.maps.event.removeListener(ie),null!==ae&&google.maps.event.removeListener(ae),null!==pe&&google.maps.event.removeListener(pe),null!==he&&google.maps.event.removeListener(he),null!==ge&&google.maps.event.removeListener(ge),null!==me&&google.maps.event.removeListener(me),null!==be&&google.maps.event.removeListener(be),null!==we&&google.maps.event.removeListener(we),null!==xe&&google.maps.event.removeListener(xe),null!==Oe&&google.maps.event.removeListener(Oe),null!==Se&&google.maps.event.removeListener(Se),null!==Ie&&google.maps.event.removeListener(Ie),null!==Be&&google.maps.event.removeListener(Be),null!==ze&&google.maps.event.removeListener(ze),null!==Ae&&google.maps.event.removeListener(Ae),null!==Ve&&google.maps.event.removeListener(Ve),q&&q(t),a?a.removeMarker(t,!!p):t&&t.setMap(null)}}),[]);var Ne=u((()=>c?h.map(c,(e=>d(e)?g(e,{anchor:X}):e)):null),[c,X]);return e(n,{children:Ne})||null}));class Ee extends p{constructor(){super(...arguments),b(this,"registeredEvents",[])}componentDidMount(){var e=this;return T((function*(){var t=Ce(Ce(Ce({},e.props.options||Pe),e.props.clusterer?Pe:{map:e.context}),{},{position:e.props.position});e.marker=new google.maps.Marker(t),e.props.clusterer?e.props.clusterer.addMarker(e.marker,!!e.props.noClustererRedraw):e.marker.setMap(e.context),e.registeredEvents=D({updaterMap:ke,eventMap:xe,prevProps:{},nextProps:e.props,instance:e.marker}),e.props.onLoad&&e.props.onLoad(e.marker)}))()}componentDidUpdate(e){this.marker&&(S(this.registeredEvents),this.registeredEvents=D({updaterMap:ke,eventMap:xe,prevProps:e,nextProps:this.props,instance:this.marker}))}componentWillUnmount(){this.marker&&(this.props.onUnmount&&this.props.onUnmount(this.marker),S(this.registeredEvents),this.props.clusterer?this.props.clusterer.removeMarker(this.marker,!!this.props.noClustererRedraw):this.marker&&this.marker.setMap(null))}render(){return(this.props.children?h.map(this.props.children,(e=>d(e)?g(e,{anchor:this.marker}):e)):null)||null}}b(Ee,"contextType",x);var Se=function(){function e(t,n){t.getClusterer().extend(e,google.maps.OverlayView),this.cluster=t,this.clusterClassName=this.cluster.getClusterer().getClusterClass(),this.className=this.clusterClassName,this.styles=n,this.center=void 0,this.div=null,this.sums=null,this.visible=!1,this.boundsChangedListener=null,this.url="",this.height=0,this.width=0,this.anchorText=[0,0],this.anchorIcon=[0,0],this.textColor="black",this.textSize=11,this.textDecoration="none",this.fontWeight="bold",this.fontStyle="normal",this.fontFamily="Arial,sans-serif",this.backgroundPosition="0 0",this.cMouseDownInCluster=null,this.cDraggingMapByCluster=null,this.timeOut=null,this.setMap(t.getMap()),this.onBoundsChanged=this.onBoundsChanged.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onMouseOver=this.onMouseOver.bind(this),this.onMouseOut=this.onMouseOut.bind(this),this.onAdd=this.onAdd.bind(this),this.onRemove=this.onRemove.bind(this),this.draw=this.draw.bind(this),this.hide=this.hide.bind(this),this.show=this.show.bind(this),this.useStyle=this.useStyle.bind(this),this.setCenter=this.setCenter.bind(this),this.getPosFromLatLng=this.getPosFromLatLng.bind(this)}return e.prototype.onBoundsChanged=function(){this.cDraggingMapByCluster=this.cMouseDownInCluster},e.prototype.onMouseDown=function(){this.cMouseDownInCluster=!0,this.cDraggingMapByCluster=!1},e.prototype.onClick=function(e){if(this.cMouseDownInCluster=!1,!this.cDraggingMapByCluster){var t=this.cluster.getClusterer();if(google.maps.event.trigger(t,"click",this.cluster),google.maps.event.trigger(t,"clusterclick",this.cluster),t.getZoomOnClick()){var n=t.getMaxZoom(),o=this.cluster.getBounds(),s=t.getMap();null!==s&&"fitBounds"in s&&s.fitBounds(o),this.timeOut=window.setTimeout((function(){var e=t.getMap();if(null!==e){"fitBounds"in e&&e.fitBounds(o);var s=e.getZoom()||0;null!==n&&s>n&&e.setZoom(n+1)}}),100)}e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation()}},e.prototype.onMouseOver=function(){google.maps.event.trigger(this.cluster.getClusterer(),"mouseover",this.cluster)},e.prototype.onMouseOut=function(){google.maps.event.trigger(this.cluster.getClusterer(),"mouseout",this.cluster)},e.prototype.onAdd=function(){var e;this.div=document.createElement("div"),this.div.className=this.className,this.visible&&this.show(),null===(e=this.getPanes())||void 0===e||e.overlayMouseTarget.appendChild(this.div);var t=this.getMap();null!==t&&(this.boundsChangedListener=google.maps.event.addListener(t,"bounds_changed",this.onBoundsChanged),this.div.addEventListener("mousedown",this.onMouseDown),this.div.addEventListener("click",this.onClick),this.div.addEventListener("mouseover",this.onMouseOver),this.div.addEventListener("mouseout",this.onMouseOut))},e.prototype.onRemove=function(){this.div&&this.div.parentNode&&(this.hide(),null!==this.boundsChangedListener&&google.maps.event.removeListener(this.boundsChangedListener),this.div.removeEventListener("mousedown",this.onMouseDown),this.div.removeEventListener("click",this.onClick),this.div.removeEventListener("mouseover",this.onMouseOver),this.div.removeEventListener("mouseout",this.onMouseOut),this.div.parentNode.removeChild(this.div),null!==this.timeOut&&(window.clearTimeout(this.timeOut),this.timeOut=null),this.div=null)},e.prototype.draw=function(){if(this.visible&&null!==this.div&&this.center){var e=this.getPosFromLatLng(this.center);this.div.style.top=null!==e?"".concat(e.y,"px"):"0",this.div.style.left=null!==e?"".concat(e.x,"px"):"0"}},e.prototype.hide=function(){this.div&&(this.div.style.display="none"),this.visible=!1},e.prototype.show=function(){var e,t,n,o,s,i;if(this.div&&this.center){var r=null===this.sums||void 0===this.sums.title||""===this.sums.title?this.cluster.getClusterer().getTitle():this.sums.title,a=this.backgroundPosition.split(" "),l=parseInt((null===(e=a[0])||void 0===e?void 0:e.replace(/^\s+|\s+$/g,""))||"0",10),p=parseInt((null===(t=a[1])||void 0===t?void 0:t.replace(/^\s+|\s+$/g,""))||"0",10),u=this.getPosFromLatLng(this.center);this.div.className=this.className,this.div.setAttribute("style","cursor: pointer; position: absolute; top: ".concat(null!==u?"".concat(u.y,"px"):"0","; left: ").concat(null!==u?"".concat(u.x,"px"):"0","; width: ").concat(this.width,"px; height: ").concat(this.height,"px; "));var h=document.createElement("img");h.alt=r,h.src=this.url,h.width=this.width,h.height=this.height,h.setAttribute("style","position: absolute; top: ".concat(p,"px; left: ").concat(l,"px")),this.cluster.getClusterer().enableRetinaIcons||(h.style.clip="rect(-".concat(p,"px, -").concat(l+this.width,"px, -").concat(p+this.height,", -").concat(l,")"));var d=document.createElement("div");d.setAttribute("style","position: absolute; top: ".concat(this.anchorText[0],"px; left: ").concat(this.anchorText[1],"px; color: ").concat(this.textColor,"; font-size: ").concat(this.textSize,"px; font-family: ").concat(this.fontFamily,"; font-weight: ").concat(this.fontWeight,"; fontStyle: ").concat(this.fontStyle,"; text-decoration: ").concat(this.textDecoration,"; text-align: center; width: ").concat(this.width,"px; line-height: ").concat(this.height,"px")),(null===(n=this.sums)||void 0===n?void 0:n.text)&&(d.innerText="".concat(null===(o=this.sums)||void 0===o?void 0:o.text)),(null===(s=this.sums)||void 0===s?void 0:s.html)&&(d.innerHTML="".concat(null===(i=this.sums)||void 0===i?void 0:i.html)),this.div.innerHTML="",this.div.appendChild(h),this.div.appendChild(d),this.div.title=r,this.div.style.display=""}this.visible=!0},e.prototype.useStyle=function(e){this.sums=e;var t=this.cluster.getClusterer().getStyles(),n=t[Math.min(t.length-1,Math.max(0,e.index-1))];n&&(this.url=n.url,this.height=n.height,this.width=n.width,n.className&&(this.className="".concat(this.clusterClassName," ").concat(n.className)),this.anchorText=n.anchorText||[0,0],this.anchorIcon=n.anchorIcon||[this.height/2,this.width/2],this.textColor=n.textColor||"black",this.textSize=n.textSize||11,this.textDecoration=n.textDecoration||"none",this.fontWeight=n.fontWeight||"bold",this.fontStyle=n.fontStyle||"normal",this.fontFamily=n.fontFamily||"Arial,sans-serif",this.backgroundPosition=n.backgroundPosition||"0 0")},e.prototype.setCenter=function(e){this.center=e},e.prototype.getPosFromLatLng=function(e){var t=this.getProjection().fromLatLngToDivPixel(e);return null!==t&&(t.x-=this.anchorIcon[1],t.y-=this.anchorIcon[0]),t},e}(),De=function(){function e(e){this.markerClusterer=e,this.map=this.markerClusterer.getMap(),this.gridSize=this.markerClusterer.getGridSize(),this.minClusterSize=this.markerClusterer.getMinimumClusterSize(),this.averageCenter=this.markerClusterer.getAverageCenter(),this.markers=[],this.center=void 0,this.bounds=null,this.clusterIcon=new Se(this,this.markerClusterer.getStyles()),this.getSize=this.getSize.bind(this),this.getMarkers=this.getMarkers.bind(this),this.getCenter=this.getCenter.bind(this),this.getMap=this.getMap.bind(this),this.getClusterer=this.getClusterer.bind(this),this.getBounds=this.getBounds.bind(this),this.remove=this.remove.bind(this),this.addMarker=this.addMarker.bind(this),this.isMarkerInClusterBounds=this.isMarkerInClusterBounds.bind(this),this.calculateBounds=this.calculateBounds.bind(this),this.updateIcon=this.updateIcon.bind(this),this.isMarkerAlreadyAdded=this.isMarkerAlreadyAdded.bind(this)}return e.prototype.getSize=function(){return this.markers.length},e.prototype.getMarkers=function(){return this.markers},e.prototype.getCenter=function(){return this.center},e.prototype.getMap=function(){return this.map},e.prototype.getClusterer=function(){return this.markerClusterer},e.prototype.getBounds=function(){for(var e=new google.maps.LatLngBounds(this.center,this.center),t=0,n=this.getMarkers();t<n.length;t++){var o=n[t].getPosition();o&&e.extend(o)}return e},e.prototype.remove=function(){this.clusterIcon.setMap(null),this.markers=[],delete this.markers},e.prototype.addMarker=function(e){var t,n;if(this.isMarkerAlreadyAdded(e))return!1;if(this.center){if(this.averageCenter&&(n=e.getPosition())){var o=this.markers.length+1;this.center=new google.maps.LatLng((this.center.lat()*(o-1)+n.lat())/o,(this.center.lng()*(o-1)+n.lng())/o),this.calculateBounds()}}else(n=e.getPosition())&&(this.center=n,this.calculateBounds());e.isAdded=!0,this.markers.push(e);var s=this.markers.length,i=this.markerClusterer.getMaxZoom(),r=null===(t=this.map)||void 0===t?void 0:t.getZoom();if(null!==i&&void 0!==r&&r>i)e.getMap()!==this.map&&e.setMap(this.map);else if(s<this.minClusterSize)e.getMap()!==this.map&&e.setMap(this.map);else if(s===this.minClusterSize)for(var a=0,l=this.markers;a<l.length;a++){l[a].setMap(null)}else e.setMap(null);return!0},e.prototype.isMarkerInClusterBounds=function(e){if(null!==this.bounds){var t=e.getPosition();if(t)return this.bounds.contains(t)}return!1},e.prototype.calculateBounds=function(){this.bounds=this.markerClusterer.getExtendedBounds(new google.maps.LatLngBounds(this.center,this.center))},e.prototype.updateIcon=function(){var e,t=this.markers.length,n=this.markerClusterer.getMaxZoom(),o=null===(e=this.map)||void 0===e?void 0:e.getZoom();null!==n&&void 0!==o&&o>n||t<this.minClusterSize?this.clusterIcon.hide():(this.center&&this.clusterIcon.setCenter(this.center),this.clusterIcon.useStyle(this.markerClusterer.getCalculator()(this.markers,this.markerClusterer.getStyles().length)),this.clusterIcon.show())},e.prototype.isMarkerAlreadyAdded=function(e){if(this.markers.includes)return this.markers.includes(e);for(var t=0;t<this.markers.length;t++)if(e===this.markers[t])return!0;return!1},e}();function Ie(e,t){var n=e.length,o=n.toString().length,s=Math.min(o,t);return{text:n.toString(),index:s,title:""}}var je=[53,56,66,78,90],Be=function(){function e(t,n,o){void 0===n&&(n=[]),void 0===o&&(o={}),this.getMinimumClusterSize=this.getMinimumClusterSize.bind(this),this.setMinimumClusterSize=this.setMinimumClusterSize.bind(this),this.getEnableRetinaIcons=this.getEnableRetinaIcons.bind(this),this.setEnableRetinaIcons=this.setEnableRetinaIcons.bind(this),this.addToClosestCluster=this.addToClosestCluster.bind(this),this.getImageExtension=this.getImageExtension.bind(this),this.setImageExtension=this.setImageExtension.bind(this),this.getExtendedBounds=this.getExtendedBounds.bind(this),this.getAverageCenter=this.getAverageCenter.bind(this),this.setAverageCenter=this.setAverageCenter.bind(this),this.getTotalClusters=this.getTotalClusters.bind(this),this.fitMapToMarkers=this.fitMapToMarkers.bind(this),this.getIgnoreHidden=this.getIgnoreHidden.bind(this),this.setIgnoreHidden=this.setIgnoreHidden.bind(this),this.getClusterClass=this.getClusterClass.bind(this),this.setClusterClass=this.setClusterClass.bind(this),this.getTotalMarkers=this.getTotalMarkers.bind(this),this.getZoomOnClick=this.getZoomOnClick.bind(this),this.setZoomOnClick=this.setZoomOnClick.bind(this),this.getBatchSizeIE=this.getBatchSizeIE.bind(this),this.setBatchSizeIE=this.setBatchSizeIE.bind(this),this.createClusters=this.createClusters.bind(this),this.onZoomChanged=this.onZoomChanged.bind(this),this.getImageSizes=this.getImageSizes.bind(this),this.setImageSizes=this.setImageSizes.bind(this),this.getCalculator=t