UNPKG

@slorber/react-google-maps

Version:
3 lines (2 loc) 42.8 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("react"),n=e(t),o=e(require("invariant")),r=require("@react-google-maps/marker-clusterer"),s=require("react-dom");function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var p=t.createContext(null),c=function(e,t,n){return Object.keys(e).reduce(function(n,o){return t(n,e[o],o)},n)},l=function(e,t,n,o){var r,s,i={};return r=e,s=function(e,r){var s=n[r];s!==t[r]&&(i[r]=s,e(o,s))},Object.keys(r).forEach(function(e){return s(r[e],e)}),i};function u(e){google.maps.event.removeListener(e)}function d(e){void 0===e&&(e=[]),e.map(u)}function h(e){var t=e.updaterMap,n=e.prevProps,o=e.nextProps,r=e.instance,s=function(t,n,o){return c(e.eventMap,function(e,o,r){return"function"==typeof t[r]&&e.push(google.maps.event.addListener(n,o,t[r])),e},[])}(o,r);return l(t,n,o,r),s}var g={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"},m={extraMapTypes:function(e,t){t.forEach(function(t,n){e.mapTypes.set(String(n),t)})},center:function(e,t){e.setCenter(t)},clickableIcons:function(e,t){e.setClickableIcons(t)},heading:function(e,t){e.setHeading(t)},mapTypeId:function(e,t){e.setMapTypeId(t)},options:function(e,t){e.setOptions(t)},streetView:function(e,t){e.setStreetView(t)},tilt:function(e,t){e.setTilt(t)},zoom:function(e,t){e.setZoom(t)}},f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={map:null},t.registeredEvents=[],t.mapRef=null,t.getInstance=function(){return new google.maps.Map(t.mapRef,t.props.options)},t.setMapCallback=function(){null!==t.state.map&&t.props.onLoad&&t.props.onLoad(t.state.map)},t.getRef=function(e){t.mapRef=e},t}a(n,e);var o=n.prototype;return o.componentDidMount=function(){var e=this.getInstance();this.registeredEvents=h({updaterMap:m,eventMap:g,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{map:e}},this.setMapCallback)},o.componentDidUpdate=function(e){null!==this.state.map&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:m,eventMap:g,prevProps:e,nextProps:this.props,instance:this.state.map}))},o.componentWillUnmount=function(){null!==this.state.map&&(this.props.onUnmount&&this.props.onUnmount(this.state.map),d(this.registeredEvents))},o.render=function(){return t.createElement("div",{id:this.props.id,ref:this.getRef,style:this.props.mapContainerStyle,className:this.props.mapContainerClassName},t.createElement(p.Provider,{value:this.state.map},null!==this.state.map?this.props.children:t.createElement(t.Fragment,null)))},n}(t.PureComponent),v="undefined"!=typeof document,y=function(e){var t=e.url,n=e.id;return v?new Promise(function(e,o){if(document.getElementById(n))return e(n);var r=document.createElement("script");r.type="text/javascript",r.src=t,r.id=n,r.async=!0,r.onload=function(){e(n)},r.onerror=o,document.head.appendChild(r)}).catch(function(e){console.error("injectScript error: ",e)}):Promise.reject(new Error("document is undefined"))},M=function(e){return!((!e.href||0!==e.href.indexOf("https://fonts.googleapis.com/css?family=Roboto"))&&("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))},C=function(){var e=document.getElementsByTagName("head")[0],t=e.insertBefore.bind(e);e.insertBefore=function(n,o){M(n)||Reflect.apply(t,e,[n,o])};var n=e.appendChild.bind(e);e.appendChild=function(t){M(t)||Reflect.apply(n,e,[t])}};function E(e){var t=e.googleMapsApiKey,n=e.googleMapsClientId,r=e.version,s=void 0===r?"weekly":r,i=e.language,a=e.region,p=e.libraries,c=[];return t&&n||!t||!n||o(!1),t?c.push("key="+t):n&&c.push("client="+n),s&&c.push("v="+s),i&&c.push("language="+i),a&&c.push("region="+a),p&&p.length&&c.push("libraries="+p.join(",")),"https://maps.googleapis.com/maps/api/js?"+c.join("&")}var x=!1;function P(){return t.createElement("div",null,"Loading...")}var k,w={id:"script-loader",version:"weekly"},b=function(e){function n(){var n;return(n=e.apply(this,arguments)||this).check=t.createRef(),n.state={loaded:!1},n.cleanupCallback=function(){delete window.google,n.injectScript()},n.isCleaningUp=function(){try{return Promise.resolve(new Promise(function(e){if(x){if(v)var t=window.setInterval(function(){x||(window.clearInterval(t),e())},1)}else e()}))}catch(e){return Promise.reject(e)}},n.cleanup=function(){x=!0;var e=document.getElementById(n.props.id);e&&e.parentNode&&e.parentNode.removeChild(e),Array.prototype.slice.call(document.getElementsByTagName("script")).filter(function(e){return 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)})},n.injectScript=function(){n.props.preventGoogleFontsLoading&&C(),n.props.id||o(!1);var e={id:n.props.id,url:E(n.props)};y(e).then(function(){n.props.onLoad&&n.props.onLoad(),n.setState(function(){return{loaded:!0}})}).catch(function(e){n.props.onError&&n.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 ("+(n.props.googleMapsApiKey||"-")+") or Client ID ("+(n.props.googleMapsClientId||"-")+") to <LoadScript />\n Otherwise it is a Network issue.\n ")})},n}a(n,e);var r=n.prototype;return r.componentDidMount=function(){if(v){if(window.google&&!x)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)})}},r.componentDidUpdate=function(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 ounside of component, or somwhere in config files or ENV variables"),v&&e.language!==this.props.language&&(this.cleanup(),this.setState(function(){return{loaded:!1}},this.cleanupCallback))},r.componentWillUnmount=function(){var e=this;v&&(this.cleanup(),window.setTimeout(function(){e.check.current||(delete window.google,x=!1)},1),this.props.onUnmount&&this.props.onUnmount())},r.render=function(){return t.createElement(t.Fragment,null,t.createElement("div",{ref:this.check}),this.state.loaded?this.props.children:this.props.loadingElement||t.createElement(P,null))},n}(t.PureComponent);b.defaultProps=w;var L=function(){var e=t.useRef(!1);return t.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t.useCallback(function(){return e.current},[])};function D(e){var n=e.id,r=void 0===n?w.id:n,s=e.version,i=void 0===s?w.version:s,a=e.googleMapsApiKey,p=e.googleMapsClientId,c=e.language,l=e.region,u=e.libraries,d=e.preventGoogleFontsLoading,h=L(),g=t.useState(!1),m=g[0],f=g[1],M=t.useState(void 0),x=M[0],P=M[1];t.useEffect(function(){v&&d&&C()},[d]),t.useEffect(function(){m&&(window.google||o(!1))},[m]);var b=E({version:i,googleMapsApiKey:a,googleMapsClientId:p,language:c,region:l,libraries:u});t.useEffect(function(){function e(){h()&&(f(!0),k=b)}v&&(window.google&&k===b?e():(h()&&(f(!1),P(void 0)),y({id:r,url:b}).then(e).catch(function(e){h()&&P(e),console.warn("\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key ("+(a||"-")+") or Client ID ("+(p||"-")+")\n Otherwise it is a Network issue.\n "),console.error(e)})))},[r,b]);var D=t.useRef();return t.useEffect(function(){D.current&&u!==D.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"),D.current=u},[u]),{isLoaded:m,loadError:x,url:b}}var S=t.createElement(P,null);function U(e){var n=e.loadingElement,o=e.onLoad,r=e.onError,s=e.onUnmount,i=e.children,a=D(function(e,t){if(null==e)return{};var n,o,r={},s=Object.keys(e);for(o=0;o<s.length;o++)t.indexOf(n=s[o])>=0||(r[n]=e[n]);return r}(e,["loadingElement","onLoad","onError","onUnmount","children"])),p=a.isLoaded,c=a.loadError;return t.useEffect(function(){p&&"function"==typeof o&&o()},[p,o]),t.useEffect(function(){c&&"function"==typeof r&&r(c)},[c,r]),t.useEffect(function(){return function(){s&&s()}},[s]),p?i:n||S}var O=t.memo(U),R={},T={options:function(e,t){e.setOptions(t)}},V=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).state={trafficLayer:null},t.setTrafficLayerCallback=function(){null!==t.state.trafficLayer&&t.props.onLoad&&t.props.onLoad(t.state.trafficLayer)},t.registeredEvents=[],t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.TrafficLayer(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:T,eventMap:R,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{trafficLayer:e}},this.setTrafficLayerCallback)},n.componentDidUpdate=function(e){null!==this.state.trafficLayer&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:T,eventMap:R,prevProps:e,nextProps:this.props,instance:this.state.trafficLayer}))},n.componentWillUnmount=function(){null!==this.state.trafficLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.trafficLayer),d(this.registeredEvents),this.state.trafficLayer.setMap(null))},n.render=function(){return null},t}(t.PureComponent);V.contextType=p;var _=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).state={bicyclingLayer:null},t.setBicyclingLayerCallback=function(){null!==t.state.bicyclingLayer&&(t.state.bicyclingLayer.setMap(t.context),t.props.onLoad&&t.props.onLoad(t.state.bicyclingLayer))},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.BicyclingLayer;this.setState(function(){return{bicyclingLayer:e}},this.setBicyclingLayerCallback)},n.componentWillUnmount=function(){null!==this.state.bicyclingLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.bicyclingLayer),this.state.bicyclingLayer.setMap(null))},n.render=function(){return null},t}(t.PureComponent);_.contextType=p;var I={onCircleComplete:"circlecomplete",onMarkerComplete:"markercomplete",onOverlayComplete:"overlaycomplete",onPolygonComplete:"polygoncomplete",onPolylineComplete:"polylinecomplete",onRectangleComplete:"rectanglecomplete"},W={drawingMode:function(e,t){e.setDrawingMode(t)},options:function(e,t){e.setOptions(t)}},A=function(e){function n(t){var n;return(n=e.call(this,t)||this).registeredEvents=[],n.state={drawingManager:null},n.setDrawingManagerCallback=function(){null!==n.state.drawingManager&&n.props.onLoad&&n.props.onLoad(n.state.drawingManager)},google.maps.drawing||o(!1),n}a(n,e);var r=n.prototype;return r.componentDidMount=function(){var e=new google.maps.drawing.DrawingManager(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:W,eventMap:I,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{drawingManager:e}},this.setDrawingManagerCallback)},r.componentDidUpdate=function(e){null!==this.state.drawingManager&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:W,eventMap:I,prevProps:e,nextProps:this.props,instance:this.state.drawingManager}))},r.componentWillUnmount=function(){null!==this.state.drawingManager&&(this.props.onUnmount&&this.props.onUnmount(this.state.drawingManager),d(this.registeredEvents),this.state.drawingManager.setMap(null))},r.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent);A.contextType=p;var B={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"},N={animation:function(e,t){e.setAnimation(t)},clickable:function(e,t){e.setClickable(t)},cursor:function(e,t){e.setCursor(t)},draggable:function(e,t){e.setDraggable(t)},icon:function(e,t){e.setIcon(t)},label:function(e,t){e.setLabel(t)},map:function(e,t){e.setMap(t)},opacity:function(e,t){e.setOpacity(t)},options:function(e,t){e.setOptions(t)},position:function(e,t){e.setPosition(t)},shape:function(e,t){e.setShape(t)},title:function(e,t){e.setTitle(t)},visible:function(e,t){e.setVisible(t)},zIndex:function(e,t){e.setZIndex(t)}},j=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={marker:null},t.setMarkerCallback=function(){null!==t.state.marker&&t.props.onLoad&&t.props.onLoad(t.state.marker)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=i({},this.props.options||{},{},this.props.clusterer?{}:{map:this.context},{position:this.props.position}),t=new google.maps.Marker(e);this.props.clusterer?this.props.clusterer.addMarker(t,!!this.props.noClustererRedraw):t.setMap(this.context),this.registeredEvents=h({updaterMap:N,eventMap:B,prevProps:{},nextProps:this.props,instance:t}),this.setState(function(){return{marker:t}},this.setMarkerCallback)},n.componentDidUpdate=function(e){null!==this.state.marker&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:N,eventMap:B,prevProps:e,nextProps:this.props,instance:this.state.marker}))},n.componentWillUnmount=function(){null!==this.state.marker&&(this.props.onUnmount&&this.props.onUnmount(this.state.marker),d(this.registeredEvents),this.props.clusterer?this.props.clusterer.removeMarker(this.state.marker,!!this.props.noClustererRedraw):this.state.marker&&this.state.marker.setMap(null))},n.render=function(){return this.props.children||null},t}(t.PureComponent);j.contextType=p;var z={onClick:"click",onClusteringBegin:"clusteringbegin",onClusteringEnd:"clusteringend",onMouseOut:"mouseout",onMouseOver:"mouseover"},F={averageCenter:function(e,t){e.setAverageCenter(t)},batchSizeIE:function(e,t){e.setBatchSizeIE(t)},calculator:function(e,t){e.setCalculator(t)},clusterClass:function(e,t){e.setClusterClass(t)},enableRetinaIcons:function(e,t){e.setEnableRetinaIcons(t)},gridSize:function(e,t){e.setGridSize(t)},ignoreHidden:function(e,t){e.setIgnoreHidden(t)},imageExtension:function(e,t){e.setImageExtension(t)},imagePath:function(e,t){e.setImagePath(t)},imageSizes:function(e,t){e.setImageSizes(t)},maxZoom:function(e,t){e.setMaxZoom(t)},minimumClusterSize:function(e,t){e.setMinimumClusterSize(t)},styles:function(e,t){e.setStyles(t)},title:function(e,t){e.setTitle(t)},zoomOnClick:function(e,t){e.setZoomOnClick(t)}},G=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={markerClusterer:null},t.setClustererCallback=function(){null!==t.state.markerClusterer&&t.props.onLoad&&t.props.onLoad(t.state.markerClusterer)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){if(this.context){var e=new r.Clusterer(this.context,[],this.props.options);this.registeredEvents=h({updaterMap:F,eventMap:z,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{markerClusterer:e}},this.setClustererCallback)}},n.componentDidUpdate=function(e){this.state.markerClusterer&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:F,eventMap:z,prevProps:e,nextProps:this.props,instance:this.state.markerClusterer}))},n.componentWillUnmount=function(){null!==this.state.markerClusterer&&(this.props.onUnmount&&this.props.onUnmount(this.state.markerClusterer),d(this.registeredEvents),this.state.markerClusterer.setMap(null))},n.render=function(){return null!==this.state.markerClusterer?this.props.children(this.state.markerClusterer):null},t}(t.PureComponent);G.contextType=p;var H={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},Z={options:function(e,t){e.setOptions(t)},position:function(e,t){e.setPosition(t)},zIndex:function(e,t){e.setZIndex(t)}},K=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.containerElement=null,t.state={infoWindow:null},t.open=function(e,n){n?e.open(t.context,n):e.getPosition()?e.open(t.context):o(!1)},t.setInfowindowCallback=function(){null!==t.state.infoWindow&&null!==t.containerElement&&(t.state.infoWindow.setContent(t.containerElement),t.open(t.state.infoWindow,t.props.anchor),t.props.onLoad&&t.props.onLoad(t.state.infoWindow))},t}a(n,e);var r=n.prototype;return r.componentDidMount=function(){var e=new google.maps.InfoWindow(i({},this.props.options||{}));this.containerElement=document.createElement("div"),this.registeredEvents=h({updaterMap:Z,eventMap:H,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{infoWindow:e}},this.setInfowindowCallback)},r.componentDidUpdate=function(e){null!==this.state.infoWindow&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:Z,eventMap:H,prevProps:e,nextProps:this.props,instance:this.state.infoWindow}))},r.componentWillUnmount=function(){null!==this.state.infoWindow&&(d(this.registeredEvents),this.state.infoWindow.close())},r.render=function(){return this.containerElement?s.createPortal(t.Children.only(this.props.children),this.containerElement):t.createElement(t.Fragment,null)},n}(t.PureComponent);K.contextType=p;var q={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},Y={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},visible:function(e,t){e.setVisible(t)}},J=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={polyline:null},t.setPolylineCallback=function(){null!==t.state.polyline&&t.props.onLoad&&t.props.onLoad(t.state.polyline)},t}a(n,e);var o=n.prototype;return o.componentDidMount=function(){var e=new google.maps.Polyline(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:Y,eventMap:q,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{polyline:e}},this.setPolylineCallback)},o.componentDidUpdate=function(e){null!==this.state.polyline&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:Y,eventMap:q,prevProps:e,nextProps:this.props,instance:this.state.polyline}))},o.componentWillUnmount=function(){null!==this.state.polyline&&(this.props.onUnmount&&this.props.onUnmount(this.state.polyline),d(this.registeredEvents),this.state.polyline.setMap(null))},o.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent);J.contextType=p;var Q={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},X={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},paths:function(e,t){e.setPaths(t)},visible:function(e,t){e.setVisible(t)}},$=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={polygon:null},t.setPolygonCallback=function(){null!==t.state.polygon&&t.props.onLoad&&t.props.onLoad(t.state.polygon)},t.render=function(){return null},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.Polygon(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:X,eventMap:Q,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{polygon:e}},this.setPolygonCallback)},n.componentDidUpdate=function(e){null!==this.state.polygon&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:X,eventMap:Q,prevProps:e,nextProps:this.props,instance:this.state.polygon}))},n.componentWillUnmount=function(){null!==this.state.polygon&&(this.props.onUnmount&&this.props.onUnmount(this.state.polygon),d(this.registeredEvents),this.state.polygon&&this.state.polygon.setMap(null))},t}(t.PureComponent);$.contextType=p;var ee={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"},te={bounds:function(e,t){e.setBounds(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},visible:function(e,t){e.setVisible(t)}},ne=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={rectangle:null},t.setRectangleCallback=function(){null!==t.state.rectangle&&t.props.onLoad&&t.props.onLoad(t.state.rectangle)},t}a(n,e);var o=n.prototype;return o.componentDidMount=function(){var e=new google.maps.Rectangle(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:te,eventMap:ee,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{rectangle:e}},this.setRectangleCallback)},o.componentDidUpdate=function(e){null!==this.state.rectangle&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:te,eventMap:ee,prevProps:e,nextProps:this.props,instance:this.state.rectangle}))},o.componentWillUnmount=function(){null!==this.state.rectangle&&(this.props.onUnmount&&this.props.onUnmount(this.state.rectangle),d(this.registeredEvents),this.state.rectangle.setMap(null))},o.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent);ne.contextType=p;var oe={onCenterChanged:"center_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRadiusChanged:"radius_changed",onRightClick:"rightclick"},re={center:function(e,t){e.setCenter(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},radius:function(e,t){e.setRadius(t)},visible:function(e,t){e.setVisible(t)}},se=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={circle:null},t.setCircleCallback=function(){null!==t.state.circle&&t.props.onLoad&&t.props.onLoad(t.state.circle)},t}a(n,e);var o=n.prototype;return o.componentDidMount=function(){var e=new google.maps.Circle(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:re,eventMap:oe,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{circle:e}},this.setCircleCallback)},o.componentDidUpdate=function(e){null!==this.state.circle&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:re,eventMap:oe,prevProps:e,nextProps:this.props,instance:this.state.circle}))},o.componentWillUnmount=function(){null!==this.state.circle&&(this.props.onUnmount&&this.props.onUnmount(this.state.circle),d(this.registeredEvents),this.state.circle&&this.state.circle.setMap(null))},o.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent);se.contextType=p;var ie={onAddFeature:"addfeature",onClick:"click",onDblClick:"dblclick",onMouseDown:"mousedown",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRemoveFeature:"removefeature",onRemoveProperty:"removeproperty",onRightClick:"rightclick",onSetGeometry:"setgeometry",onSetProperty:"setproperty"},ae={add:function(e,t){e.add(t)},addgeojson:function(e,t,n){e.addGeoJson(t,n)},contains:function(e,t){e.contains(t)},foreach:function(e,t){e.forEach(t)},loadgeojson:function(e,t,n,o){e.loadGeoJson(t,n,o)},overridestyle:function(e,t,n){e.overrideStyle(t,n)},remove:function(e,t){e.remove(t)},revertstyle:function(e,t){e.revertStyle(t)},controlposition:function(e,t){e.setControlPosition(t)},controls:function(e,t){e.setControls(t)},drawingmode:function(e,t){e.setDrawingMode(t)},map:function(e,t){e.setMap(t)},style:function(e,t){e.setStyle(t)},togeojson:function(e,t){e.toGeoJson(t)}},pe=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={data:null},t.setDataCallback=function(){null!==t.state.data&&t.props.onLoad&&t.props.onLoad(t.state.data)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.Data(i({},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:ae,eventMap:ie,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{data:e}},this.setDataCallback)},n.componentDidUpdate=function(e){null!==this.state.data&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:ae,eventMap:ie,prevProps:e,nextProps:this.props,instance:this.state.data}))},n.componentWillUnmount=function(){null!==this.state.data&&(this.props.onUnmount&&this.props.onUnmount(this.state.data),d(this.registeredEvents),this.state.data&&this.state.data.setMap(null))},n.render=function(){return null},t}(t.PureComponent);pe.contextType=p;var ce={onClick:"click",onDefaultViewportChanged:"defaultviewport_changed",onStatusChanged:"status_changed"},le={options:function(e,t){e.setOptions(t)},url:function(e,t){e.setUrl(t)},zIndex:function(e,t){e.setZIndex(t)}},ue=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={kmlLayer:null},t.setKmlLayerCallback=function(){null!==t.state.kmlLayer&&t.props.onLoad&&t.props.onLoad(t.state.kmlLayer)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.KmlLayer(i({},this.props.options,{map:this.context}));this.registeredEvents=h({updaterMap:le,eventMap:ce,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{kmlLayer:e}},this.setKmlLayerCallback)},n.componentDidUpdate=function(e){null!==this.state.kmlLayer&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:le,eventMap:ce,prevProps:e,nextProps:this.props,instance:this.state.kmlLayer}))},n.componentWillUnmount=function(){null!==this.state.kmlLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.kmlLayer),d(this.registeredEvents),this.state.kmlLayer.setMap(null))},n.render=function(){return null},t}(t.PureComponent);ue.contextType=p;var de=function(e,t){return new t(e.lat,e.lng)},he=function(e,t){return new t(new google.maps.LatLng(e.ne.lat,e.ne.lng),new google.maps.LatLng(e.sw.lat,e.sw.lng))},ge=function(e,t,n){return e instanceof t?e:n(e,t)},me=function(e,t,n,o){return void 0!==n?function(e,t,n){var o=e.fromLatLngToDivPixel(n.getNorthEast()),r=e.fromLatLngToDivPixel(n.getSouthWest());return o&&r?{left:r.x+t.x+"px",top:o.y+t.y+"px",width:o.x-r.x-t.x+"px",height:r.y-o.y-t.y+"px"}:{left:"-9999px",top:"-9999px"}}(e,t,ge(n,google.maps.LatLngBounds,he)):function(e,t,n){var o=e.fromLatLngToDivPixel(n);return o?{left:o.x+t.x+"px",top:o.y+t.y+"px"}:{left:"-9999px",top:"-9999px"}}(e,t,ge(o,google.maps.LatLng,de))},fe=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onLoad&&this.props.onLoad()},n.render=function(){return this.props.children},t}(t.Component),ve=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={overlayView:null},t.containerElement=null,t.setOverlayViewCallback=function(){null!==t.state.overlayView&&t.props.onLoad&&t.props.onLoad(t.state.overlayView),t.onPositionElement()},t.onAdd=function(){t.containerElement=document.createElement("div"),t.containerElement.style.position="absolute"},t.onPositionElement=function(){if(null!==t.state.overlayView&&null!==t.containerElement){var e=t.state.overlayView.getProjection(),n=i({x:0,y:0},(r=t.containerElement,"function"==typeof(s=t.props.getPixelPositionOffset)?s(r.offsetWidth,r.offsetHeight):{})),o=me(e,n,t.props.bounds,t.props.position);Object.assign(t.containerElement.style,o)}var r,s},t.draw=function(){t.props.mapPaneName||o(!1);var e=t.state.overlayView;if(null!==e){var n=e.getPanes();n&&(t.containerElement&&n[t.props.mapPaneName].appendChild(t.containerElement),t.onPositionElement(),t.forceUpdate())}},t.onRemove=function(){null!==t.containerElement&&t.containerElement.parentNode&&(t.containerElement.parentNode.removeChild(t.containerElement),delete t.containerElement)},t}a(n,e);var r=n.prototype;return r.componentDidMount=function(){var e=new google.maps.OverlayView;e.onAdd=this.onAdd,e.draw=this.draw,e.onRemove=this.onRemove,e.setMap(this.context),this.setState(function(){return{overlayView:e}})},r.componentDidUpdate=function(e){var t=this;e.position===this.props.position&&e.bounds===this.props.bounds||setTimeout(function(){null!==t.state.overlayView&&t.state.overlayView.draw()},0)},r.componentWillUnmount=function(){null!==this.state.overlayView&&(this.props.onUnmount&&this.props.onUnmount(this.state.overlayView),this.state.overlayView.setMap(null))},r.render=function(){return null!==this.containerElement?s.createPortal(t.createElement(fe,{onLoad:this.setOverlayViewCallback},t.Children.only(this.props.children)),this.containerElement):t.createElement(t.Fragment,null)},n}(t.PureComponent);ve.FLOAT_PANE="floatPane",ve.MAP_PANE="mapPane",ve.MARKER_LAYER="markerLayer",ve.OVERLAY_LAYER="overlayLayer",ve.OVERLAY_MOUSE_TARGET="overlayMouseTarget",ve.contextType=p;var ye={onDblClick:"dblclick",onClick:"click"},Me={opacity:function(e,t){e.setOpacity(t)}},Ce=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={groundOverlay:null},t.setGroundOverlayCallback=function(){null!==t.state.groundOverlay&&t.props.onLoad&&t.props.onLoad(t.state.groundOverlay)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.url||this.props.bounds||o(!1);var e=new google.maps.GroundOverlay(this.props.url,this.props.bounds,i({},this.props.options,{map:this.context}));this.registeredEvents=h({updaterMap:Me,eventMap:ye,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{groundOverlay:e}},this.setGroundOverlayCallback)},n.componentDidUpdate=function(e){null!==this.state.groundOverlay&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:Me,eventMap:ye,prevProps:e,nextProps:this.props,instance:this.state.groundOverlay}))},n.componentWillUnmount=function(){this.state.groundOverlay&&(this.props.onUnmount&&this.props.onUnmount(this.state.groundOverlay),this.state.groundOverlay.setMap(null))},n.render=function(){return null},t}(t.PureComponent);Ce.defaultProps={onLoad:function(){}},Ce.contextType=p;var Ee={},xe={data:function(e,t){e.setData(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)}},Pe=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={heatmapLayer:null},t.setHeatmapLayerCallback=function(){null!==t.state.heatmapLayer&&t.props.onLoad&&t.props.onLoad(t.state.heatmapLayer)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){google.maps.visualization||o(!1),this.props.data||o(!1);var e=new google.maps.visualization.HeatmapLayer(i({data:this.props.data},this.props.options||{},{map:this.context}));this.registeredEvents=h({updaterMap:xe,eventMap:Ee,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{heatmapLayer:e}},this.setHeatmapLayerCallback)},n.componentDidUpdate=function(e){d(this.registeredEvents),this.registeredEvents=h({updaterMap:xe,eventMap:Ee,prevProps:e,nextProps:this.props,instance:this.state.heatmapLayer})},n.componentWillUnmount=function(){null!==this.state.heatmapLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.heatmapLayer),d(this.registeredEvents),this.state.heatmapLayer.setMap(null))},n.render=function(){return null},t}(t.PureComponent);Pe.contextType=p;var ke={onCloseClick:"closeclick",onPanoChanged:"pano_changed",onPositionChanged:"position_changed",onPovChanged:"pov_changed",onResize:"resize",onStatusChanged:"status_changed",onVisibleChanged:"visible_changed",onZoomChanged:"zoom_changed"},we={register:function(e,t,n){e.registerPanoProvider(t,n)},links:function(e,t){e.setLinks(t)},motionTracking:function(e,t){e.setMotionTracking(t)},options:function(e,t){e.setOptions(t)},pano:function(e,t){e.setPano(t)},position:function(e,t){e.setPosition(t)},pov:function(e,t){e.setPov(t)},visible:function(e,t){e.setVisible(t)},zoom:function(e,t){e.setZoom(t)}},be=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={streetViewPanorama:null},t.setStreetViewPanoramaCallback=function(){null!==t.state.streetViewPanorama&&t.props.onLoad&&t.props.onLoad(t.state.streetViewPanorama)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=this.context.getStreetView();this.registeredEvents=h({updaterMap:we,eventMap:ke,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{streetViewPanorama:e}},this.setStreetViewPanoramaCallback)},n.componentDidUpdate=function(e){null!==this.state.streetViewPanorama&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:we,eventMap:ke,prevProps:e,nextProps:this.props,instance:this.state.streetViewPanorama}))},n.componentWillUnmount=function(){null!==this.state.streetViewPanorama&&(this.props.onUnmount&&this.props.onUnmount(this.state.streetViewPanorama),d(this.registeredEvents),this.state.streetViewPanorama.setVisible(!1))},n.render=function(){return null},t}(t.PureComponent);be.contextType=p;var Le=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).state={streetViewService:null},t.setStreetViewServiceCallback=function(){null!==t.state.streetViewService&&t.props.onLoad&&t.props.onLoad(t.state.streetViewService)},t}a(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=new google.maps.StreetViewService;this.setState(function(){return{streetViewService:e}})},n.componentWillUnmount=function(){null!==this.state.streetViewService&&this.props.onUnmount&&this.props.onUnmount(this.state.streetViewService)},n.render=function(){return null},t}(t.PureComponent);Le.contextType=p;var De=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={directionsService:null},t.setDirectionsServiceCallback=function(){null!==t.state.directionsService&&t.props.onLoad&&t.props.onLoad(t.state.directionsService)},t}a(n,e);var r=n.prototype;return r.componentDidMount=function(){this.props.options||o(!1);var e=new google.maps.DirectionsService;this.setState(function(){return{directionsService:e}},this.setDirectionsServiceCallback)},r.componentDidUpdate=function(){null!==this.state.directionsService&&this.state.directionsService.route(this.props.options,this.props.callback)},r.componentWillUnmount=function(){null!==this.state.directionsService&&this.props.onUnmount&&this.props.onUnmount(this.state.directionsService)},r.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent),Se={onDirectionsChanged:"directions_changed"},Ue={directions:function(e,t){e.setDirections(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},panel:function(e,t){e.setPanel(t)},routeIndex:function(e,t){e.setRouteIndex(t)}},Oe=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).registeredEvents=[],t.state={directionsRenderer:null},t.setDirectionsRendererCallback=function(){null!==t.state.directionsRenderer&&(t.state.directionsRenderer.setMap(t.context),t.props.onLoad&&t.props.onLoad(t.state.directionsRenderer))},t}a(n,e);var o=n.prototype;return o.componentDidMount=function(){var e=new google.maps.DirectionsRenderer(this.props.options);this.registeredEvents=h({updaterMap:Ue,eventMap:Se,prevProps:{},nextProps:this.props,instance:e}),this.setState(function(){return{directionsRenderer:e}},this.setDirectionsRendererCallback)},o.componentDidUpdate=function(e){null!==this.state.directionsRenderer&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:Ue,eventMap:Se,prevProps:e,nextProps:this.props,instance:this.state.directionsRenderer}))},o.componentWillUnmount=function(){null!==this.state.directionsRenderer&&(this.props.onUnmount&&this.props.onUnmount(this.state.directionsRenderer),d(this.registeredEvents),this.state.directionsRenderer&&this.state.directionsRenderer.setMap(null))},o.render=function(){return t.createElement(t.Fragment,null)},n}(t.PureComponent);Oe.contextType=p;var Re=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).state={distanceMatrixService:null},t.setDistanceMatrixServiceCallbak=function(){null!==t.state.distanceMatrixService&&t.props.onLoad&&t.props.onLoad(t.state.distanceMatrixService)},t}a(t,e);var r=t.prototype;return r.componentDidMount=function(){this.props.options||o(!1);var e=new google.maps.DistanceMatrixService;this.setState(function(){return{distanceMatrixService:e}},this.setDistanceMatrixServiceCallbak)},r.componentDidUpdate=function(){null!==this.state.distanceMatrixService&&this.state.distanceMatrixService.getDistanceMatrix(this.props.options,this.props.callback)},r.componentWillUnmount=function(){null!==this.state.distanceMatrixService&&this.props.onUnmount&&this.props.onUnmount(this.state.distanceMatrixService)},r.render=function(){return n.createElement(n.Fragment,null)},t}(n.PureComponent),Te={onPlacesChanged:"places_changed"},Ve={bounds:function(e,t){e.setBounds(t)}},_e=function(e){function n(){var n;return(n=e.apply(this,arguments)||this).registeredEvents=[],n.containerElement=t.createRef(),n.state={searchBox:null},n.setSearchBoxCallback=function(){null!==n.state.searchBox&&n.props.onLoad&&n.props.onLoad(n.state.searchBox)},n}a(n,e);var r=n.prototype;return r.componentDidMount=function(){if(google.maps.places||o(!1),null!==this.containerElement&&null!==this.containerElement.current){var e=this.containerElement.current.querySelector("input");if(e){var t=new google.maps.places.SearchBox(e,this.props.options);this.registeredEvents=h({updaterMap:Ve,eventMap:Te,prevProps:{},nextProps:this.props,instance:t}),this.setState(function(){return{searchBox:t}},this.setSearchBoxCallback)}}},r.componentDidUpdate=function(e){null!==this.state.searchBox&&(d(this.registeredEvents),this.registeredEvents=h({updaterMap:Ve,eventMap:Te,prevProps:e,nextProps:this.props,instance:this.state.searchBox}))},r.componentWillUnmount=function(){null!==this.state.searchBox&&(this.props.onUnmount&&this.props.onUnmount(this.state.searchBox),d(this.registeredEvents))},r.render=function(){return t.createElement("div",{ref:this.containerElement},t.Children.only(this.props.children))},n}(t.PureComponent);_e.contextType=p;var Ie={onPlaceChanged:"place_changed"},We={bounds:function(e,t){e.setBounds(t)},restrictions:function(e,t){e.setComponentRestrictions(t)},fields:function(e,t){e.setFields(t)},options:function(e,t){e.setOptions(t)},types:function(e,t){e.setTypes(t)}},Ae=function(e){function n(){var n;return(n=e.apply(this,arguments)||this).registeredEvents=[],n.containerElement=t.createRef(),n.state={autocomplete:null},n.setAutocompleteCallback=function(){null!==n.state.autocomplete&&n.props.onLoad&&n.props.onLoad(n.state.autocomplete)},n}a(n,e);var r=n.prototype;return r.componentDidMount=function(){google.maps.places||o(!1);var e=this.containerElement.current.querySelector("input");if(e){var t=new google.maps.places.Autocomplete(e,this.props.options);this.registeredEvents=h({updaterMap:We,eventMap:Ie,prevProps:{},nextProps:this.props,instance:t}),this.setState(function(){return{autocomplete:t}},this.setAutocompleteCallback)}},r.componentDidUpdate=function(e){d(this.registeredEvents),this.registeredEvents=h({updaterMap:We,eventMap:Ie,prevProps:e,nextProps:this.props,instance:this.state.autocomplete})},r.componentWillUnmount=function(){null!==this.state.autocomplete&&d(this.registeredEvents)},r.render=function(){return t.createElement("div",{ref:this.containerElement},t.Children.only(this.props.children))},n}(t.PureComponent);Ae.contextType=p,exports.Autocomplete=Ae,exports.BicyclingLayer=_,exports.Circle=se,exports.Data=pe,exports.DirectionsRenderer=Oe,exports.DirectionsService=De,exports.DistanceMatrixService=Re,exports.DrawingManager=A,exports.GoogleMap=f,exports.GroundOverlay=Ce,exports.HeatmapLayer=Pe,exports.InfoWindow=K,exports.KmlLayer=ue,exports.LoadScript=b,exports.LoadScriptNext=O,exports.Marker=j,exports.MarkerClusterer=G,exports.OverlayView=ve,exports.Polygon=$,exports.Polyline=J,exports.Rectangle=ne,exports.StandaloneSearchBox=_e,exports.StreetViewPanorama=be,exports.StreetViewService=Le,exports.TrafficLayer=V,exports.useGoogleMap=function(){t.useContext||o(!1);var e=t.useContext(p);return e||o(!1),e},exports.useLoadScript=D; //# sourceMappingURL=reactgooglemapsapi.cjs.production.min.js.map