"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1549],{44537:function(e,t,s){let n;s.d(t,{F2:function(){return td},Ji:function(){return B}});var o,i,r,a,l,u=s(24246),p=s(27378),h=s(31542),g=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==s.g?s.g:"undefined"!=typeof self&&self,function(e,t,s,n,o,i,r,a){if(!e){var l;if(void 0===t)l=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[s,n,o,i,r,a],p=0;(l=Error(t.replace(/%s/g,function(){return u[p++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}});let d=(0,p.createContext)(null);function c(e){google.maps.event.removeListener(e)}function m(e=[]){e.forEach(c)}function v({updaterMap:e,eventMap:t,prevProps:s,nextProps:n,instance:o}){let i=function(e,t,s){let n=Object.keys(s).reduce(function(n,o){var i;return i=s[o],"function"==typeof e[o]&&n.push(google.maps.event.addListener(t,i,e[o])),n},[]);return n}(n,o,t);return!function(e,t,s,n){let o={},i=(e,i)=>{let r=s[i];r!==t[i]&&(o[i]=r,e(n,r))};!function(e,t){Object.keys(e).forEach(s=>t(e[s],s))}(e,i)}(e,s,n,o),i}/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */function f(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)0>t.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(s[n[o]]=e[n[o]]);return s}(0,p.memo)(function({children:e,options:t,id:s,mapContainerStyle:n,mapContainerClassName:o,center:i,onClick:r,onDblClick:a,onDrag:l,onDragEnd:h,onDragStart:g,onMouseMove:c,onMouseOut:m,onMouseOver:v,onMouseDown:f,onMouseUp:L,onRightClick:y,onCenterChanged:b,onLoad:x,onUnmount:C}){let[E,M]=(0,p.useState)(null),k=(0,p.useRef)(null),[S,w]=(0,p.useState)(null),[P,O]=(0,p.useState)(null),[I,B]=(0,p.useState)(null),[D,z]=(0,p.useState)(null),[_,T]=(0,p.useState)(null),[j,R]=(0,p.useState)(null),[U,A]=(0,p.useState)(null),[Z,V]=(0,p.useState)(null),[W,N]=(0,p.useState)(null),[H,$]=(0,p.useState)(null),[G,F]=(0,p.useState)(null),[K,Y]=(0,p.useState)(null);return(0,p.useEffect)(()=>{t&&null!==E&&E.setOptions(t)},[E,t]),(0,p.useEffect)(()=>{null!==E&&void 0!==i&&E.setCenter(i)},[E,i]),(0,p.useEffect)(()=>{E&&a&&(null!==P&&google.maps.event.removeListener(P),O(google.maps.event.addListener(E,"dblclick",a)))},[a]),(0,p.useEffect)(()=>{E&&h&&(null!==I&&google.maps.event.removeListener(I),B(google.maps.event.addListener(E,"dragend",h)))},[h]),(0,p.useEffect)(()=>{E&&g&&(null!==D&&google.maps.event.removeListener(D),z(google.maps.event.addListener(E,"dragstart",g)))},[g]),(0,p.useEffect)(()=>{E&&f&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(E,"mousedown",f)))},[f]),(0,p.useEffect)(()=>{E&&c&&(null!==j&&google.maps.event.removeListener(j),R(google.maps.event.addListener(E,"mousemove",c)))},[c]),(0,p.useEffect)(()=>{E&&m&&(null!==U&&google.maps.event.removeListener(U),A(google.maps.event.addListener(E,"mouseout",m)))},[m]),(0,p.useEffect)(()=>{E&&v&&(null!==Z&&google.maps.event.removeListener(Z),V(google.maps.event.addListener(E,"mouseover",v)))},[v]),(0,p.useEffect)(()=>{E&&L&&(null!==W&&google.maps.event.removeListener(W),N(google.maps.event.addListener(E,"mouseup",L)))},[L]),(0,p.useEffect)(()=>{E&&y&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(E,"rightclick",y)))},[y]),(0,p.useEffect)(()=>{E&&r&&(null!==G&&google.maps.event.removeListener(G),F(google.maps.event.addListener(E,"click",r)))},[r]),(0,p.useEffect)(()=>{E&&l&&(null!==K&&google.maps.event.removeListener(K),Y(google.maps.event.addListener(E,"drag",l)))},[l]),(0,p.useEffect)(()=>{E&&b&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(E,"center_changed",b)))},[r]),(0,p.useEffect)(()=>{let e=null===k.current?null:new google.maps.Map(k.current,t);return M(e),null!==e&&x&&x(e),()=>{null!==e&&C&&C(e)}},[]),(0,u.jsx)("div",Object.assign({id:s,ref:k,style:n,className:o},{children:(0,u.jsx)(d.Provider,Object.assign({value:E},{children:null!==E?e:(0,u.jsx)(u.Fragment,{})}))}))});let L="undefined"!=typeof document;function y({url:e,id:t,nonce:s}){return L?new Promise(function(n,o){let i=document.getElementById(t),r=window;if(i){let s=i.getAttribute("data-state");if(i.src===e&&"error"!==s){if("ready"===s)return n(t);{let e=r.initMap,s=i.onerror;r.initMap=function(){e&&e(),n(t)},i.onerror=function(e){s&&s(e),o(e)};return}}i.remove()}let a=document.createElement("script");a.type="text/javascript",a.src=e,a.id=t,a.async=!0,a.nonce=s,a.onerror=function(e){a.setAttribute("data-state","error"),o(e)},r.initMap=function(){a.setAttribute("data-state","ready"),n(t)},document.head.appendChild(a)}).catch(e=>{throw console.error("injectScript error: ",e),e}):Promise.reject(Error("document is undefined"))}function b(e){let 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 x(){let e=document.getElementsByTagName("head")[0],t=e.insertBefore.bind(e);e.insertBefore=function(s,n){b(s)||Reflect.apply(t,e,[s,n])};let s=e.appendChild.bind(e);e.appendChild=function(t){b(t)||Reflect.apply(s,e,[t])}}function C({googleMapsApiKey:e,googleMapsClientId:t,version:s="weekly",language:n,region:o,libraries:i,channel:r,mapIds:a,authReferrerPolicy:l}){let u=[];return g(e&&t||!(e&&t),"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."),e?u.push(`key=${e}`):t&&u.push(`client=${t}`),s&&u.push(`v=${s}`),n&&u.push(`language=${n}`),o&&u.push(`region=${o}`),i&&i.length&&u.push(`libraries=${i.sort().join(",")}`),r&&u.push(`channel=${r}`),a&&a.length&&u.push(`map_ids=${a.join(",")}`),l&&u.push(`auth_referrer_policy=${l}`),u.push("callback=initMap"),`https://maps.googleapis.com/maps/api/js?${u.join("&")}`}let E=!1;function M(){return(0,u.jsx)("div",{children:"Loading..."})}let k={id:"script-loader",version:"weekly"};class S extends p.PureComponent{constructor(){super(...arguments),this.check=(0,p.createRef)(),this.state={loaded:!1},this.cleanupCallback=()=>{delete window.google.maps,this.injectScript()},this.isCleaningUp=()=>{var e,t,s,n;return e=this,t=void 0,s=void 0,n=function*(){return new Promise(function(e){if(E){if(L){let t=window.setInterval(function(){E||(window.clearInterval(t),e())},1)}}else e()})},new(s||(s=Promise))(function(o,i){function r(e){try{l(n.next(e))}catch(e){i(e)}}function a(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(r,a)}l((n=n.apply(e,t||[])).next())})},this.cleanup=()=>{E=!0;let 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)})},this.injectScript=()=>{this.props.preventGoogleFontsLoading&&x(),g(!!this.props.id,'LoadScript requires "id" prop to be a string: %s',this.props.id);let e={id:this.props.id,nonce:this.props.nonce,url:C(this.props)};y(e).then(()=>{this.props.onLoad&&this.props.onLoad(),this.setState(function(){return{loaded:!0}})}).catch(e=>{this.props.onError&&this.props.onError(e),console.error(` There has been an Error with loading Google Maps API script, please check that you provided correct google API key (${this.props.googleMapsApiKey||"-"}) or Client ID (${this.props.googleMapsClientId||"-"}) to <LoadScript /> Otherwise it is a Network issue. `)})}}componentDidMount(){if(L){if(window.google&&window.google.maps&&!E){console.error("google api is already presented");return}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"),L&&e.language!==this.props.language&&(this.cleanup(),this.setState(function(){return{loaded:!1}},this.cleanupCallback))}componentWillUnmount(){if(L){this.cleanup();let e=()=>{this.check.current||(delete window.google,E=!1)};window.setTimeout(e,1),this.props.onUnmount&&this.props.onUnmount()}}render(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{ref:this.check}),this.state.loaded?this.props.children:this.props.loadingElement||(0,u.jsx)(M,{})]})}}S.defaultProps=k;let w=(0,u.jsx)(M,{});(0,p.memo)(function(e){var{loadingElement:t,onLoad:s,onError:o,onUnmount:i,children:r}=e,a=f(e,["loadingElement","onLoad","onError","onUnmount","children"]);let{isLoaded:l,loadError:u}=function({id:e=k.id,version:t=k.version,nonce:s,googleMapsApiKey:o,googleMapsClientId:i,language:r,region:a,libraries:l,preventGoogleFontsLoading:u,channel:h,mapIds:d,authReferrerPolicy:c}){let m=(0,p.useRef)(!1),[v,f]=(0,p.useState)(!1),[b,E]=(0,p.useState)(void 0);(0,p.useEffect)(function(){return m.current=!0,()=>{m.current=!1}},[]),(0,p.useEffect)(function(){L&&u&&x()},[u]),(0,p.useEffect)(function(){v&&g(!!window.google,"useLoadScript was marked as loaded, but window.google is not present. Something went wrong.")},[v]);let M=C({version:t,googleMapsApiKey:o,googleMapsClientId:i,language:r,region:a,libraries:l,channel:h,mapIds:d,authReferrerPolicy:c});(0,p.useEffect)(function(){if(L){if(window.google&&window.google.maps&&n===M){t();return}y({id:e,url:M,nonce:s}).then(t).catch(function(e){m.current&&E(e),console.warn(` There has been an Error with loading Google Maps API script, please check that you provided correct google API key (${o||"-"}) or Client ID (${i||"-"}) Otherwise it is a Network issue. `),console.error(e)})}function t(){m.current&&(f(!0),n=M)}},[e,M,s]);let S=(0,p.useRef)();return(0,p.useEffect)(function(){S.current&&l!==S.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"),S.current=l},[l]),{isLoaded:v,loadError:b,url:M}}(a);return(0,p.useEffect)(function(){l&&"function"==typeof s&&s()},[l,s]),(0,p.useEffect)(function(){u&&"function"==typeof o&&o(u)},[u,o]),(0,p.useEffect)(function(){return()=>{i&&i()}},[i]),l?r:t||w});var P=function e(t,s){if(t===s)return!0;if(t&&s&&"object"==typeof t&&"object"==typeof s){if(t.constructor!==s.constructor)return!1;if(Array.isArray(t)){if((n=t.length)!=s.length)return!1;for(o=n;0!=o--;)if(!e(t[o],s[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if((n=(i=Object.keys(t)).length)!==Object.keys(s).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(s,i[o]))return!1;for(o=n;0!=o--;){var n,o,i,r=i[o];if(!e(t[r],s[r]))return!1}return!0}return t!=t&&s!=s};let O="__googleMapsScriptId";(o=a||(a={}))[o.INITIALIZED=0]="INITIALIZED",o[o.LOADING=1]="LOADING",o[o.SUCCESS=2]="SUCCESS",o[o.FAILURE=3]="FAILURE";class I{constructor({apiKey:e,authReferrerPolicy:t,channel:s,client:n,id:o=O,language:i,libraries:r=[],mapIds:a,nonce:l,region:u,retries:p=3,url:h="https://maps.googleapis.com/maps/api/js",version:g}){if(this.CALLBACK="__googleMapsCallback",this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=e,this.authReferrerPolicy=t,this.channel=s,this.client=n,this.id=o||O,this.language=i,this.libraries=r,this.mapIds=a,this.nonce=l,this.region=u,this.retries=p,this.url=h,this.version=g,I.instance){if(!P(this.options,I.instance.options))throw Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(I.instance.options)}`);return I.instance}I.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?a.FAILURE:this.done?a.SUCCESS:this.loading?a.LOADING:a.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+=`?callback=${this.CALLBACK}`,this.apiKey&&(e+=`&key=${this.apiKey}`),this.channel&&(e+=`&channel=${this.channel}`),this.client&&(e+=`&client=${this.client}`),this.libraries.length>0&&(e+=`&libraries=${this.libraries.join(",")}`),this.language&&(e+=`&language=${this.language}`),this.region&&(e+=`®ion=${this.region}`),this.version&&(e+=`&v=${this.version}`),this.mapIds&&(e+=`&map_ids=${this.mapIds.join(",")}`),this.authReferrerPolicy&&(e+=`&auth_referrer_policy=${this.authReferrerPolicy}`),e}deleteScript(){let e=document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(s=>{s?t(s.error):e(window.google)})})}loadCallback(e){this.callbacks.push(e),this.execute()}setScript(){if(document.getElementById(this.id)){this.callback();return}let e=this.createUrl(),t=document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.nonce&&(t.nonce=this.nonce),document.head.appendChild(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){let e=this.errors.length*Math.pow(2,this.errors.length);console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},e)}else this.onerrorEvent=e,this.callback()}setCallback(){window.__googleMapsCallback=this.callback.bind(this)}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version){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."),this.callback();return}this.loading||(this.loading=!0,this.setCallback(),this.setScript())}}}function B({id:e=k.id,version:t=k.version,nonce:s,googleMapsApiKey:n,language:o,region:i,libraries:r,preventGoogleFontsLoading:a,mapIds:l,authReferrerPolicy:u}){let h=(0,p.useRef)(!1),[g,d]=(0,p.useState)(!1),[c,m]=(0,p.useState)(void 0);(0,p.useEffect)(function(){return h.current=!0,()=>{h.current=!1}},[]);let v=(0,p.useMemo)(function(){return new I({id:e,apiKey:n,version:t,libraries:r,language:o,region:i,mapIds:l,nonce:s,authReferrerPolicy:u})},[e,n,t,r,o,i,l,s,u]);(0,p.useEffect)(function(){g||v.load().then(function(){h.current&&d(!0)}).catch(function(e){m(e)})},[]),(0,p.useEffect)(function(){L&&a&&x()},[a]);let f=(0,p.useRef)();return(0,p.useEffect)(function(){f.current&&r!==f.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"),f.current=r},[r]),{isLoaded:g,loadError:c}}let D={},z={options(e,t){e.setOptions(t)}};(0,p.memo)(function({options:e,onLoad:t,onUnmount:s}){let n=(0,p.useContext)(d),[o,i]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==o&&o.setMap(n)},[n]),(0,p.useEffect)(()=>{e&&null!==o&&o.setOptions(e)},[o,e]),(0,p.useEffect)(()=>{let r=new google.maps.TrafficLayer(Object.assign(Object.assign({},e||{}),{map:n}));return i(r),t&&t(r),()=>{null!==o&&(s&&s(o),o.setMap(null))}},[]),null});class _ extends p.PureComponent{constructor(){super(...arguments),this.state={trafficLayer:null},this.setTrafficLayerCallback=()=>{null!==this.state.trafficLayer&&this.props.onLoad&&this.props.onLoad(this.state.trafficLayer)},this.registeredEvents=[]}componentDidMount(){let e=new google.maps.TrafficLayer(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:z,eventMap:D,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{trafficLayer:e}},this.setTrafficLayerCallback)}componentDidUpdate(e){null!==this.state.trafficLayer&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:z,eventMap:D,prevProps:e,nextProps:this.props,instance:this.state.trafficLayer}))}componentWillUnmount(){null!==this.state.trafficLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.trafficLayer),m(this.registeredEvents),this.state.trafficLayer.setMap(null))}render(){return null}}_.contextType=d,(0,p.memo)(function({onLoad:e,onUnmount:t}){let s=(0,p.useContext)(d),[n,o]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==n&&n.setMap(s)},[s]),(0,p.useEffect)(()=>{let n=new google.maps.BicyclingLayer;return o(n),n.setMap(s),e&&e(n),()=>{null!==n&&(t&&t(n),n.setMap(null))}},[]),null});class T extends p.PureComponent{constructor(){super(...arguments),this.state={bicyclingLayer:null},this.setBicyclingLayerCallback=()=>{null!==this.state.bicyclingLayer&&(this.state.bicyclingLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.bicyclingLayer))}}componentDidMount(){let 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}}T.contextType=d,(0,p.memo)(function({onLoad:e,onUnmount:t}){let s=(0,p.useContext)(d),[n,o]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==n&&n.setMap(s)},[s]),(0,p.useEffect)(()=>{let i=new google.maps.TransitLayer;return o(i),i.setMap(s),e&&e(i),()=>{null!==n&&(t&&t(n),this.state.transitLayer.setMap(null))}},[]),null});class j extends p.PureComponent{constructor(){super(...arguments),this.state={transitLayer:null},this.setTransitLayerCallback=()=>{null!==this.state.transitLayer&&(this.state.transitLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.transitLayer))}}componentDidMount(){let 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}}j.contextType=d;let R={onCircleComplete:"circlecomplete",onMarkerComplete:"markercomplete",onOverlayComplete:"overlaycomplete",onPolygonComplete:"polygoncomplete",onPolylineComplete:"polylinecomplete",onRectangleComplete:"rectanglecomplete"},U={drawingMode(e,t){e.setDrawingMode(t)},options(e,t){e.setOptions(t)}};(0,p.memo)(function({options:e,drawingMode:t,onCircleComplete:s,onMarkerComplete:n,onOverlayComplete:o,onPolygonComplete:i,onPolylineComplete:r,onRectangleComplete:a,onLoad:l,onUnmount:u}){let h=(0,p.useContext)(d),[c,m]=(0,p.useState)(null),[v,f]=(0,p.useState)(null),[L,y]=(0,p.useState)(null),[b,x]=(0,p.useState)(null),[C,E]=(0,p.useState)(null),[M,k]=(0,p.useState)(null),[S,w]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==c&&c.setMap(h)},[h]),(0,p.useEffect)(()=>{e&&null!==c&&c.setOptions(e)},[c,e]),(0,p.useEffect)(()=>{t&&null!==c&&c.setDrawingMode(t)},[c,t]),(0,p.useEffect)(()=>{c&&s&&(null!==v&&google.maps.event.removeListener(v),f(google.maps.event.addListener(c,"circlecomplete",s)))},[c,s]),(0,p.useEffect)(()=>{c&&n&&(null!==L&&google.maps.event.removeListener(L),y(google.maps.event.addListener(c,"markercomplete",n)))},[c,n]),(0,p.useEffect)(()=>{c&&o&&(null!==b&&google.maps.event.removeListener(b),x(google.maps.event.addListener(c,"overlaycomplete",o)))},[c,o]),(0,p.useEffect)(()=>{c&&i&&(null!==C&&google.maps.event.removeListener(C),E(google.maps.event.addListener(c,"polygoncomplete",i)))},[c,i]),(0,p.useEffect)(()=>{c&&r&&(null!==M&&google.maps.event.removeListener(M),k(google.maps.event.addListener(c,"polylinecomplete",r)))},[c,r]),(0,p.useEffect)(()=>{c&&a&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(c,"rectanglecomplete",a)))},[c,a]),(0,p.useEffect)(()=>{g(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing);let p=new google.maps.drawing.DrawingManager(Object.assign(Object.assign({},e||{}),{map:h}));return t&&p.setDrawingMode(t),s&&f(google.maps.event.addListener(p,"circlecomplete",s)),n&&y(google.maps.event.addListener(p,"markercomplete",n)),o&&x(google.maps.event.addListener(p,"overlaycomplete",o)),i&&E(google.maps.event.addListener(p,"polygoncomplete",i)),r&&k(google.maps.event.addListener(p,"polylinecomplete",r)),a&&w(google.maps.event.addListener(p,"rectanglecomplete",a)),m(p),l&&l(p),()=>{null!==c&&(v&&google.maps.event.removeListener(v),L&&google.maps.event.removeListener(L),b&&google.maps.event.removeListener(b),C&&google.maps.event.removeListener(C),M&&google.maps.event.removeListener(M),S&&google.maps.event.removeListener(S),u&&u(c),c.setMap(null))}},[]),null});class A extends p.PureComponent{constructor(e){super(e),this.registeredEvents=[],this.state={drawingManager:null},this.setDrawingManagerCallback=()=>{null!==this.state.drawingManager&&this.props.onLoad&&this.props.onLoad(this.state.drawingManager)},g(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing)}componentDidMount(){let e=new google.maps.drawing.DrawingManager(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:U,eventMap:R,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{drawingManager:e}},this.setDrawingManagerCallback)}componentDidUpdate(e){null!==this.state.drawingManager&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:U,eventMap:R,prevProps:e,nextProps:this.props,instance:this.state.drawingManager}))}componentWillUnmount(){null!==this.state.drawingManager&&(this.props.onUnmount&&this.props.onUnmount(this.state.drawingManager),m(this.registeredEvents),this.state.drawingManager.setMap(null))}render(){return null}}A.contextType=d;let Z={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"},V={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)}},W={};(0,p.memo)(function({position:e,options:t,clusterer:s,noClustererRedraw:n,children:o,draggable:i,visible:r,animation:a,clickable:l,cursor:h,icon:g,label:c,opacity:m,shape:v,title:f,zIndex:L,onClick:y,onDblClick:b,onDrag:x,onDragEnd:C,onDragStart:E,onMouseOut:M,onMouseOver:k,onMouseUp:S,onMouseDown:w,onRightClick:P,onClickableChanged:O,onCursorChanged:I,onAnimationChanged:B,onDraggableChanged:D,onFlatChanged:z,onIconChanged:_,onPositionChanged:T,onShapeChanged:j,onTitleChanged:R,onVisibleChanged:U,onZindexChanged:A,onLoad:Z,onUnmount:V}){let N=(0,p.useContext)(d),[H,$]=(0,p.useState)(null),[G,F]=(0,p.useState)(null),[K,Y]=(0,p.useState)(null),[q,J]=(0,p.useState)(null),[X,Q]=(0,p.useState)(null),[ee,et]=(0,p.useState)(null),[es,en]=(0,p.useState)(null),[eo,ei]=(0,p.useState)(null),[er,ea]=(0,p.useState)(null),[el,eu]=(0,p.useState)(null),[ep,eh]=(0,p.useState)(null),[eg,ed]=(0,p.useState)(null),[ec,em]=(0,p.useState)(null),[ev,ef]=(0,p.useState)(null),[eL,ey]=(0,p.useState)(null),[eb,ex]=(0,p.useState)(null),[eC,eE]=(0,p.useState)(null),[eM,ek]=(0,p.useState)(null),[eS,ew]=(0,p.useState)(null),[eP,eO]=(0,p.useState)(null),[eI,eB]=(0,p.useState)(null),[eD,ez]=(0,p.useState)(null);(0,p.useEffect)(()=>{null!==H&&H.setMap(N)},[N]),(0,p.useEffect)(()=>{void 0!==t&&null!==H&&H.setOptions(t)},[H,t]),(0,p.useEffect)(()=>{void 0!==i&&null!==H&&H.setDraggable(i)},[H,i]),(0,p.useEffect)(()=>{e&&null!==H&&H.setPosition(e)},[H,e]),(0,p.useEffect)(()=>{void 0!==r&&null!==H&&H.setVisible(r)},[H,r]),(0,p.useEffect)(()=>{a&&null!==H&&H.setAnimation(a)},[H,a]),(0,p.useEffect)(()=>{H&&b&&(null!==G&&google.maps.event.removeListener(G),F(google.maps.event.addListener(H,"dblclick",b)))},[b]),(0,p.useEffect)(()=>{H&&C&&(null!==K&&google.maps.event.removeListener(K),Y(google.maps.event.addListener(H,"dragend",C)))},[C]),(0,p.useEffect)(()=>{H&&E&&(null!==q&&google.maps.event.removeListener(q),J(google.maps.event.addListener(H,"dragstart",E)))},[E]),(0,p.useEffect)(()=>{H&&w&&(null!==X&&google.maps.event.removeListener(X),Q(google.maps.event.addListener(H,"mousedown",w)))},[w]),(0,p.useEffect)(()=>{H&&M&&(null!==ee&&google.maps.event.removeListener(ee),et(google.maps.event.addListener(H,"mouseout",M)))},[M]),(0,p.useEffect)(()=>{H&&k&&(null!==es&&google.maps.event.removeListener(es),en(google.maps.event.addListener(H,"mouseover",k)))},[k]),(0,p.useEffect)(()=>{H&&S&&(null!==eo&&google.maps.event.removeListener(eo),ei(google.maps.event.addListener(H,"mouseup",S)))},[S]),(0,p.useEffect)(()=>{H&&P&&(null!==er&&google.maps.event.removeListener(er),ea(google.maps.event.addListener(H,"rightclick",P)))},[P]),(0,p.useEffect)(()=>{H&&y&&(null!==el&&google.maps.event.removeListener(el),eu(google.maps.event.addListener(H,"click",y)))},[y]),(0,p.useEffect)(()=>{H&&x&&(null!==ep&&google.maps.event.removeListener(ep),eh(google.maps.event.addListener(H,"drag",x)))},[x]),(0,p.useEffect)(()=>{H&&O&&(null!==eg&&google.maps.event.removeListener(eg),ed(google.maps.event.addListener(H,"clickable_changed",O)))},[O]),(0,p.useEffect)(()=>{H&&I&&(null!==ec&&google.maps.event.removeListener(ec),em(google.maps.event.addListener(H,"cursor_changed",I)))},[I]),(0,p.useEffect)(()=>{H&&B&&(null!==ev&&google.maps.event.removeListener(ev),ef(google.maps.event.addListener(H,"animation_changed",B)))},[B]),(0,p.useEffect)(()=>{H&&D&&(null!==eL&&google.maps.event.removeListener(eL),ey(google.maps.event.addListener(H,"draggable_changed",D)))},[D]),(0,p.useEffect)(()=>{H&&z&&(null!==eb&&google.maps.event.removeListener(eb),ex(google.maps.event.addListener(H,"flat_changed",z)))},[z]),(0,p.useEffect)(()=>{H&&_&&(null!==eC&&google.maps.event.removeListener(eC),eE(google.maps.event.addListener(H,"icon_changed",_)))},[_]),(0,p.useEffect)(()=>{H&&T&&(null!==eM&&google.maps.event.removeListener(eM),ek(google.maps.event.addListener(H,"position_changed",T)))},[T]),(0,p.useEffect)(()=>{H&&j&&(null!==eS&&google.maps.event.removeListener(eS),ew(google.maps.event.addListener(H,"shape_changed",j)))},[j]),(0,p.useEffect)(()=>{H&&R&&(null!==eP&&google.maps.event.removeListener(eP),eO(google.maps.event.addListener(H,"title_changed",R)))},[R]),(0,p.useEffect)(()=>{H&&U&&(null!==eI&&google.maps.event.removeListener(eI),eB(google.maps.event.addListener(H,"visible_changed",U)))},[U]),(0,p.useEffect)(()=>{H&&A&&(null!==eD&&google.maps.event.removeListener(eD),ez(google.maps.event.addListener(H,"zindex_changed",A)))},[A]),(0,p.useEffect)(()=>{let o=Object.assign(Object.assign(Object.assign({},t||W),s?W:{map:N}),{position:e}),a=new google.maps.Marker(o);return s?s.addMarker(a,!!n):a.setMap(N),e&&a.setPosition(e),void 0!==r&&a.setVisible(r),void 0!==i&&a.setDraggable(i),void 0!==l&&a.setClickable(l),"string"==typeof h&&a.setCursor(h),g&&a.setIcon(g),void 0!==c&&a.setLabel(c),void 0!==m&&a.setOpacity(m),v&&a.setShape(v),"string"==typeof f&&a.setTitle(f),"number"==typeof L&&a.setZIndex(L),b&&F(google.maps.event.addListener(a,"dblclick",b)),C&&Y(google.maps.event.addListener(a,"dragend",C)),E&&J(google.maps.event.addListener(a,"dragstart",E)),w&&Q(google.maps.event.addListener(a,"mousedown",w)),M&&et(google.maps.event.addListener(a,"mouseout",M)),k&&en(google.maps.event.addListener(a,"mouseover",k)),S&&ei(google.maps.event.addListener(a,"mouseup",S)),P&&ea(google.maps.event.addListener(a,"rightclick",P)),y&&eu(google.maps.event.addListener(a,"click",y)),x&&eh(google.maps.event.addListener(a,"drag",x)),O&&ed(google.maps.event.addListener(a,"clickable_changed",O)),I&&em(google.maps.event.addListener(a,"cursor_changed",I)),B&&ef(google.maps.event.addListener(a,"animation_changed",B)),D&&ey(google.maps.event.addListener(a,"draggable_changed",D)),z&&ex(google.maps.event.addListener(a,"flat_changed",z)),_&&eE(google.maps.event.addListener(a,"icon_changed",_)),T&&ek(google.maps.event.addListener(a,"position_changed",T)),j&&ew(google.maps.event.addListener(a,"shape_changed",j)),R&&eO(google.maps.event.addListener(a,"title_changed",R)),U&&eB(google.maps.event.addListener(a,"visible_changed",U)),A&&ez(google.maps.event.addListener(a,"zindex_changed",A)),$(a),Z&&Z(a),()=>{null!==G&&google.maps.event.removeListener(G),null!==K&&google.maps.event.removeListener(K),null!==q&&google.maps.event.removeListener(q),null!==X&&google.maps.event.removeListener(X),null!==ee&&google.maps.event.removeListener(ee),null!==es&&google.maps.event.removeListener(es),null!==eo&&google.maps.event.removeListener(eo),null!==er&&google.maps.event.removeListener(er),null!==el&&google.maps.event.removeListener(el),null!==eg&&google.maps.event.removeListener(eg),null!==ec&&google.maps.event.removeListener(ec),null!==ev&&google.maps.event.removeListener(ev),null!==eL&&google.maps.event.removeListener(eL),null!==eb&&google.maps.event.removeListener(eb),null!==eC&&google.maps.event.removeListener(eC),null!==eM&&google.maps.event.removeListener(eM),null!==eP&&google.maps.event.removeListener(eP),null!==eI&&google.maps.event.removeListener(eI),null!==eD&&google.maps.event.removeListener(eD),V&&V(a),s?s.removeMarker(a,!!n):a&&a.setMap(null)}},[]);let e_=(0,p.useMemo)(()=>o?p.Children.map(o,e=>(0,p.isValidElement)(e)?(0,p.cloneElement)(e,{anchor:H}):e):null,[o,H]);return(0,u.jsx)(u.Fragment,{children:e_})||null});class N extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[]}componentDidMount(){let e=Object.assign(Object.assign(Object.assign({},this.props.options||W),this.props.clusterer?W:{map:this.context}),{position:this.props.position});this.marker=new google.maps.Marker(e),this.props.clusterer?this.props.clusterer.addMarker(this.marker,!!this.props.noClustererRedraw):this.marker.setMap(this.context),this.registeredEvents=v({updaterMap:V,eventMap:Z,prevProps:{},nextProps:this.props,instance:this.marker}),this.props.onLoad&&this.props.onLoad(this.marker)}componentDidUpdate(e){this.marker&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:V,eventMap:Z,prevProps:e,nextProps:this.props,instance:this.marker}))}componentWillUnmount(){this.marker&&(this.props.onUnmount&&this.props.onUnmount(this.marker),m(this.registeredEvents),this.props.clusterer?this.props.clusterer.removeMarker(this.marker,!!this.props.noClustererRedraw):this.marker&&this.marker.setMap(null))}render(){let e=null;return this.props.children&&(e=p.Children.map(this.props.children,e=>(0,p.isValidElement)(e)?(0,p.cloneElement)(e,{anchor:this.marker}):e)),e||null}}N.contextType=d;var H=function(){function e(t,s){t.getClusterer().extend(e,google.maps.OverlayView),this.cluster=t,this.clusterClassName=this.cluster.getClusterer().getClusterClass(),this.className=this.clusterClassName,this.styles=s,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 s=t.getMaxZoom(),n=this.cluster.getBounds(),o=t.getMap();null!==o&&"fitBounds"in o&&o.fitBounds(n),this.timeOut=window.setTimeout(function(){var e=t.getMap();if(null!==e){"fitBounds"in e&&e.fitBounds(n);var o=e.getZoom()||0;null!==s&&o>s&&e.setZoom(s+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(){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 e,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,s,n;if(this.div&&this.center){var o=null===this.sums||void 0===this.sums.title||""===this.sums.title?this.cluster.getClusterer().getTitle():this.sums.title,i=this.backgroundPosition.split(" "),r=parseInt(i[0].replace(/^\s+|\s+$/g,""),10),a=parseInt(i[1].replace(/^\s+|\s+$/g,""),10),l=this.getPosFromLatLng(this.center);this.div.className=this.className,this.div.setAttribute("style","cursor: pointer; position: absolute; top: ".concat(null!==l?"".concat(l.y,"px"):"0","; left: ").concat(null!==l?"".concat(l.x,"px"):"0","; width: ").concat(this.width,"px; height: ").concat(this.height,"px; "));var u=document.createElement("img");u.alt=o,u.src=this.url,u.width=this.width,u.height=this.height,u.setAttribute("style","position: absolute; top: ".concat(a,"px; left: ").concat(r,"px")),this.cluster.getClusterer().enableRetinaIcons||(u.style.clip="rect(-".concat(a,"px, -").concat(r+this.width,"px, -").concat(a+this.height,", -").concat(r,")"));var p=document.createElement("div");p.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===(e=this.sums)||void 0===e?void 0:e.text)&&(p.innerText="".concat(null===(t=this.sums)||void 0===t?void 0:t.text)),(null===(s=this.sums)||void 0===s?void 0:s.html)&&(p.innerHTML="".concat(null===(n=this.sums)||void 0===n?void 0:n.html)),this.div.innerHTML="",this.div.appendChild(u),this.div.appendChild(p),this.div.title=o,this.div.style.display=""}this.visible=!0},e.prototype.useStyle=function(e){this.sums=e;var t=this.cluster.getClusterer().getStyles(),s=t[Math.min(t.length-1,Math.max(0,e.index-1))];this.url=s.url,this.height=s.height,this.width=s.width,s.className&&(this.className="".concat(this.clusterClassName," ").concat(s.className)),this.anchorText=s.anchorText||[0,0],this.anchorIcon=s.anchorIcon||[this.height/2,this.width/2],this.textColor=s.textColor||"black",this.textSize=s.textSize||11,this.textDecoration=s.textDecoration||"none",this.fontWeight=s.fontWeight||"bold",this.fontStyle=s.fontStyle||"normal",this.fontFamily=s.fontFamily||"Arial,sans-serif",this.backgroundPosition=s.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}(),$=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 H(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=this.getMarkers(),s=0;s<t.length;s++){var n=t[s].getPosition();n&&e.extend(n)}return e},e.prototype.remove=function(){this.clusterIcon.setMap(null),this.markers=[],delete this.markers},e.prototype.addMarker=function(e){if(this.isMarkerAlreadyAdded(e))return!1;if(this.center){if(this.averageCenter){var t=e.getPosition();if(t){var s=this.markers.length+1;this.center=new google.maps.LatLng((this.center.lat()*(s-1)+t.lat())/s,(this.center.lng()*(s-1)+t.lng())/s),this.calculateBounds()}}}else{var n,t=e.getPosition();t&&(this.center=t,this.calculateBounds())}e.isAdded=!0,this.markers.push(e);var o=this.markers.length,i=this.markerClusterer.getMaxZoom(),r=null===(n=this.map)||void 0===n?void 0:n.getZoom();if(null!==i&&void 0!==r&&r>i)e.getMap()!==this.map&&e.setMap(this.map);else if(o<this.minClusterSize)e.getMap()!==this.map&&e.setMap(this.map);else if(o===this.minClusterSize)for(var a=0;a<o;a++)this.markers[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,s=this.markerClusterer.getMaxZoom(),n=null===(e=this.map)||void 0===e?void 0:e.getZoom();if(null!==s&&void 0!==n&&n>s||t<this.minClusterSize){this.clusterIcon.hide();return}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 G(e,t){var s=e.length,n=s.toString().length;return{text:s.toString(),index:Math.min(n,t),title:""}}var F=[53,56,66,78,90],K=function(){function e(t,s,n){void 0===s&&(s=[]),void 0===n&&(n={}),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=this.getCalculator.bind(this),this.setCalculator=this.setCalculator.bind(this),this.removeMarkers=this.removeMarkers.bind(this),this.resetViewport=this.resetViewport.bind(this),this.getImagePath=this.getImagePath.bind(this),this.setImagePath=this.setImagePath.bind(this),this.pushMarkerTo=this.pushMarkerTo.bind(this),this.removeMarker=this.removeMarker.bind(this),this.clearMarkers=this.clearMarkers.bind(this),this.setupStyles=this.setupStyles.bind(this),this.getGridSize=this.getGridSize.bind(this),this.setGridSize=this.setGridSize.bind(this),this.getClusters=this.getClusters.bind(this),this.getMaxZoom=this.getMaxZoom.bind(this),this.setMaxZoom=this.setMaxZoom.bind(this),this.getMarkers=this.getMarkers.bind(this),this.addMarkers=this.addMarkers.bind(this),this.getStyles=this.getStyles.bind(this),this.setStyles=this.setStyles.bind(this),this.addMarker=this.addMarker.bind(this),this.onRemove=this.onRemove.bind(this),this.getTitle=this.getTitle.bind(this),this.setTitle=this.setTitle.bind(this),this.repaint=this.repaint.bind(this),this.onIdle=this.onIdle.bind(this),this.redraw=this.redraw.bind(this),this.extend=this.extend.bind(this),this.onAdd=this.onAdd.bind(this),this.draw=this.draw.bind(this),this.extend(e,google.maps.OverlayView),this.markers=[],this.clusters=[],this.listeners=[],this.activeMap=null,this.ready=!1,this.gridSize=n.gridSize||60,this.minClusterSize=n.minimumClusterSize||2,this.maxZoom=n.maxZoom||null,this.styles=n.styles||[],this.title=n.title||"",this.zoomOnClick=!0,void 0!==n.zoomOnClick&&(this.zoomOnClick=n.zoomOnClick),this.averageCenter=!1,void 0!==n.averageCenter&&(this.averageCenter=n.averageCenter),this.ignoreHidden=!1,void 0!==n.ignoreHidden&&(this.ignoreHidden=n.ignoreHidden),this.enableRetinaIcons=!1,void 0!==n.enableRetinaIcons&&(this.enableRetinaIcons=n.enableRetinaIcons),this.imagePath=n.imagePath||"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m",this.imageExtension=n.imageExtension||"png",this.imageSizes=n.imageSizes||F,this.calculator=n.calculator||G,this.batchSize=n.batchSize||2e3,this.batchSizeIE=n.batchSizeIE||500,this.clusterClass=n.clusterClass||"cluster",-1!==navigator.userAgent.toLowerCase().indexOf("msie")&&(this.batchSize=this.batchSizeIE),this.timerRefStatic=null,this.setupStyles(),this.addMarkers(s,!0),this.setMap(t)}return e.prototype.onZoomChanged=function(){var e,t;this.resetViewport(!1),((null===(e=this.getMap())||void 0===e?void 0:e.getZoom())===(this.get("minZoom")||0)||(null===(t=this.getMap())||void 0===t?void 0:t.getZoom())===this.get("maxZoom"))&&google.maps.event.trigger(this,"idle")},e.prototype.onIdle=function(){this.redraw()},e.prototype.onAdd=function(){var e=this.getMap();this.activeMap=e,this.ready=!0,this.repaint(),null!==e&&(this.listeners=[google.maps.event.addListener(e,"zoom_changed",this.onZoomChanged),google.maps.event.addListener(e,"idle",this.onIdle)])},e.prototype.onRemove=function(){for(var e=0;e<this.markers.length;e++)this.markers[e].getMap()!==this.activeMap&&this.markers[e].setMap(this.activeMap);for(var e=0;e<this.clusters.length;e++)this.clusters[e].remove();this.clusters=[];for(var e=0;e<this.listeners.length;e++)google.maps.event.removeListener(this.listeners[e]);this.listeners=[],this.activeMap=null,this.ready=!1},e.prototype.draw=function(){},e.prototype.setupStyles=function(){if(!(this.styles.length>0))for(var e=0;e<this.imageSizes.length;e++)this.styles.push({url:"".concat(this.imagePath+(e+1),".").concat(this.imageExtension),height:this.imageSizes[e],width:this.imageSizes[e]})},e.prototype.fitMapToMarkers=function(){for(var e=this.getMarkers(),t=new google.maps.LatLngBounds,s=0;s<e.length;s++){var n=e[s].getPosition();n&&t.extend(n)}var o=this.getMap();null!==o&&"fitBounds"in o&&o.fitBounds(t)},e.prototype.getGridSize=function(){return this.gridSize},e.prototype.setGridSize=function(e){this.gridSize=e},e.prototype.getMinimumClusterSize=function(){return this.minClusterSize},e.prototype.setMinimumClusterSize=function(e){this.minClusterSize=e},e.prototype.getMaxZoom=function(){return this.maxZoom},e.prototype.setMaxZoom=function(e){this.maxZoom=e},e.prototype.getStyles=function(){return this.styles},e.prototype.setStyles=function(e){this.styles=e},e.prototype.getTitle=function(){return this.title},e.prototype.setTitle=function(e){this.title=e},e.prototype.getZoomOnClick=function(){return this.zoomOnClick},e.prototype.setZoomOnClick=function(e){this.zoomOnClick=e},e.prototype.getAverageCenter=function(){return this.averageCenter},e.prototype.setAverageCenter=function(e){this.averageCenter=e},e.prototype.getIgnoreHidden=function(){return this.ignoreHidden},e.prototype.setIgnoreHidden=function(e){this.ignoreHidden=e},e.prototype.getEnableRetinaIcons=function(){return this.enableRetinaIcons},e.prototype.setEnableRetinaIcons=function(e){this.enableRetinaIcons=e},e.prototype.getImageExtension=function(){return this.imageExtension},e.prototype.setImageExtension=function(e){this.imageExtension=e},e.prototype.getImagePath=function(){return this.imagePath},e.prototype.setImagePath=function(e){this.imagePath=e},e.prototype.getImageSizes=function(){return this.imageSizes},e.prototype.setImageSizes=function(e){this.imageSizes=e},e.prototype.getCalculator=function(){return this.calculator},e.prototype.setCalculator=function(e){this.calculator=e},e.prototype.getBatchSizeIE=function(){return this.batchSizeIE},e.prototype.setBatchSizeIE=function(e){this.batchSizeIE=e},e.prototype.getClusterClass=function(){return this.clusterClass},e.prototype.setClusterClass=function(e){this.clusterClass=e},e.prototype.getMarkers=function(){return this.markers},e.prototype.getTotalMarkers=function(){return this.markers.length},e.prototype.getClusters=function(){return this.clusters},e.prototype.getTotalClusters=function(){return this.clusters.length},e.prototype.addMarker=function(e,t){this.pushMarkerTo(e),t||this.redraw()},e.prototype.addMarkers=function(e,t){for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&this.pushMarkerTo(e[s]);t||this.redraw()},e.prototype.pushMarkerTo=function(e){var t=this;e.getDraggable()&&google.maps.event.addListener(e,"dragend",function(){t.ready&&(e.isAdded=!1,t.repaint())}),e.isAdded=!1,this.markers.push(e)},e.prototype.removeMarker_=function(e){var t=-1;if(this.markers.indexOf)t=this.markers.indexOf(e);else for(var s=0;s<this.markers.length;s++)if(e===this.markers[s]){t=s;break}return -1!==t&&(e.setMap(null),this.markers.splice(t,1),!0)},e.prototype.removeMarker=function(e,t){var s=this.removeMarker_(e);return!t&&s&&this.repaint(),s},e.prototype.removeMarkers=function(e,t){for(var s=!1,n=0;n<e.length;n++)s=s||this.removeMarker_(e[n]);return!t&&s&&this.repaint(),s},e.prototype.clearMarkers=function(){this.resetViewport(!0),this.markers=[]},e.prototype.repaint=function(){var e=this.clusters.slice();this.clusters=[],this.resetViewport(!1),this.redraw(),setTimeout(function(){for(var t=0;t<e.length;t++)e[t].remove()},0)},e.prototype.getExtendedBounds=function(e){var t=this.getProjection(),s=t.fromLatLngToDivPixel(new google.maps.LatLng(e.getNorthEast().lat(),e.getNorthEast().lng()));null!==s&&(s.x+=this.gridSize,s.y-=this.gridSize);var n=t.fromLatLngToDivPixel(new google.maps.LatLng(e.getSouthWest().lat(),e.getSouthWest().lng()));if(null!==n&&(n.x-=this.gridSize,n.y+=this.gridSize),null!==s){var o=t.fromDivPixelToLatLng(s);null!==o&&e.extend(o)}if(null!==n){var i=t.fromDivPixelToLatLng(n);null!==i&&e.extend(i)}return e},e.prototype.redraw=function(){this.createClusters(0)},e.prototype.resetViewport=function(e){for(var t=0;t<this.clusters.length;t++)this.clusters[t].remove();this.clusters=[];for(var t=0;t<this.markers.length;t++){var s=this.markers[t];s.isAdded=!1,e&&s.setMap(null)}},e.prototype.distanceBetweenPoints=function(e,t){var s=(t.lat()-e.lat())*Math.PI/180,n=(t.lng()-e.lng())*Math.PI/180,o=Math.sin(s/2)*Math.sin(s/2)+Math.cos(e.lat()*Math.PI/180)*Math.cos(t.lat()*Math.PI/180)*Math.sin(n/2)*Math.sin(n/2);return 6371*(2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)))},e.prototype.isMarkerInBounds=function(e,t){var s=e.getPosition();return!!s&&t.contains(s)},e.prototype.addToClosestCluster=function(e){for(var t,s=4e4,n=null,o=0;o<this.clusters.length;o++){var i=(t=this.clusters[o]).getCenter(),r=e.getPosition();if(i&&r){var a=this.distanceBetweenPoints(i,r);a<s&&(s=a,n=t)}}n&&n.isMarkerInClusterBounds(e)?n.addMarker(e):((t=new $(this)).addMarker(e),this.clusters.push(t))},e.prototype.createClusters=function(e){var t=this;if(this.ready){0===e&&(google.maps.event.trigger(this,"clusteringbegin",this),null!==this.timerRefStatic&&(window.clearTimeout(this.timerRefStatic),delete this.timerRefStatic));for(var s=this.getMap(),n=null!==s&&("getBounds"in s)?s.getBounds():null,o=((null==s?void 0:s.getZoom())||0)>3?new google.maps.LatLngBounds(null==n?void 0:n.getSouthWest(),null==n?void 0:n.getNorthEast()):new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472,-178.48388434375),new google.maps.LatLng(-85.08136444384544,178.00048865625)),i=this.getExtendedBounds(o),r=Math.min(e+this.batchSize,this.markers.length),a=e;a<r;a++){var l=this.markers[a];!l.isAdded&&this.isMarkerInBounds(l,i)&&(!this.ignoreHidden||this.ignoreHidden&&l.getVisible())&&this.addToClosestCluster(l)}if(r<this.markers.length)this.timerRefStatic=window.setTimeout(function(){t.createClusters(r)},0);else{this.timerRefStatic=null,google.maps.event.trigger(this,"clusteringend",this);for(var a=0;a<this.clusters.length;a++)this.clusters[a].updateIcon()}}},e.prototype.extend=function(e,t){return(function(e){for(var t in e.prototype)this.prototype[t]=e.prototype[t];return this}).apply(e,[t])},e}();let Y={onClick:"click",onClusteringBegin:"clusteringbegin",onClusteringEnd:"clusteringend",onMouseOut:"mouseout",onMouseOver:"mouseover"},q={averageCenter(e,t){e.setAverageCenter(t)},batchSizeIE(e,t){e.setBatchSizeIE(t)},calculator(e,t){e.setCalculator(t)},clusterClass(e,t){e.setClusterClass(t)},enableRetinaIcons(e,t){e.setEnableRetinaIcons(t)},gridSize(e,t){e.setGridSize(t)},ignoreHidden(e,t){e.setIgnoreHidden(t)},imageExtension(e,t){e.setImageExtension(t)},imagePath(e,t){e.setImagePath(t)},imageSizes(e,t){e.setImageSizes(t)},maxZoom(e,t){e.setMaxZoom(t)},minimumClusterSize(e,t){e.setMinimumClusterSize(t)},styles(e,t){e.setStyles(t)},title(e,t){e.setTitle(t)},zoomOnClick(e,t){e.setZoomOnClick(t)}},J={};(0,p.memo)(function(e){let{children:t,options:s,averageCenter:n,batchSizeIE:o,calculator:i,clusterClass:r,enableRetinaIcons:a,gridSize:l,ignoreHidden:u,imageExtension:h,imagePath:g,imageSizes:c,maxZoom:m,minimumClusterSize:v,styles:f,title:L,zoomOnClick:y,onClick:b,onClusteringBegin:x,onClusteringEnd:C,onMouseOver:E,onMouseOut:M,onLoad:k,onUnmount:S}=e,[w,P]=(0,p.useState)(null),O=(0,p.useContext)(d),[I,B]=(0,p.useState)(null),[D,z]=(0,p.useState)(null),[_,T]=(0,p.useState)(null),[j,R]=(0,p.useState)(null),[U,A]=(0,p.useState)(null);return(0,p.useEffect)(()=>{w&&M&&(null!==j&&google.maps.event.removeListener(j),R(google.maps.event.addListener(w,Y.onMouseOut,M)))},[M]),(0,p.useEffect)(()=>{w&&E&&(null!==U&&google.maps.event.removeListener(U),A(google.maps.event.addListener(w,Y.onMouseOver,E)))},[E]),(0,p.useEffect)(()=>{w&&b&&(null!==I&&google.maps.event.removeListener(I),B(google.maps.event.addListener(w,Y.onClick,b)))},[b]),(0,p.useEffect)(()=>{w&&x&&(null!==D&&google.maps.event.removeListener(D),z(google.maps.event.addListener(w,Y.onClusteringBegin,x)))},[x]),(0,p.useEffect)(()=>{w&&C&&(null!==_&&google.maps.event.removeListener(_),z(google.maps.event.addListener(w,Y.onClusteringEnd,C)))},[C]),(0,p.useEffect)(()=>{void 0!==n&&null!==w&&q.averageCenter(w,n)},[w,n]),(0,p.useEffect)(()=>{void 0!==o&&null!==w&&q.batchSizeIE(w,o)},[w,o]),(0,p.useEffect)(()=>{void 0!==i&&null!==w&&q.calculator(w,i)},[w,i]),(0,p.useEffect)(()=>{void 0!==r&&null!==w&&q.clusterClass(w,r)},[w,r]),(0,p.useEffect)(()=>{void 0!==a&&null!==w&&q.enableRetinaIcons(w,a)},[w,a]),(0,p.useEffect)(()=>{void 0!==l&&null!==w&&q.gridSize(w,l)},[w,l]),(0,p.useEffect)(()=>{void 0!==u&&null!==w&&q.ignoreHidden(w,u)},[w,u]),(0,p.useEffect)(()=>{void 0!==h&&null!==w&&q.imageExtension(w,h)},[w,h]),(0,p.useEffect)(()=>{void 0!==g&&null!==w&&q.imagePath(w,g)},[w,g]),(0,p.useEffect)(()=>{void 0!==c&&null!==w&&q.imageSizes(w,c)},[w,c]),(0,p.useEffect)(()=>{void 0!==m&&null!==w&&q.maxZoom(w,m)},[w,m]),(0,p.useEffect)(()=>{void 0!==v&&null!==w&&q.minimumClusterSize(w,v)},[w,v]),(0,p.useEffect)(()=>{void 0!==f&&null!==w&&q.styles(w,f)},[w,f]),(0,p.useEffect)(()=>{void 0!==L&&null!==w&&q.title(w,L)},[w,L]),(0,p.useEffect)(()=>{void 0!==y&&null!==w&&q.zoomOnClick(w,y)},[w,y]),(0,p.useEffect)(()=>{if(!O)return;let e=Object.assign({},s||J),t=new K(O,[],e);return n&&q.averageCenter(t,n),o&&q.batchSizeIE(t,o),i&&q.calculator(t,i),r&&q.clusterClass(t,r),a&&q.enableRetinaIcons(t,a),l&&q.gridSize(t,l),u&&q.ignoreHidden(t,u),h&&q.imageExtension(t,h),g&&q.imagePath(t,g),c&&q.imageSizes(t,c),m&&q.maxZoom(t,m),v&&q.minimumClusterSize(t,v),f&&q.styles(t,f),L&&q.title(t,L),y&&q.zoomOnClick(t,y),M&&R(google.maps.event.addListener(t,Y.onMouseOut,M)),E&&A(google.maps.event.addListener(t,Y.onMouseOver,E)),b&&B(google.maps.event.addListener(t,Y.onClick,b)),x&&z(google.maps.event.addListener(t,Y.onClusteringBegin,x)),C&&T(google.maps.event.addListener(t,Y.onClusteringEnd,C)),P(t),k&&k(t),()=>{null!==j&&google.maps.event.removeListener(j),null!==U&&google.maps.event.removeListener(U),null!==I&&google.maps.event.removeListener(I),null!==D&&google.maps.event.removeListener(D),null!==_&&google.maps.event.removeListener(_),S&&S(t)}},[]),null!==w&&t(w)||null});class X extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={markerClusterer:null},this.setClustererCallback=()=>{null!==this.state.markerClusterer&&this.props.onLoad&&this.props.onLoad(this.state.markerClusterer)}}componentDidMount(){if(this.context){let e=new K(this.context,[],this.props.options);this.registeredEvents=v({updaterMap:q,eventMap:Y,prevProps:{},nextProps:this.props,instance:e}),this.setState(()=>({markerClusterer:e}),this.setClustererCallback)}}componentDidUpdate(e){this.state.markerClusterer&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:q,eventMap:Y,prevProps:e,nextProps:this.props,instance:this.state.markerClusterer}))}componentWillUnmount(){null!==this.state.markerClusterer&&(this.props.onUnmount&&this.props.onUnmount(this.state.markerClusterer),m(this.registeredEvents),this.state.markerClusterer.setMap(null))}render(){return null!==this.state.markerClusterer?this.props.children(this.state.markerClusterer):null}}function Q(e){e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation()}X.contextType=d;var ee=function(){function e(t){void 0===t&&(t={}),this.getCloseClickHandler=this.getCloseClickHandler.bind(this),this.closeClickHandler=this.closeClickHandler.bind(this),this.createInfoBoxDiv=this.createInfoBoxDiv.bind(this),this.addClickHandler=this.addClickHandler.bind(this),this.getCloseBoxImg=this.getCloseBoxImg.bind(this),this.getBoxWidths=this.getBoxWidths.bind(this),this.setBoxStyle=this.setBoxStyle.bind(this),this.setPosition=this.setPosition.bind(this),this.getPosition=this.getPosition.bind(this),this.setOptions=this.setOptions.bind(this),this.setContent=this.setContent.bind(this),this.setVisible=this.setVisible.bind(this),this.getContent=this.getContent.bind(this),this.getVisible=this.getVisible.bind(this),this.setZIndex=this.setZIndex.bind(this),this.getZIndex=this.getZIndex.bind(this),this.onRemove=this.onRemove.bind(this),this.panBox=this.panBox.bind(this),this.extend=this.extend.bind(this),this.close=this.close.bind(this),this.draw=this.draw.bind(this),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.open=this.open.bind(this),this.extend(e,google.maps.OverlayView),this.content=t.content||"",this.disableAutoPan=t.disableAutoPan||!1,this.maxWidth=t.maxWidth||0,this.pixelOffset=t.pixelOffset||new google.maps.Size(0,0),this.position=t.position||new google.maps.LatLng(0,0),this.zIndex=t.zIndex||null,this.boxClass=t.boxClass||"infoBox",this.boxStyle=t.boxStyle||{},this.closeBoxMargin=t.closeBoxMargin||"2px",this.closeBoxURL=t.closeBoxURL||"http://www.google.com/intl/en_us/mapfiles/close.gif",""===t.closeBoxURL&&(this.closeBoxURL=""),this.infoBoxClearance=t.infoBoxClearance||new google.maps.Size(1,1),void 0===t.visible&&(void 0===t.isHidden?t.visible=!0:t.visible=!t.isHidden),this.isHidden=!t.visible,this.alignBottom=t.alignBottom||!1,this.pane=t.pane||"floatPane",this.enableEventPropagation=t.enableEventPropagation||!1,this.div=null,this.closeListener=null,this.moveListener=null,this.mapListener=null,this.contextListener=null,this.eventListeners=null,this.fixedWidthSet=null}return e.prototype.createInfoBoxDiv=function(){var e=this;if(!this.div){this.div=document.createElement("div"),this.setBoxStyle(),"string"==typeof this.content?this.div.innerHTML=this.getCloseBoxImg()+this.content:(this.div.innerHTML=this.getCloseBoxImg(),this.div.appendChild(this.content));var t=this.getPanes();if(null!==t&&t[this.pane].appendChild(this.div),this.addClickHandler(),this.div.style.width)this.fixedWidthSet=!0;else if(0!==this.maxWidth&&this.div.offsetWidth>this.maxWidth)this.div.style.width=this.maxWidth+"px",this.fixedWidthSet=!0;else{var s=this.getBoxWidths();this.div.style.width=this.div.offsetWidth-s.left-s.right+"px",this.fixedWidthSet=!1}if(this.panBox(this.disableAutoPan),!this.enableEventPropagation){this.eventListeners=[];for(var n=["mousedown","mouseover","mouseout","mouseup","click","dblclick","touchstart","touchend","touchmove"],o=0;o<n.length;o++)this.eventListeners.push(google.maps.event.addListener(this.div,n[o],Q));this.eventListeners.push(google.maps.event.addListener(this.div,"mouseover",function(){e.div&&(e.div.style.cursor="default")}))}this.contextListener=google.maps.event.addListener(this.div,"contextmenu",function(t){t.returnValue=!1,t.preventDefault&&t.preventDefault(),e.enableEventPropagation||Q(t)}),google.maps.event.trigger(this,"domready")}},e.prototype.getCloseBoxImg=function(){var e="";return""!==this.closeBoxURL&&(e='<img alt="" aria-hidden="true" src=\''+this.closeBoxURL+"' align=right style=' position: relative; cursor: pointer; margin: "+this.closeBoxMargin+";'>"),e},e.prototype.addClickHandler=function(){this.closeListener=this.div&&this.div.firstChild&&""!==this.closeBoxURL?google.maps.event.addListener(this.div.firstChild,"click",this.getCloseClickHandler()):null},e.prototype.closeClickHandler=function(e){e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(this,"closeclick"),this.close()},e.prototype.getCloseClickHandler=function(){return this.closeClickHandler},e.prototype.panBox=function(e){if(this.div&&!e){var t=this.getMap();if(t instanceof google.maps.Map){var s=0,n=0,o=t.getBounds();o&&!o.contains(this.position)&&t.setCenter(this.position);var i=t.getDiv(),r=i.offsetWidth,a=i.offsetHeight,l=this.pixelOffset.width,u=this.pixelOffset.height,p=this.div.offsetWidth,h=this.div.offsetHeight,g=this.infoBoxClearance.width,d=this.infoBoxClearance.height,c=this.getProjection().fromLatLngToContainerPixel(this.position);null!==c&&(c.x<-l+g?s=c.x+l-g:c.x+p+l+g>r&&(s=c.x+p+l+g-r),this.alignBottom?c.y<-u+d+h?n=c.y+u-d-h:c.y+u+d>a&&(n=c.y+u+d-a):c.y<-u+d?n=c.y+u-d:c.y+h+u+d>a&&(n=c.y+h+u+d-a)),0===s&&0===n||t.panBy(s,n)}}},e.prototype.setBoxStyle=function(){if(this.div){this.div.className=this.boxClass,this.div.style.cssText="";var e=this.boxStyle;for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.div.style[t]=e[t]);if(this.div.style.webkitTransform="translateZ(0)",void 0!==this.div.style.opacity&&""!==this.div.style.opacity){var s=parseFloat(this.div.style.opacity||"");this.div.style.msFilter='"progid:DXImageTransform.Microsoft.Alpha(Opacity='+100*s+')"',this.div.style.filter="alpha(opacity="+100*s+")"}this.div.style.position="absolute",this.div.style.visibility="hidden",null!==this.zIndex&&(this.div.style.zIndex=this.zIndex+""),this.div.style.overflow||(this.div.style.overflow="auto")}},e.prototype.getBoxWidths=function(){var e={top:0,bottom:0,left:0,right:0};if(!this.div)return e;if(document.defaultView){var t=this.div.ownerDocument,s=t&&t.defaultView?t.defaultView.getComputedStyle(this.div,""):null;s&&(e.top=parseInt(s.borderTopWidth||"",10)||0,e.bottom=parseInt(s.borderBottomWidth||"",10)||0,e.left=parseInt(s.borderLeftWidth||"",10)||0,e.right=parseInt(s.borderRightWidth||"",10)||0)}else if(document.documentElement.currentStyle){var n=this.div.currentStyle;n&&(e.top=parseInt(n.borderTopWidth||"",10)||0,e.bottom=parseInt(n.borderBottomWidth||"",10)||0,e.left=parseInt(n.borderLeftWidth||"",10)||0,e.right=parseInt(n.borderRightWidth||"",10)||0)}return e},e.prototype.onRemove=function(){this.div&&this.div.parentNode&&(this.div.parentNode.removeChild(this.div),this.div=null)},e.prototype.draw=function(){if(this.createInfoBoxDiv(),this.div){var e=this.getProjection().fromLatLngToDivPixel(this.position);null!==e&&(this.div.style.left=e.x+this.pixelOffset.width+"px",this.alignBottom?this.div.style.bottom=-(e.y+this.pixelOffset.height)+"px":this.div.style.top=e.y+this.pixelOffset.height+"px"),this.isHidden?this.div.style.visibility="hidden":this.div.style.visibility="visible"}},e.prototype.setOptions=function(e){void 0===e&&(e={}),void 0!==e.boxClass&&(this.boxClass=e.boxClass,this.setBoxStyle()),void 0!==e.boxStyle&&(this.boxStyle=e.boxStyle,this.setBoxStyle()),void 0!==e.content&&this.setContent(e.content),void 0!==e.disableAutoPan&&(this.disableAutoPan=e.disableAutoPan),void 0!==e.maxWidth&&(this.maxWidth=e.maxWidth),void 0!==e.pixelOffset&&(this.pixelOffset=e.pixelOffset),void 0!==e.alignBottom&&(this.alignBottom=e.alignBottom),void 0!==e.position&&this.setPosition(e.position),void 0!==e.zIndex&&this.setZIndex(e.zIndex),void 0!==e.closeBoxMargin&&(this.closeBoxMargin=e.closeBoxMargin),void 0!==e.closeBoxURL&&(this.closeBoxURL=e.closeBoxURL),void 0!==e.infoBoxClearance&&(this.infoBoxClearance=e.infoBoxClearance),void 0!==e.isHidden&&(this.isHidden=e.isHidden),void 0!==e.visible&&(this.isHidden=!e.visible),void 0!==e.enableEventPropagation&&(this.enableEventPropagation=e.enableEventPropagation),this.div&&this.draw()},e.prototype.setContent=function(e){this.content=e,this.div&&(this.closeListener&&(google.maps.event.removeListener(this.closeListener),this.closeListener=null),this.fixedWidthSet||(this.div.style.width=""),"string"==typeof e?this.div.innerHTML=this.getCloseBoxImg()+e:(this.div.innerHTML=this.getCloseBoxImg(),this.div.appendChild(e)),this.fixedWidthSet||(this.div.style.width=this.div.offsetWidth+"px","string"==typeof e?this.div.innerHTML=this.getCloseBoxImg()+e:(this.div.innerHTML=this.getCloseBoxImg(),this.div.appendChild(e))),this.addClickHandler()),google.maps.event.trigger(this,"content_changed")},e.prototype.setPosition=function(e){this.position=e,this.div&&this.draw(),google.maps.event.trigger(this,"position_changed")},e.prototype.setVisible=function(e){this.isHidden=!e,this.div&&(this.div.style.visibility=this.isHidden?"hidden":"visible")},e.prototype.setZIndex=function(e){this.zIndex=e,this.div&&(this.div.style.zIndex=e+""),google.maps.event.trigger(this,"zindex_changed")},e.prototype.getContent=function(){return this.content},e.prototype.getPosition=function(){return this.position},e.prototype.getZIndex=function(){return this.zIndex},e.prototype.getVisible=function(){return null!=this.getMap()&&!this.isHidden},e.prototype.show=function(){this.isHidden=!1,this.div&&(this.div.style.visibility="visible")},e.prototype.hide=function(){this.isHidden=!0,this.div&&(this.div.style.visibility="hidden")},e.prototype.open=function(e,t){var s=this;t&&(this.position=t.getPosition(),this.moveListener=google.maps.event.addListener(t,"position_changed",function(){var e=t.getPosition();s.setPosition(e)}),this.mapListener=google.maps.event.addListener(t,"map_changed",function(){s.setMap(t.map)})),this.setMap(e),this.div&&this.panBox()},e.prototype.close=function(){if(this.closeListener&&(google.maps.event.removeListener(this.closeListener),this.closeListener=null),this.eventListeners){for(var e=0;e<this.eventListeners.length;e++)google.maps.event.removeListener(this.eventListeners[e]);this.eventListeners=null}this.moveListener&&(google.maps.event.removeListener(this.moveListener),this.moveListener=null),this.mapListener&&(google.maps.event.removeListener(this.mapListener),this.mapListener=null),this.contextListener&&(google.maps.event.removeListener(this.contextListener),this.contextListener=null),this.setMap(null)},e.prototype.extend=function(e,t){return(function(e){for(var t in e.prototype)Object.prototype.hasOwnProperty.call(this,t)||(this.prototype[t]=e.prototype[t]);return this}).apply(e,[t])},e}();let et={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},es={options(e,t){e.setOptions(t)},position(e,t){t instanceof google.maps.LatLng?e.setPosition(t):e.setPosition(new google.maps.LatLng(t.lat,t.lng))},visible(e,t){e.setVisible(t)},zIndex(e,t){e.setZIndex(t)}},en={};(0,p.memo)(function({children:e,anchor:t,options:s,position:n,zIndex:o,onCloseClick:i,onDomReady:r,onContentChanged:a,onPositionChanged:l,onZindexChanged:u,onLoad:c,onUnmount:m}){let v=(0,p.useContext)(d),[L,y]=(0,p.useState)(null),[b,x]=(0,p.useState)(null),[C,E]=(0,p.useState)(null),[M,k]=(0,p.useState)(null),[S,w]=(0,p.useState)(null),[P,O]=(0,p.useState)(null),I=(0,p.useRef)(null);return(0,p.useEffect)(()=>{v&&null!==L&&(L.close(),t?L.open(v,t):L.getPosition()&&L.open(v))},[v,L,t]),(0,p.useEffect)(()=>{s&&null!==L&&L.setOptions(s)},[L,s]),(0,p.useEffect)(()=>{if(n&&null!==L){let e=n instanceof google.maps.LatLng?n:new google.maps.LatLng(n.lat,n.lng);L.setPosition(e)}},[n]),(0,p.useEffect)(()=>{"number"==typeof o&&null!==L&&L.setZIndex(o)},[o]),(0,p.useEffect)(()=>{L&&i&&(null!==b&&google.maps.event.removeListener(b),x(google.maps.event.addListener(L,"closeclick",i)))},[i]),(0,p.useEffect)(()=>{L&&r&&(null!==C&&google.maps.event.removeListener(C),E(google.maps.event.addListener(L,"domready",r)))},[r]),(0,p.useEffect)(()=>{L&&a&&(null!==M&&google.maps.event.removeListener(M),k(google.maps.event.addListener(L,"content_changed",a)))},[a]),(0,p.useEffect)(()=>{L&&l&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(L,"position_changed",l)))},[l]),(0,p.useEffect)(()=>{L&&u&&(null!==P&&google.maps.event.removeListener(P),O(google.maps.event.addListener(L,"zindex_changed",u)))},[u]),(0,p.useEffect)(()=>{if(v){let e;let n=s||en,{position:o}=n,p=f(n,["position"]);!o||o instanceof google.maps.LatLng||(e=new google.maps.LatLng(o.lat,o.lng));let h=new ee(Object.assign(Object.assign({},p),e?{position:e}:{}));I.current=document.createElement("div"),y(h),i&&x(google.maps.event.addListener(h,"closeclick",i)),r&&E(google.maps.event.addListener(h,"domready",r)),a&&k(google.maps.event.addListener(h,"content_changed",a)),l&&w(google.maps.event.addListener(h,"position_changed",l)),u&&O(google.maps.event.addListener(h,"zindex_changed",u)),h.setContent(I.current),t?h.open(v,t):h.getPosition()?h.open(v):g(!1,"You must provide either an anchor or a position prop for <InfoBox>."),c&&c(h)}return()=>{null!==L&&(b&&google.maps.event.removeListener(b),M&&google.maps.event.removeListener(M),C&&google.maps.event.removeListener(C),S&&google.maps.event.removeListener(S),P&&google.maps.event.removeListener(P),m&&m(L),L.close())}},[]),I.current?(0,h.createPortal)(p.Children.only(e),I.current):null});class eo extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.containerElement=null,this.state={infoBox:null},this.open=(e,t)=>{t?e.open(this.context,t):e.getPosition()?e.open(this.context):g(!1,"You must provide either an anchor or a position prop for <InfoBox>.")},this.setInfoBoxCallback=()=>{null!==this.state.infoBox&&null!==this.containerElement&&(this.state.infoBox.setContent(this.containerElement),this.open(this.state.infoBox,this.props.anchor),this.props.onLoad&&this.props.onLoad(this.state.infoBox))}}componentDidMount(){let e;let t=this.props.options||{},{position:s}=t,n=f(t,["position"]);!s||s instanceof google.maps.LatLng||(e=new google.maps.LatLng(s.lat,s.lng));let o=new ee(Object.assign(Object.assign({},n),e?{position:e}:{}));this.containerElement=document.createElement("div"),this.registeredEvents=v({updaterMap:es,eventMap:et,prevProps:{},nextProps:this.props,instance:o}),this.setState({infoBox:o},this.setInfoBoxCallback)}componentDidUpdate(e){let{infoBox:t}=this.state;null!==t&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:es,eventMap:et,prevProps:e,nextProps:this.props,instance:t}))}componentWillUnmount(){let{onUnmount:e}=this.props,{infoBox:t}=this.state;null!==t&&(e&&e(t),m(this.registeredEvents),t.close())}render(){return this.containerElement?(0,h.createPortal)(p.Children.only(this.props.children),this.containerElement):null}}eo.contextType=d;var ei=function e(t,s){if(t===s)return!0;if(t&&s&&"object"==typeof t&&"object"==typeof s){if(t.constructor!==s.constructor)return!1;if(Array.isArray(t)){if((n=t.length)!=s.length)return!1;for(o=n;0!=o--;)if(!e(t[o],s[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if((n=(i=Object.keys(t)).length)!==Object.keys(s).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(s,i[o]))return!1;for(o=n;0!=o--;){var n,o,i,r=i[o];if(!e(t[r],s[r]))return!1}return!0}return t!=t&&s!=s},er={exports:{}};er.exports=function(){function e(e,s,n,o){t(e,n,o),t(s,2*n,2*o),t(s,2*n+1,2*o+1)}function t(e,t,s){var n=e[t];e[t]=e[s],e[s]=n}function s(e,t,s,n){var o=e-s,i=t-n;return o*o+i*i}var n=function(e){return e[0]},o=function(e){return e[1]},i=function(t,s,i,r,a){void 0===s&&(s=n),void 0===i&&(i=o),void 0===r&&(r=64),void 0===a&&(a=Float64Array),this.nodeSize=r,this.points=t;for(var l=t.length<65536?Uint16Array:Uint32Array,u=this.ids=new l(t.length),p=this.coords=new a(2*t.length),h=0;h<t.length;h++)u[h]=h,p[2*h]=s(t[h]),p[2*h+1]=i(t[h]);!function t(s,n,o,i,r,a){if(!(r-i<=o)){var l=i+r>>1;(function t(s,n,o,i,r,a){for(;r>i;){if(r-i>600){var l=r-i+1,u=o-i+1,p=Math.log(l),h=.5*Math.exp(2*p/3),g=.5*Math.sqrt(p*h*(l-h)/l)*(u-l/2<0?-1:1),d=Math.max(i,Math.floor(o-u*h/l+g)),c=Math.min(r,Math.floor(o+(l-u)*h/l+g));t(s,n,o,d,c,a)}var m=n[2*o+a],v=i,f=r;for(e(s,n,i,o),n[2*r+a]>m&&e(s,n,i,r);v<f;){for(e(s,n,v,f),v++,f--;n[2*v+a]<m;)v++;for(;n[2*f+a]>m;)f--}n[2*i+a]===m?e(s,n,i,f):e(s,n,++f,r),f<=o&&(i=f+1),o<=f&&(r=f-1)}})(s,n,l,i,r,a%2),t(s,n,o,i,l-1,a+1),t(s,n,o,l+1,r,a+1)}}(u,p,r,0,u.length-1,0)};return i.prototype.range=function(e,t,s,n){return function(e,t,s,n,o,i,r){for(var a,l,u=[0,e.length-1,0],p=[];u.length;){var h=u.pop(),g=u.pop(),d=u.pop();if(g-d<=r){for(var c=d;c<=g;c++)a=t[2*c],l=t[2*c+1],a>=s&&a<=o&&l>=n&&l<=i&&p.push(e[c]);continue}var m=Math.floor((d+g)/2);a=t[2*m],l=t[2*m+1],a>=s&&a<=o&&l>=n&&l<=i&&p.push(e[m]);var v=(h+1)%2;(0===h?s<=a:n<=l)&&(u.push(d),u.push(m-1),u.push(v)),(0===h?o>=a:i>=l)&&(u.push(m+1),u.push(g),u.push(v))}return p}(this.ids,this.coords,e,t,s,n,this.nodeSize)},i.prototype.within=function(e,t,n){return function(e,t,n,o,i,r){for(var a=[0,e.length-1,0],l=[],u=i*i;a.length;){var p=a.pop(),h=a.pop(),g=a.pop();if(h-g<=r){for(var d=g;d<=h;d++)s(t[2*d],t[2*d+1],n,o)<=u&&l.push(e[d]);continue}var c=Math.floor((g+h)/2),m=t[2*c],v=t[2*c+1];s(m,v,n,o)<=u&&l.push(e[c]);var f=(p+1)%2;(0===p?n-i<=m:o-i<=v)&&(a.push(g),a.push(c-1),a.push(f)),(0===p?n+i>=m:o+i>=v)&&(a.push(c+1),a.push(h),a.push(f))}return l}(this.ids,this.coords,e,t,n,this.nodeSize)},i}();var ea=er.exports;let el={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},eu=Math.fround||(i=new Float32Array(1),e=>(i[0]=+e,i[0]));class ep{constructor(e){this.options=em(Object.create(el),e),this.trees=Array(this.options.maxZoom+1)}load(e){let{log:t,minZoom:s,maxZoom:n,nodeSize:o}=this.options;t&&console.time("total time");let i=`prepare ${e.length} points`;t&&console.time(i),this.points=e;let r=[];for(let t=0;t<e.length;t++)e[t].geometry&&r.push(function(e,t){let[s,n]=e.geometry.coordinates;return{x:eu(ed(s)),y:eu(ec(n)),zoom:1/0,index:t,parentId:-1}}(e[t],t));this.trees[n+1]=new ea(r,ev,ef,o,Float32Array),t&&console.timeEnd(i);for(let e=n;e>=s;e--){let s=+Date.now();r=this._cluster(r,e),this.trees[e]=new ea(r,ev,ef,o,Float32Array),t&&console.log("z%d: %d clusters in %dms",e,r.length,+Date.now()-s)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let s=((e[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,e[1])),o=180===e[2]?180:((e[2]+180)%360+360)%360-180,i=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)s=-180,o=180;else if(s>o){let e=this.getClusters([s,n,180,i],t),r=this.getClusters([-180,n,o,i],t);return e.concat(r)}let r=this.trees[this._limitZoom(t)],a=r.range(ed(s),ec(i),ed(o),ec(n)),l=[];for(let e of a){let t=r.points[e];l.push(t.numPoints?eh(t):this.points[t.index])}return l}getChildren(e){let t=this._getOriginId(e),s=this._getOriginZoom(e),n="No cluster with the specified id.",o=this.trees[s];if(!o)throw Error(n);let i=o.points[t];if(!i)throw Error(n);let r=this.options.radius/(this.options.extent*Math.pow(2,s-1)),a=o.within(i.x,i.y,r),l=[];for(let t of a){let s=o.points[t];s.parentId===e&&l.push(s.numPoints?eh(s):this.points[s.index])}if(0===l.length)throw Error(n);return l}getLeaves(e,t,s){t=t||10,s=s||0;let n=[];return this._appendLeaves(n,e,t,s,0),n}getTile(e,t,s){let n=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:i,radius:r}=this.options,a=r/i,l=(s-a)/o,u=(s+1+a)/o,p={features:[]};return this._addTileFeatures(n.range((t-a)/o,l,(t+1+a)/o,u),n.points,t,s,o,p),0===t&&this._addTileFeatures(n.range(1-a/o,l,1,u),n.points,o,s,o,p),t===o-1&&this._addTileFeatures(n.range(0,l,a/o,u),n.points,-1,s,o,p),p.features.length?p:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){let s=this.getChildren(e);if(t++,1!==s.length)break;e=s[0].properties.cluster_id}return t}_appendLeaves(e,t,s,n,o){let i=this.getChildren(t);for(let t of i){let i=t.properties;if(i&&i.cluster?o+i.point_count<=n?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,s,n,o):o<n?o++:e.push(t),e.length===s)break}return o}_addTileFeatures(e,t,s,n,o,i){for(let r of e){let e,a,l,u;let p=t[r],h=p.numPoints;if(h)e=eg(p),a=p.x,l=p.y;else{let t=this.points[p.index];e=t.properties,a=ed(t.geometry.coordinates[0]),l=ec(t.geometry.coordinates[1])}let g={type:1,geometry:[[Math.round(this.options.extent*(a*o-s)),Math.round(this.options.extent*(l*o-n))]],tags:e};h?u=p.id:this.options.generateId?u=p.index:this.points[p.index].id&&(u=this.points[p.index].id),void 0!==u&&(g.id=u),i.features.push(g)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(+e,this.options.maxZoom+1))}_cluster(e,t){let s=[],{radius:n,extent:o,reduce:i,minPoints:r}=this.options,a=n/(o*Math.pow(2,t));for(let n=0;n<e.length;n++){let o=e[n];if(o.zoom<=t)continue;o.zoom=t;let g=this.trees[t+1],d=g.within(o.x,o.y,a),c=o.numPoints||1,m=c;for(let e of d){let s=g.points[e];s.zoom>t&&(m+=s.numPoints||1)}if(m>c&&m>=r){var l,u,p,h;let e=o.x*c,r=o.y*c,a=i&&c>1?this._map(o,!0):null,v=(n<<5)+(t+1)+this.points.length;for(let s of d){let n=g.points[s];if(n.zoom<=t)continue;n.zoom=t;let l=n.numPoints||1;e+=n.x*l,r+=n.y*l,n.parentId=v,i&&(a||(a=this._map(o,!0)),i(a,this._map(n)))}o.parentId=v,s.push((l=e/m,u=r/m,p=m,h=a,{x:eu(l),y:eu(u),zoom:1/0,id:v,parentId:-1,numPoints:p,properties:h}))}else if(s.push(o),m>1)for(let e of d){let n=g.points[e];n.zoom<=t||(n.zoom=t,s.push(n))}}return s}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t){if(e.numPoints)return t?em({},e.properties):e.properties;let s=this.points[e.index].properties,n=this.options.map(s);return t&&n===s?em({},n):n}}function eh(e){return{type:"Feature",id:e.id,properties:eg(e),geometry:{type:"Point",coordinates:[(e.x-.5)*360,360*Math.atan(Math.exp((180-360*e.y)*Math.PI/180))/Math.PI-90]}}}function eg(e){let t=e.numPoints,s=t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?`${Math.round(t/100)/10}k`:t;return em(em({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:s})}function ed(e){return e/360+.5}function ec(e){let t=Math.sin(e*Math.PI/180),s=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return s<0?0:s>1?1:s}function em(e,t){for(let s in t)e[s]=t[s];return e}function ev(e){return e.x}function ef(e){return e.y}class eL{constructor({markers:e,position:t}){this.markers=e,t&&(t instanceof google.maps.LatLng?this._position=t:this._position=new google.maps.LatLng(t))}get bounds(){if(0!==this.markers.length||this._position)return this.markers.reduce((e,t)=>e.extend(t.getPosition()),new google.maps.LatLngBounds(this._position,this._position))}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>e.getVisible()).length}push(e){this.markers.push(e)}delete(){this.marker&&(this.marker.setMap(null),delete this.marker),this.markers.length=0}}let ey=(e,t,s)=>{let{northEast:n,southWest:o}=eb(e,t),i=ex({northEast:n,southWest:o},s);return eC(i,t)},eb=(e,t)=>({northEast:t.fromLatLngToDivPixel(e.getNorthEast()),southWest:t.fromLatLngToDivPixel(e.getSouthWest())}),ex=({northEast:e,southWest:t},s)=>(e.x+=s,e.y-=s,t.x-=s,t.y+=s,{northEast:e,southWest:t}),eC=({northEast:e,southWest:t},s)=>{let n=new google.maps.LatLngBounds;return n.extend(s.fromDivPixelToLatLng(e)),n.extend(s.fromDivPixelToLatLng(t)),n};class eE{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return eM(e)}}let eM=e=>{let t=e.map(e=>new eL({position:e.getPosition(),markers:[e]}));return t};class ek extends eE{constructor(e){var{maxZoom:t,radius:s=60}=e,n=/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)0>t.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(s[n[o]]=e[n[o]]);return s}(e,["maxZoom","radius"]);super({maxZoom:t}),this.superCluster=new ep(Object.assign({maxZoom:this.maxZoom,radius:s},n)),this.state={zoom:null}}calculate(e){let t=!1;if(!ei(e.markers,this.markers)){t=!0,this.markers=[...e.markers];let s=this.markers.map(e=>({type:"Feature",geometry:{type:"Point",coordinates:[e.getPosition().lng(),e.getPosition().lat()]},properties:{marker:e}}));this.superCluster.load(s)}let s={zoom:e.map.getZoom()};return!t&&(this.state.zoom>this.maxZoom&&s.zoom>this.maxZoom||(t=t||!ei(this.state,s))),this.state=s,t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map(this.transformCluster.bind(this))}transformCluster({geometry:{coordinates:[e,t]},properties:s}){if(s.cluster)return new eL({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(e=>e.properties.marker),position:new google.maps.LatLng({lat:t,lng:e})});{let e=s.marker;return new eL({markers:[e],position:e.getPosition()})}}}class eS{constructor(e,t){this.markers={sum:e.length};let s=t.map(e=>e.count),n=s.reduce((e,t)=>e+t,0);this.clusters={count:t.length,markers:{mean:n/t.length,sum:n,min:Math.min(...s),max:Math.max(...s)}}}}class ew{render({count:e,position:t},s){let n=e>Math.max(10,s.clusters.markers.mean)?"#ff0000":"#0000ff",o=window.btoa(` <svg fill="${n}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240"> <circle cx="120" cy="120" opacity=".6" r="70" /> <circle cx="120" cy="120" opacity=".3" r="90" /> <circle cx="120" cy="120" opacity=".2" r="110" /> </svg>`);return new google.maps.Marker({position:t,icon:{url:`data:image/svg+xml;base64,${o}`,scaledSize:new google.maps.Size(45,45)},label:{text:String(e),color:"rgba(255,255,255,0.9)",fontSize:"12px"},title:`Cluster of ${e} markers`,zIndex:Number(google.maps.Marker.MAX_ZINDEX)+e})}}class eP{constructor(){!function(e,t){for(let s in t.prototype)e.prototype[s]=t.prototype[s]}(eP,google.maps.OverlayView)}}(r=l||(l={})).CLUSTERING_BEGIN="clusteringbegin",r.CLUSTERING_END="clusteringend",r.CLUSTER_CLICK="click";let eO=(e,t,s)=>{s.fitBounds(t.bounds)};class eI extends eP{constructor({map:e,markers:t=[],algorithm:s=new ek({}),renderer:n=new ew,onClusterClick:o=eO}){super(),this.markers=[...t],this.clusters=[],this.algorithm=s,this.renderer=n,this.onClusterClick=o,e&&this.setMap(e)}addMarker(e,t){!this.markers.includes(e)&&(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(e=>{this.addMarker(e,!0)}),t||this.render()}removeMarker(e,t){let s=this.markers.indexOf(e);return -1!==s&&(e.setMap(null),this.markers.splice(s,1),t||this.render(),!0)}removeMarkers(e,t){let s=!1;return e.forEach(e=>{s=this.removeMarker(e,!0)||s}),s&&!t&&this.render(),s}clearMarkers(e){this.markers.length=0,e||this.render()}render(){let e=this.getMap();if(e instanceof google.maps.Map&&this.getProjection()){google.maps.event.trigger(this,l.CLUSTERING_BEGIN,this);let{clusters:t,changed:s}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});(s||void 0==s)&&(this.reset(),this.clusters=t,this.renderClusters()),google.maps.event.trigger(this,l.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(e=>e.setMap(null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){let e=new eS(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(s=>{1===s.markers.length?s.marker=s.markers[0]:(s.marker=this.renderer.render(s,e),this.onClusterClick&&s.marker.addListener("click",e=>{google.maps.event.trigger(this,l.CLUSTER_CLICK,s),this.onClusterClick(e,s,t)})),s.marker.setMap(t)})}}(0,p.memo)(function({children:e,options:t}){let s=function(e){let t=function(){g(!!p.useContext,"useGoogleMap is React hook and requires React version 16.8+");let e=(0,p.useContext)(d);return g(!!e,"useGoogleMap needs a GoogleMap available up in the tree"),e}(),[s,n]=(0,p.useState)(null);return(0,p.useEffect)(()=>{if(t&&null===s){let s=new eI(Object.assign(Object.assign({},e),{map:t}));n(s)}},[t]),s}(t);return null!==s?e(s):null});let eB={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},eD={options(e,t){e.setOptions(t)},position(e,t){e.setPosition(t)},zIndex(e,t){e.setZIndex(t)}};(0,p.memo)(function({children:e,anchor:t,options:s,position:n,zIndex:o,onCloseClick:i,onDomReady:r,onContentChanged:a,onPositionChanged:l,onZindexChanged:u,onLoad:c,onUnmount:m}){let v=(0,p.useContext)(d),[f,L]=(0,p.useState)(null),[y,b]=(0,p.useState)(null),[x,C]=(0,p.useState)(null),[E,M]=(0,p.useState)(null),[k,S]=(0,p.useState)(null),[w,P]=(0,p.useState)(null),O=(0,p.useRef)(null);return(0,p.useEffect)(()=>{null!==f&&(f.close(),t?f.open(v,t):f.getPosition()&&f.open(v))},[v,f,t]),(0,p.useEffect)(()=>{s&&null!==f&&f.setOptions(s)},[f,s]),(0,p.useEffect)(()=>{n&&null!==f&&f.setPosition(n)},[n]),(0,p.useEffect)(()=>{"number"==typeof o&&null!==f&&f.setZIndex(o)},[o]),(0,p.useEffect)(()=>{f&&i&&(null!==y&&google.maps.event.removeListener(y),b(google.maps.event.addListener(f,"closeclick",i)))},[i]),(0,p.useEffect)(()=>{f&&r&&(null!==x&&google.maps.event.removeListener(x),C(google.maps.event.addListener(f,"domready",r)))},[r]),(0,p.useEffect)(()=>{f&&a&&(null!==E&&google.maps.event.removeListener(E),M(google.maps.event.addListener(f,"content_changed",a)))},[a]),(0,p.useEffect)(()=>{f&&l&&(null!==k&&google.maps.event.removeListener(k),S(google.maps.event.addListener(f,"position_changed",l)))},[l]),(0,p.useEffect)(()=>{f&&u&&(null!==w&&google.maps.event.removeListener(w),P(google.maps.event.addListener(f,"zindex_changed",u)))},[u]),(0,p.useEffect)(()=>{let e=new google.maps.InfoWindow(Object.assign({},s||{}));return L(e),O.current=document.createElement("div"),i&&b(google.maps.event.addListener(e,"closeclick",i)),r&&C(google.maps.event.addListener(e,"domready",r)),a&&M(google.maps.event.addListener(e,"content_changed",a)),l&&S(google.maps.event.addListener(e,"position_changed",l)),u&&P(google.maps.event.addListener(e,"zindex_changed",u)),e.setContent(O.current),n&&e.setPosition(n),o&&e.setZIndex(o),t?e.open(v,t):e.getPosition()?e.open(v):g(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>."),c&&c(e),()=>{y&&google.maps.event.removeListener(y),E&&google.maps.event.removeListener(E),x&&google.maps.event.removeListener(x),k&&google.maps.event.removeListener(k),w&&google.maps.event.removeListener(w),m&&m(e),e.close()}},[]),O.current?(0,h.createPortal)(p.Children.only(e),O.current):null});class ez extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.containerElement=null,this.state={infoWindow:null},this.open=(e,t)=>{t?e.open(this.context,t):e.getPosition()?e.open(this.context):g(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.")},this.setInfoWindowCallback=()=>{null!==this.state.infoWindow&&null!==this.containerElement&&(this.state.infoWindow.setContent(this.containerElement),this.open(this.state.infoWindow,this.props.anchor),this.props.onLoad&&this.props.onLoad(this.state.infoWindow))}}componentDidMount(){let e=new google.maps.InfoWindow(Object.assign({},this.props.options||{}));this.containerElement=document.createElement("div"),this.registeredEvents=v({updaterMap:eD,eventMap:eB,prevProps:{},nextProps:this.props,instance:e}),this.setState(()=>({infoWindow:e}),this.setInfoWindowCallback)}componentDidUpdate(e){null!==this.state.infoWindow&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eD,eventMap:eB,prevProps:e,nextProps:this.props,instance:this.state.infoWindow}))}componentWillUnmount(){null!==this.state.infoWindow&&(m(this.registeredEvents),this.props.onUnmount&&this.props.onUnmount(this.state.infoWindow),this.state.infoWindow.close())}render(){return this.containerElement?(0,h.createPortal)(p.Children.only(this.props.children),this.containerElement):null}}ez.contextType=d;let e_={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},eT={draggable(e,t){e.setDraggable(t)},editable(e,t){e.setEditable(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)},path(e,t){e.setPath(t)},visible(e,t){e.setVisible(t)}},ej={};(0,p.memo)(function({options:e,draggable:t,editable:s,visible:n,path:o,onDblClick:i,onDragEnd:r,onDragStart:a,onMouseDown:l,onMouseMove:u,onMouseOut:h,onMouseOver:g,onMouseUp:c,onRightClick:m,onClick:v,onDrag:f,onLoad:L,onUnmount:y}){let b=(0,p.useContext)(d),[x,C]=(0,p.useState)(null),[E,M]=(0,p.useState)(null),[k,S]=(0,p.useState)(null),[w,P]=(0,p.useState)(null),[O,I]=(0,p.useState)(null),[B,D]=(0,p.useState)(null),[z,_]=(0,p.useState)(null),[T,j]=(0,p.useState)(null),[R,U]=(0,p.useState)(null),[A,Z]=(0,p.useState)(null),[V,W]=(0,p.useState)(null),[N,H]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==x&&x.setMap(b)},[b]),(0,p.useEffect)(()=>{void 0!==e&&null!==x&&x.setOptions(e)},[x,e]),(0,p.useEffect)(()=>{void 0!==t&&null!==x&&x.setDraggable(t)},[x,t]),(0,p.useEffect)(()=>{void 0!==s&&null!==x&&x.setEditable(s)},[x,s]),(0,p.useEffect)(()=>{void 0!==n&&null!==x&&x.setVisible(n)},[x,n]),(0,p.useEffect)(()=>{void 0!==o&&null!==x&&x.setPath(o)},[x,o]),(0,p.useEffect)(()=>{x&&i&&(null!==E&&google.maps.event.removeListener(E),M(google.maps.event.addListener(x,"dblclick",i)))},[i]),(0,p.useEffect)(()=>{x&&r&&(null!==k&&google.maps.event.removeListener(k),S(google.maps.event.addListener(x,"dragend",r)))},[r]),(0,p.useEffect)(()=>{x&&a&&(null!==w&&google.maps.event.removeListener(w),P(google.maps.event.addListener(x,"dragstart",a)))},[a]),(0,p.useEffect)(()=>{x&&l&&(null!==O&&google.maps.event.removeListener(O),I(google.maps.event.addListener(x,"mousedown",l)))},[l]),(0,p.useEffect)(()=>{x&&u&&(null!==B&&google.maps.event.removeListener(B),D(google.maps.event.addListener(x,"mousemove",u)))},[u]),(0,p.useEffect)(()=>{x&&h&&(null!==z&&google.maps.event.removeListener(z),_(google.maps.event.addListener(x,"mouseout",h)))},[h]),(0,p.useEffect)(()=>{x&&g&&(null!==T&&google.maps.event.removeListener(T),j(google.maps.event.addListener(x,"mouseover",g)))},[g]),(0,p.useEffect)(()=>{x&&c&&(null!==R&&google.maps.event.removeListener(R),U(google.maps.event.addListener(x,"mouseup",c)))},[c]),(0,p.useEffect)(()=>{x&&m&&(null!==A&&google.maps.event.removeListener(A),Z(google.maps.event.addListener(x,"rightclick",m)))},[m]),(0,p.useEffect)(()=>{x&&v&&(null!==V&&google.maps.event.removeListener(V),W(google.maps.event.addListener(x,"click",v)))},[v]),(0,p.useEffect)(()=>{x&&f&&(null!==N&&google.maps.event.removeListener(N),H(google.maps.event.addListener(x,"drag",f)))},[f]),(0,p.useEffect)(()=>{let p=new google.maps.Polyline(Object.assign(Object.assign({},e||ej),{map:b}));return o&&p.setPath(o),void 0!==n&&p.setVisible(n),void 0!==s&&p.setEditable(s),void 0!==t&&p.setDraggable(t),i&&M(google.maps.event.addListener(p,"dblclick",i)),r&&S(google.maps.event.addListener(p,"dragend",r)),a&&P(google.maps.event.addListener(p,"dragstart",a)),l&&I(google.maps.event.addListener(p,"mousedown",l)),u&&D(google.maps.event.addListener(p,"mousemove",u)),h&&_(google.maps.event.addListener(p,"mouseout",h)),g&&j(google.maps.event.addListener(p,"mouseover",g)),c&&U(google.maps.event.addListener(p,"mouseup",c)),m&&Z(google.maps.event.addListener(p,"rightclick",m)),v&&W(google.maps.event.addListener(p,"click",v)),f&&H(google.maps.event.addListener(p,"drag",f)),C(p),L&&L(p),()=>{null!==E&&google.maps.event.removeListener(E),null!==k&&google.maps.event.removeListener(k),null!==w&&google.maps.event.removeListener(w),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==z&&google.maps.event.removeListener(z),null!==T&&google.maps.event.removeListener(T),null!==R&&google.maps.event.removeListener(R),null!==A&&google.maps.event.removeListener(A),null!==V&&google.maps.event.removeListener(V),y&&y(p),p.setMap(null)}},[]),null});class eR extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={polyline:null},this.setPolylineCallback=()=>{null!==this.state.polyline&&this.props.onLoad&&this.props.onLoad(this.state.polyline)}}componentDidMount(){let e=new google.maps.Polyline(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:eT,eventMap:e_,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{polyline:e}},this.setPolylineCallback)}componentDidUpdate(e){null!==this.state.polyline&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eT,eventMap:e_,prevProps:e,nextProps:this.props,instance:this.state.polyline}))}componentWillUnmount(){null!==this.state.polyline&&(this.props.onUnmount&&this.props.onUnmount(this.state.polyline),m(this.registeredEvents),this.state.polyline.setMap(null))}render(){return null}}eR.contextType=d;let eU={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},eA={draggable(e,t){e.setDraggable(t)},editable(e,t){e.setEditable(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)},path(e,t){e.setPath(t)},paths(e,t){e.setPaths(t)},visible(e,t){e.setVisible(t)}};(0,p.memo)(function({options:e,draggable:t,editable:s,visible:n,path:o,paths:i,onDblClick:r,onDragEnd:a,onDragStart:l,onMouseDown:u,onMouseMove:h,onMouseOut:g,onMouseOver:c,onMouseUp:m,onRightClick:v,onClick:f,onDrag:L,onLoad:y,onUnmount:b}){let x=(0,p.useContext)(d),[C,E]=(0,p.useState)(null),[M,k]=(0,p.useState)(null),[S,w]=(0,p.useState)(null),[P,O]=(0,p.useState)(null),[I,B]=(0,p.useState)(null),[D,z]=(0,p.useState)(null),[_,T]=(0,p.useState)(null),[j,R]=(0,p.useState)(null),[U,A]=(0,p.useState)(null),[Z,V]=(0,p.useState)(null),[W,N]=(0,p.useState)(null),[H,$]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==C&&C.setMap(x)},[x]),(0,p.useEffect)(()=>{void 0!==e&&null!==C&&C.setOptions(e)},[C,e]),(0,p.useEffect)(()=>{void 0!==t&&null!==C&&C.setDraggable(t)},[C,t]),(0,p.useEffect)(()=>{void 0!==s&&null!==C&&C.setEditable(s)},[C,s]),(0,p.useEffect)(()=>{void 0!==n&&null!==C&&C.setVisible(n)},[C,n]),(0,p.useEffect)(()=>{void 0!==o&&null!==C&&C.setPath(o)},[C,o]),(0,p.useEffect)(()=>{void 0!==i&&null!==C&&C.setPaths(i)},[C,i]),(0,p.useEffect)(()=>{C&&r&&(null!==M&&google.maps.event.removeListener(M),k(google.maps.event.addListener(C,"dblclick",r)))},[r]),(0,p.useEffect)(()=>{C&&a&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(C,"dragend",a)))},[a]),(0,p.useEffect)(()=>{C&&l&&(null!==P&&google.maps.event.removeListener(P),O(google.maps.event.addListener(C,"dragstart",l)))},[l]),(0,p.useEffect)(()=>{C&&u&&(null!==I&&google.maps.event.removeListener(I),B(google.maps.event.addListener(C,"mousedown",u)))},[u]),(0,p.useEffect)(()=>{C&&h&&(null!==D&&google.maps.event.removeListener(D),z(google.maps.event.addListener(C,"mousemove",h)))},[h]),(0,p.useEffect)(()=>{C&&g&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(C,"mouseout",g)))},[g]),(0,p.useEffect)(()=>{C&&c&&(null!==j&&google.maps.event.removeListener(j),R(google.maps.event.addListener(C,"mouseover",c)))},[c]),(0,p.useEffect)(()=>{C&&m&&(null!==U&&google.maps.event.removeListener(U),A(google.maps.event.addListener(C,"mouseup",m)))},[m]),(0,p.useEffect)(()=>{C&&v&&(null!==Z&&google.maps.event.removeListener(Z),V(google.maps.event.addListener(C,"rightclick",v)))},[v]),(0,p.useEffect)(()=>{C&&f&&(null!==W&&google.maps.event.removeListener(W),N(google.maps.event.addListener(C,"click",f)))},[f]),(0,p.useEffect)(()=>{C&&L&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(C,"drag",L)))},[L]),(0,p.useEffect)(()=>{let p=new google.maps.Polygon(Object.assign(Object.assign({},e||{}),{map:x}));return o&&p.setPath(o),i&&p.setPaths(i),void 0!==n&&p.setVisible(n),void 0!==s&&p.setEditable(s),void 0!==t&&p.setDraggable(t),r&&k(google.maps.event.addListener(p,"dblclick",r)),a&&w(google.maps.event.addListener(p,"dragend",a)),l&&O(google.maps.event.addListener(p,"dragstart",l)),u&&B(google.maps.event.addListener(p,"mousedown",u)),h&&z(google.maps.event.addListener(p,"mousemove",h)),g&&T(google.maps.event.addListener(p,"mouseout",g)),c&&R(google.maps.event.addListener(p,"mouseover",c)),m&&A(google.maps.event.addListener(p,"mouseup",m)),v&&V(google.maps.event.addListener(p,"rightclick",v)),f&&N(google.maps.event.addListener(p,"click",f)),L&&$(google.maps.event.addListener(p,"drag",L)),E(p),y&&y(p),()=>{null!==M&&google.maps.event.removeListener(M),null!==S&&google.maps.event.removeListener(S),null!==P&&google.maps.event.removeListener(P),null!==I&&google.maps.event.removeListener(I),null!==D&&google.maps.event.removeListener(D),null!==_&&google.maps.event.removeListener(_),null!==j&&google.maps.event.removeListener(j),null!==U&&google.maps.event.removeListener(U),null!==Z&&google.maps.event.removeListener(Z),null!==W&&google.maps.event.removeListener(W),b&&b(p),p.setMap(null)}},[]),null});class eZ extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={polygon:null},this.setPolygonCallback=()=>{null!==this.state.polygon&&this.props.onLoad&&this.props.onLoad(this.state.polygon)}}componentDidMount(){let e=new google.maps.Polygon(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:eA,eventMap:eU,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{polygon:e}},this.setPolygonCallback)}componentDidUpdate(e){null!==this.state.polygon&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eA,eventMap:eU,prevProps:e,nextProps:this.props,instance:this.state.polygon}))}componentWillUnmount(){null!==this.state.polygon&&(this.props.onUnmount&&this.props.onUnmount(this.state.polygon),m(this.registeredEvents),this.state.polygon&&this.state.polygon.setMap(null))}render(){return null}}eZ.contextType=d;let eV={onBoundsChanged:"bounds_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},eW={bounds(e,t){e.setBounds(t)},draggable(e,t){e.setDraggable(t)},editable(e,t){e.setEditable(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)},visible(e,t){e.setVisible(t)}};(0,p.memo)(function({options:e,bounds:t,draggable:s,editable:n,visible:o,onDblClick:i,onDragEnd:r,onDragStart:a,onMouseDown:l,onMouseMove:u,onMouseOut:h,onMouseOver:g,onMouseUp:c,onRightClick:m,onClick:v,onDrag:f,onBoundsChanged:L,onLoad:y,onUnmount:b}){let x=(0,p.useContext)(d),[C,E]=(0,p.useState)(null),[M,k]=(0,p.useState)(null),[S,w]=(0,p.useState)(null),[P,O]=(0,p.useState)(null),[I,B]=(0,p.useState)(null),[D,z]=(0,p.useState)(null),[_,T]=(0,p.useState)(null),[j,R]=(0,p.useState)(null),[U,A]=(0,p.useState)(null),[Z,V]=(0,p.useState)(null),[W,N]=(0,p.useState)(null),[H,$]=(0,p.useState)(null),[G,F]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==C&&C.setMap(x)},[x]),(0,p.useEffect)(()=>{void 0!==e&&null!==C&&C.setOptions(e)},[C,e]),(0,p.useEffect)(()=>{void 0!==s&&null!==C&&C.setDraggable(s)},[C,s]),(0,p.useEffect)(()=>{void 0!==n&&null!==C&&C.setEditable(n)},[C,n]),(0,p.useEffect)(()=>{void 0!==o&&null!==C&&C.setVisible(o)},[C,o]),(0,p.useEffect)(()=>{void 0!==t&&null!==C&&C.setBounds(t)},[C,t]),(0,p.useEffect)(()=>{C&&i&&(null!==M&&google.maps.event.removeListener(M),k(google.maps.event.addListener(C,"dblclick",i)))},[i]),(0,p.useEffect)(()=>{C&&r&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(C,"dragend",r)))},[r]),(0,p.useEffect)(()=>{C&&a&&(null!==P&&google.maps.event.removeListener(P),O(google.maps.event.addListener(C,"dragstart",a)))},[a]),(0,p.useEffect)(()=>{C&&l&&(null!==I&&google.maps.event.removeListener(I),B(google.maps.event.addListener(C,"mousedown",l)))},[l]),(0,p.useEffect)(()=>{C&&u&&(null!==D&&google.maps.event.removeListener(D),z(google.maps.event.addListener(C,"mousemove",u)))},[u]),(0,p.useEffect)(()=>{C&&h&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(C,"mouseout",h)))},[h]),(0,p.useEffect)(()=>{C&&g&&(null!==j&&google.maps.event.removeListener(j),R(google.maps.event.addListener(C,"mouseover",g)))},[g]),(0,p.useEffect)(()=>{C&&c&&(null!==U&&google.maps.event.removeListener(U),A(google.maps.event.addListener(C,"mouseup",c)))},[c]),(0,p.useEffect)(()=>{C&&m&&(null!==Z&&google.maps.event.removeListener(Z),V(google.maps.event.addListener(C,"rightclick",m)))},[m]),(0,p.useEffect)(()=>{C&&v&&(null!==W&&google.maps.event.removeListener(W),N(google.maps.event.addListener(C,"click",v)))},[v]),(0,p.useEffect)(()=>{C&&f&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(C,"drag",f)))},[f]),(0,p.useEffect)(()=>{C&&L&&(null!==G&&google.maps.event.removeListener(G),F(google.maps.event.addListener(C,"bounds_changed",L)))},[L]),(0,p.useEffect)(()=>{let p=new google.maps.Rectangle(Object.assign(Object.assign({},e||{}),{map:x}));return void 0!==o&&p.setVisible(o),void 0!==n&&p.setEditable(n),void 0!==s&&p.setDraggable(s),void 0!==t&&p.setBounds(t),i&&k(google.maps.event.addListener(p,"dblclick",i)),r&&w(google.maps.event.addListener(p,"dragend",r)),a&&O(google.maps.event.addListener(p,"dragstart",a)),l&&B(google.maps.event.addListener(p,"mousedown",l)),u&&z(google.maps.event.addListener(p,"mousemove",u)),h&&T(google.maps.event.addListener(p,"mouseout",h)),g&&R(google.maps.event.addListener(p,"mouseover",g)),c&&A(google.maps.event.addListener(p,"mouseup",c)),m&&V(google.maps.event.addListener(p,"rightclick",m)),v&&N(google.maps.event.addListener(p,"click",v)),f&&$(google.maps.event.addListener(p,"drag",f)),L&&F(google.maps.event.addListener(p,"bounds_changed",L)),E(p),y&&y(p),()=>{null!==M&&google.maps.event.removeListener(M),null!==S&&google.maps.event.removeListener(S),null!==P&&google.maps.event.removeListener(P),null!==I&&google.maps.event.removeListener(I),null!==D&&google.maps.event.removeListener(D),null!==_&&google.maps.event.removeListener(_),null!==j&&google.maps.event.removeListener(j),null!==U&&google.maps.event.removeListener(U),null!==Z&&google.maps.event.removeListener(Z),null!==W&&google.maps.event.removeListener(W),null!==H&&google.maps.event.removeListener(H),null!==G&&google.maps.event.removeListener(G),b&&b(p),p.setMap(null)}},[]),null});class eN extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={rectangle:null},this.setRectangleCallback=()=>{null!==this.state.rectangle&&this.props.onLoad&&this.props.onLoad(this.state.rectangle)}}componentDidMount(){let e=new google.maps.Rectangle(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:eW,eventMap:eV,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{rectangle:e}},this.setRectangleCallback)}componentDidUpdate(e){null!==this.state.rectangle&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eW,eventMap:eV,prevProps:e,nextProps:this.props,instance:this.state.rectangle}))}componentWillUnmount(){null!==this.state.rectangle&&(this.props.onUnmount&&this.props.onUnmount(this.state.rectangle),m(this.registeredEvents),this.state.rectangle.setMap(null))}render(){return null}}eN.contextType=d;let eH={onCenterChanged:"center_changed",onRadiusChanged:"radius_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},e$={center(e,t){e.setCenter(t)},draggable(e,t){e.setDraggable(t)},editable(e,t){e.setEditable(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)},radius(e,t){e.setRadius(t)},visible(e,t){e.setVisible(t)}},eG={};(0,p.memo)(function({options:e,center:t,radius:s,draggable:n,editable:o,visible:i,onDblClick:r,onDragEnd:a,onDragStart:l,onMouseDown:u,onMouseMove:h,onMouseOut:g,onMouseOver:c,onMouseUp:m,onRightClick:v,onClick:f,onDrag:L,onCenterChanged:y,onRadiusChanged:b,onLoad:x,onUnmount:C}){let E=(0,p.useContext)(d),[M,k]=(0,p.useState)(null),[S,w]=(0,p.useState)(null),[P,O]=(0,p.useState)(null),[I,B]=(0,p.useState)(null),[D,z]=(0,p.useState)(null),[_,T]=(0,p.useState)(null),[j,R]=(0,p.useState)(null),[U,A]=(0,p.useState)(null),[Z,V]=(0,p.useState)(null),[W,N]=(0,p.useState)(null),[H,$]=(0,p.useState)(null),[G,F]=(0,p.useState)(null),[K,Y]=(0,p.useState)(null),[q,J]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==M&&M.setMap(E)},[E]),(0,p.useEffect)(()=>{void 0!==e&&null!==M&&M.setOptions(e)},[M,e]),(0,p.useEffect)(()=>{void 0!==n&&null!==M&&M.setDraggable(n)},[M,n]),(0,p.useEffect)(()=>{void 0!==o&&null!==M&&M.setEditable(o)},[M,o]),(0,p.useEffect)(()=>{void 0!==i&&null!==M&&M.setVisible(i)},[M,i]),(0,p.useEffect)(()=>{"number"==typeof s&&null!==M&&M.setRadius(s)},[M,s]),(0,p.useEffect)(()=>{void 0!==t&&null!==M&&M.setCenter(t)},[M,t]),(0,p.useEffect)(()=>{M&&r&&(null!==S&&google.maps.event.removeListener(S),w(google.maps.event.addListener(M,"dblclick",r)))},[r]),(0,p.useEffect)(()=>{M&&a&&(null!==P&&google.maps.event.removeListener(P),O(google.maps.event.addListener(M,"dragend",a)))},[a]),(0,p.useEffect)(()=>{M&&l&&(null!==I&&google.maps.event.removeListener(I),B(google.maps.event.addListener(M,"dragstart",l)))},[l]),(0,p.useEffect)(()=>{M&&u&&(null!==D&&google.maps.event.removeListener(D),z(google.maps.event.addListener(M,"mousedown",u)))},[u]),(0,p.useEffect)(()=>{M&&h&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(M,"mousemove",h)))},[h]),(0,p.useEffect)(()=>{M&&g&&(null!==j&&google.maps.event.removeListener(j),R(google.maps.event.addListener(M,"mouseout",g)))},[g]),(0,p.useEffect)(()=>{M&&c&&(null!==U&&google.maps.event.removeListener(U),A(google.maps.event.addListener(M,"mouseover",c)))},[c]),(0,p.useEffect)(()=>{M&&m&&(null!==Z&&google.maps.event.removeListener(Z),V(google.maps.event.addListener(M,"mouseup",m)))},[m]),(0,p.useEffect)(()=>{M&&v&&(null!==W&&google.maps.event.removeListener(W),N(google.maps.event.addListener(M,"rightclick",v)))},[v]),(0,p.useEffect)(()=>{M&&f&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(M,"click",f)))},[f]),(0,p.useEffect)(()=>{M&&L&&(null!==G&&google.maps.event.removeListener(G),F(google.maps.event.addListener(M,"drag",L)))},[L]),(0,p.useEffect)(()=>{M&&y&&(null!==K&&google.maps.event.removeListener(K),Y(google.maps.event.addListener(M,"center_changed",y)))},[f]),(0,p.useEffect)(()=>{M&&b&&(null!==q&&google.maps.event.removeListener(q),J(google.maps.event.addListener(M,"radius_changed",b)))},[b]),(0,p.useEffect)(()=>{let p=new google.maps.Circle(Object.assign(Object.assign({},e||eG),{map:E}));return"number"==typeof s&&p.setRadius(s),void 0!==t&&p.setCenter(t),"number"==typeof s&&p.setRadius(s),void 0!==i&&p.setVisible(i),void 0!==o&&p.setEditable(o),void 0!==n&&p.setDraggable(n),r&&w(google.maps.event.addListener(p,"dblclick",r)),a&&O(google.maps.event.addListener(p,"dragend",a)),l&&B(google.maps.event.addListener(p,"dragstart",l)),u&&z(google.maps.event.addListener(p,"mousedown",u)),h&&T(google.maps.event.addListener(p,"mousemove",h)),g&&R(google.maps.event.addListener(p,"mouseout",g)),c&&A(google.maps.event.addListener(p,"mouseover",c)),m&&V(google.maps.event.addListener(p,"mouseup",m)),v&&N(google.maps.event.addListener(p,"rightclick",v)),f&&$(google.maps.event.addListener(p,"click",f)),L&&F(google.maps.event.addListener(p,"drag",L)),y&&Y(google.maps.event.addListener(p,"center_changed",y)),b&&J(google.maps.event.addListener(p,"radius_changed",b)),k(p),x&&x(p),()=>{null!==S&&google.maps.event.removeListener(S),null!==P&&google.maps.event.removeListener(P),null!==I&&google.maps.event.removeListener(I),null!==D&&google.maps.event.removeListener(D),null!==_&&google.maps.event.removeListener(_),null!==j&&google.maps.event.removeListener(j),null!==U&&google.maps.event.removeListener(U),null!==Z&&google.maps.event.removeListener(Z),null!==W&&google.maps.event.removeListener(W),null!==H&&google.maps.event.removeListener(H),null!==K&&google.maps.event.removeListener(K),null!==q&&google.maps.event.removeListener(q),C&&C(p),p.setMap(null)}},[]),null});class eF extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={circle:null},this.setCircleCallback=()=>{null!==this.state.circle&&this.props.onLoad&&this.props.onLoad(this.state.circle)}}componentDidMount(){let e=new google.maps.Circle(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:e$,eventMap:eH,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{circle:e}},this.setCircleCallback)}componentDidUpdate(e){null!==this.state.circle&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:e$,eventMap:eH,prevProps:e,nextProps:this.props,instance:this.state.circle}))}componentWillUnmount(){null!==this.state.circle&&(this.props.onUnmount&&this.props.onUnmount(this.state.circle),m(this.registeredEvents),this.state.circle&&this.state.circle.setMap(null))}render(){return null}}eF.contextType=d;let eK={onClick:"click",onDblClick:"dblclick",onMouseDown:"mousedown",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick",onAddFeature:"addfeature",onRemoveFeature:"removefeature",onRemoveProperty:"removeproperty",onSetGeometry:"setgeometry",onSetProperty:"setproperty"},eY={add(e,t){e.add(t)},addgeojson(e,t,s){e.addGeoJson(t,s)},contains(e,t){e.contains(t)},foreach(e,t){e.forEach(t)},loadgeojson(e,t,s,n){e.loadGeoJson(t,s,n)},overridestyle(e,t,s){e.overrideStyle(t,s)},remove(e,t){e.remove(t)},revertstyle(e,t){e.revertStyle(t)},controlposition(e,t){e.setControlPosition(t)},controls(e,t){e.setControls(t)},drawingmode(e,t){e.setDrawingMode(t)},map(e,t){e.setMap(t)},style(e,t){e.setStyle(t)},togeojson(e,t){e.toGeoJson(t)}};(0,p.memo)(function({options:e,onClick:t,onDblClick:s,onMouseDown:n,onMouseMove:o,onMouseOut:i,onMouseOver:r,onMouseUp:a,onRightClick:l,onAddFeature:u,onRemoveFeature:h,onRemoveProperty:g,onSetGeometry:c,onSetProperty:m,onLoad:v,onUnmount:f}){let L=(0,p.useContext)(d),[y,b]=(0,p.useState)(null),[x,C]=(0,p.useState)(null),[E,M]=(0,p.useState)(null),[k,S]=(0,p.useState)(null),[w,P]=(0,p.useState)(null),[O,I]=(0,p.useState)(null),[B,D]=(0,p.useState)(null),[z,_]=(0,p.useState)(null),[T,j]=(0,p.useState)(null),[R,U]=(0,p.useState)(null),[A,Z]=(0,p.useState)(null),[V,W]=(0,p.useState)(null),[N,H]=(0,p.useState)(null),[$,G]=(0,p.useState)(null);return(0,p.useEffect)(()=>{null!==y&&y.setMap(L)},[L]),(0,p.useEffect)(()=>{y&&s&&(null!==x&&google.maps.event.removeListener(x),C(google.maps.event.addListener(y,"dblclick",s)))},[s]),(0,p.useEffect)(()=>{y&&n&&(null!==E&&google.maps.event.removeListener(E),M(google.maps.event.addListener(y,"mousedown",n)))},[n]),(0,p.useEffect)(()=>{y&&o&&(null!==k&&google.maps.event.removeListener(k),S(google.maps.event.addListener(y,"mousemove",o)))},[o]),(0,p.useEffect)(()=>{y&&i&&(null!==w&&google.maps.event.removeListener(w),P(google.maps.event.addListener(y,"mouseout",i)))},[i]),(0,p.useEffect)(()=>{y&&r&&(null!==O&&google.maps.event.removeListener(O),I(google.maps.event.addListener(y,"mouseover",r)))},[r]),(0,p.useEffect)(()=>{y&&a&&(null!==B&&google.maps.event.removeListener(B),D(google.maps.event.addListener(y,"mouseup",a)))},[a]),(0,p.useEffect)(()=>{y&&l&&(null!==z&&google.maps.event.removeListener(z),_(google.maps.event.addListener(y,"rightclick",l)))},[l]),(0,p.useEffect)(()=>{y&&t&&(null!==T&&google.maps.event.removeListener(T),j(google.maps.event.addListener(y,"click",t)))},[t]),(0,p.useEffect)(()=>{y&&u&&(null!==R&&google.maps.event.removeListener(R),U(google.maps.event.addListener(y,"addfeature",u)))},[u]),(0,p.useEffect)(()=>{y&&h&&(null!==A&&google.maps.event.removeListener(A),Z(google.maps.event.addListener(y,"removefeature",h)))},[h]),(0,p.useEffect)(()=>{y&&g&&(null!==V&&google.maps.event.removeListener(V),W(google.maps.event.addListener(y,"removeproperty",g)))},[g]),(0,p.useEffect)(()=>{y&&c&&(null!==N&&google.maps.event.removeListener(N),H(google.maps.event.addListener(y,"setgeometry",c)))},[c]),(0,p.useEffect)(()=>{y&&m&&(null!==$&&google.maps.event.removeListener($),G(google.maps.event.addListener(y,"setproperty",m)))},[m]),(0,p.useEffect)(()=>{if(null!==L){let p=new google.maps.Data(Object.assign(Object.assign({},e||{}),{map:L}));s&&C(google.maps.event.addListener(p,"dblclick",s)),n&&M(google.maps.event.addListener(p,"mousedown",n)),o&&S(google.maps.event.addListener(p,"mousemove",o)),i&&P(google.maps.event.addListener(p,"mouseout",i)),r&&I(google.maps.event.addListener(p,"mouseover",r)),a&&D(google.maps.event.addListener(p,"mouseup",a)),l&&_(google.maps.event.addListener(p,"rightclick",l)),t&&j(google.maps.event.addListener(p,"click",t)),u&&U(google.maps.event.addListener(p,"addfeature",u)),h&&Z(google.maps.event.addListener(p,"removefeature",h)),g&&W(google.maps.event.addListener(p,"removeproperty",g)),c&&H(google.maps.event.addListener(p,"setgeometry",c)),m&&G(google.maps.event.addListener(p,"setproperty",m)),b(p),v&&v(p)}return()=>{y&&(null!==x&&google.maps.event.removeListener(x),null!==E&&google.maps.event.removeListener(E),null!==k&&google.maps.event.removeListener(k),null!==w&&google.maps.event.removeListener(w),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==z&&google.maps.event.removeListener(z),null!==T&&google.maps.event.removeListener(T),null!==R&&google.maps.event.removeListener(R),null!==A&&google.maps.event.removeListener(A),null!==V&&google.maps.event.removeListener(V),null!==N&&google.maps.event.removeListener(N),null!==$&&google.maps.event.removeListener($),f&&f(y),y.setMap(null))}},[]),null});class eq extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={data:null},this.setDataCallback=()=>{null!==this.state.data&&this.props.onLoad&&this.props.onLoad(this.state.data)}}componentDidMount(){if(null!==this.context){let e=new google.maps.Data(Object.assign(Object.assign({},this.props.options||{}),{map:this.context}));this.registeredEvents=v({updaterMap:eY,eventMap:eK,prevProps:{},nextProps:this.props,instance:e}),this.setState(()=>({data:e}),this.setDataCallback)}}componentDidUpdate(e){null!==this.state.data&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eY,eventMap:eK,prevProps:e,nextProps:this.props,instance:this.state.data}))}componentWillUnmount(){null!==this.state.data&&(this.props.onUnmount&&this.props.onUnmount(this.state.data),m(this.registeredEvents),this.state.data&&this.state.data.setMap(null))}render(){return null}}eq.contextType=d;let eJ={onClick:"click",onDefaultViewportChanged:"defaultviewport_changed",onStatusChanged:"status_changed"},eX={options(e,t){e.setOptions(t)},url(e,t){e.setUrl(t)},zIndex(e,t){e.setZIndex(t)}};class eQ extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={kmlLayer:null},this.setKmlLayerCallback=()=>{null!==this.state.kmlLayer&&this.props.onLoad&&this.props.onLoad(this.state.kmlLayer)}}componentDidMount(){let e=new google.maps.KmlLayer(Object.assign(Object.assign({},this.props.options),{map:this.context}));this.registeredEvents=v({updaterMap:eX,eventMap:eJ,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{kmlLayer:e}},this.setKmlLayerCallback)}componentDidUpdate(e){null!==this.state.kmlLayer&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:eX,eventMap:eJ,prevProps:e,nextProps:this.props,instance:this.state.kmlLayer}))}componentWillUnmount(){null!==this.state.kmlLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.kmlLayer),m(this.registeredEvents),this.state.kmlLayer.setMap(null))}render(){return null}}function e0(e,t){return"function"==typeof t?t(e.offsetWidth,e.offsetHeight):{x:0,y:0}}function e1(e,t,s,n){var o,i,r,a;return void 0!==s?function(e,t,s){let n=e&&e.fromLatLngToDivPixel(s.getNorthEast()),o=e&&e.fromLatLngToDivPixel(s.getSouthWest());return n&&o?{left:`${o.x+t.x}px`,top:`${n.y+t.y}px`,width:`${n.x-o.x-t.x}px`,height:`${o.y-n.y-t.y}px`}:{left:"-9999px",top:"-9999px"}}(e,t,s instanceof(o=google.maps.LatLngBounds)?s:(r=s,new o(new google.maps.LatLng(r.ne.lat,r.ne.lng),new google.maps.LatLng(r.sw.lat,r.sw.lng)))):function(e,t,s){let n=e&&e.fromLatLngToDivPixel(s);if(n){let{x:e,y:s}=n;return{left:`${e+t.x}px`,top:`${s+t.y}px`}}return{left:"-9999px",top:"-9999px"}}(e,t,n instanceof(i=google.maps.LatLng)?n:(a=n,new i(a.lat,a.lng)))}function e2(e){if(!e)return"";let t=e instanceof google.maps.LatLng?e:new google.maps.LatLng(e.lat,e.lng);return t+""}function e3(e){if(!e)return"";let t=e instanceof google.maps.LatLngBounds?e:new google.maps.LatLngBounds(new google.maps.LatLng(e.south,e.east),new google.maps.LatLng(e.north,e.west));return t+""}eQ.contextType=d,(0,p.memo)(function({position:e,bounds:t,mapPaneName:s,zIndex:n,onLoad:o,onUnmount:i,getPixelPositionOffset:r,children:a}){let l=(0,p.useContext)(d),u=(0,p.useMemo)(()=>{let e=document.createElement("div");return e.style.position="absolute",e},[]),g=(0,p.useMemo)(()=>(function(e,t,s,n,o){class i extends google.maps.OverlayView{constructor(e,t,s,n){super(),this.container=e,this.pane=t,this.position=s,this.bounds=n}onAdd(){var e;let t=null===(e=this.getPanes())||void 0===e?void 0:e[this.pane];null==t||t.appendChild(this.container)}draw(){let e=this.getProjection(),t=Object.assign({},this.container?e0(this.container,o):{x:0,y:0}),s=e1(e,t,this.bounds,this.position);for(let[e,t]of Object.entries(s))this.container.style[e]=t}onRemove(){null!==this.container.parentNode&&this.container.parentNode.removeChild(this.container)}}return new i(e,t,s,n)})(u,s,e,t,r),[u,s,e,t]);return(0,p.useEffect)(()=>(null==o||o(g),null==g||g.setMap(l),()=>{null==i||i(g),null==g||g.setMap(null)}),[l,g]),(0,p.useEffect)(()=>{u.style.zIndex=`${n}`},[n,u]),h.createPortal(a,u)});class e5 extends p.PureComponent{constructor(e){super(e),this.state={paneEl:null,containerStyle:{position:"absolute"}},this.updatePane=()=>{let e=this.props.mapPaneName,t=this.overlayView.getPanes();g(!!e,"OverlayView requires props.mapPaneName but got %s",e),t?this.setState({paneEl:t[e]}):this.setState({paneEl:null})},this.onAdd=()=>{var e,t;this.updatePane(),null===(t=(e=this.props).onLoad)||void 0===t||t.call(e,this.overlayView)},this.onPositionElement=()=>{var e;let t=this.overlayView.getProjection(),s=Object.assign({x:0,y:0},this.containerRef.current?e0(this.containerRef.current,this.props.getPixelPositionOffset):{}),n=e1(t,s,this.props.bounds,this.props.position),{left:o,top:i,width:r,height:a}=this.state.containerStyle;e={left:o,top:i,width:r,height:a},(n.left!==e.left||n.top!==e.top||n.width!==e.height||n.height!==e.height)&&this.setState({containerStyle:Object.assign(Object.assign({},n),{position:"absolute"})})},this.draw=()=>{this.onPositionElement()},this.onRemove=()=>{var e,t;this.setState(()=>({paneEl:null})),null===(t=(e=this.props).onUnmount)||void 0===t||t.call(e,this.overlayView)},this.containerRef=(0,p.createRef)();let t=new google.maps.OverlayView;t.onAdd=this.onAdd,t.draw=this.draw,t.onRemove=this.onRemove,this.overlayView=t}componentDidMount(){this.overlayView.setMap(this.context)}componentDidUpdate(e){let t=e2(e.position),s=e2(this.props.position),n=e3(e.bounds),o=e3(this.props.bounds);(t!==s||n!==o)&&this.overlayView.draw(),e.mapPaneName!==this.props.mapPaneName&&this.updatePane()}componentWillUnmount(){this.overlayView.setMap(null)}render(){let e=this.state.paneEl;return e?h.createPortal((0,u.jsx)("div",Object.assign({ref:this.containerRef,style:this.state.containerStyle},{children:p.Children.only(this.props.children)})),e):null}}e5.FLOAT_PANE="floatPane",e5.MAP_PANE="mapPane",e5.MARKER_LAYER="markerLayer",e5.OVERLAY_LAYER="overlayLayer",e5.OVERLAY_MOUSE_TARGET="overlayMouseTarget",e5.contextType=d;let e6={onDblClick:"dblclick",onClick:"click"},e8={opacity(e,t){e.setOpacity(t)}};(0,p.memo)(function({url:e,bounds:t,options:s,visible:n}){let o=(0,p.useContext)(d),i=new google.maps.LatLngBounds(new google.maps.LatLng(t.south,t.west),new google.maps.LatLng(t.north,t.east)),r=(0,p.useMemo)(()=>{let t=new google.maps.GroundOverlay(e,i,Object.assign({},s));return t},[]);return(0,p.useEffect)(()=>{null!==r&&r.setMap(o)},[o]),(0,p.useEffect)(()=>{void 0!==e&&null!==r&&(r.set("url",e),r.setMap(o))},[r,e]),(0,p.useEffect)(()=>{void 0!==n&&null!==r&&r.setOpacity(n?1:0)},[r,n]),(0,p.useEffect)(()=>{let e=new google.maps.LatLngBounds(new google.maps.LatLng(t.south,t.west),new google.maps.LatLng(t.north,t.east));void 0!==t&&null!==r&&(r.set("bounds",e),r.setMap(o))},[r,t]),null});class e4 extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={groundOverlay:null},this.setGroundOverlayCallback=()=>{null!==this.state.groundOverlay&&this.props.onLoad&&this.props.onLoad(this.state.groundOverlay)}}componentDidMount(){g(!!this.props.url||!!this.props.bounds,"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655");let e=new google.maps.GroundOverlay(this.props.url,this.props.bounds,Object.assign(Object.assign({},this.props.options),{map:this.context}));this.registeredEvents=v({updaterMap:e8,eventMap:e6,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{groundOverlay:e}},this.setGroundOverlayCallback)}componentDidUpdate(e){null!==this.state.groundOverlay&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:e8,eventMap:e6,prevProps:e,nextProps:this.props,instance:this.state.groundOverlay}))}componentWillUnmount(){this.state.groundOverlay&&(this.props.onUnmount&&this.props.onUnmount(this.state.groundOverlay),this.state.groundOverlay.setMap(null))}render(){return null}}e4.defaultProps={onLoad:function(){}},e4.contextType=d;let e9={},e7={data(e,t){e.setData(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)}};(0,p.memo)(function({data:e,onLoad:t,onUnmount:s,options:n}){let o=(0,p.useContext)(d),[i,r]=(0,p.useState)(null);return(0,p.useEffect)(()=>{google.maps.visualization||g(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} in useJsApiScript? %s',google.maps.visualization)},[]),(0,p.useEffect)(()=>{g(!!e,"data property is required in HeatmapLayer %s",e)},[e]),(0,p.useEffect)(()=>{null!==i&&i.setMap(o)},[o]),(0,p.useEffect)(()=>{n&&null!==i&&i.setOptions(n)},[i,n]),(0,p.useEffect)(()=>{let a=new google.maps.visualization.HeatmapLayer(Object.assign(Object.assign({},n||{}),{data:e,map:o}));return r(a),t&&t(a),()=>{null!==i&&(s&&s(i),i.setMap(null))}},[]),null});class te extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={heatmapLayer:null},this.setHeatmapLayerCallback=()=>{null!==this.state.heatmapLayer&&this.props.onLoad&&this.props.onLoad(this.state.heatmapLayer)}}componentDidMount(){g(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} to <LoadScript />? %s',google.maps.visualization),g(!!this.props.data,"data property is required in HeatmapLayer %s",this.props.data);let e=new google.maps.visualization.HeatmapLayer(Object.assign(Object.assign({},this.props.options||{}),{data:this.props.data,map:this.context}));this.registeredEvents=v({updaterMap:e7,eventMap:e9,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{heatmapLayer:e}},this.setHeatmapLayerCallback)}componentDidUpdate(e){m(this.registeredEvents),this.registeredEvents=v({updaterMap:e7,eventMap:e9,prevProps:e,nextProps:this.props,instance:this.state.heatmapLayer})}componentWillUnmount(){null!==this.state.heatmapLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.heatmapLayer),m(this.registeredEvents),this.state.heatmapLayer.setMap(null))}render(){return null}}te.contextType=d;let tt={onCloseClick:"closeclick",onPanoChanged:"pano_changed",onPositionChanged:"position_changed",onPovChanged:"pov_changed",onResize:"resize",onStatusChanged:"status_changed",onVisibleChanged:"visible_changed",onZoomChanged:"zoom_changed"},ts={register(e,t,s){e.registerPanoProvider(t,s)},links(e,t){e.setLinks(t)},motionTracking(e,t){e.setMotionTracking(t)},options(e,t){e.setOptions(t)},pano(e,t){e.setPano(t)},position(e,t){e.setPosition(t)},pov(e,t){e.setPov(t)},visible(e,t){e.setVisible(t)},zoom(e,t){e.setZoom(t)}};class tn extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={streetViewPanorama:null},this.setStreetViewPanoramaCallback=()=>{null!==this.state.streetViewPanorama&&this.props.onLoad&&this.props.onLoad(this.state.streetViewPanorama)}}componentDidMount(){let e=this.context.getStreetView();this.registeredEvents=v({updaterMap:ts,eventMap:tt,prevProps:{},nextProps:this.props,instance:e}),this.setState(()=>({streetViewPanorama:e}),this.setStreetViewPanoramaCallback)}componentDidUpdate(e){null!==this.state.streetViewPanorama&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:ts,eventMap:tt,prevProps:e,nextProps:this.props,instance:this.state.streetViewPanorama}))}componentWillUnmount(){null!==this.state.streetViewPanorama&&(this.props.onUnmount&&this.props.onUnmount(this.state.streetViewPanorama),m(this.registeredEvents),this.state.streetViewPanorama.setVisible(!1))}render(){return null}}tn.contextType=d;class to extends p.PureComponent{constructor(){super(...arguments),this.state={streetViewService:null},this.setStreetViewServiceCallback=()=>{null!==this.state.streetViewService&&this.props.onLoad&&this.props.onLoad(this.state.streetViewService)}}componentDidMount(){let e=new google.maps.StreetViewService;this.setState(function(){return{streetViewService:e}},this.setStreetViewServiceCallback)}componentWillUnmount(){null!==this.state.streetViewService&&this.props.onUnmount&&this.props.onUnmount(this.state.streetViewService)}render(){return null}}to.contextType=d;let ti={onDirectionsChanged:"directions_changed"},tr={directions(e,t){e.setDirections(t)},map(e,t){e.setMap(t)},options(e,t){e.setOptions(t)},panel(e,t){e.setPanel(t)},routeIndex(e,t){e.setRouteIndex(t)}};class ta extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.state={directionsRenderer:null},this.setDirectionsRendererCallback=()=>{null!==this.state.directionsRenderer&&(this.state.directionsRenderer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.directionsRenderer))}}componentDidMount(){let e=new google.maps.DirectionsRenderer(this.props.options);this.registeredEvents=v({updaterMap:tr,eventMap:ti,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{directionsRenderer:e}},this.setDirectionsRendererCallback)}componentDidUpdate(e){null!==this.state.directionsRenderer&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:tr,eventMap:ti,prevProps:e,nextProps:this.props,instance:this.state.directionsRenderer}))}componentWillUnmount(){null!==this.state.directionsRenderer&&(this.props.onUnmount&&this.props.onUnmount(this.state.directionsRenderer),m(this.registeredEvents),this.state.directionsRenderer&&this.state.directionsRenderer.setMap(null))}render(){return(0,u.jsx)(u.Fragment,{})}}ta.contextType=d;let tl={onPlacesChanged:"places_changed"},tu={bounds(e,t){e.setBounds(t)}};class tp extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.containerElement=(0,p.createRef)(),this.state={searchBox:null},this.setSearchBoxCallback=()=>{null!==this.state.searchBox&&this.props.onLoad&&this.props.onLoad(this.state.searchBox)}}componentDidMount(){if(g(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places),null!==this.containerElement&&null!==this.containerElement.current){let e=this.containerElement.current.querySelector("input");if(null!==e){let t=new google.maps.places.SearchBox(e,this.props.options);this.registeredEvents=v({updaterMap:tu,eventMap:tl,prevProps:{},nextProps:this.props,instance:t}),this.setState(function(){return{searchBox:t}},this.setSearchBoxCallback)}}}componentDidUpdate(e){null!==this.state.searchBox&&(m(this.registeredEvents),this.registeredEvents=v({updaterMap:tu,eventMap:tl,prevProps:e,nextProps:this.props,instance:this.state.searchBox}))}componentWillUnmount(){null!==this.state.searchBox&&(this.props.onUnmount&&this.props.onUnmount(this.state.searchBox),m(this.registeredEvents))}render(){return(0,u.jsx)("div",Object.assign({ref:this.containerElement},{children:p.Children.only(this.props.children)}))}}tp.contextType=d;let th={onPlaceChanged:"place_changed"},tg={bounds(e,t){e.setBounds(t)},restrictions(e,t){e.setComponentRestrictions(t)},fields(e,t){e.setFields(t)},options(e,t){e.setOptions(t)},types(e,t){e.setTypes(t)}};class td extends p.PureComponent{constructor(){super(...arguments),this.registeredEvents=[],this.containerElement=(0,p.createRef)(),this.state={autocomplete:null},this.setAutocompleteCallback=()=>{null!==this.state.autocomplete&&this.props.onLoad&&this.props.onLoad(this.state.autocomplete)}}componentDidMount(){g(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places);let e=this.containerElement.current.querySelector("input");if(e){let t=new google.maps.places.Autocomplete(e,this.props.options);this.registeredEvents=v({updaterMap:tg,eventMap:th,prevProps:{},nextProps:this.props,instance:t}),this.setState(()=>({autocomplete:t}),this.setAutocompleteCallback)}}componentDidUpdate(e){m(this.registeredEvents),this.registeredEvents=v({updaterMap:tg,eventMap:th,prevProps:e,nextProps:this.props,instance:this.state.autocomplete})}componentWillUnmount(){null!==this.state.autocomplete&&m(this.registeredEvents)}render(){return(0,u.jsx)("div",Object.assign({ref:this.containerElement,className:this.props.className},{children:p.Children.only(this.props.children)}))}}td.defaultProps={className:""},td.contextType=d}}]);