"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9917],{69378:function(e){e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;0!=o--;){var r,o,i,a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}},16531:function(e,t,n){n.d(t,{aN:function(){return s}}),"function"==typeof SuppressedError&&SuppressedError;var r,o,i,a=(o=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;0!=o--;){var r,o,i,a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}).__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o;let l="__googleMapsScriptId";(i=r||(r={}))[i.INITIALIZED=0]="INITIALIZED",i[i.LOADING=1]="LOADING",i[i.SUCCESS=2]="SUCCESS",i[i.FAILURE=3]="FAILURE";class s{constructor({apiKey:e,authReferrerPolicy:t,channel:n,client:r,id:o=l,language:i,libraries:u=[],mapIds:c,nonce:d,region:h,retries:g=3,url:p="https://maps.googleapis.com/maps/api/js",version:f}){if(this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=e,this.authReferrerPolicy=t,this.channel=n,this.client=r,this.id=o||l,this.language=i,this.libraries=u,this.mapIds=c,this.nonce=d,this.region=h,this.retries=g,this.url=p,this.version=f,s.instance){if(!a(this.options,s.instance.options))throw Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(s.instance.options)}`);return s.instance}s.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?r.FAILURE:this.done?r.SUCCESS:this.loading?r.LOADING:r.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+="?callback=__googleMapsCallback&loading=async",this.apiKey&&(e+=`&key=${this.apiKey}`),this.channel&&(e+=`&channel=${this.channel}`),this.client&&(e+=`&client=${this.client}`),this.libraries.length>0&&(e+=`&libraries=${this.libraries.join(",")}`),this.language&&(e+=`&language=${this.language}`),this.region&&(e+=`&region=${this.region}`),this.version&&(e+=`&v=${this.version}`),this.mapIds&&(e+=`&map_ids=${this.mapIds.join(",")}`),this.authReferrerPolicy&&(e+=`&auth_referrer_policy=${this.authReferrerPolicy}`),e}deleteScript(){let e=document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(n=>{n?t(n.error):e(window.google)})})}importLibrary(e){return this.execute(),google.maps.importLibrary(e)}loadCallback(e){this.callbacks.push(e),this.execute()}setScript(){var e,t;if(document.getElementById(this.id)){this.callback();return}let n={key:this.apiKey,channel:this.channel,client:this.client,libraries:this.libraries.length&&this.libraries,v:this.version,mapIds:this.mapIds,language:this.language,region:this.region,authReferrerPolicy:this.authReferrerPolicy};Object.keys(n).forEach(e=>!n[e]&&delete n[e]),(null===(t=null===(e=null==window?void 0:window.google)||void 0===e?void 0:e.maps)||void 0===t?void 0:t.importLibrary)||(e=>{let t,n,r,o="The Google Maps JavaScript API",i="google",a="importLibrary",l="__ib__",s=document,u=window,c=(u=u[i]||(u[i]={})).maps||(u.maps={}),d=new Set,h=new URLSearchParams,g=()=>t||(t=new Promise((a,u)=>{var g,p,f,m;return g=this,p=void 0,f=void 0,m=function*(){var g;for(r in yield n=s.createElement("script"),n.id=this.id,h.set("libraries",[...d]+""),e)h.set(r.replace(/[A-Z]/g,e=>"_"+e[0].toLowerCase()),e[r]);h.set("callback",i+".maps."+l),n.src=this.url+"?"+h,c[l]=a,n.onerror=()=>t=u(Error(o+" could not load.")),n.nonce=this.nonce||(null===(g=s.querySelector("script[nonce]"))||void 0===g?void 0:g.nonce)||"",s.head.append(n)},new(f||(f=Promise))(function(e,t){function n(e){try{o(m.next(e))}catch(e){t(e)}}function r(e){try{o(m.throw(e))}catch(e){t(e)}}function o(t){var o;t.done?e(t.value):((o=t.value)instanceof f?o:new f(function(e){e(o)})).then(n,r)}o((m=m.apply(g,p||[])).next())})}));c[a]?console.warn(o+" only loads once. Ignoring:",e):c[a]=(e,...t)=>d.add(e)&&g().then(()=>c[a](e,...t))})(n);let r=this.libraries.map(e=>this.importLibrary(e));r.length||r.push(this.importLibrary("core")),Promise.all(r).then(()=>this.callback(),e=>{let t=new ErrorEvent("error",{error:e});this.loadErrorCallback(t)})}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*Math.pow(2,this.errors.length);console.error(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},e)}else this.onerrorEvent=e,this.callback()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),!this.loading){if(this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version){console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. This may result in undesirable behavior as options and script parameters may not match."),this.callback();return}this.loading=!0,this.setScript()}}}}},36512:function(e,t,n){n.d(t,{S:function(){return o}});let r=(e,t=" ")=>{let n="";for(let r=0;r<e.length;r++)"text"in e[r]&&(n+=(n?t:"")+e[r].text);return n},o=(e,...t)=>{if(!e)return null;{let[n]=t;return r(e,("string"==typeof n?{separator:n}:{...n}).separator)}}},22931:function(e,t,n){n.d(t,{D5:function(){return _},Sx:function(){return P},_I:function(){return R},_Q:function(){return j},un:function(){return p}});var r=n(2784),o=n(28316),i=n(69378);function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function l(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function s(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}let u={NOT_LOADED:"NOT_LOADED",LOADING:"LOADING",LOADED:"LOADED",FAILED:"FAILED",AUTH_FAILURE:"AUTH_FAILURE"};class c{static async load(e,t){var n;let r=e.libraries?e.libraries.split(","):[],o=this.serializeParams(e);this.listeners.push(t),null!=(n=window.google)&&null!=(n=n.maps)&&n.importLibrary?(this.serializedApiParams||(this.loadingStatus=u.LOADED),this.notifyLoadingStatusListeners()):(this.serializedApiParams=o,this.initImportLibrary(e)),this.serializedApiParams&&this.serializedApiParams!==o&&console.warn("[google-maps-api-loader] The maps API has already been loaded with different parameters and will not be loaded again. Refresh the page for new values to have effect.");let i=["maps",...r];await Promise.all(i.map(e=>google.maps.importLibrary(e)))}static serializeParams(e){return[e.v,e.key,e.language,e.region,e.authReferrerPolicy,e.solutionChannel].join("/")}static initImportLibrary(e){if(window.google||(window.google={}),window.google.maps||(window.google.maps={}),window.google.maps.importLibrary){console.error("[google-maps-api-loader-internal]: initImportLibrary must only be called once");return}let t=null,n=()=>t||(t=new Promise((t,n)=>{var r;let o=document.createElement("script"),i=new URLSearchParams;for(let[t,n]of Object.entries(e)){let e=t.replace(/[A-Z]/g,e=>"_"+e[0].toLowerCase());i.set(e,String(n))}i.set("loading","async"),i.set("callback","__googleMapsCallback__"),o.async=!0,o.src="https://maps.googleapis.com/maps/api/js?"+i.toString(),o.nonce=(null==(r=document.querySelector("script[nonce]"))?void 0:r.nonce)||"",o.onerror=()=>{this.loadingStatus=u.FAILED,this.notifyLoadingStatusListeners(),n(Error("The Google Maps JavaScript API could not load."))},window.__googleMapsCallback__=()=>{this.loadingStatus=u.LOADED,this.notifyLoadingStatusListeners(),t()},window.gm_authFailure=()=>{this.loadingStatus=u.AUTH_FAILURE,this.notifyLoadingStatusListeners()},this.loadingStatus=u.LOADING,this.notifyLoadingStatusListeners(),document.head.append(o)}));google.maps.importLibrary=e=>n().then(()=>google.maps.importLibrary(e))}static notifyLoadingStatusListeners(){for(let e of this.listeners)e(this.loadingStatus)}}c.loadingStatus=u.NOT_LOADED,c.serializedApiParams=void 0,c.listeners=[];let d=["onLoad","onError","apiKey","version","libraries"],h=["children"],g=r.createContext(null),p=e=>{let{children:t}=e,n=l(e,h),{mapInstances:o,addMapInstance:i,removeMapInstance:u,clearMapInstances:p}=function(){let[e,t]=(0,r.useState)({});return{mapInstances:e,addMapInstance:(e,n="default")=>{t(t=>a({},t,{[n]:e}))},removeMapInstance:(e="default")=>{t(t=>l(t,[e].map(s)))},clearMapInstances:()=>{t({})}}}(),{status:f,loadedLibraries:m,importLibrary:v}=function(e){let{onLoad:t,onError:n,apiKey:o,version:i,libraries:s=[]}=e,u=l(e,d),[h,g]=(0,r.useState)(c.loadingStatus),[p,f]=(0,r.useReducer)((e,t)=>e[t.name]?e:a({},e,{[t.name]:t.value}),{}),m=(0,r.useMemo)(()=>null==s?void 0:s.join(","),[s]),v=(0,r.useMemo)(()=>JSON.stringify(a({apiKey:o,version:i},u)),[o,i,u]),b=(0,r.useCallback)(async e=>{var t;if(p[e])return p[e];if(!(null!=(t=google)&&null!=(t=t.maps)&&t.importLibrary))throw Error("[api-provider-internal] importLibrary was called before google.maps.importLibrary was defined.");let n=await window.google.maps.importLibrary(e);return f({name:e,value:n}),n},[p]);return(0,r.useEffect)(()=>{(async()=>{try{let e=a({key:o},u);for(let t of(i&&(e.v=i),(null==m?void 0:m.length)>0&&(e.libraries=m),(void 0===e.channel||e.channel<0||e.channel>999)&&delete e.channel,void 0===e.solutionChannel?e.solutionChannel="GMP_visgl_rgmlibrary_v1_default":""===e.solutionChannel&&delete e.solutionChannel,await c.load(e,e=>g(e)),["core","maps",...s]))await b(t);t&&t()}catch(e){n?n(e):console.error("<ApiProvider> failed to load the Google Maps JavaScript API",e)}})()},[o,m,v]),{status:h,loadedLibraries:p,importLibrary:b}}(n),b=(0,r.useMemo)(()=>({mapInstances:o,addMapInstance:i,removeMapInstance:u,clearMapInstances:p,status:f,loadedLibraries:m,importLibrary:v}),[o,i,u,p,f,m,v]);return r.createElement(g.Provider,{value:b},t)},f={onBoundsChanged:"bounds_changed",onCenterChanged:"center_changed",onClick:"click",onContextmenu:"contextmenu",onDblclick:"dblclick",onDrag:"drag",onDragend:"dragend",onDragstart:"dragstart",onHeadingChanged:"heading_changed",onIdle:"idle",onIsFractionalZoomEnabledChanged:"isfractionalzoomenabled_changed",onMapCapabilitiesChanged:"mapcapabilities_changed",onMapTypeIdChanged:"maptypeid_changed",onMousemove:"mousemove",onMouseout:"mouseout",onMouseover:"mouseover",onProjectionChanged:"projection_changed",onRenderingTypeChanged:"renderingtype_changed",onTilesLoaded:"tilesloaded",onTiltChanged:"tilt_changed",onZoomChanged:"zoom_changed",onCameraChanged:"bounds_changed"},m=["bounds_changed","center_changed","heading_changed","tilt_changed","zoom_changed"],v=["click","contextmenu","dblclick","mousemove","mouseout","mouseover"],b=Object.keys(f),y=new Set(["backgroundColor","clickableIcons","controlSize","disableDefaultUI","disableDoubleClickZoom","draggable","draggableCursor","draggingCursor","fullscreenControl","fullscreenControlOptions","gestureHandling","headingInteractionEnabled","isFractionalZoomEnabled","keyboardShortcuts","mapTypeControl","mapTypeControlOptions","mapTypeId","maxZoom","minZoom","noClear","panControl","panControlOptions","restriction","rotateControl","rotateControlOptions","scaleControl","scaleControlOptions","scrollwheel","streetView","streetViewControl","streetViewControlOptions","styles","tiltInteractionEnabled","zoomControl","zoomControlOptions"]);function E(){var e;return(null==(e=(0,r.useContext)(g))?void 0:e.status)||u.NOT_LOADED}function O(e){return e&&"object"==typeof e&&"lat"in e&&"lng"in e&&Number.isFinite(e.lat)&&Number.isFinite(e.lng)?e:e.toJSON()}let C=()=>r.createElement("div",{style:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:999,display:"flex",flexFlow:"column nowrap",textAlign:"center",justifyContent:"center",fontSize:".8rem",color:"rgba(0,0,0,0.6)",background:"#dddddd",padding:"1rem 1.5rem"}},r.createElement("h2",null,"Error: AuthFailure"),r.createElement("p",null,"A problem with your API key prevents the map from rendering correctly. Please make sure the value of the ",r.createElement("code",null,"APIProvider.apiKey")," prop is correct. Check the error-message in the console for further details."));function L(){return E()===u.LOADED}let w=["id","defaultBounds","defaultCenter","defaultZoom","defaultHeading","defaultTilt","reuseMaps","renderingType","colorScheme"],S=["padding"];class I{static has(e){return this.entries[e]&&this.entries[e].length>0}static pop(e){return this.entries[e]&&this.entries[e].pop()||null}static push(e,t){this.entries[e]||(this.entries[e]=[]),this.entries[e].push(t)}}I.entries={};let T=r.createContext(null),_=e=>{let{children:t,id:n,className:o,style:s}=e,c=(0,r.useContext)(g),d=E();if(!c)throw Error("<Map> can only be used inside an <ApiProvider> component.");let[h,p,_]=function(e,t){let n=L(),[o,i]=(0,r.useState)(null),[s,u]=function(){let[e,t]=(0,r.useState)(null);return[e,(0,r.useCallback)(e=>t(e),[t])]}(),c=function(e){let t=function(){let[,e]=(0,r.useReducer)(e=>e+1,0);return e}(),n=(0,r.useRef)({center:{lat:0,lng:0},heading:0,tilt:0,zoom:0});return(0,r.useEffect)(()=>{if(!e)return;let r=google.maps.event.addListener(e,"bounds_changed",()=>{(function(e,t){let n=e.getCenter(),r=e.getZoom(),o=e.getHeading()||0,i=e.getTilt()||0,a=e.getBounds();n&&a&&Number.isFinite(r)||console.warn("[useTrackedCameraState] at least one of the values from the map returned undefined. This is not expected to happen. Please report an issue at https://github.com/visgl/react-google-maps/issues/new"),Object.assign(t.current,{center:(null==n?void 0:n.toJSON())||{lat:0,lng:0},zoom:r||0,heading:o,tilt:i})})(e,n),t()});return()=>r.remove()},[e,t]),n}(o),{id:d,defaultBounds:h,defaultCenter:g,defaultZoom:p,defaultHeading:f,defaultTilt:m,reuseMaps:v,renderingType:b,colorScheme:y}=e,E=l(e,w),O=void 0!==e.zoom||void 0!==e.defaultZoom,C=void 0!==e.center||void 0!==e.defaultCenter;for(let e of(h||O&&C||console.warn("<Map> component is missing configuration. You have to provide zoom and center (via the `zoom`/`defaultZoom` and `center`/`defaultCenter` props) or specify the region to show using `defaultBounds`. See https://visgl.github.io/react-google-maps/docs/api-reference/components/map#required"),!E.center&&g&&(E.center=g),!E.zoom&&Number.isFinite(p)&&(E.zoom=p),!E.heading&&Number.isFinite(f)&&(E.heading=f),!E.tilt&&Number.isFinite(m)&&(E.tilt=m),Object.keys(E)))void 0===E[e]&&delete E[e];let T=(0,r.useRef)();return(0,r.useEffect)(()=>{let r,o;if(!s||!n)return;let{addMapInstance:u,removeMapInstance:g}=t,{mapId:p}=e,f=`${p||"default"}:${b||"default"}:${y||"LIGHT"}`;if(v&&I.has(f)?(r=(o=I.pop(f)).getDiv(),s.appendChild(r),o.setOptions(E),setTimeout(()=>o.setCenter(o.getCenter()),0)):((r=document.createElement("div")).style.height="100%",s.appendChild(r),o=new google.maps.Map(r,a({},E,b?{renderingType:b}:{},y?{colorScheme:y}:{}))),i(o),u(o,d),h){let{padding:e}=h,t=l(h,S);o.fitBounds(t,e)}else O&&C||o.fitBounds({east:180,west:-180,south:-90,north:90});if(T.current){let{mapId:e,cameraState:t}=T.current;e!==p&&o.setOptions(t)}return()=>{T.current={mapId:p,cameraState:c.current},r.remove(),v?I.push(f,o):google.maps.event.clearInstanceListeners(o),i(null),g(d)}},[s,n,d,e.mapId,e.renderingType,e.colorScheme]),[o,u,c]}(e,c);!function(e,t,n){let o=n.center?O(n.center):null,i=null,a=null;o&&Number.isFinite(o.lat)&&Number.isFinite(o.lng)&&(i=o.lat,a=o.lng);let l=Number.isFinite(n.zoom)?n.zoom:null,s=Number.isFinite(n.heading)?n.heading:null,u=Number.isFinite(n.tilt)?n.tilt:null;(0,r.useLayoutEffect)(()=>{if(!e)return;let n={},r=!1;null!==i&&null!==a&&(t.current.center.lat!==i||t.current.center.lng!==a)&&(n.center={lat:i,lng:a},r=!0),null!==l&&t.current.zoom!==l&&(n.zoom=l,r=!0),null!==s&&t.current.heading!==s&&(n.heading=s,r=!0),null!==u&&t.current.tilt!==u&&(n.tilt=u,r=!0),r&&e.moveCamera(n)})}(h,_,e),function(e,t){for(let n of b){let o=t[n],i=f[n];(0,r.useEffect)(()=>{if(!e||!o)return;let t=google.maps.event.addListener(e,i,t=>{o(function(e,t,n){let r={type:e,map:t,detail:{},stoppable:!1,stop:()=>{}};if(m.includes(e)){let e=t.getCenter(),n=t.getZoom(),o=t.getHeading()||0,i=t.getTilt()||0,a=t.getBounds();return e&&a&&Number.isFinite(n)||console.warn("[createEvent] at least one of the values from the map returned undefined. This is not expected to happen. Please report an issue at https://github.com/visgl/react-google-maps/issues/new"),r.detail={center:(null==e?void 0:e.toJSON())||{lat:0,lng:0},zoom:n||0,heading:o,tilt:i,bounds:(null==a?void 0:a.toJSON())||{north:90,east:180,south:-90,west:-180}},r}if(v.includes(e)){var o;if(!n)throw Error("[createEvent] mouse events must provide a srcEvent");return r.domEvent=n.domEvent,r.stoppable=!0,r.stop=()=>n.stop(),r.detail={latLng:(null==(o=n.latLng)?void 0:o.toJSON())||null,placeId:n.placeId},r}return r}(i,e,t))});return()=>t.remove()},[e,i,o])}}(h,e),function(e,t){let n={};for(let e of Object.keys(t))y.has(e)&&(n[e]=t[e]);!function(e,t){let n=(0,r.useRef)(void 0);n.current&&i(t,n.current)||(n.current=t),(0,r.useEffect)(e,n.current)}(()=>{e&&e.setOptions(n)},[n])}(h,e);let k=function(e,t){let{viewport:n,viewState:o}=t;return(0,r.useLayoutEffect)(()=>{if(!e||!o)return;let{latitude:t,longitude:n,bearing:r,pitch:i,zoom:a}=o;e.moveCamera({center:{lat:t,lng:n},heading:r,tilt:i,zoom:a+1})},[e,o]),!!n}(h,e),P=!!e.controlled;(0,r.useEffect)(()=>{if(h)return k&&h.setOptions({disableDefaultUI:!0}),(k||P)&&h.setOptions({gestureHandling:"none",keyboardShortcuts:!1}),()=>{h.setOptions({gestureHandling:e.gestureHandling,keyboardShortcuts:e.keyboardShortcuts})}},[h,k,P,e.gestureHandling,e.keyboardShortcuts]);let A=e.center?O(e.center):null,N=null,M=null;A&&Number.isFinite(A.lat)&&Number.isFinite(A.lng)&&(N=A.lat,M=A.lng);let D=(0,r.useMemo)(()=>{var t,n,r,o,i;return{center:{lat:null!=(t=N)?t:0,lng:null!=(n=M)?n:0},zoom:null!=(r=e.zoom)?r:0,heading:null!=(o=e.heading)?o:0,tilt:null!=(i=e.tilt)?i:0}},[N,M,e.zoom,e.heading,e.tilt]);(0,r.useLayoutEffect)(()=>{if(!h||!P)return;h.moveCamera(D);let e=h.addListener("bounds_changed",()=>{h.moveCamera(D)});return()=>e.remove()},[h,P,D]);let R=(0,r.useMemo)(()=>a({width:"100%",height:"100%",position:"relative",zIndex:k?-1:0},s),[s,k]),F=(0,r.useMemo)(()=>({map:h}),[h]);return d===u.AUTH_FAILURE?r.createElement("div",{style:a({position:"relative"},o?{}:R),className:o},r.createElement(C,null)):r.createElement("div",a({ref:p,"data-testid":"map",style:o?void 0:R,className:o},n?{id:n}:{}),h?r.createElement(T.Provider,{value:F},t):null)};_.deckGLViewProps=!0;let k=new Set,P=(e=null)=>{let t=(0,r.useContext)(g),{map:n}=(0,r.useContext)(T)||{};if(null===t)return!function(...e){let t=JSON.stringify(e);k.has(t)||(k.add(t),console.error(...e))}("useMap(): failed to retrieve APIProviderContext. Make sure that the <APIProvider> component exists and that the component you are calling `useMap()` from is a sibling of the <APIProvider>."),null;let{mapInstances:o}=t;return null!==e?o[e]||null:n||o.default||null};function A(e,t,n){(0,r.useEffect)(()=>{if(!e||!t||!n)return;let r=google.maps.event.addListener(e,t,n);return()=>r.remove()},[e,t,n])}function N(e,t,n){(0,r.useEffect)(()=>{e&&(e[t]=n)},[e,t,n])}function M(e,t,n){(0,r.useEffect)(()=>{if(e&&t&&n)return e.addEventListener(t,n),()=>e.removeEventListener(t,n)},[e,t,n])}let D=r.createContext(null),R={TOP_LEFT:["0%","0%"],TOP_CENTER:["50%","0%"],TOP:["50%","0%"],TOP_RIGHT:["100%","0%"],LEFT_CENTER:["0%","50%"],LEFT_TOP:["0%","0%"],LEFT:["0%","50%"],LEFT_BOTTOM:["0%","100%"],RIGHT_TOP:["100%","0%"],RIGHT:["100%","50%"],RIGHT_CENTER:["100%","50%"],RIGHT_BOTTOM:["100%","100%"],BOTTOM_LEFT:["0%","100%"],BOTTOM_CENTER:["50%","100%"],BOTTOM:["50%","100%"],BOTTOM_RIGHT:["100%","100%"],CENTER:["50%","50%"]},F=({children:e,styles:t,className:n,anchorPoint:o})=>{let[i,a]=null!=o?o:R.BOTTOM,l=`translate(50%, 100%) translate(-${i}, -${a})`;return r.createElement("div",{style:{transform:l}},r.createElement("div",{className:n,style:t},e))},j=(0,r.forwardRef)((e,t)=>{let{children:n,style:i,className:a,anchorPoint:l}=e,[s,u]=function(e){let[t,n]=(0,r.useState)(null),[o,i]=(0,r.useState)(null),a=P(),l=function(e){let t=L(),n=(0,r.useContext)(g);return(0,r.useEffect)(()=>{t&&n&&n.importLibrary(e)},[t,n,e]),(null==n?void 0:n.loadedLibraries[e])||null}("marker"),{children:s,onClick:u,className:c,onMouseEnter:d,onMouseLeave:h,onDrag:p,onDragStart:f,onDragEnd:m,collisionBehavior:v,clickable:b,draggable:y,position:E,title:O,zIndex:C}=e,w=r.Children.count(s);return(0,r.useEffect)(()=>{if(!a||!l)return;let e=new l.AdvancedMarkerElement;e.map=a,n(e);let t=null;return w>0&&((t=document.createElement("div")).isCustomMarker=!0,e.content=t,i(t)),()=>{var r;e.map=null,null==(r=t)||r.remove(),n(null),i(null)}},[a,l,w]),(0,r.useEffect)(()=>{t&&t.content&&!(w>0)&&(t.content.className=c||"")},[t,c,w]),N(t,"position",E),N(t,"title",null!=O?O:""),N(t,"zIndex",C),N(t,"collisionBehavior",v),(0,r.useEffect)(()=>{t&&(void 0!==y?t.gmpDraggable=y:p||f||m?t.gmpDraggable=!0:t.gmpDraggable=!1)},[t,y,p,m,f]),(0,r.useEffect)(()=>{if(!t)return;let e=void 0!==b||!!u||!!d||!!h;t.gmpClickable=e,e&&null!=t&&t.content&&t.content.nodeType===Node.ELEMENT_NODE&&(t.content.style.pointerEvents="none",t.content.firstElementChild&&(t.content.firstElementChild.style.pointerEvents="all"))},[t,b,u,d,h]),A(t,"click",u),A(t,"drag",p),A(t,"dragstart",f),A(t,"dragend",m),M(null==t?void 0:t.element,"mouseenter",d),M(null==t?void 0:t.element,"mouseleave",h),[t,o]}(e),c=(0,r.useMemo)(()=>s?{marker:s}:null,[s]);return((0,r.useImperativeHandle)(t,()=>s,[s]),u)?r.createElement(D.Provider,{value:c},(0,o.createPortal)(r.createElement(F,{anchorPoint:l,styles:i,className:a},n),u)):null}),x=["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut"];(0,r.forwardRef)((e,t)=>{let n=function(e){let[t,n]=(0,r.useState)(null),o=P(),{onClick:i,onDrag:a,onDragStart:s,onDragEnd:u,onMouseOver:c,onMouseOut:d}=e,h=l(e,x),{position:g,draggable:p}=h;return(0,r.useEffect)(()=>{if(!o){void 0===o&&console.error("<Marker> has to be inside a Map component.");return}let e=new google.maps.Marker(h);return e.setMap(o),n(e),()=>{e.setMap(null),n(null)}},[o]),(0,r.useEffect)(()=>{if(!t)return;let e=google.maps.event;return i&&e.addListener(t,"click",i),a&&e.addListener(t,"drag",a),s&&e.addListener(t,"dragstart",s),u&&e.addListener(t,"dragend",u),c&&e.addListener(t,"mouseover",c),d&&e.addListener(t,"mouseout",d),t.setDraggable(!!p),()=>{e.clearInstanceListeners(t)}},[t,p,i,a,s,u,c,d]),(0,r.useEffect)(()=>{t&&h&&t.setOptions(h)},[t,h]),(0,r.useEffect)(()=>{!p&&g&&t&&t.setPosition(g)},[p,g,t]),t}(e);return(0,r.useImperativeHandle)(t,()=>n,[n]),r.createElement(r.Fragment,null)})}}]);
//# sourceMappingURL=9917-eb3c3e51e72122f4.js.map