1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6535],{90842:function(e,t,n){let r,l;n.d(t,{D5:function(){return eE},_Q:function(){return ez},kY:function(){return eA},lO:function(){return e9},nx:function(){return e$},un:function(){return j}});var o,a=n(14978),i=n(9389);function s(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,r=Object.getOwnPropertySymbols(e);l<r.length;l++)0>t.indexOf(r[l])&&Object.prototype.propertyIsEnumerable.call(e,r[l])&&(n[r[l]]=e[r[l]]);return n}function u(e,t,n,r){return new(n||(n=Promise))(function(l,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function i(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?l(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(a,i)}s((r=r.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;let c=e=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(e)}) will be ignored.`,d=e=>`The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(e)}) will be ignored.`,f=(e,t)=>`Failed to create Trusted Types policy "${e}": ${t instanceof Error?t.message:String(t)}. 2 3If your Content Security Policy uses "require-trusted-types-for 'script'", allow this policy with "trusted-types ${e} google-maps-api-loader google-maps-api#html lit-html". The "google-maps-api-loader", "lit-html", and "google-maps-api#html" policies are required for full Maps JavaScript API execution. Falling back to a string script URL.`,g=()=>{},p=()=>{},m="@googlemaps/js-api-loader",h={createScriptURL:e=>e},v=e=>{var t,n,l,o="The Google Maps JavaScript API",a="google",i="importLibrary",s="__ib__",u=document,c=window,d=c[a]||(c[a]={}),p=d.maps||(d.maps={}),v=new Set,y=new URLSearchParams,b=()=>t||(t=new Promise(async(i,c)=>{var d,b;for(l in await (n=u.createElement("script")),y.set("libraries",[...v]+""),e)y.set(l.replace(/[A-Z]/g,e=>"_"+e[0].toLowerCase()),e[l]);y.set("callback",a+".maps."+s),d=n,b="https://maps.googleapis.com/maps/api/js?"+y,d.src=(function(){if(r)return r;let e=globalThis.trustedTypes;if(!e)return r=h;try{r=e.createPolicy(m,{createScriptURL:e=>e})}catch(e){g(f(m,e)),r=h}return r})().createScriptURL(b),p[s]=i,n.onerror=()=>t=c(Error(o+" could not load.")),n.nonce=u.querySelector("script[nonce]")?.nonce||"",u.head.append(n)}));p[i]?console.warn(o+" only loads once. Ignoring:",e):p[i]=(e,...t)=>v.add(e)&&b().then(()=>p[i](e,...t))},y=!1;function b(e){if(y){g(c(e));return}e.apiKey&&(g("The 'apiKey' parameter was used in setOptions(), but 'key' is the correct parameter name. Please update your configuration."),e.key||(e.key=e.apiKey)),function(e){let t=!!window.google?.maps?.importLibrary;t&&p(d(e)),t||v(e)}(e),y=!0}async function E(e){if(y||g("No options were set before calling importLibrary. Make sure to configure the loader using setOptions()."),!window?.google?.maps?.importLibrary)throw Error("google.maps.importLibrary is not installed.");return await google.maps.importLibrary(e)}let O={NOT_LOADED:"NOT_LOADED",LOADING:"LOADING",LOADED:"LOADED",FAILED:"FAILED",AUTH_FAILURE:"AUTH_FAILURE"},C=["gmp_visgl_reactgooglemaps_v1.9.0"],w=a.createContext(null),A=O.NOT_LOADED,S=new Set;function k(e){e!==A&&(A=e,S.forEach(e=>e(A)))}let j=e=>{let{children:t}=e,n=s(e,["children"]),{mapInstances:r,addMapInstance:o,removeMapInstance:i,clearMapInstances:c}=function(){let[e,t]=(0,a.useState)({});return{mapInstances:e,addMapInstance:(e,n="default")=>{t(t=>Object.assign(Object.assign({},t),{[n]:e}))},removeMapInstance:(e="default")=>{t(t=>(t[e],s(t,["symbol"==typeof e?e:e+""])))},clearMapInstances:()=>{t({})}}}(),{map3dInstances:d,addMap3DInstance:f,removeMap3DInstance:g,clearMap3DInstances:p}=function(){let[e,t]=(0,a.useState)({});return{map3dInstances:e,addMap3DInstance:(e,n="default")=>{t(t=>Object.assign(Object.assign({},t),{[n]:e}))},removeMap3DInstance:(e="default")=>{t(t=>(t[e],s(t,["symbol"==typeof e?e:e+""])))},clearMap3DInstances:()=>{t({})}}}(),{status:m,loadedLibraries:h,importLibrary:v}=function(e){let{onLoad:t,onError:n,apiKey:r,version:o,libraries:i=[],region:s,language:c,authReferrerPolicy:d,channel:f,solutionChannel:g,fetchAppCheckToken:p}=e,[m,h]=(0,a.useState)(A),[v,y]=(0,a.useReducer)((e,t)=>e[t.name]?e:Object.assign(Object.assign({},e),{[t.name]:t.value}),{}),C=(0,a.useMemo)(()=>JSON.stringify({apiKey:r,version:o,libraries:i.join(","),region:s,language:c,authReferrerPolicy:d,channel:f,solutionChannel:g}),[r,o,i,s,c,d,f,g]),w=(0,a.useCallback)(e=>u(this,void 0,void 0,function*(){if(v[e])return v[e];let t=yield E(e);return y({name:e,value:t}),t}),[v]);return(0,a.useEffect)(()=>(S.add(h),h(A),()=>{S.delete(h)}),[]),(0,a.useEffect)(()=>{u(this,void 0,void 0,function*(){var e,a;try{l&&l!==C&&console.warn("The Google Maps JavaScript API has already been loaded with different parameters. The new parameters will be ignored. If you need to use different parameters, please refresh the page.");let n=["core","maps",...i],u=Object.fromEntries(Object.entries({key:r,v:o,libraries:i,region:s,language:c,authReferrerPolicy:d}).filter(([,e])=>void 0!==e));if(void 0!==f&&f>=0&&f<=999&&(u.channel=String(f)),void 0===g?u.solutionChannel="GMP_visgl_rgmlibrary_v1_default":""!==g&&(u.solutionChannel=g),null===(a=null===(e=window.google)||void 0===e?void 0:e.maps)||void 0===a?void 0:a.importLibrary){let e=!l;e&&(l=C,b(u)),yield Promise.all(n.map(e=>w(e))),e&&k(O.LOADED),t&&t();return}if(A===O.LOADING||A===O.LOADED){A===O.LOADED&&t&&t();return}l=C,k(O.LOADING),b(u),yield Promise.all(n.map(e=>w(e))),k(O.LOADED),t&&t()}catch(e){k(O.FAILED),n?n(e):console.error("The Google Maps JavaScript API failed to load.",e)}})},[C,t,n,w,i]),(0,a.useEffect)(()=>
3{if(m!==O.LOADED)return;let e=google.maps.Settings.getInstance();p&&(e.fetchAppCheckToken=p)},[m,p]),{status:m,loadedLibraries:v,importLibrary:w}}(n),y=(0,a.useMemo)(()=>n.disableUsageAttribution?null:C,[n.disableUsageAttribution]),j=(0,a.useMemo)(()=>({mapInstances:r,addMapInstance:o,removeMapInstance:i,clearMapInstances:c,map3dInstances:d,addMap3DInstance:f,removeMap3DInstance:g,clearMap3DInstances:p,status:m,loadedLibraries:h,importLibrary:v,internalUsageAttributionIds:y}),[r,o,i,c,d,f,g,p,m,h,v,y]);return a.createElement(w.Provider,{value:j},t)},L={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"},P=["bounds_changed","center_changed","heading_changed","tilt_changed","zoom_changed"],M=["click","contextmenu","dblclick","mousemove","mouseout","mouseover"],I=Object.keys(L);function x(e,t){let n=(0,a.useRef)(e);return t(e,n.current)||(n.current=e),n.current}let{getOwnPropertyNames:N,getOwnPropertySymbols:D}=Object,{hasOwnProperty:T}=Object.prototype;function _(e,t){return function(n,r,l){return e(n,r,l)&&t(n,r,l)}}function R(e){return function(t,n,r){if(!t||!n||"object"!=typeof t||"object"!=typeof n)return e(t,n,r);let{cache:l}=r,o=l.get(t),a=l.get(n);if(o&&a)return o===n&&a===t;l.set(t,n),l.set(n,t);let i=e(t,n,r);return l.delete(t),l.delete(n),i}}function F(e){return N(e).concat(D(e))}let z=Object.hasOwn||((e,t)=>T.call(e,t)),{getOwnPropertyDescriptor:U,keys:H}=Object,q=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};function J(e,t){return e===t}function B(e,t){return e.byteLength===t.byteLength&&et(new Uint8Array(e),new Uint8Array(t))}function $(e,t,n){let r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function G(e,t){return e.byteLength===t.byteLength&&et(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function Z(e,t){return q(e.getTime(),t.getTime())}function W(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function V(e,t,n){let r,l;let o=e.size;if(o!==t.size)return!1;if(!o)return!0;let a=Array(o),i=e.entries(),s=0;for(;(r=i.next())&&!r.done;){let o=t.entries(),i=!1,u=0;for(;(l=o.next())&&!l.done;){if(a[u]){u++;continue}let o=r.value,c=l.value;if(n.equals(o[0],c[0],s,u,e,t,n)&&n.equals(o[1],c[1],o[0],c[0],e,t,n)){i=a[u]=!0;break}u++}if(!i)return!1;s++}return!0}function K(e,t,n){let r=H(e),l=r.length;if(H(t).length!==l)return!1;for(;l-- >0;)if(!er(e,t,n,r[l]))return!1;return!0}function Y(e,t,n){let r,l,o;let a=F(e),i=a.length;if(F(t).length!==i)return!1;for(;i-- >0;)if(!er(e,t,n,r=a[i])||(l=U(e,r),o=U(t,r),(l||o)&&(!l||!o||l.configurable!==o.configurable||l.enumerable!==o.enumerable||l.writable!==o.writable)))return!1;return!0}function Q(e,t){return q(e.valueOf(),t.valueOf())}function X(e,t){return e.source===t.source&&e.flags===t.flags}function ee(e,t,n){let r,l;let o=e.size;if(o!==t.size)return!1;if(!o)return!0;let a=Array(o),i=e.values();for(;(r=i.next())&&!r.done;){let o=t.values(),i=!1,s=0;for(;(l=o.next())&&!l.done;){if(!a[s]&&n.equals(r.value,l.value,r.value,l.value,e,t,n)){i=a[s]=!0;break}s++}if(!i)return!1}return!0}function et(e,t){let n=e.byteLength;if(t.byteLength!==n||e.byteOffset!==t.byteOffset)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function en(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function er(e,t,n,r){return("_owner"===r||"__o"===r||"__v"===r)&&(!!e.$$typeof||!!t.$$typeof)||z(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}let el=Object.prototype.toString,eo=ea();function ea(e={}){let{circular:t=!1,createInternalComparator:n,createState:r,strict:l=!1}=e,o=function(e){let t=function({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:l,areFunctionsEqual:o,areMapsEqual:a,areNumbersEqual:i,areObjectsEqual:s,arePrimitiveWrappersEqual:u,areRegExpsEqual:c,areSetsEqual:d,areTypedArraysEqual:f,areUrlsEqual:g}){return{"[object Arguments]":s,"[object Array]":t,"[object ArrayBuffer]":e,"[object AsyncGeneratorFunction]":o,"[object BigInt]":i,"[object BigInt64Array
3]":f,"[object BigUint64Array]":f,"[object Boolean]":u,"[object DataView]":n,"[object Date]":r,"[object Error]":l,"[object Float16Array]":f,"[object Float32Array]":f,"[object Float64Array]":f,"[object Function]":o,"[object GeneratorFunction]":o,"[object Int8Array]":f,"[object Int16Array]":f,"[object Int32Array]":f,"[object Map]":a,"[object Number]":u,"[object Object]":(e,t,n)=>"function"!=typeof e.then&&"function"!=typeof t.then&&s(e,t,n),"[object RegExp]":c,"[object Set]":d,"[object String]":u,"[object URL]":g,"[object Uint8Array]":f,"[object Uint8ClampedArray]":f,"[object Uint16Array]":f,"[object Uint32Array]":f}}(e),{areArraysEqual:n,areDatesEqual:r,areFunctionsEqual:l,areMapsEqual:o,areNumbersEqual:a,areObjectsEqual:i,areRegExpsEqual:s,areSetsEqual:u,getUnsupportedCustomComparator:c}=e;return function(e,d,f){if(e===d)return!0;if(null==e||null==d)return!1;let g=typeof e;if(g!==typeof d)return!1;if("object"!==g)return"number"===g||"bigint"===g?a(e,d,f):"function"===g&&l(e,d,f);let p=e.constructor;if(p!==d.constructor)return!1;if(p===Object)return i(e,d,f);if(p===Array)return n(e,d,f);if(p===Date)return r(e,d,f);if(p===RegExp)return s(e,d,f);if(p===Map)return o(e,d,f);if(p===Set)return u(e,d,f);if(p===Promise)return!1;if(Array.isArray(e))return n(e,d,f);let m=el.call(e),h=t[m];if(h)return h(e,d,f);let v=c&&c(e,d,f,m);return!!v&&v(e,d,f)}}(function({circular:e,createCustomConfig:t,strict:n}){let r={areArrayBuffersEqual:B,areArraysEqual:n?Y:$,areDataViewsEqual:G,areDatesEqual:Z,areErrorsEqual:W,areFunctionsEqual:J,areMapsEqual:n?_(V,Y):V,areNumbersEqual:q,areObjectsEqual:n?Y:K,arePrimitiveWrappersEqual:Q,areRegExpsEqual:X,areSetsEqual:n?_(ee,Y):ee,areTypedArraysEqual:n?_(et,Y):et,areUrlsEqual:en,getUnsupportedCustomComparator:void 0};if(t&&(r=Object.assign({},r,t(r))),e){let e=R(r.areArraysEqual),t=R(r.areMapsEqual),n=R(r.areObjectsEqual),l=R(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:e,areMapsEqual:t,areObjectsEqual:n,areSetsEqual:l})}return r}(e)),a=n?n(o):function(e,t,n,r,l,a,i){return o(e,t,i)};return function({circular:e,comparator:t,createState:n,equals:r,strict:l}){if(n)return function(o,a){let{cache:i=e?new WeakMap:void 0,meta:s}=n();return t(o,a,{cache:i,equals:r,meta:s,strict:l})};if(e)return function(e,n){return t(e,n,{cache:new WeakMap,equals:r,meta:void 0,strict:l})};let o={cache:void 0,equals:r,meta:void 0,strict:l};return function(e,n){return t(e,n,o)}}({circular:t,comparator:o,createState:r,equals:a,strict:l})}function ei(e,t){(0,a.useEffect)(e,[x(t,eo)])}ea({strict:!0}),ea({circular:!0}),ea({circular:!0,strict:!0}),ea({createInternalComparator:()=>q}),ea({strict:!0,createInternalComparator:()=>q}
3),ea({circular:!0,createInternalComparator:()=>q}),ea({circular:!0,createInternalComparator:()=>q,strict:!0});let es=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 eu(){var e;return(null===(e=(0,a.useContext)(w))||void 0===e?void 0:e.status)||O.NOT_LOADED}function ec(e,t){if(!e||!t)return!1;let n=ed(e),r=ed(t);return n.lat===r.lat&&n.lng===r.lng}function ed(e){return e&&"object"==typeof e&&"lat"in e&&"lng"in e&&Number.isFinite(e.lat)&&Number.isFinite(e.lng)?e:e.toJSON()}function ef(e){if("north"in e&&"south"in e&&"east"in e&&"west"in e)return e;
3let t=e.getNorthEast().toJSON(),n=e.getSouthWest().toJSON();return{north:t.lat,east:t.lng,south:n.lat,west:n.lng}}function eg(e,t){if(!e||!t)return e===t;let n="getArray"in t?t.getArray():t;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(!ec(e[t],n[t]))return!1;return!0}let ep=()=>a.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"}},a.createElement("h2",null,"Error: AuthFailure"),a.createElement("p",null,"A problem with your API key prevents the map from rendering correctly. Please make sure the value of the ",a.createElement("code",null,"APIProvider.apiKey")," prop is correct. Check the error-message in the console for further details."));function em(){let[e,t]=(0,a.useState)(null);return[e,(0,a.useCallback)(e=>t(e),[t])]}function eh(){return eu()===O.LOADED}function ev(){let[,e]=(0,a.useReducer)(e=>e+1,0);return e}class ey{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)}}ey.entries={};let eb=a.createContext(null),eE=e=>{let{children:t,id:n,className:r,style:l}=e,o=(0,a.useContext)(w),i=eu();if(!o)throw Error("<Map> can only be used inside an <ApiProvider> component.");let[u,c,d]=function(e,t){let n=eh(),[r,l]=(0,a.useState)(null),[o,i]=em(),u=function(e){let t=ev(),n=(0,a.useRef)({center:{lat:0,lng:0},heading:0,tilt:0,zoom:0});return(0,a.useEffect)(()=>{if(!e)return;let r=google.maps.event.addListener(e,"bounds_changed",()=>{(function(e,t){let n=e.getCenter(),r=e.getZoom(),l=e.getHeading()||0,o=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:l,tilt:o})})(e,n),t()});return()=>r.remove()},[e,t]),n}(r),{id:c,defaultBounds:d,defaultCenter:f,defaultZoom:g,defaultHeading:p,defaultTilt:m,reuseMaps:h,renderingType:v,colorScheme:y}=e,b=s(e,["id","defaultBounds","defaultCenter","defaultZoom","defaultHeading","defaultTilt","reuseMaps","renderingType","colorScheme"]),E=void 0!==e.zoom||void 0!==e.defaultZoom,O=void 0!==e.center||void 0!==e.defaultCenter;d||E&&O||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"),!b.center&&f&&(b.center=f),!b.zoom&&Number.isFinite(g)&&(b.zoom=g),!b.heading&&Number.isFinite(p)&&(b.heading=p),!b.tilt&&Number.isFinite(m)&&(b.tilt=m);let C=b.internalUsageAttributionIds;for(let e of(null==C?b.internalUsageAttributionIds=t.internalUsageAttributionIds:b.internalUsageAttributionIds=[...t.internalUsageAttributionIds||[],...C],Object.keys(b)))void 0===b[e]&&delete b[e];let w=(0,a.useRef)(void 0);return(0,a.useEffect)(()=>{let r,a;if(!o||!n)return;let{addMapInstance:i,removeMapInstance:f}=t,{mapId:g}=e,p=`${g||"default"}:${v||"default"}:${y||"LIGHT"}`,m=h&&ey.has(p)?ey.pop(p):null,C=null==m?void 0:m.getDiv(),A=m&&C instanceof Node?m:null;if(A?(a=A,r=C,o.appendChild(r),a.setOptions(b),setTimeout(()=>a.moveCamera({}),0)):(m&&google.maps.event.clearInstanceListeners(m),(r=document.createElement("div")).style.height="100%",o.appendChild(r),a=new google.maps.Map(r,Object.assign(Object.assign(Object.assign({},b),v?{renderingType:v}:{}),y?{colorScheme:y}:{}))),l(a),i(a,c),d){let{padding:e}=d,t=s(d,["padding"]);a.fitBounds(t,e)}else E&&O||a.fitBounds({east:180,west:-180,south:-90,north:90});if(w.current){let{mapId:e,cameraState:t}=w.current;e!==g&&a.moveCamera(t)}return()=>{w.current={mapId:g,cameraState:u.current},r.remove(),h?ey.push(p,a):google.maps.event.clearInstanceListeners(a),l(null),f(c)}},[o,n,c,e.mapId,e.renderingType,e.colorScheme]),[r,i,u]}(e,o);!function(e,t,n){let r=n.center?ed(n.center):null,l=null,o=null;r&&Number.isFinite(r.lat)&&Number.isFinite(r.lng)&&(l=r.lat,o=r.lng);let i=Number.isFinite(n.zoom)?n.zoom:null,s=Number.isFinite(n.heading)?n.heading:null,u=Number.isFinite(n.tilt)?n.tilt:null;(0,a.useLayoutEffect)(()=>
3{if(!e)return;let n={},r=!1;null!==l&&null!==o&&(t.current.center.lat!==l||t.current.center.lng!==o)&&(n.center={lat:l,lng:o},r=!0),null!==i&&t.current.zoom!==i&&(n.zoom=i,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)})}(u,d,e),function(e,t){for(let n of I){let r=t[n],l=L[n];(0,a.useEffect)(()=>{if(!e||!r)return;let t=google.maps.event.addListener(e,l,t=>{r(function(e,t,n){var r;let l={type:e,map:t,detail:{},stoppable:!1,stop:()=>{}};if(P.includes(e)){let e=t.getCenter(),n=t.getZoom(),r=t.getHeading()||0,o=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"),l.detail={center:(null==e?void 0:e.toJSON())||{lat:0,lng:0},zoom:n||0,heading:r,tilt:o,bounds:(null==a?void 0:a.toJSON())||{north:90,east:180,south:-90,west:-180}},l}if(M.includes(e)){if(!n)throw Error("[createEvent] mouse events must provide a srcEvent");return l.domEvent=n.domEvent,l.stoppable=!0,l.stop=()=>n.stop(),l.detail={latLng:(null===(r=n.latLng)||void 0===r?void 0:r.toJSON())||null,placeId:n.placeId},l}return l}(l,e,t))});return()=>t.remove()},[e,l,r])}}(u,e),function(e,t){let n={};for(let e of Object.keys(t))es.has(e)&&(n[e]=t[e]);ei(()=>{e&&e.setOptions(n)},[n])}(u,e);let f=function(e,t){let{viewport:n,viewState:r}=t;return(0,a.useLayoutEffect)(()=>{if(!e||!r)return;let{latitude:t,longitude:n,bearing:l,pitch:o,zoom:a}=r;e.moveCamera({center:{lat:t,lng:n},heading:l,tilt:o,zoom:a+1})},[e,r]),!!n}(u,e),g=!!e.controlled;(0,a.useEffect)(()=>{if(u)return f&&u.setOptions({disableDefaultUI:!0}),(f||g)&&u.setOptions({gestureHandling:"none",keyboardShortcuts:!1}),()=>{u.setOptions({gestureHandling:e.gestureHandling,keyboardShortcuts:e.keyboardShortcuts})}},[u,f,g,e.gestureHandling,e.keyboardShortcuts]);let p=e.center?ed(e.center):null,m=null,h=null;p&&Number.isFinite(p.lat)&&Number.isFinite(p.lng)&&(m=p.lat,h=p.lng);let v=(0,a.useMemo)(()=>{var t,n,r;return{center:{lat:null!=m?m:0,lng:null!=h?h:0},zoom:null!==(t=e.zoom)&&void 0!==t?t:0,heading:null!==(n=e.heading)&&void 0!==n?n:0,tilt:null!==(r=e.tilt)&&void 0!==r?r:0}},[m,h,e.zoom,e.heading,e.tilt]);(0,a.useLayoutEffect)(()=>{if(!u||!g)return;u.moveCamera(v);let e=u.addListener("bounds_changed",()=>{u.moveCamera(v)});return()=>e.remove()},[u,g,v]);let y=(0,a.useMemo)(()=>Object.assign({width:"100%",height:"100%",position:"relative",zIndex:f?-1:0},l),[l,f]),b=(0,a.useMemo)(()=>({map:u}),[u]);return i===O.AUTH_FAILURE?a.createElement("div",{style:Object.assign({position:"relative"},r?{}:y),className:r},a.createElement(ep,null)):a.createElement("div",Object.assign({ref:c,"data-testid":"map",style:r?void 0:y,className:r},n?{id:n}:{}),u?a.createElement(eb.Provider,{value:b},t):null)};eE.deckGLViewProps=!0;let eO=new Set;function eC(...e){let t=JSON.stringify(e);eO.has(t)||(eO.add(t),console.error(...e))}let ew=(e=null)=>{let t=(0,a.useContext)(w),{map:n}=(0,a.useContext)(eb)||{};if(null===t)return eC("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:r}=t;return null!==e?r[e]||null:n||r.default||null};function eA(e){var t;let n=eh(),r=(0,a.useContext)(w);return(0,a.useEffect)(()=>{n&&r&&r.importLibrary(e)},[n,r,e]),null!==(t=null==r?void 0:r.loadedLibraries[e])&&void 0!==t?t:null}let eS=Object.assign({},o||(o=n.t(a,2))),ek=eS.useInsertionEffect,ej=ek&&ek!==eS.useLayoutEffect?ek:e=>{e()};function eL(){throw Error("useEffectEvent: invalid call during rendering.")}let eP=function(e){let t=(0,a.useRef)(eL);return ej(()=>{t.current=e},[e]),(...e)=>t.current(...e)},eM=()=>{};function eI(e,t,n){let r=eP(null!=n?n:eM),l=!!n;(0,a.useEffect)(()=>{if(!e||!t||!l)return;let n=google.maps.event.addListener(e,t,r);return()=>n.remove()},[e,t,l])}function ex(e,t,n){(0,a.useEffect)(()=>{e&&(e[t]=n)},[e,t,n])}let eN=()=>{};function eD(e,t,n){let r=eP(null!=n?n:eN),l=!!n;(0,a.useEffect)(()=>
3{if(e&&t&&l)return e.addEventListener(t,r),()=>e.removeEventListener(t,r)},[e,t,l])}class eT{constructor(){this.renderedStyles=new Set,this.styleElement=null}getStyleElement(){return this.styleElement||(this.styleElement=document.createElement("style"),this.styleElement.setAttribute("data-rgm-anchor-styles",""),document.head.appendChild(this.styleElement)),this.styleElement}addAdvancedMarkerPointerEventsOverwrite(){if(this.renderedStyles.has("marker-pointer-events"))return;let e=this.getStyleElement();e.textContent+=` 4 gmp-advanced-marker[data-origin='rgm'] { 5 pointer-events: none !important; 6 } 7 `,this.renderedStyles.add("marker-pointer-events")}cleanup(){this.styleElement&&(this.styleElement.remove(),this.styleElement=null,this.renderedStyles.clear())}}let e_=new eT,eR=a.createContext(null),eF={BOTTOM:["50%","100%"]},ez=(0,a.forwardRef)((e,t)=>{let{children:n,style:r,className:l,anchorPoint:o}=e,[s,u]=function(e){var t;let[n,r]=(0,a.useState)(null),[l,o]=(0,a.useState)(null),i=ew(),s=eA("marker"),{children:u,onClick:c,onKeyDown:d,onKeyUp:f,className:g,onMouseEnter:p,onMouseLeave:m,onDrag:h,onDragStart:v,onDragEnd:y,collisionBehavior:b,clickable:E,draggable:O,position:C,title:w,zIndex:A,anchorPoint:S,anchorLeft:k,anchorTop:j}=e,L=a.Children.count(u);return(0,a.useEffect)(()=>{if(!i||!s)return;let e=new s.AdvancedMarkerElement;e.map=i,r(e);let t=null;return L>0&&(t=document.createElement("div"),e.content=t,o(t)),()=>{e.map=null,null==t||t.remove(),r(null),o(null)}},[i,s,L]),(0,a.useEffect)(()=>{(null==n?void 0:n.content)&&eU(n.content)&&!(L>0)&&(n.content.className=null!=g?g:"")},[n,g,L]),t=L>0,(0,a.useEffect)(()=>{if(!n||!t)return;let e=function(e,t){var n;if(!(null===(n=null==google?void 0:google.maps)||void 0===n?void 0:n.version))return;let r=google.maps.version.split("."),l=parseInt(r[0],10),o=parseInt(r[1],10);return l>3||3===l&&o>=62}(0,0),r=n.content;if(r&&eU(r)){if(void 0!==k||void 0!==j){e||console.warn(`AdvancedMarker: The anchorLeft and anchorTop props are only supported in Google Maps API version 3.62 and above. The current version is ${google.maps.version}.`),n.anchorLeft=k,n.anchorTop=j,void 0!==S&&console.warn("AdvancedMarker: the anchorPoint prop is ignored when anchorLeft and/or anchorTop are set.");return}if(void 0!==S){let[t,l]=null!=S?S:eF.BOTTOM,o=`calc(-1 * ${t})`,a=`calc(-1 * ${l})`;e?(n.anchorLeft=o,n.anchorTop=a,r.style.transform=""):(r.style.transform=`translate(50%, 100%) translate(${o}, ${a})`,n.dataset.origin="rgm",e_.addAdvancedMarkerPointerEventsOverwrite())}}},[n,S,k,j,t]),ex(n,"position",C),ex(n,"title",null!=w?w:""),ex(n,"zIndex",A),ex(n,"collisionBehavior",b),(0,a.useEffect)(()=>{n&&(void 0!==O?n.gmpDraggable=O:h||v||y?n.gmpDraggable=!0:n.gmpDraggable=!1)},[n,O,h,y,v]),(0,a.useEffect)(()=>{if(!n)return;let e=void 0!==E?E:!!c||!!d||!!f||!!p||!!m;n.gmpClickable=e,(null==n?void 0:n.content)&&eU(n.content)&&(n.content.style.pointerEvents=e?"all":"none",n.content.style.cursor=e&&c?"pointer":"")},[n,E,c,d,f,p,m]),eI(n,"drag",h),eI(n,"dragstart",v),eI(n,"dragend",y),eD(n,"gmp-click",c),eD(n,"keydown",d),eD(n,"keyup",f),eD(n,"mouseenter",p),eD(n,"mouseleave",m),[n,l]}(e),c=(0,a.useMemo)(()=>s?{marker:s}:null,[s]);return((0,a.useImperativeHandle)(t,()=>s,[s]),u)?a.createElement(eR.Provider,{value:c},(0,i.createPortal)(a.createElement(eH,{anchorPoint:o,styles:r,className:l},n),u)):null});function eU(e){return e.nodeType===Node.ELEMENT_NODE}ez.displayName="AdvancedMarker";let eH=({children:e,styles:t,className:n})=>a.createElement("div",{className:n,style:t},e);function eq(e,t,n){if(null!=t&&"object"!=typeof t)throw Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.");let r=e.style;if(null==n){if(null==t)return;for(let e in t)t.hasOwnProperty(e)&&eJ(r,e,t[e]);return}for(let e in n)n.hasOwnProperty(e)&&(null==t||!t.hasOwnProperty(e))&&(0===e.indexOf("--")?r.setProperty(e,""):"float"===e?r.cssFloat="":r[e]="");if(null!=t)for(let e in t){let l=t[e];t.hasOwnProperty(e)&&n[e]!==l&&eJ(r,e,l)}}function eJ(e,t,n){let r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||eB.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}(0,a.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:l,onDrag:o,onDragStart:i,onDragEnd:u,onMouseOver:c,onMouseOut:d,onRadiusChanged:f,onCenterChanged:g,center:p,defaultCenter:m,radius:h,defaultRadius:v}=e,y=s(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onRadiusChanged","onCenterChanged","center","defaultCenter","radius","defaultRadius"]),[b,E]=(0,a.useState)(null),O=ew(),C=x(Object.assign(Object.assign({},y),{clickable:null!==(t=y.clickable)&&void 0!==t?t:!!l,draggable:null!==(n=y.draggable)&&void 0!==n?n:!!(o||i||u||g),editable:null!==(r=y.editable)&&void 0!==r?r:!!f}),eo);return(0,a.useEffect)(()=>
7{if(!O){void 0===O&&console.error("<Circle> has to be inside a Map component.");return}let e=new google.maps.Circle(Object.assign(Object.assign({},C),{center:null!=p?p:m,radius:null!=h?h:v}));return e.setMap(O),E(e),()=>{e.setMap(null),E(null)}},[O]),eI(b,"click",l),eI(b,"drag",o),eI(b,"dragstart",i),eI(b,"dragend",u),eI(b,"mouseover",c),eI(b,"mouseout",d),eI(b,"radius_changed",f?()=>{let e=null==b?void 0:b.getRadius();void 0!==e&&f(e)}:null),eI(b,"center_changed",g?()=>{g(null==b?void 0:b.getCenter())}:null),(0,a.useEffect)(()=>{b&&b.setOptions(C)},[b,C]),(0,a.useEffect)(()=>{b&&p&&!ec(p,b.getCenter())&&b.setCenter(p)},[b,p]),(0,a.useEffect)(()=>{b&&void 0!==h&&h!==b.getRadius()&&b.setRadius(h)},[b,h]),b}(e);return(0,a.useImperativeHandle)(t,()=>n,[n]),a.createElement(a.Fragment,null)}).displayName="Circle";let eB=new Set(["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth"]),e$=e=>{let{children:t,headerContent:n,style:r,className:l,pixelOffset:o,anchor:u,shouldFocus:c,onClose:d,onCloseClick:f}=e,g=s(e,["children","headerContent","style","className","pixelOffset","anchor","shouldFocus","onClose","onCloseClick"]),p=eA("maps"),[m,h]=(0,a.useState)(null),v=(0,a.useRef)(null),y=(0,a.useRef)(null),b=x(g,eo);(0,a.useEffect)(()=>{if(!p)return;v.current=document.createElement("div"),y.current=document.createElement("div");let e=Object.assign({},b);o&&(e.pixelOffset=new google.maps.Size(o[0],o[1])),n&&(e.headerContent="string"==typeof n?n:y.current);let t=new google.maps.InfoWindow(e);return t.setContent(v.current),h(t),()=>{var e,n;t.setContent(null),null===(e=v.current)||void 0===e||e.remove(),null===(n=y.current)||void 0===n||n.remove(),v.current=null,y.current=null,h(null)}},[p]);let E=(0,a.useRef)(null);(0,a.useLayoutEffect)(()=>{m&&v.current&&(eq(v.current,r||null,E.current),E.current=r||null,l!==v.current.className&&(v.current.className=l||""))},[m,l,r]),(0,a.useEffect)(()=>{if(!m)return;let e=Object.assign({},b);o?e.pixelOffset=new google.maps.Size(o[0],o[1]):e.pixelOffset=null,n?e.headerContent="string"==typeof n?n:y.current:e.headerContent=null,m.setOptions(e)},[b,o,n]),eI(m,"close",d),eI(m,"closeclick",f);let O=ew();return(0,a.useEffect)(()=>{var e;if(!O||!m||null===u)return;let t=!!u,n={map:O};if(u&&(n.anchor=u,void 0!==u.content&&u.content instanceof Element)){let t=null==u?void 0:u.getBoundingClientRect();if(t&&"rgm"===u.dataset.origin){let n=null===(e=u.content.firstElementChild)||void 0===e?void 0:e.firstElementChild,r=null==n?void 0:n.getBoundingClientRect(),l=r.x-t.x+(r.width-t.width)/2,a=r.y-t.y,i=Object.assign({},b);i.pixelOffset=new google.maps.Size(o?o[0]+l:l,o?o[1]+a:a),m.setOptions(i)}}return void 0!==c&&(n.shouldFocus=c),m.open(n),()=>{t&&m.set("anchor",null),m.close()}},[m,u,O,c,b,o]),a.createElement(a.Fragment,null,v.current&&(0,i.createPortal)(t,v.current),null!==y.current&&(0,i.createPortal)(n,y.current))};function eG(e){let t=e.getPaths(),n=[];for(let e=0;e<t.getLength();e++)n.push(t.getAt(e).getArray());return n}(0,a.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:l,onDrag:o,onDragStart:i,onDragEnd:u,onMouseOver:c,onMouseOut:d,onPathsChanged:f,polygon:g,encodedPaths:p,paths:m,defaultPaths:h}=e,v=s(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onPathsChanged","polygon","encodedPaths","paths","defaultPaths"]),[y,b]=(0,a.useState)(null),E=ew(),O=eA("geometry"),C=(0,a.useRef)(!1),w=x(Object.assign(Object.assign({},v),{clickable:null!==(t=v.clickable)&&void 0!==t?t:!!l,draggable:null!==(n=v.draggable)&&void 0!==n?n:!!(o||i||u||f),editable:null!==(r=v.editable)&&void 0!==r?r:!!f}),eo);return(0,a.useEffect)(()=>{let e;if(!E){void 0===E&&console.error("<Polygon> has to be inside a Map component.");return}if(g){e=g;let t=null!=m?m:h;t&&Array.isArray(t)&&e.setPaths(t),e.setOptions(w)}else{let t=null!=m?m:h,n=Object.assign({},w);t&&Array.isArray(t)&&(n.paths=t),e=new google.maps.Polygon(n)}return e.setMap(E),b(e),()=>{e.setMap(null),b(null)}},[E,g]),eI(y,"click",l),eI(y,"drag",o),eI(y,"dragstart",i),eI(y,"mouseover",c),eI(y,"mouseout",d),eI(y,"dragend",e=>{null==u||u(e),f&&y&&!C.current&&f(eG(y))}),(0,a.useEffect)(()=>
7{if(!y||!f)return;let e=[],t=y.getPaths();if("function"!=typeof t.getLength||"function"!=typeof t.getAt)return;let n=()=>{C.current||f(eG(y))},r=t=>{e.push(google.maps.event.addListener(t,"insert_at",n)),e.push(google.maps.event.addListener(t,"remove_at",n)),e.push(google.maps.event.addListener(t,"set_at",n))};for(let e=0;e<t.getLength();e++)r(t.getAt(e));return e.push(google.maps.event.addListener(t,"insert_at",e=>{r(t.getAt(e)),n()})),e.push(google.maps.event.addListener(t,"set_at",e=>{r(t.getAt(e)),n()})),e.push(google.maps.event.addListener(t,"remove_at",n)),()=>{e.forEach(e=>e.remove())}},[y,f,m,p,w.editable,w.draggable]),(0,a.useEffect)(()=>{y&&y.setOptions(w)},[y,w]),(0,a.useEffect)(()=>{y&&m&&Array.isArray(m)&&!function(e,t){if(!e||!t)return e===t;let n="getArray"in t?t.getArray().map(e=>e.getArray()):t;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(!eg(e[t],n[t]))return!1;return!0}(Array.isArray(m[0])?m:[m],y.getPaths())&&(C.current=!0,y.setPaths(m),C.current=!1)},[y,m]),(0,a.useEffect)(()=>{if(!y||!p||!O)return;C.current=!0;let e=p.map(e=>O.encoding.decodePath(e));y.setPaths(e),C.current=!1},[y,p,O]),y}(e);return(0,a.useImperativeHandle)(t,()=>n,[n]),a.createElement(a.Fragment,null)}).displayName="Polygon",(0,a.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:l,onDrag:o,onDragStart:i,onDragEnd:u,onMouseOver:c,onMouseOut:d,onPathChanged:f,polyline:g,encodedPath:p,path:m,defaultPath:h}=e,v=s(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onPathChanged","polyline","encodedPath","path","defaultPath"]),[y,b]=(0,a.useState)(null),E=ew(),O=eA("geometry"),C=(0,a.useRef)(!1),w=x(Object.assign(Object.assign({},v),{clickable:null!==(t=v.clickable)&&void 0!==t?t:!!l,draggable:null!==(n=v.draggable)&&void 0!==n?n:!!(o||i||u||f),editable:null!==(r=v.editable)&&void 0!==r?r:!!f}),eo);return(0,a.useEffect)(()=>{let e;if(!E){void 0===E&&console.error("<Polyline> has to be inside a Map component.");return}if(g){e=g;let t=null!=m?m:h;t&&Array.isArray(t)&&e.setPath(t),e.setOptions(w)}else{let t=null!=m?m:h,n=Object.assign({},w);t&&Array.isArray(t)&&(n.path=t),e=new google.maps.Polyline(n)}return e.setMap(E),b(e),()=>{e.setMap(null),b(null)}},[E,g]),eI(y,"click",l),eI(y,"drag",o),eI(y,"dragstart",i),eI(y,"mouseover",c),eI(y,"mouseout",d),eI(y,"dragend",e=>{null==u||u(e),f&&y&&!C.current&&f(y.getPath().getArray())}),(0,a.useEffect)(()=>{if(!y||!f)return;let e=y.getPath();if(!e)return;let t=()=>{C.current||f(e.getArray())},n=[google.maps.event.addListener(e,"insert_at",t),google.maps.event.addListener(e,"remove_at",t),google.maps.event.addListener(e,"set_at",t)];return()=>{n.forEach(e=>e.remove())}},[y,f,m,p,w.editable,w.draggable]),(0,a.useEffect)(()=>{y&&y.setOptions(w)},[y,w]),(0,a.useEffect)(()=>{y&&m&&(eg(m,y.getPath())||(C.current=!0,y.setPath(m),C.current=!1))},[y,m]),(0,a.useEffect)(()=>{if(!y||!p||!O)return;C.current=!0;let e=O.encoding.decodePath(p);y.setPath(e),C.current=!1},[y,p,O]),y}(e);return(0,a.useImperativeHandle)(t,()=>n,[n]),a.createElement(a.Fragment,null)}).displayName="Polyline";let eZ={center:{lat:0,lng:0,altitude:0},range:0,heading:0,tilt:0,roll:0},eW=["center","range","heading","tilt","roll"],eV=["gmp-centerchange","gmp-headingchange","gmp-tiltchange","gmp-rangechange","gmp-rollchange"];function eK(e,t){let n=e.center;return{type:t,map3d:e,detail:{center:n&&"toJSON"in n&&"function"==typeof n.toJSON?n.toJSON():n||{lat:0,lng:0,altitude:0},range:e.range||0,heading:e.heading||0,tilt:e.tilt||0,roll:e.roll||0}}}function eY(e,t,n,r){(0,a.useEffect)(()=>{if(!e||!n)return;let l=()=>{n(r(e,t))};return e.addEventListener(t,l),()=>e.removeEventListener(t,l)},[e,t,n,r])}let eQ=new Set(["bounds","defaultUIHidden","gestureHandling","internalUsageAttributionIds","maxAltitude","maxHeading","maxTilt","minAltitude","minHeading","minTilt","mode"]),eX=a.createContext(null),e0={width:"100%",height:"100%",position:"relative"};(0,a.forwardRef)((e,t)=>{let{children:n,id:r,className:l,style:o}=e,i=(0,a.useContext)(w);if(!i)throw Error("<Map3D> can only be used inside an <APIProvider> component.");let{addMap3DInstance:u,removeMap3DInstance:c}=i,[d,f,g,p,m]=function(e){let t=eA("maps3d"),[n,r]=(0,a.useState)(!1),[,l]=em(),[o,i]=em(),u=function(e){let t=ev(),n=(0,a.useRef)(Object.assign({},eZ));return(0,a.useEffect)(()=>
7{if(!e)return;let r=[];for(let l of eW){let o=`gmp-${l}change`,a=()=>{(function(e,t,n){let r=e[n];null!=r&&("center"===n?t.current.center=r.toJSON?r.toJSON():r:t.current[n]=r)})(e,n,l),t()};e.addEventListener(o,a),r.push(()=>e.removeEventListener(o,a))}return()=>{for(let e of r)e()}},[e,t]),n}(o);return(0,a.useEffect)(()=>{customElements.whenDefined("gmp-map-3d").then(()=>{r(!0)})},[]),(0,a.useEffect)(()=>{if(!o)return;let{center:t,heading:n,tilt:r,range:l,roll:a,defaultCenter:i,defaultHeading:u,defaultTilt:c,defaultRange:d,defaultRoll:f,id:g,style:p,className:m,children:h,onCenterChanged:v,onHeadingChanged:y,onTiltChanged:b,onRangeChanged:E,onRollChanged:O,onCameraChanged:C,onClick:w,onSteadyChange:A,onAnimationEnd:S,onError:k,mode:j,gestureHandling:L}=e,P=s(e,["center","heading","tilt","range","roll","defaultCenter","defaultHeading","defaultTilt","defaultRange","defaultRoll","id","style","className","children","onCenterChanged","onHeadingChanged","onTiltChanged","onRangeChanged","onRollChanged","onCameraChanged","onClick","onSteadyChange","onAnimationEnd","onError","mode","gestureHandling"]),M=null!=t?t:i,I=null!=n?n:u,x=null!=r?r:c,N=null!=l?l:d,D=null!=a?a:f,T=Object.assign({},P);M&&(T.center=M),void 0!==I&&(T.heading=I),void 0!==x&&(T.tilt=x),void 0!==N&&(T.range=N),void 0!==D&&(T.roll=D),Object.assign(o,T)},[o]),[o,l,i,u,!!t&&n]}(e);!function(e,t,n){var r,l,o,i,s,u,c,d;let f=(d=n.center)?"toJSON"in d&&"function"==typeof d.toJSON?d.toJSON():d:null,g=null!==(r=null==f?void 0:f.lat)&&void 0!==r?r:null,p=null!==(l=null==f?void 0:f.lng)&&void 0!==l?l:null,m=null!==(o=null==f?void 0:f.altitude)&&void 0!==o?o:null,h=null!==(i=n.range)&&void 0!==i?i:null,v=null!==(s=n.heading)&&void 0!==s?s:null,y=null!==(u=n.tilt)&&void 0!==u?u:null,b=null!==(c=n.roll)&&void 0!==c?c:null;(0,a.useLayoutEffect)(()=>{var n;if(!e)return;let r=t.current;null!==g&&null!==p&&(r.center.lat!==g||r.center.lng!==p||null!==m&&r.center.altitude!==m)&&(e.center={lat:g,lng:p,altitude:null!==(n=null!=m?m:r.center.altitude)&&void 0!==n?n:0}),null!==h&&r.range!==h&&(e.range=h),null!==v&&r.heading!==v&&(e.heading=v),null!==y&&r.tilt!==y&&(e.tilt=y),null!==b&&r.roll!==b&&(e.roll=b)})}(d,p,e),function(e,t){let{onCenterChanged:n,onHeadingChanged:r,onTiltChanged:l,onRangeChanged:o,onRollChanged:i,onCameraChanged:s,onClick:u,onSteadyChange:c,onAnimationEnd:d,onError:f}=t;eY(e,"gmp-centerchange",n,eK),eY(e,"gmp-headingchange",r,eK),eY(e,"gmp-tiltchange",l,eK),eY(e,"gmp-rangechange",o,eK),eY(e,"gmp-rollchange",i,eK),(0,a.useEffect)(()=>{if(!e||!s)return;let t=()=>{s(eK(e,"camerachange"))};for(let n of eV)e.addEventListener(n,t);return()=>{for(let n of eV)e.removeEventListener(n,t)}},[e,s]),(0,a.useEffect)(()=>{if(!e||!u)return;let t=t=>{u({type:"gmp-click",map3d:e,detail:{position:t.position||null,placeId:t.placeId}})};return e.addEventListener("gmp-click",t),()=>e.removeEventListener("gmp-click",t)},[e,u]),(0,a.useEffect)(()=>{if(!e||!c)return;let t=t=>{c({type:"gmp-steadychange",map3d:e,detail:{isSteady:t.isSteady}})};return e.addEventListener("gmp-steadychange",t),()=>e.removeEventListener("gmp-steadychange",t)},[e,c]),eY(e,"gmp-animationend",d,(e,t)=>({type:t,map3d:e})),eY(e,"gmp-error",f,(e,t)=>({type:t,map3d:e}))}(d,e),function(e,t){let n=(0,a.useMemo)(()=>{let e={};for(let n of Object.keys(t)){if(!eQ.has(n))continue;let r=t[n];void 0!==r&&(e[n]=r)}return e},[t]);ei(()=>{e&&Object.assign(e,n)},[e,n])}(d,e),(0,a.useEffect)(()=>{if(!d)return;let e=null!=r?r:"default";return u(d,e),()=>{c(e)}},[d,r]),(0,a.useImperativeHandle)(t,()=>({map3d:d,flyCameraAround:e=>{null==d||d.flyCameraAround(e)},flyCameraTo:e=>{null==d||d.flyCameraTo(e)},stopCameraAnimation:()=>{null==d||d.stopCameraAnimation()}}),[d]);let h=(0,a.useMemo)(()=>Object.assign(Object.assign({},e0),o),[o]),v=(0,a.useMemo)(()=>({map3d:d}),[d]);return m?a.createElement("div",Object.assign({ref:f,"data-testid":"map-3d",style:l?void 0:h,className:l},r?{id:r}:{}),a.createElement("gmp-map-3d",{ref:g,style:{width:"100%",height:"100%"}},d&&a.createElement(eX.Provider,{value:v},n))):a.createElement("div",Object.assign({ref:f,"data-testid":"map-3d",style:l?void 0:h,className:l},r?{id:r}:{}))}).displayName="Map3D";let e1=(0,a.createContext)(null);(0,a.forwardRef)(function(e,t){let{children:n,onClick:r,position:l,altitudeMode:o,collisionBehavior:s,drawsWhenOccluded:u,extruded:c,label:d,sizePreserved:f,zIndex:g,title:p}=e,m=!!r,[h,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(!1),E=(0,a.useMemo)(()=>{let e=document.createElement("div");return e.style.display="none",document.body.appendChild(e),e},[]);(0,a.useEffect)(()=>()=>E.remove(),[E]);let O=(0,a.useCallback)(e=>{v(e),"function"==typeof t?t(e):t&&(t.current=e)},[t]);eD(h,"gmp-click",r),(0,a.useLayoutEffect)(()=>
7{if(!y&&h&&E){for(;h.firstChild;)h.removeChild(h.firstChild);for(let e of Array.from(E.childNodes)){if(e.nodeType!==Node.ELEMENT_NODE)continue;let t=e.tagName.toLowerCase();if("img"===t||"svg"===t){let t=document.createElement("template");t.content.appendChild(e.cloneNode(!0)),h.appendChild(t)}else h.appendChild(e.cloneNode(!0))}}},[h,E,n,y]);let C=(0,a.useMemo)(()=>({marker:h,setContentHandledExternally:b}),[h]);return ex(h,"position",l),ex(h,"altitudeMode",o),ex(h,"collisionBehavior",s),ex(h,"drawsWhenOccluded",u),ex(h,"extruded",c),ex(h,"label",d),ex(h,"sizePreserved",f),ex(h,"zIndex",g),ex(h,"title",null!=p?p:""),a.createElement(e1.Provider,{value:C},m?a.createElement("gmp-marker-3d-interactive",{ref:O}):a.createElement("gmp-marker-3d",{ref:O}),(0,i.createPortal)(n,E))}).displayName="Marker3D",(0,a.forwardRef)(function(e,t){var n;let{children:r,headerContent:l,style:o,className:i,open:s=!0,position:u,anchor:c,anchorId:d,altitudeMode:f,lightDismissDisabled:g,autoPanDisabled:p,onClose:m}=e,[h,v]=(0,a.useState)(null),y=(0,a.useRef)(null);return(0,a.useImperativeHandle)(t,()=>h,[h]),function(e,t,n){let r=(0,a.useRef)(void 0),l=(0,a.useRef)(t);(0,a.useEffect)(()=>{l.current=t},[t]),(0,a.useEffect)(()=>{if(!e||!n)return;let t=new MutationObserver(t=>{for(let o of t)if("attributes"===o.type&&"open"===o.attributeName){let t=e.hasAttribute("open");!0!==r.current||t||!1===l.current||n(),r.current=t}});return t.observe(e,{attributes:!0,attributeFilter:["open"]}),r.current=e.hasAttribute("open"),()=>{t.disconnect()}},[e,n])}(h,s,m),ex(h,"open",null!=s&&s),ex(h,"altitudeMode",f),ex(h,"lightDismissDisabled",g),ex(h,"autoPanDisabled",p),ex(h,"positionAnchor",null!==(n=null!=c?c:d)&&void 0!==n?n:u),(0,a.useLayoutEffect)(()=>{h&&(eq(h,o||null,y.current),y.current=o||null)},[h,o]),a.createElement("gmp-popover",{ref:v,className:i},l&&a.createElement("div",{slot:"header"},l),r)}).displayName="Popover",(0,a.forwardRef)((e,t)=>{let n=function(e){let[t,n]=(0,a.useState)(null),r=ew(),{onClick:l,onDrag:o,onDragStart:i,onDragEnd:u,onMouseOver:c,onMouseOut:d}=e,f=s(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut"]),{position:g,draggable:p}=f;return(0,a.useEffect)(()=>{if(!r){void 0===r&&console.error("<Marker> has to be inside a Map component.");return}let e=new google.maps.Marker(f);return e.setMap(r),n(e),()=>{e.setMap(null),n(null)}},[r]),(0,a.useEffect)(()=>{if(!t)return;let e=google.maps.event;return l&&e.addListener(t,"click",l),o&&e.addListener(t,"drag",o),i&&e.addListener(t,"dragstart",i),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,l,o,i,u,c,d]),(0,a.useEffect)(()=>{t&&f&&t.setOptions(f)},[t,f]),(0,a.useEffect)(()=>{!p&&g&&t&&t.setPosition(g)},[p,g,t]),t}(e);return(0,a.useImperativeHandle)(t,()=>n,[n]),a.createElement(a.Fragment,null)}).displayName="Marker";let e3=e=>{let t=(0,a.useContext)(eR),n=(0,a.useContext)(e1),r=null==t?void 0:t.marker,l=null==n?void 0:n.marker,o=null==n?void 0:n.setContentHandledExternally,s=(0,a.useMemo)(()=>document.createElement("div"),[]),u=eA("marker");return(0,a.useEffect)(()=>{if(l&&o)return o(!0),()=>o(!1)},[l,o]),(0,a.useEffect)(()=>{if(!l||!u)return;let t=Object.assign({},e),n=new u.PinElement(t);for(e.children&&(n.glyph=s);l.firstChild;)l.removeChild(l.firstChild);return l.append(n),()=>{}},[l,u,s,e]),(0,a.useEffect)(()=>{var t;if(l)return;if(!r){void 0===r&&void 0===l&&console.error("The <Pin> component can only be used inside <AdvancedMarker> or <Marker3D>.");return}e.glyph&&e.children&&eC("The <Pin> component only uses children to render the glyph if both the glyph property and children are present."),a.Children.count(e.children)>1&&eC("Passing multiple children to the <Pin> component might lead to unexpected results.");let n=Object.assign({},e),o=new google.maps.marker.PinElement(n);e.children&&(o.glyph=s);let i=null===(t=r.content)||void 0===t?void 0:t.firstChild;for(;null==i?void 0:i.firstChild;)i.removeChild(i.firstChild);i&&i.appendChild(o.element)},[r,s,l,e]),(0,i.createPortal)(e.children,s)},e8=e=>{let{children:t}=e,n=(0,a.useContext)(eR),r=(0,a.useContext)(e1),l=null==n?void 0:n.marker,o=null==r?void 0:r.marker,s=null==r?void 0:r.setContentHandledExternally,u=(0,a.useMemo)(()=>document.createElement("div"),[]),c=eA("marker");return(0,a.useEffect)(()=>
7{if(o&&s)return s(!0),()=>s(!1)},[o,s]),(0,a.useEffect)(()=>{if(!o||!c)return;let n=Object.assign({},e),r=new c.PinElement(n);for(t&&r.appendChild(u);o.firstChild;)o.removeChild(o.firstChild);return o.appendChild(r),()=>{}},[o,c,u,t,e]),(0,a.useEffect)(()=>{var n;if(o)return;if(!l||!c){void 0===l&&void 0===o&&console.error("The <Pin> component can only be used inside <AdvancedMarker> or <Marker3D>.");return}(e.glyphSrc||e.glyphText)&&t&&eC("The <Pin> component only uses children to render the glyph if both glyphSrc/glyphText and children are present."),a.Children.count(t)>1&&eC("Passing multiple children to the <Pin> component might lead to unexpected results.");let r=Object.assign({},e),i=new c.PinElement(r);t&&i.appendChild(u);let s=null===(n=l.content)||void 0===n?void 0:n.firstChild;for(;null==s?void 0:s.firstChild;)s.removeChild(s.firstChild);s&&s.appendChild(i)},[l,c,u,o,t,e]),(0,i.createPortal)(t,u)},e9=e=>{var t;let n=eA("marker"),r=(0,a.useMemo)(()=>!!n&&"undefined"!=typeof customElements&&void 0!==customElements.get("gmp-pin"),[n]);if(!n)return null;if(r){let{glyph:t,glyphSrc:n,glyphText:r}=e,l=s(e,["glyph","glyphSrc","glyphText"]),o=t instanceof URL||"string"==typeof t&&t.startsWith("http"),i=null!=r?r:"string"!=typeof t||o?void 0:t,u=null!=n?n:o?String(t):void 0;return a.createElement(e8,Object.assign({},l,{glyphText:i,glyphSrc:u}))}{let{glyph:n,glyphSrc:r,glyphText:l}=e,o=s(e,["glyph","glyphSrc","glyphText"]),i=null!==(t=null!=n?n:r)&&void 0!==t?t:l;return a.createElement(e3,Object.assign({},o,{glyph:i}))}};(0,a.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:l,onDrag:o,onDragStart:i,onDragEnd:u,onMouseOver:c,onMouseOut:d,onBoundsChanged:f,bounds:g,defaultBounds:p}=e,m=s(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onBoundsChanged","bounds","defaultBounds"]),[h,v]=(0,a.useState)(null),y=ew(),b=x(Object.assign(Object.assign({},m),{clickable:null!==(t=m.clickable)&&void 0!==t?t:!!l,draggable:null!==(n=m.draggable)&&void 0!==n?n:!!(o||i||u||f),editable:null!==(r=m.editable)&&void 0!==r?r:!!f}),eo);return(0,a.useEffect)(()=>{if(!y){void 0===y&&console.error("<Rectangle> has to be inside a Map component.");return}let e=new google.maps.Rectangle(Object.assign(Object.assign({},b),{bounds:null!=g?g:p}));return e.setMap(y),v(e),()=>{e.setMap(null),v(null)}},[y]),eI(h,"click",l),eI(h,"drag",o),eI(h,"dragstart",i),eI(h,"dragend",u),eI(h,"mouseover",c),eI(h,"mouseout",d),eI(h,"bounds_changed",f?()=>{f(null==h?void 0:h.getBounds())}:null),(0,a.useEffect)(()=>{h&&h.setOptions(b)},[h,b]),(0,a.useEffect)(()=>{h&&g&&!function(e,t){if(!e||!t)return!1;let n=ef(e),r=ef(t);return n.north===r.north&&n.south===r.south&&n.east===r.east&&n.west===r.west}(g,h.getBounds())&&h.setBounds(g)},[h,g]),h}(e);return(0,a.useImperativeHandle)(t,()=>n,[n]),a.createElement(a.Fragment,null)}).displayName="Rectangle"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.