@deatog/react-google-maps-api
Version:
React.js Google Maps API integration
1 lines • 85.3 kB
JavaScript
import e from"@babel/runtime/helpers/defineProperty";import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import o,{createContext as s,useContext as i,memo as a,useState as l,useRef as p,useEffect as c,PureComponent as u,useMemo as d,Children as g,isValidElement as h,cloneElement as m,createRef as v}from"react";import f from"invariant";import y from"@babel/runtime/helpers/asyncToGenerator";import b from"@babel/runtime/helpers/objectWithoutProperties";import{Loader as O}from"@googlemaps/js-api-loader";import*as L from"react-dom";import{createPortal as w}from"react-dom";import{Clusterer as M}from"@deatog/react-google-maps-marker-clusterer";import{InfoBox as P}from"@deatog/react-google-maps-infobox";import{MarkerClusterer as C}from"@googlemaps/markerclusterer";import*as k from"@googlemaps/markerclusterer";export{k as GoogleMapsMarkerClusterer};var x=s(null);function E(){f(!!i,"useGoogleMap is React hook and requires React version 16.8+");var e=i(x);return f(!!e,"useGoogleMap needs a GoogleMap available up in the tree"),e}function D(e,t,n,r){var o,s,i={};return o=e,s=(e,o)=>{var s=n[o];s!==t[o]&&(i[o]=s,e(r,s))},Object.keys(o).forEach((e=>s(o[e],e))),i}function j(e,t,n){var r,o,s,i=(r=n,o=function(n,r,o){return"function"==typeof e[o]&&n.push(google.maps.event.addListener(t,r,e[o])),n},s=[],Object.keys(r).reduce((function(e,t){return o(e,r[t],t)}),s));return i}function S(e){google.maps.event.removeListener(e)}function U(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(S)}function R(e){var{updaterMap:t,eventMap:n,prevProps:r,nextProps:o,instance:s}=e,i=j(o,s,n);return D(t,r,o,s),i}var I={onDblClick:"dblclick",onDragEnd:"dragend",onDragStart:"dragstart",onMapTypeIdChanged:"maptypeid_changed",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseDown:"mousedown",onMouseUp:"mouseup",onRightClick:"rightclick",onTilesLoaded:"tilesloaded",onBoundsChanged:"bounds_changed",onCenterChanged:"center_changed",onClick:"click",onDrag:"drag",onHeadingChanged:"heading_changed",onIdle:"idle",onProjectionChanged:"projection_changed",onResize:"resize",onTiltChanged:"tilt_changed",onZoomChanged:"zoom_changed"},T={extraMapTypes(e,t){t.forEach((function(t,n){e.mapTypes.set(String(n),t)}))},center(e,t){e.setCenter(t)},clickableIcons(e,t){e.setClickableIcons(t)},heading(e,t){e.setHeading(t)},mapTypeId(e,t){e.setMapTypeId(t)},options(e,t){e.setOptions(t)},streetView(e,t){e.setStreetView(t)},tilt(e,t){e.setTilt(t)},zoom(e,t){e.setZoom(t)}};a((function(e){var{children:n,options:r,id:o,mapContainerStyle:s,mapContainerClassName:i,center:a,onClick:u,onDblClick:d,onDrag:g,onDragEnd:h,onDragStart:m,onMouseMove:v,onMouseOut:f,onMouseOver:y,onMouseDown:b,onMouseUp:O,onRightClick:L,onCenterChanged:w,onLoad:M,onUnmount:P}=e,[C,k]=l(null),E=p(null);return c((()=>{r&&null!==C&&C.setOptions(r)}),[C,r]),c((()=>{null!==C&&void 0!==a&&C.setCenter(a)}),[C,a]),c((()=>{if(C&&d){var e=google.maps.event.addListener(C,"dblclick",d);return()=>{e.remove()}}}),[C,d]),c((()=>{if(C&&h){var e=google.maps.event.addListener(C,"dragend",h);return()=>{e.remove()}}}),[C,h]),c((()=>{if(C&&m){var e=google.maps.event.addListener(C,"dragstart",m);return()=>{e.remove()}}}),[C,m]),c((()=>{if(C&&b){var e=google.maps.event.addListener(C,"mousedown",b);return()=>{e.remove()}}}),[C,b]),c((()=>{if(C&&v){var e=google.maps.event.addListener(C,"mousemove",v);return()=>{e.remove()}}}),[C,v]),c((()=>{if(C&&f){var e=google.maps.event.addListener(C,"mouseout",f);return()=>{e.remove()}}}),[C,f]),c((()=>{if(C&&y){var e=google.maps.event.addListener(C,"mouseover",y);return()=>{e.remove()}}}),[C,y]),c((()=>{if(C&&O){var e=google.maps.event.addListener(C,"mouseup",O);return()=>{e.remove()}}}),[C,O]),c((()=>{if(C&&L){var e=google.maps.event.addListener(C,"rightclick",L);return()=>{e.remove()}}}),[C,L]),c((()=>{if(C&&u){var e=google.maps.event.addListener(C,"click",u);return()=>{e.remove()}}}),[C,u]),c((()=>{if(C&&g){var e=google.maps.event.addListener(C,"drag",g);return()=>{e.remove()}}}),[C,g]),c((()=>{if(C&&w){var e=google.maps.event.addListener(C,"center_changed",w);return()=>{e.remove()}}}),[u]),c((()=>{C&&M&&M(C)}),[C,M]),c((()=>{if(C&&P)return()=>{P(C)}}),[C,P]),c((()=>{var e=null===E.current?null:new google.maps.Map(E.current,r);k(e)}),[]),t("div",{id:o,ref:E,style:s,className:i,children:t(x.Provider,{value:C,children:null!==C?n:null})})}));class _ extends u{constructor(){super(...arguments),e(this,"state",{map:null}),e(this,"registeredEvents",[]),e(this,"mapRef",null),e(this,"getInstance",(()=>null===this.mapRef?null:new google.maps.Map(this.mapRef,this.props.options))),e(this,"panTo",(e=>{var t=this.getInstance();t&&t.panTo(e)})),e(this,"setMapCallback",(()=>{null!==this.state.map&&this.props.onLoad&&this.props.onLoad(this.state.map)})),e(this,"getRef",(e=>{this.mapRef=e}))}componentDidMount(){var e=this.getInstance();this.registeredEvents=R({updaterMap:T,eventMap:I,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{map:e}}),this.setMapCallback)}componentDidUpdate(e){null!==this.state.map&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:T,eventMap:I,prevProps:e,nextProps:this.props,instance:this.state.map}))}componentWillUnmount(){null!==this.state.map&&(this.props.onUnmount&&this.props.onUnmount(this.state.map),U(this.registeredEvents))}render(){return t("div",{id:this.props.id,ref:this.getRef,style:this.props.mapContainerStyle,className:this.props.mapContainerClassName,children:t(x.Provider,{value:this.state.map,children:null!==this.state.map?this.props.children:null})})}}function B(e){var{googleMapsApiKey:t,googleMapsClientId:n,version:r="weekly",language:o,region:s,libraries:i,channel:a,mapIds:l,authReferrerPolicy:p,apiUrl:c="https://maps.googleapis.com"}=e,u=[];return f(t&&n||!(t&&n),"You need to specify either googleMapsApiKey or googleMapsClientId for @deatog/react-google-maps-api load script to work. You cannot use both at the same time."),t?u.push("key=".concat(t)):n&&u.push("client=".concat(n)),r&&u.push("v=".concat(r)),o&&u.push("language=".concat(o)),s&&u.push("region=".concat(s)),i&&i.length&&u.push("libraries=".concat(i.sort().join(","))),a&&u.push("channel=".concat(a)),l&&l.length&&u.push("map_ids=".concat(l.join(","))),p&&u.push("auth_referrer_policy=".concat(p)),u.push("loading=async"),u.push("callback=initMap"),"".concat(c,"/maps/api/js?").concat(u.join("&"))}var z="undefined"!=typeof document;function V(e){var{url:t,id:n,nonce:r}=e;return z?new Promise((function(e,o){var s=document.getElementById(n),i=window;if(s){var a=s.getAttribute("data-state");if(s.src===t&&"error"!==a){if("ready"===a)return e(n);var l=i.initMap,p=s.onerror;return i.initMap=function(){l&&l(),e(n)},void(s.onerror=function(e){p&&p(e),o(e)})}s.remove()}var c=document.createElement("script");c.type="text/javascript",c.src=t,c.id=n,c.async=!0,c.nonce=r||"",c.onerror=function(e){c.setAttribute("data-state","error"),o(e)},i.initMap=function(){c.setAttribute("data-state","ready"),e(n)},document.head.appendChild(c)})).catch((e=>{throw console.error("injectScript error: ",e),e})):Promise.reject(new Error("document is undefined"))}function W(e){var t=e.href;return!(!t||0!==t.indexOf("https://fonts.googleapis.com/css?family=Roboto")&&0!==t.indexOf("https://fonts.googleapis.com/css?family=Google+Sans+Text"))||("style"===e.tagName.toLowerCase()&&e.styleSheet&&e.styleSheet.cssText&&0===e.styleSheet.cssText.replace("\r\n","").indexOf(".gm-style")?(e.styleSheet.cssText="",!0):"style"===e.tagName.toLowerCase()&&e.innerHTML&&0===e.innerHTML.replace("\r\n","").indexOf(".gm-style")?(e.innerHTML="",!0):"style"===e.tagName.toLowerCase()&&!e.styleSheet&&!e.innerHTML)}function A(){var e=document.getElementsByTagName("head")[0];if(e){var t=e.insertBefore.bind(e);e.insertBefore=function(n,r){return W(n)||Reflect.apply(t,e,[n,r]),n};var n=e.appendChild.bind(e);e.appendChild=function(t){return W(t)||Reflect.apply(n,e,[t]),t}}}var N=!1;function G(){return t("div",{children:"Loading..."})}var Z,H={id:"script-loader",version:"weekly"};class Y extends u{constructor(){super(...arguments),e(this,"check",null),e(this,"state",{loaded:!1}),e(this,"cleanupCallback",(()=>{delete window.google.maps,this.injectScript()})),e(this,"isCleaningUp",y((function*(){return new Promise((function(e){if(N){if(z)var t=window.setInterval((function(){N||(window.clearInterval(t),e())}),1)}else e()}))}))),e(this,"cleanup",(()=>{N=!0;var e=document.getElementById(this.props.id);e&&e.parentNode&&e.parentNode.removeChild(e),Array.prototype.slice.call(document.getElementsByTagName("script")).filter((function(e){return"string"==typeof e.src&&e.src.includes("maps.googleapis")})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)})),Array.prototype.slice.call(document.getElementsByTagName("link")).filter((function(e){return"https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans"===e.href})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)})),Array.prototype.slice.call(document.getElementsByTagName("style")).filter((function(e){return void 0!==e.innerText&&e.innerText.length>0&&e.innerText.includes(".gm-")})).forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)}))})),e(this,"injectScript",(()=>{this.props.preventGoogleFontsLoading&&A(),f(!!this.props.id,'LoadScript requires "id" prop to be a string: %s',this.props.id),V({id:this.props.id,nonce:this.props.nonce,url:B(this.props)}).then((()=>{this.props.onLoad&&this.props.onLoad(),this.setState((function(){return{loaded:!0}}))})).catch((e=>{this.props.onError&&this.props.onError(e),console.error("\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (".concat(this.props.googleMapsApiKey||"-",") or Client ID (").concat(this.props.googleMapsClientId||"-",") to <LoadScript />\n Otherwise it is a Network issue.\n "))}))})),e(this,"getRef",(e=>{this.check=e}))}componentDidMount(){if(z){if(window.google&&window.google.maps&&!N)return void console.error("google api is already presented");this.isCleaningUp().then(this.injectScript).catch((function(e){console.error("Error at injecting script after cleaning up: ",e)}))}}componentDidUpdate(e){this.props.libraries!==e.libraries&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),z&&e.language!==this.props.language&&(this.cleanup(),this.setState((function(){return{loaded:!1}}),this.cleanupCallback))}componentWillUnmount(){if(z){this.cleanup();window.setTimeout((()=>{this.check||(delete window.google,N=!1)}),1),this.props.onUnmount&&this.props.onUnmount()}}render(){return n(r,{children:[t("div",{ref:this.getRef}),this.state.loaded?this.props.children:this.props.loadingElement||t(G,{})]})}}function F(e){var{id:t=H.id,version:n=H.version,nonce:r,googleMapsApiKey:o,googleMapsClientId:s,language:i,region:a,libraries:u,preventGoogleFontsLoading:d,channel:g,mapIds:h,authReferrerPolicy:m,apiUrl:v="https://maps.googleapis.com"}=e,y=p(!1),[b,O]=l(!1),[L,w]=l(void 0);c((function(){return y.current=!0,()=>{y.current=!1}}),[]),c((function(){z&&d&&A()}),[d]),c((function(){b&&f(!!window.google,"useLoadScript was marked as loaded, but window.google is not present. Something went wrong.")}),[b]);var M=B({version:n,googleMapsApiKey:o,googleMapsClientId:s,language:i,region:a,libraries:u,channel:g,mapIds:h,authReferrerPolicy:m,apiUrl:v});c((function(){function e(){y.current&&(O(!0),Z=M)}z&&(window.google&&window.google.maps&&Z===M?e():V({id:t,url:M,nonce:r}).then(e).catch((function(e){y.current&&w(e),console.warn("\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (".concat(o||"-",") or Client ID (").concat(s||"-",")\n Otherwise it is a Network issue.\n ")),console.error(e)})))}),[t,M,r]);var P=p(void 0);return c((function(){P.current&&u!==P.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"),P.current=u}),[u]),{isLoaded:b,loadError:L,url:M}}e(Y,"defaultProps",H);var K=["loadingElement","onLoad","onError","onUnmount","children"],q=t(G,{});var J=a((function(e){var{loadingElement:t,onLoad:n,onError:r,onUnmount:o,children:s}=e,i=b(e,K),{isLoaded:a,loadError:l}=F(i);return c((function(){a&&"function"==typeof n&&n()}),[a,n]),c((function(){l&&"function"==typeof r&&r(l)}),[l,r]),c((function(){return()=>{o&&o()}}),[o]),a?s:t||q})),Q=["maps"];function X(e){var{id:t=H.id,version:n=H.version,nonce:r,googleMapsApiKey:o,language:s,region:i,libraries:a=Q,preventGoogleFontsLoading:u,mapIds:g,authReferrerPolicy:h}=e,m=p(!1),[v,f]=l(!1),[y,b]=l(void 0);c((function(){return m.current=!0,()=>{m.current=!1}}),[]);var L=d((()=>new O({id:t,apiKey:o,version:n,libraries:a,language:s||"en",region:i||"US",mapIds:g||[],nonce:r||"",authReferrerPolicy:h||"origin"})),[t,o,n,a,s,i,g,r,h]);c((function(){v||L.load().then((()=>{m.current&&f(!0)})).catch((e=>{b(e)}))}),[]),c((()=>{z&&u&&A()}),[u]);var w=p();return c((()=>{w.current&&a!==w.current&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),w.current=a}),[a]),{isLoaded:v,loadError:y}}function $(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ee(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?$(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var te={},ne={options(e,t){e.setOptions(t)}};var re=a((function(e){var{options:t,onLoad:n,onUnmount:r}=e,o=i(x),[s,a]=l(null);return c((()=>{null!==s&&s.setMap(o)}),[o]),c((()=>{t&&null!==s&&s.setOptions(t)}),[s,t]),c((()=>{var e=new google.maps.TrafficLayer(ee(ee({},t),{},{map:o}));return a(e),n&&n(e),()=>{null!==s&&(r&&r(s),s.setMap(null))}}),[]),null}));class oe extends u{constructor(){super(...arguments),e(this,"state",{trafficLayer:null}),e(this,"setTrafficLayerCallback",(()=>{null!==this.state.trafficLayer&&this.props.onLoad&&this.props.onLoad(this.state.trafficLayer)})),e(this,"registeredEvents",[])}componentDidMount(){var e=new google.maps.TrafficLayer(ee(ee({},this.props.options),{},{map:this.context}));this.registeredEvents=R({updaterMap:ne,eventMap:te,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{trafficLayer:e}}),this.setTrafficLayerCallback)}componentDidUpdate(e){null!==this.state.trafficLayer&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:ne,eventMap:te,prevProps:e,nextProps:this.props,instance:this.state.trafficLayer}))}componentWillUnmount(){null!==this.state.trafficLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.trafficLayer),U(this.registeredEvents),this.state.trafficLayer.setMap(null))}render(){return null}}e(oe,"contextType",x);var se=a((function(e){var{onLoad:t,onUnmount:n}=e,r=i(x),[o,s]=l(null);return c((()=>{null!==o&&o.setMap(r)}),[r]),c((()=>{var e=new google.maps.BicyclingLayer;return s(e),e.setMap(r),t&&t(e),()=>{null!==e&&(n&&n(e),e.setMap(null))}}),[]),null}));class ie extends u{constructor(){super(...arguments),e(this,"state",{bicyclingLayer:null}),e(this,"setBicyclingLayerCallback",(()=>{null!==this.state.bicyclingLayer&&(this.state.bicyclingLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.bicyclingLayer))}))}componentDidMount(){var e=new google.maps.BicyclingLayer;this.setState((()=>({bicyclingLayer:e})),this.setBicyclingLayerCallback)}componentWillUnmount(){null!==this.state.bicyclingLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.bicyclingLayer),this.state.bicyclingLayer.setMap(null))}render(){return null}}e(ie,"contextType",x);var ae=a((function(e){var{onLoad:t,onUnmount:n}=e,r=i(x),[o,s]=l(null);return c((()=>{null!==o&&o.setMap(r)}),[r]),c((()=>{var e=new google.maps.TransitLayer;return s(e),e.setMap(r),t&&t(e),()=>{null!==o&&(n&&n(o),o.setMap(null))}}),[]),null}));class le extends u{constructor(){super(...arguments),e(this,"state",{transitLayer:null}),e(this,"setTransitLayerCallback",(()=>{null!==this.state.transitLayer&&(this.state.transitLayer.setMap(this.context),this.props.onLoad&&this.props.onLoad(this.state.transitLayer))}))}componentDidMount(){var e=new google.maps.TransitLayer;this.setState((function(){return{transitLayer:e}}),this.setTransitLayerCallback)}componentWillUnmount(){null!==this.state.transitLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.transitLayer),this.state.transitLayer.setMap(null))}render(){return null}}e(le,"contextType",x);var pe={onClick:"click",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart"},ce={collisionBehavior(e,t){e.collisionBehavior=null!=t?t:null},clickable(e,t){e.gmpClickable=null!=t?t:null},draggable(e,t){e.gmpDraggable=null!=t?t:null},position(e,t){e.position=null!=t?t:null},title(e,t){e.title=null!=t?t:""},zIndex(e,t){e.zIndex=null!=t?t:null}},ue=o.createContext(null);var de=a((function(e){var{children:n,collisionBehavior:r,clickable:o,clusterer:s,noClustererRedraw:a,draggable:l,position:p,title:u,zIndex:v,onClick:f,onRightClick:y,onDrag:b,onDragEnd:O,onDragStart:L,onLoad:M,onUnmount:P}=e,C=i(x),k=document.createDocumentFragment(),E=d((()=>{var e={collisionBehavior:null!=r?r:null,gmpClickable:null!=o?o:null,gmpDraggable:null!=l?l:null,position:null!=p?p:null,title:null!=u?u:null,zIndex:null!=v?v:null,map:C,content:k};return new google.maps.marker.AdvancedMarkerElement(e)}),[]);c((()=>{void 0!==r&&(E.collisionBehavior=r)}),[E,r]),c((()=>{void 0!==o&&(E.gmpClickable=o)}),[E,o]),c((()=>{void 0!==l&&(E.gmpDraggable=l)}),[E,l]),c((()=>{void 0!==p&&(E.position=p)}),[E,p]),c((()=>{void 0!==u&&(E.title=u)}),[E,u]),c((()=>{void 0!==v&&(E.zIndex=v)}),[E,v]),c((()=>{if(f){var e=E.addListener("click",f);return()=>{e.remove()}}}),[E,f]),c((()=>{if(y)return E.addEventListener("contextmenu",y),()=>{E.removeEventListener("contextmenu",y)}}),[E,y]),c((()=>{if(b){var e=E.addListener("drag",b);return()=>{e.remove()}}}),[E,b]),c((()=>{if(O){var e=E.addListener("dragend",O);return()=>{e.remove()}}}),[E,O]),c((()=>{if(L){var e=E.addListener("dragstart",L);return()=>{e.remove()}}}),[E,L]),c((()=>(s?s.addMarker(E,!!a):E.map=C,()=>{s?s.removeMarker(E,!!a):E.map=null})),[E,C]),c((()=>{M&&M(E)}),[E,M]),c((()=>{if(P)return()=>{P(E)}}),[E,P]);var D=n?g.map(n,(e=>h(e)?m(e,{anchor:E}):e)):null;return t(ue.Provider,{value:E,children:w(D,k)})}));class ge extends u{constructor(){super(...arguments),e(this,"content",document.createDocumentFragment()),e(this,"registeredEvents",[])}componentDidMount(){var e=this;return y((function*(){var{collisionBehavior:t,clickable:n,clusterer:r,noClustererRedraw:o,draggable:s,position:i,title:a,zIndex:l,onLoad:p,onRightClick:c}=e.props,u={collisionBehavior:null!=t?t:null,gmpClickable:null!=n?n:null,gmpDraggable:null!=s?s:null,position:null!=i?i:null,title:null!=a?a:null,zIndex:null!=l?l:null,content:e.content};e.marker=new google.maps.marker.AdvancedMarkerElement(u),e.registeredEvents=R({updaterMap:ce,eventMap:pe,prevProps:{},nextProps:e.props,instance:e.marker}),r?r.addMarker(e.marker,!!o):e.marker.map=e.context,c&&e.marker.addEventListener("contextmenu",c),p&&p(e.marker)}))()}componentDidUpdate(e){this.marker&&(U(this.registeredEvents),e.onRightClick!==this.props.onRightClick&&(e.onRightClick&&this.marker.removeEventListener("contextmenu",e.onRightClick),this.props.onRightClick&&this.marker.addEventListener("contextmenu",this.props.onRightClick)),this.registeredEvents=R({updaterMap:ce,eventMap:pe,prevProps:e,nextProps:this.props,instance:this.marker}))}componentWillUnmount(){if(this.marker){var{clusterer:e,noClustererRedraw:t,onUnmount:n,onRightClick:r}=this.props;n&&n(this.marker),U(this.registeredEvents),r&&this.marker.removeEventListener("contextmenu",r),e?e.removeMarker(this.marker,!!t):this.marker.map=null}}render(){var e,n=this.props.children?g.map(this.props.children,(e=>h(e)?m(e,{anchor:this.marker}):e)):null;return t(ue.Provider,{value:null!==(e=this.marker)&&void 0!==e?e:null,children:w(n,this.content)})}}function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function me(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?he(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):he(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}e(ge,"contextType",x);var ve={onCircleComplete:"circlecomplete",onMarkerComplete:"markercomplete",onOverlayComplete:"overlaycomplete",onPolygonComplete:"polygoncomplete",onPolylineComplete:"polylinecomplete",onRectangleComplete:"rectanglecomplete"},fe={drawingMode(e,t){e.setDrawingMode(t)},options(e,t){e.setOptions(t)}};var ye=a((function(e){var{options:t,drawingMode:n,onCircleComplete:r,onMarkerComplete:o,onOverlayComplete:s,onPolygonComplete:a,onPolylineComplete:l,onRectangleComplete:p,onLoad:u,onUnmount:g}=e,h=i(x),m=d((()=>(f(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing),new google.maps.drawing.DrawingManager(me(me({},t),{},{map:h})))),[]);return c((()=>{if(h)return m.setMap(h),()=>{m.setMap(null)}}),[m,h]),c((()=>{t&&m.setOptions(t)}),[m,t]),c((()=>{m.setDrawingMode(null!=n?n:null)}),[m,n]),c((()=>{if(r){var e=google.maps.event.addListener(m,"circlecomplete",r);return()=>{e.remove()}}}),[m,r]),c((()=>{if(o){var e=google.maps.event.addListener(m,"markercomplete",o);return()=>{e.remove()}}}),[m,o]),c((()=>{if(s){var e=google.maps.event.addListener(m,"overlaycomplete",s);return()=>{e.remove()}}}),[m,s]),c((()=>{if(a){var e=google.maps.event.addListener(m,"polygoncomplete",a);return()=>{e.remove()}}}),[m,a]),c((()=>{if(l){var e=google.maps.event.addListener(m,"polylinecomplete",l);return()=>{e.remove()}}}),[m,l]),c((()=>{if(p){var e=google.maps.event.addListener(m,"rectanglecomplete",p);return()=>{e.remove()}}}),[m,p]),c((()=>{u&&u(m)}),[m,u]),c((()=>{if(g)return()=>{g(m)}}),[m,g]),null}));class be extends u{constructor(t){super(t),e(this,"registeredEvents",[]),e(this,"state",{drawingManager:null}),e(this,"setDrawingManagerCallback",(()=>{null!==this.state.drawingManager&&this.props.onLoad&&this.props.onLoad(this.state.drawingManager)})),f(!!google.maps.drawing,"Did you include prop libraries={['drawing']} in the URL? %s",google.maps.drawing)}componentDidMount(){var e=new google.maps.drawing.DrawingManager(me(me({},this.props.options),{},{map:this.context}));this.registeredEvents=R({updaterMap:fe,eventMap:ve,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{drawingManager:e}}),this.setDrawingManagerCallback)}componentDidUpdate(e){null!==this.state.drawingManager&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:fe,eventMap:ve,prevProps:e,nextProps:this.props,instance:this.state.drawingManager}))}componentWillUnmount(){null!==this.state.drawingManager&&(this.props.onUnmount&&this.props.onUnmount(this.state.drawingManager),U(this.registeredEvents),this.state.drawingManager.setMap(null))}render(){return null}}function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Le(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?Oe(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Oe(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}e(be,"contextType",x);var we={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"},Me={animation(e,t){e.setAnimation(t)},clickable(e,t){e.setClickable(t)},cursor(e,t){e.setCursor(t)},draggable(e,t){e.setDraggable(t)},icon(e,t){e.setIcon(t)},label(e,t){e.setLabel(t)},map(e,t){e.setMap(t)},opacity(e,t){e.setOpacity(t)},options(e,t){e.setOptions(t)},position(e,t){e.setPosition(t)},shape(e,t){e.setShape(t)},title(e,t){e.setTitle(t)},visible(e,t){e.setVisible(t)},zIndex(e,t){e.setZIndex(t)}},Pe={};var Ce=a((function(e){var{position:n,options:o,clusterer:s,noClustererRedraw:a,children:l,draggable:p,visible:u,animation:v,clickable:f,cursor:y,icon:b,label:O,opacity:L,shape:w,title:M,zIndex:P,onClick:C,onDblClick:k,onDrag:E,onDragEnd:D,onDragStart:j,onMouseOut:S,onMouseOver:U,onMouseUp:R,onMouseDown:I,onRightClick:T,onClickableChanged:_,onCursorChanged:B,onAnimationChanged:z,onDraggableChanged:V,onFlatChanged:W,onIconChanged:A,onPositionChanged:N,onShapeChanged:G,onTitleChanged:Z,onVisibleChanged:H,onZindexChanged:Y,onLoad:F,onUnmount:K}=e,q=i(x),J=d((()=>{var e=Le(Le(Le({},o||Pe),s?Pe:{map:q}),{},{position:n});return new google.maps.Marker(e)}),[]);c((()=>{o&&J.setOptions(o)}),[J,o]),c((()=>{void 0!==p&&J.setDraggable(p)}),[J,p]),c((()=>{n&&J.setPosition(n)}),[J,n]),c((()=>{void 0!==u&&J.setVisible(u)}),[J,u]),c((()=>{J.setAnimation(v)}),[J,v]),c((()=>{void 0!==f&&J.setClickable(f)}),[J,f]),c((()=>{void 0!==y&&J.setCursor(y)}),[J,y]),c((()=>{void 0!==b&&J.setIcon(b)}),[J,b]),c((()=>{void 0!==O&&J.setLabel(O)}),[J,O]),c((()=>{void 0!==L&&J.setOpacity(L)}),[J,L]),c((()=>{void 0!==w&&J.setShape(w)}),[J,w]),c((()=>{void 0!==M&&J.setTitle(M)}),[J,M]),c((()=>{void 0!==P&&J.setZIndex(P)}),[J,P]),c((()=>{if(k){var e=google.maps.event.addListener(J,"dblclick",k);return()=>{e.remove()}}}),[J,k]),c((()=>{if(D){var e=google.maps.event.addListener(J,"dragend",D);return()=>{e.remove()}}}),[J,D]),c((()=>{if(j){var e=google.maps.event.addListener(J,"dragstart",j);return()=>{e.remove()}}}),[J,j]),c((()=>{if(I){var e=google.maps.event.addListener(J,"mousedown",I);return()=>{e.remove()}}}),[J,I]),c((()=>{if(S){var e=google.maps.event.addListener(J,"mouseout",S);return()=>{e.remove()}}}),[J,S]),c((()=>{if(U){var e=google.maps.event.addListener(J,"mouseover",U);return()=>{e.remove()}}}),[J,U]),c((()=>{if(R){var e=google.maps.event.addListener(J,"mouseup",R);return()=>{e.remove()}}}),[J,R]),c((()=>{if(T){var e=google.maps.event.addListener(J,"rightclick",T);return()=>{e.remove()}}}),[J,T]),c((()=>{if(C){var e=google.maps.event.addListener(J,"click",C);return()=>{e.remove()}}}),[J,C]),c((()=>{if(E){var e=google.maps.event.addListener(J,"drag",E);return()=>{e.remove()}}}),[J,E]),c((()=>{if(_){var e=google.maps.event.addListener(J,"clickable_changed",_);return()=>{e.remove()}}}),[J,_]),c((()=>{if(B){var e=google.maps.event.addListener(J,"cursor_changed",B);return()=>{e.remove()}}}),[J,B]),c((()=>{if(z){var e=google.maps.event.addListener(J,"animation_changed",z);return()=>{e.remove()}}}),[J,z]),c((()=>{if(V){var e=google.maps.event.addListener(J,"draggable_changed",V);return()=>{e.remove()}}}),[J,V]),c((()=>{if(W){var e=google.maps.event.addListener(J,"flat_changed",W);return()=>{e.remove()}}}),[J,W]),c((()=>{if(A){var e=google.maps.event.addListener(J,"icon_changed",A);return()=>{e.remove()}}}),[J,A]),c((()=>{if(N){var e=google.maps.event.addListener(J,"position_changed",N);return()=>{e.remove()}}}),[J,N]),c((()=>{if(G){var e=google.maps.event.addListener(J,"shape_changed",G);return()=>{e.remove()}}}),[J,G]),c((()=>{if(Z){var e=google.maps.event.addListener(J,"title_changed",Z);return()=>{e.remove()}}}),[J,Z]),c((()=>{if(H){var e=google.maps.event.addListener(J,"visible_changed",H);return()=>{e.remove()}}}),[J,H]),c((()=>{if(Y){var e=google.maps.event.addListener(J,"zindex_changed",Y);return()=>{e.remove()}}}),[J,Y]),c((()=>(s?s.addMarker(J,!!a):J.setMap(q),()=>{s?s.removeMarker(J,!!a):J.setMap(null)})),[J,q,s,a]),c((()=>{F&&F(J)}),[J,F]),c((()=>{if(K)return()=>{K(J)}}),[J,K]);var Q=d((()=>l?g.map(l,(e=>h(e)?m(e,{anchor:J}):e)):null),[l,J]);return t(r,{children:Q})||null}));class ke extends u{constructor(){super(...arguments),e(this,"registeredEvents",[])}componentDidMount(){var e=this;return y((function*(){var t=Le(Le(Le({},e.props.options||Pe),e.props.clusterer?Pe:{map:e.context}),{},{position:e.props.position});e.marker=new google.maps.Marker(t),e.props.clusterer?e.props.clusterer.addMarker(e.marker,!!e.props.noClustererRedraw):e.marker.setMap(e.context),e.registeredEvents=R({updaterMap:Me,eventMap:we,prevProps:{},nextProps:e.props,instance:e.marker}),e.props.onLoad&&e.props.onLoad(e.marker)}))()}componentDidUpdate(e){this.marker&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:Me,eventMap:we,prevProps:e,nextProps:this.props,instance:this.marker}))}componentWillUnmount(){this.marker&&(this.props.onUnmount&&this.props.onUnmount(this.marker),U(this.registeredEvents),this.props.clusterer?this.props.clusterer.removeMarker(this.marker,!!this.props.noClustererRedraw):this.marker&&this.marker.setMap(null))}render(){return(this.props.children?g.map(this.props.children,(e=>h(e)?m(e,{anchor:this.marker}):e)):null)||null}}e(ke,"contextType",x);var xe={background(e,t){e.background=null!=t?t:null},borderColor(e,t){e.borderColor=null!=t?t:null},glyph(e,t){e.glyph=null!=t?t:null},glyphColor(e,t){e.glyphColor=null!=t?t:null},scale(e,t){e.scale=null!=t?t:null}};var Ee=a((function(e){var{background:t,borderColor:n,glyph:r,glyphColor:o,scale:s,onLoad:a,onUnmount:l}=e,p=i(ue),u=d((()=>{var e={background:null!=t?t:null,borderColor:null!=n?n:null,glyph:null!=r?r:null,glyphColor:null!=o?o:null,scale:null!=s?s:null};return new google.maps.marker.PinElement(e)}),[]);return c((()=>{void 0!==t&&(u.background=t)}),[u,t]),c((()=>{void 0!==n&&(u.borderColor=n)}),[u,n]),c((()=>{void 0!==r&&(u.glyph=r)}),[u,r]),c((()=>{void 0!==o&&(u.glyphColor=o)}),[u,o]),c((()=>{void 0!==s&&(u.scale=s)})),c((()=>{a&&a(u)}),[u,a]),c((()=>{var e;if(p)return null===(e=p.content)||void 0===e||e.appendChild(u.element),()=>{u.element.remove()}}),[u,p]),c((()=>{if(l)return()=>{l(u)}}),[u,l]),null}));class De extends u{componentDidMount(){var e,{background:t,borderColor:n,glyph:r,glyphColor:o,scale:s}=this.props,i={background:null!=t?t:null,borderColor:null!=n?n:null,glyph:null!=r?r:null,glyphColor:null!=o?o:null,scale:null!=s?s:null};this.pin=new google.maps.marker.PinElement(i),null===(e=this.context)||void 0===e||null===(e=e.content)||void 0===e||e.appendChild(this.pin.element),this.props.onLoad&&this.props.onLoad(this.pin)}componentDidUpdate(e){this.pin&&D(xe,e,this.props,this.pin)}componentWillUnmount(){this.pin&&(this.props.onUnmount&&this.props.onUnmount(this.pin),this.pin.element.remove())}render(){return null}}function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}e(De,"contextType",ue);var Se={onClick:"click",onClusteringBegin:"clusteringbegin",onClusteringEnd:"clusteringend",onMouseOut:"mouseout",onMouseOver:"mouseover"},Ue={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)}},Re={};var Ie=a((function(t){var{children:n,options:r,averageCenter:o,batchSizeIE:s,calculator:a,clusterClass:l,enableRetinaIcons:p,gridSize:u,ignoreHidden:g,imageExtension:h,imagePath:m,imageSizes:v,maxZoom:f,minimumClusterSize:y,styles:b,title:O,zoomOnClick:L,onClick:w,onClusteringBegin:P,onClusteringEnd:C,onMouseOver:k,onMouseOut:E,onLoad:D,onUnmount:j}=t,S=i(x),U=d((()=>{if(S){var t=function(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?je(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},r||Re);return new M(S,[],t)}}),[S]);return c((()=>{if(U&&E){var e=google.maps.event.addListener(U,Se.onMouseOut,E);return()=>e.remove()}}),[U,E]),c((()=>{if(U&&k){var e=google.maps.event.addListener(U,Se.onMouseOver,k);return()=>{e.remove()}}}),[U,k]),c((()=>{if(U&&w){var e=google.maps.event.addListener(U,Se.onClick,w);return()=>{e.remove()}}}),[U,w]),c((()=>{if(U&&P){var e=google.maps.event.addListener(U,Se.onClusteringBegin,P);return()=>{e.remove()}}}),[U,P]),c((()=>{if(U&&C){var e=google.maps.event.addListener(U,Se.onClusteringEnd,C);return()=>{e.remove()}}}),[U,C]),c((()=>{U&&void 0!==o&&Ue.averageCenter(U,o)}),[U,o]),c((()=>{U&&void 0!==s&&Ue.batchSizeIE(U,s)}),[U,s]),c((()=>{U&&void 0!==a&&Ue.calculator(U,a)}),[U,a]),c((()=>{U&&void 0!==l&&Ue.clusterClass(U,l)}),[U,l]),c((()=>{U&&void 0!==p&&Ue.enableRetinaIcons(U,p)}),[U,p]),c((()=>{U&&void 0!==u&&Ue.gridSize(U,u)}),[U,u]),c((()=>{U&&void 0!==g&&Ue.ignoreHidden(U,g)}),[U,g]),c((()=>{U&&void 0!==h&&Ue.imageExtension(U,h)}),[U,h]),c((()=>{U&&void 0!==m&&Ue.imagePath(U,m)}),[U,m]),c((()=>{U&&void 0!==v&&Ue.imageSizes(U,v)}),[U,v]),c((()=>{U&&void 0!==f&&Ue.maxZoom(U,f)}),[U,f]),c((()=>{U&&void 0!==y&&Ue.minimumClusterSize(U,y)}),[U,y]),c((()=>{U&&void 0!==b&&Ue.styles(U,b)}),[U,b]),c((()=>{U&&void 0!==O&&Ue.title(U,O)}),[U,O]),c((()=>{U&&void 0!==L&&Ue.zoomOnClick(U,L)}),[U,L]),c((()=>{U&&D&&D(U)}),[U,D]),c((()=>{if(U&&j)return()=>{j(U)}})),U&&n(U)||null}));class Te extends u{constructor(){super(...arguments),e(this,"registeredEvents",[]),e(this,"state",{markerClusterer:null}),e(this,"setClustererCallback",(()=>{null!==this.state.markerClusterer&&this.props.onLoad&&this.props.onLoad(this.state.markerClusterer)}))}componentDidMount(){if(this.context){var e=new M(this.context,[],this.props.options);this.registeredEvents=R({updaterMap:Ue,eventMap:Se,prevProps:{},nextProps:this.props,instance:e}),this.setState((()=>({markerClusterer:e})),this.setClustererCallback)}}componentDidUpdate(e){this.state.markerClusterer&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:Ue,eventMap:Se,prevProps:e,nextProps:this.props,instance:this.state.markerClusterer}))}componentWillUnmount(){null!==this.state.markerClusterer&&(this.props.onUnmount&&this.props.onUnmount(this.state.markerClusterer),U(this.registeredEvents),this.state.markerClusterer.setMap(null))}render(){return null!==this.state.markerClusterer?this.props.children(this.state.markerClusterer):null}}e(Te,"contextType",x);var _e=["position"],Be=["position"];function ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ve(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?ze(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var We={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},Ae={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)}},Ne={};var Ge=a((function(e){var{children:t,anchor:n,options:r,position:o,zIndex:s,onCloseClick:a,onDomReady:l,onContentChanged:u,onPositionChanged:h,onZindexChanged:m,onLoad:v,onUnmount:y}=e,O=i(x),L=p(document.createElement("div")),M=d((()=>{var e,t=r||Ne,{position:n}=t,o=b(t,_e);!n||n instanceof google.maps.LatLng||(e=new google.maps.LatLng(n.lat,n.lng));var s=new P(Ve(Ve({},o),e?{position:e}:{}));return s.setContent(L.current),s}),[]);return c((()=>{r&&M.setOptions(r)}),[M,r]),c((()=>{if(o){var e=o instanceof google.maps.LatLng?o:new google.maps.LatLng(o.lat,o.lng);M.setPosition(e)}}),[M,o]),c((()=>{"number"==typeof s&&M.setZIndex(s)}),[M,s]),c((()=>{if(a){var e=google.maps.event.addListener(M,"closeclick",a);return()=>{e.remove()}}}),[M,a]),c((()=>{if(l){var e=google.maps.event.addListener(M,"domready",l);return()=>{e.remove()}}}),[M,l]),c((()=>{if(u){var e=google.maps.event.addListener(M,"content_changed",u);return()=>{e.remove()}}}),[M,u]),c((()=>{if(h){var e=google.maps.event.addListener(M,"position_changed",h);return()=>{e.remove()}}}),[M,h]),c((()=>{if(m){var e=google.maps.event.addListener(M,"zindex_changed",m);return()=>{e.remove()}}}),[M,m]),c((()=>{if(O)return n?M.open(O,n):M.getPosition()?M.open(O):f(!1,"You must provide either an anchor or a position prop for <InfoBox>."),()=>{M.close()}}),[O,M,n]),c((()=>{v&&v(M)}),[M,v]),c((()=>{if(y)return()=>{y(M)}}),[M,y]),L.current?w(g.only(t),L.current):null}));class Ze extends u{constructor(){super(...arguments),e(this,"registeredEvents",[]),e(this,"containerElement",null),e(this,"state",{infoBox:null}),e(this,"open",((e,t)=>{t?null!==this.context&&e.open(this.context,t):e.getPosition()?null!==this.context&&e.open(this.context):f(!1,"You must provide either an anchor or a position prop for <InfoBox>.")})),e(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(){var e,t=this.props.options||{},{position:n}=t,r=b(t,Be);!n||n instanceof google.maps.LatLng||(e=new google.maps.LatLng(n.lat,n.lng));var o=new P(Ve(Ve({},r),e?{position:e}:{}));this.containerElement=document.createElement("div"),this.registeredEvents=R({updaterMap:Ae,eventMap:We,prevProps:{},nextProps:this.props,instance:o}),this.setState({infoBox:o},this.setInfoBoxCallback)}componentDidUpdate(e){var{infoBox:t}=this.state;null!==t&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:Ae,eventMap:We,prevProps:e,nextProps:this.props,instance:t}))}componentWillUnmount(){var{onUnmount:e}=this.props,{infoBox:t}=this.state;null!==t&&(e&&e(t),U(this.registeredEvents),t.close())}render(){return this.containerElement?w(g.only(this.props.children),this.containerElement):null}}function He(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ye(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?He(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):He(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}e(Ze,"contextType",x);var Fe=a((function(e){var{children:t,options:n,onLoad:r,onUnload:o}=e,s=E(),i=d((()=>new C(Ye(Ye({},n),{},{map:s}))),[]);return c((()=>(i.setMap(s),()=>{i.setMap(null)})),[s]),c((()=>{r&&r(i)}),[i,r]),c((()=>{if(o)return()=>{o(i)}}),[i,o]),d((()=>{if(s&&"function"==typeof t)return t(i)}),[i,t])})),Ke={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},qe={options(e,t){e.setOptions(t)},position(e,t){e.setPosition(t)},zIndex(e,t){e.setZIndex(t)}};var Je=a((function(e){var{children:t,anchor:n,options:r,position:o,zIndex:s,onCloseClick:a,onDomReady:l,onContentChanged:u,onPositionChanged:h,onZindexChanged:m,onLoad:v,onUnmount:y}=e,b=i(x),O=p(document.createElement("div")),L=d((()=>{var e=new google.maps.InfoWindow(r);return e.setContent(O.current),e}),[]);return c((()=>{if(L)return n?L.open(b,n):L.getPosition()?L.open(b):f(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>."),()=>{L.close()}}),[b,L,n]),c((()=>{L&&r&&L.setOptions(r)}),[L,r]),c((()=>{L&&o&&L.setPosition(o)}),[L,o]),c((()=>{L&&"number"==typeof s&&L.setZIndex(s)}),[L,s]),c((()=>{if(L&&a){var e=google.maps.event.addListener(L,"closeclick",a);return()=>{e.remove()}}}),[L,a]),c((()=>{if(L&&l){var e=google.maps.event.addListener(L,"domready",l);return()=>{e.remove()}}}),[L,l]),c((()=>{if(L&&u){var e=google.maps.event.addListener(L,"content_changed",u);return()=>{e.remove()}}}),[L,u]),c((()=>{if(L&&h){var e=google.maps.event.addListener(L,"position_changed",h);return()=>{e.remove()}}}),[L,h]),c((()=>{if(L&&m){var e=google.maps.event.addListener(L,"zindex_changed",m);return()=>{e.remove()}}}),[L,m]),c((()=>{L&&v&&v(L)}),[L,v]),c((()=>{if(L)return()=>{y&&y(L),n&&L.set("anchor",null),L.close()}}),[L,y]),O.current?w(g.only(t),O.current):null}));class Qe extends u{constructor(){super(...arguments),e(this,"registeredEvents",[]),e(this,"containerElement",null),e(this,"state",{infoWindow:null}),e(this,"open",((e,t)=>{t?e.open(this.context,t):e.getPosition()?e.open(this.context):f(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.")})),e(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(){var e=new google.maps.InfoWindow(this.props.options);this.containerElement=document.createElement("div"),this.registeredEvents=R({updaterMap:qe,eventMap:Ke,prevProps:{},nextProps:this.props,instance:e}),this.setState((()=>({infoWindow:e})),this.setInfoWindowCallback)}componentDidUpdate(e){null!==this.state.infoWindow&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:qe,eventMap:Ke,prevProps:e,nextProps:this.props,instance:this.state.infoWindow}))}componentWillUnmount(){null!==this.state.infoWindow&&(U(this.registeredEvents),this.props.onUnmount&&this.props.onUnmount(this.state.infoWindow),this.props.anchor&&this.state.infoWindow.set("anchor",null),this.state.infoWindow.close())}render(){return this.containerElement?w(g.only(this.props.children),this.containerElement):null}}function Xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $e(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?Xe(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Xe(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}e(Qe,"contextType",x);var et={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},tt={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)}},nt={};var rt=a((function(e){var{options:t,draggable:n,editable:r,visible:o,path:s,onDblClick:a,onDragEnd:l,onDragStart:p,onMouseDown:u,onMouseMove:g,onMouseOut:h,onMouseOver:m,onMouseUp:v,onRightClick:f,onClick:y,onDrag:b,onLoad:O,onUnmount:L}=e,w=i(x),M=d((()=>new google.maps.Polyline($e($e({},t||nt),{},{map:w}))),[]);return c((()=>(M.setMap(w),()=>{M.setMap(null)})),[M,w]),c((()=>{t&&M.setOptions(t)}),[M,t]),c((()=>{void 0!==n&&M.setDraggable(n)}),[M,n]),c((()=>{void 0!==r&&M.setEditable(r)}),[M,r]),c((()=>{void 0!==o&&M.setVisible(o)}),[M,o]),c((()=>{s&&M.setPath(s)}),[M,s]),c((()=>{if(a){var e=google.maps.event.addListener(M,"dblclick",a);return()=>{e.remove()}}}),[M,a]),c((()=>{if(l){var e=google.maps.event.addListener(M,"dragend",l);return()=>{e.remove()}}}),[M,l]),c((()=>{if(p){var e=google.maps.event.addListener(M,"dragstart",p);return()=>{e.remove()}}}),[M,p]),c((()=>{if(u){var e=google.maps.event.addListener(M,"mousedown",u);return()=>{e.remove()}}}),[M,u]),c((()=>{if(g){var e=google.maps.event.addListener(M,"mousemove",g);return()=>{e.remove()}}}),[M,g]),c((()=>{if(h){var e=google.maps.event.addListener(M,"mouseout",h);return()=>{e.remove()}}}),[M,h]),c((()=>{if(m){var e=google.maps.event.addListener(M,"mouseover",m);return()=>{e.remove()}}}),[M,m]),c((()=>{if(v){var e=google.maps.event.addListener(M,"mouseup",v);return()=>{e.remove()}}}),[M,v]),c((()=>{if(f){var e=google.maps.event.addListener(M,"rightclick",f);return()=>{e.remove()}}}),[M,f]),c((()=>{if(y){var e=google.maps.event.addListener(M,"click",y);return()=>{e.remove()}}}),[M,y]),c((()=>{if(b){var e=google.maps.event.addListener(M,"drag",b);return()=>{e.remove()}}}),[M,b]),c((()=>{O&&O(M)})),c((()=>{if(L)return()=>{L(M)}})),null}));class ot extends u{constructor(){super(...arguments),e(this,"registeredEvents",[]),e(this,"state",{polyline:null}),e(this,"setPolylineCallback",(()=>{null!==this.state.polyline&&this.props.onLoad&&this.props.onLoad(this.state.polyline)}))}componentDidMount(){var e=new google.maps.Polyline($e($e({},this.props.options),{},{map:this.context}));this.registeredEvents=R({updaterMap:tt,eventMap:et,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{polyline:e}}),this.setPolylineCallback)}componentDidUpdate(e){null!==this.state.polyline&&(U(this.registeredEvents),this.registeredEvents=R({updaterMap:tt,eventMap:et,prevProps:e,nextProps:this.props,instance:this.state.polyline}))}componentWillUnmount(){null!==this.state.polyline&&(this.props.onUnmount&&this.props.onUnmount(this.state.polyline),U(this.registeredEvents),this.state.polyline.setMap(null))}render(){return null}}function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function it(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?st(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):st(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}e(ot,"contextType",x);var at={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},lt={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)}};var pt=a((function(e){var{options:t,draggable:n,editable:r,visible:o,path:s,paths:a,onDblClick:l,onDragEnd:p,onDragStart:u,onMouseDown:g,onMouseMove:h,onMouseOut:m,onMouseOver:v,onMouseUp:f,onRightClick:y,onClick:b,onDrag:O,onLoad:L,onUnmount:w,onEdit:M}=e,P=i(x),C=d((()=>new google.maps.Polygon(it(it({},t),{},{map:P}))),[]);return c((()=>(C.setMap(P),()=>{C.setMap(null)})),[C,P]),c((()=>{void 0!==t&&C.setOptions(t)}),[C,t]),c((()=>{void 0!==n&&C.setDraggable(n)}),[C,n]),c((()=>{void 0!==r&&C.setEditable(r)}),[C,r]),c((()=>{void 0!==o&&C.setVisible(o)}),[C,o]),c((()=>{s&&C.setPath(s)}),[C,s]),c((()=>{a&&C.setPaths(a)}),[C,a]),c((()=>{if(l){var e=google.maps.event.addListener(C,"dblclick",l);return()=>{e.remove()}}}),[C,l]),c((()=>{if(M){var e=google.maps.event.addListener(C.getPath(),"insert_at",(()=>{M(C)})),t=google.maps.event.addListener(C.getPath(),"set_at",(()=>{M(C)})),n=google.maps.event.addListener(C.getPath(),"remove_at",(()=>{M(C)}));return()=>{e.remove(),t.remove(),n.remove()}}}),[C,M]),c((()=>{if(p){var e=google.maps.event.addListener(C,"dragend",p);return()=>{e.remove()}}}),[C,p]),c((()=>{if(u){var e=google.maps.event.addListener(C,"dragstart",u);return()=>{