(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3877],{64063:function(e){"use strict";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=(l=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,l[o]))return!1;for(o=r;0!=o--;){var r,o,l,i=l[o];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},7443:function(e,t,n){"use strict";var r=n(34155);n(91479);var o=n(67294),l=o&&"object"==typeof o&&"default"in o?o:{default:o},i=void 0!==r&&r.env&&!0,a=function(e){return"[object String]"===Object.prototype.toString.call(e)},s=function(){function e(e){var t=void 0===e?{}:e,n=t.name,r=void 0===n?"stylesheet":n,o=t.optimizeForSpeed,l=void 0===o?i:o;u(a(r),"`name` must be a string"),this._name=r,this._deletedRulePlaceholder="#"+r+"-deleted-rule____{}",u("boolean"==typeof l,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=l,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var s=document.querySelector('meta[property="csp-nonce"]');this._nonce=s?s.getAttribute("content"):null}var t=e.prototype;return t.setOptimizeForSpeed=function(e){u("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),u(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;if(u(!this._injected,"sheet already injected"),this._injected=!0,this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,n){return"number"==typeof n?e._serverSheet.cssRules[n]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),n},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t>>0},c={};function f(e,t){if(!t)return"jsx-"+e;var n=String(t),r=e+n;return c[r]||(c[r]="jsx-"+d(e+"-"+n)),c[r]}function g(e,t){var n=e+t;return c[n]||(c[n]=t.replace(/__jsx-style-dynamic-selector/g,e)),c[n]}var p=function(){function e(e){var t=void 0===e?{}:e,n=t.styleSheet,r=void 0===n?null:n,o=t.optimizeForSpeed,l=void 0!==o&&o;this._sheet=r||new s({name:"styled-jsx",optimizeForSpeed:l}),this._sheet.inject(),r&&"boolean"==typeof l&&(this._sheet.setOptimizeForSpeed(l),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var n=this.getIdAndRules(e),r=n.styleId,o=n.rules;if(r in this._instancesCounts){this._instancesCounts[r]+=1;return}var l=o.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[r]=l,this._instancesCounts[r]=1},t.remove=function(e){var t=this,n=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(n in this._instancesCounts,"styleId: `"+n+"` not found"),this._instancesCounts[n]-=1,this._instancesCounts[n]<1){var r=this._fromServer&&this._fromServer[n];r?(r.parentNode.removeChild(r),delete this._fromServer[n]):(this._indices[n].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[n]),delete this._instancesCounts[n]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],n=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return n[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,n;return t=this.cssRules(),void 0===(n=e)&&(n={}),t.map(function(e){var t=e[0],r=e[1];return l.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:n.nonce?n.nonce:void 0,dangerouslySetInnerHTML:{__html:r}})})},t.getIdAndRules=function(e){var t=e.children,n=e.dynamic,r=e.id;if(n){var o=f(r,n);return{styleId:o,rules:Array.isArray(t)?t.map(function(e){return g(o,e)}):[g(o,t)]}}return{styleId:f(r),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),m=o.createContext(null);m.displayName="StyleSheetContext";var h=l.default.useInsertionEffect||l.default.useLayoutEffect,v=new p;function y(e){var t=v||o.useContext(m);return t&&h(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)]),null}y.dynamic=function(e){return e.map(function(e){return f(e[0],e[1])}).join(" ")},t.style=y},40645:function(e,t,n){"use strict";e.exports=n(7443).style},91479:function(){},81323:function(e,t,n){"use strict";let r;n.d(t,{D5:function(){return U},OV:function(){return y},_Q:function(){return ea},os:function(){return M},un:function(){return C}});var o,l,i=n(67294),a=n(73935),s=n(64063);function u(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 o=0,r=Object.getOwnPropertySymbols(e);ot.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function d(e,t,n,r){return new(n||(n=Promise))(function(o,l){function i(e){try{s(r.next(e))}catch(e){l(e)}}function a(e){try{s(r.throw(e))}catch(e){l(e)}}function s(e){var t;e.done?o(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(i,a)}s((r=r.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;let c=e=>{var t,n,r,o="The Google Maps JavaScript API",l="google",i="importLibrary",a="__ib__",s=document,u=window,d=u[l]||(u[l]={}),c=d.maps||(d.maps={}),f=new Set,g=new URLSearchParams,p=()=>t||(t=new Promise(async(i,u)=>{var d,p;for(r in await (n=s.createElement("script")),g.set("libraries",[...f]+""),e)g.set(r.replace(/[A-Z]/g,e=>"_"+e[0].toLowerCase()),e[r]);g.set("callback",l+".maps."+a),d=n,p="https://maps.googleapis.com/maps/api/js?"+g,d.src=p,c[a]=i,n.onerror=()=>t=u(Error(o+" could not load.")),n.nonce=s.querySelector("script[nonce]")?.nonce||"",s.head.append(n)}));c[i]?console.warn(o+" only loads once. Ignoring:",e):c[i]=(e,...t)=>f.add(e)&&p().then(()=>c[i](e,...t))},f=e=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(e)}) will be ignored.`,g=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.`,p=()=>{},m=()=>{},h=!1;async function v(e){if(h||p("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 y={NOT_LOADED:"NOT_LOADED",LOADING:"LOADING",LOADED:"LOADED",FAILED:"FAILED",AUTH_FAILURE:"AUTH_FAILURE"},b=["gmp_visgl_reactgooglemaps_v1.8.3"],E=i.createContext(null),S=y.NOT_LOADED,O=new Set;function _(e){e!==S&&(S=e,O.forEach(e=>e(S)))}let C=e=>{let{children:t}=e,n=u(e,["children"]),{mapInstances:o,addMapInstance:l,removeMapInstance:a,clearMapInstances:s}=function(){let[e,t]=(0,i.useState)({});return{mapInstances:e,addMapInstance:(e,n="default")=>{t(t=>Object.assign(Object.assign({},t),{[n]:e}))},removeMapInstance:(e="default")=>{t(t=>(t[e],u(t,["symbol"==typeof e?e:e+""])))},clearMapInstances:()=>{t({})}}}(),{map3dInstances:C,addMap3DInstance:w,removeMap3DInstance:A,clearMap3DInstances:k}=function(){let[e,t]=(0,i.useState)({});return{map3dInstances:e,addMap3DInstance:(e,n="default")=>{t(t=>Object.assign(Object.assign({},t),{[n]:e}))},removeMap3DInstance:(e="default")=>{t(t=>(t[e],u(t,["symbol"==typeof e?e:e+""])))},clearMap3DInstances:()=>{t({})}}}(),{status:L,loadedLibraries:I,importLibrary:P}=function(e){let{onLoad:t,onError:n,apiKey:o,version:l,libraries:a=[],region:s,language:u,authReferrerPolicy:b,channel:E,solutionChannel:C,fetchAppCheckToken:w}=e,[A,k]=(0,i.useState)(S),[L,I]=(0,i.useReducer)((e,t)=>e[t.name]?e:Object.assign(Object.assign({},e),{[t.name]:t.value}),{}),P=(0,i.useMemo)(()=>JSON.stringify({apiKey:o,version:l,libraries:a.join(","),region:s,language:u,authReferrerPolicy:b,channel:E,solutionChannel:C}),[o,l,a,s,u,b,E,C]),j=(0,i.useCallback)(e=>d(this,void 0,void 0,function*(){if(L[e])return L[e];let t=yield v(e);return I({name:e,value:t}),t}),[L]);return(0,i.useEffect)(()=>(O.add(k),k(S),()=>{O.delete(k)}),[]),(0,i.useEffect)(()=>{d(this,void 0,void 0,function*(){var e,i;try{r&&r!==P&&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",...a];if(null===(i=null===(e=window.google)||void 0===e?void 0:e.maps)||void 0===i?void 0:i.importLibrary){r||_(y.LOADED),yield Promise.all(n.map(e=>j(e))),t&&t();return}if(S===y.LOADING||S===y.LOADED){S===y.LOADED&&t&&t();return}r=P,_(y.LOADING);let d=Object.fromEntries(Object.entries({key:o,v:l,libraries:a,region:s,language:u,authReferrerPolicy:b}).filter(([,e])=>void 0!==e));void 0!==E&&E>=0&&E<=999&&(d.channel=String(E)),void 0===C?d.solutionChannel="GMP_visgl_rgmlibrary_v1_default":""!==C&&(d.solutionChannel=C),function(e){if(h){p(f(e));return}(function(e){let t=!!window.google?.maps?.importLibrary;t&&m(g(e)),t||c(e)})(e),h=!0}(d),yield Promise.all(n.map(e=>j(e))),_(y.LOADED),t&&t()}catch(e){_(y.FAILED),n?n(e):console.error("The Google Maps JavaScript API failed to load.",e)}})},[P,t,n,j,a]),(0,i.useEffect)(()=>{if(A!==y.LOADED)return;let e=google.maps.Settings.getInstance();w?e.fetchAppCheckToken=w:e.fetchAppCheckToken&&(e.fetchAppCheckToken=null)},[A,w]),{status:A,loadedLibraries:L,importLibrary:j}}(n),j=(0,i.useMemo)(()=>n.disableUsageAttribution?null:b,[n.disableUsageAttribution]),M=(0,i.useMemo)(()=>({mapInstances:o,addMapInstance:l,removeMapInstance:a,clearMapInstances:s,map3dInstances:C,addMap3DInstance:w,removeMap3DInstance:A,clearMap3DInstances:k,status:L,loadedLibraries:I,importLibrary:P,internalUsageAttributionIds:j}),[o,l,a,s,C,w,A,k,L,I,P,j]);return i.createElement(E.Provider,{value:M},t)},w={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"},A=["bounds_changed","center_changed","heading_changed","tilt_changed","zoom_changed"],k=["click","contextmenu","dblclick","mousemove","mouseout","mouseover"],L=Object.keys(w);function I(e,t){let n=(0,i.useRef)(e);return t(e,n.current)||(n.current=e),n.current}function P(e,t){(0,i.useEffect)(e,[I(t,s)])}let j=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 M(){var e;return(null===(e=(0,i.useContext)(E))||void 0===e?void 0:e.status)||y.NOT_LOADED}function N(e,t){if(!e||!t)return!1;let n=R(e),r=R(t);return n.lat===r.lat&&n.lng===r.lng}function R(e){return e&&"object"==typeof e&&"lat"in e&&"lng"in e&&Number.isFinite(e.lat)&&Number.isFinite(e.lng)?e:e.toJSON()}function x(e){if("north"in e&&"south"in e&&"east"in e&&"west"in e)return e;let t=e.getNorthEast().toJSON(),n=e.getSouthWest().toJSON();return{north:t.lat,east:t.lng,south:n.lat,west:n.lng}}function D(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;ti.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"}},i.createElement("h2",null,"Error: AuthFailure"),i.createElement("p",null,"A problem with your API key prevents the map from rendering correctly. Please make sure the value of the ",i.createElement("code",null,"APIProvider.apiKey")," prop is correct. Check the error-message in the console for further details."));function F(){let[e,t]=(0,i.useState)(null);return[e,(0,i.useCallback)(e=>t(e),[t])]}function z(){return M()===y.LOADED}function H(){let[,e]=(0,i.useReducer)(e=>e+1,0);return e}class J{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)}}J.entries={};let B=i.createContext(null),U=e=>{let{children:t,id:n,className:r,style:o}=e,l=(0,i.useContext)(E),a=M();if(!l)throw Error(" can only be used inside an component.");let[s,d,c]=function(e,t){let n=z(),[r,o]=(0,i.useState)(null),[l,a]=F(),s=function(e){let t=H(),n=(0,i.useRef)({center:{lat:0,lng:0},heading:0,tilt:0,zoom:0});return(0,i.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,l=e.getTilt()||0,i=e.getBounds();n&&i&&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:l})})(e,n),t()});return()=>r.remove()},[e,t]),n}(r),{id:d,defaultBounds:c,defaultCenter:f,defaultZoom:g,defaultHeading:p,defaultTilt:m,reuseMaps:h,renderingType:v,colorScheme:y}=e,b=u(e,["id","defaultBounds","defaultCenter","defaultZoom","defaultHeading","defaultTilt","reuseMaps","renderingType","colorScheme"]),E=void 0!==e.zoom||void 0!==e.defaultZoom,S=void 0!==e.center||void 0!==e.defaultCenter;c||E&&S||console.warn(" 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 O=b.internalUsageAttributionIds;for(let e of(null==O?b.internalUsageAttributionIds=t.internalUsageAttributionIds:b.internalUsageAttributionIds=[...t.internalUsageAttributionIds||[],...O],Object.keys(b)))void 0===b[e]&&delete b[e];let _=(0,i.useRef)(void 0);return(0,i.useEffect)(()=>{let r,i;if(!l||!n)return;let{addMapInstance:a,removeMapInstance:f}=t,{mapId:g}=e,p=`${g||"default"}:${v||"default"}:${y||"LIGHT"}`;if(h&&J.has(p)?(r=(i=J.pop(p)).getDiv(),l.appendChild(r),i.setOptions(b),setTimeout(()=>i.moveCamera({}),0)):((r=document.createElement("div")).style.height="100%",l.appendChild(r),i=new google.maps.Map(r,Object.assign(Object.assign(Object.assign({},b),v?{renderingType:v}:{}),y?{colorScheme:y}:{}))),o(i),a(i,d),c){let{padding:e}=c,t=u(c,["padding"]);i.fitBounds(t,e)}else E&&S||i.fitBounds({east:180,west:-180,south:-90,north:90});if(_.current){let{mapId:e,cameraState:t}=_.current;e!==g&&i.moveCamera(t)}return()=>{_.current={mapId:g,cameraState:s.current},r.remove(),h?J.push(p,i):google.maps.event.clearInstanceListeners(i),o(null),f(d)}},[l,n,d,e.mapId,e.renderingType,e.colorScheme]),[r,a,s]}(e,l);!function(e,t,n){let r=n.center?R(n.center):null,o=null,l=null;r&&Number.isFinite(r.lat)&&Number.isFinite(r.lng)&&(o=r.lat,l=r.lng);let a=Number.isFinite(n.zoom)?n.zoom:null,s=Number.isFinite(n.heading)?n.heading:null,u=Number.isFinite(n.tilt)?n.tilt:null;(0,i.useLayoutEffect)(()=>{if(!e)return;let n={},r=!1;null!==o&&null!==l&&(t.current.center.lat!==o||t.current.center.lng!==l)&&(n.center={lat:o,lng:l},r=!0),null!==a&&t.current.zoom!==a&&(n.zoom=a,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)})}(s,c,e),function(e,t){for(let n of L){let r=t[n],o=w[n];(0,i.useEffect)(()=>{if(!e||!r)return;let t=google.maps.event.addListener(e,o,t=>{r(function(e,t,n){var r;let o={type:e,map:t,detail:{},stoppable:!1,stop:()=>{}};if(A.includes(e)){let e=t.getCenter(),n=t.getZoom(),r=t.getHeading()||0,l=t.getTilt()||0,i=t.getBounds();return e&&i&&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"),o.detail={center:(null==e?void 0:e.toJSON())||{lat:0,lng:0},zoom:n||0,heading:r,tilt:l,bounds:(null==i?void 0:i.toJSON())||{north:90,east:180,south:-90,west:-180}},o}if(k.includes(e)){if(!n)throw Error("[createEvent] mouse events must provide a srcEvent");return o.domEvent=n.domEvent,o.stoppable=!0,o.stop=()=>n.stop(),o.detail={latLng:(null===(r=n.latLng)||void 0===r?void 0:r.toJSON())||null,placeId:n.placeId},o}return o}(o,e,t))});return()=>t.remove()},[e,o,r])}}(s,e),function(e,t){let n={};for(let e of Object.keys(t))j.has(e)&&(n[e]=t[e]);P(()=>{e&&e.setOptions(n)},[n])}(s,e);let f=function(e,t){let{viewport:n,viewState:r}=t;return(0,i.useLayoutEffect)(()=>{if(!e||!r)return;let{latitude:t,longitude:n,bearing:o,pitch:l,zoom:i}=r;e.moveCamera({center:{lat:t,lng:n},heading:o,tilt:l,zoom:i+1})},[e,r]),!!n}(s,e),g=!!e.controlled;(0,i.useEffect)(()=>{if(s)return f&&s.setOptions({disableDefaultUI:!0}),(f||g)&&s.setOptions({gestureHandling:"none",keyboardShortcuts:!1}),()=>{s.setOptions({gestureHandling:e.gestureHandling,keyboardShortcuts:e.keyboardShortcuts})}},[s,f,g,e.gestureHandling,e.keyboardShortcuts]);let p=e.center?R(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,i.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,i.useLayoutEffect)(()=>{if(!s||!g)return;s.moveCamera(v);let e=s.addListener("bounds_changed",()=>{s.moveCamera(v)});return()=>e.remove()},[s,g,v]);let b=(0,i.useMemo)(()=>Object.assign({width:"100%",height:"100%",position:"relative",zIndex:f?-1:0},o),[o,f]),S=(0,i.useMemo)(()=>({map:s}),[s]);return a===y.AUTH_FAILURE?i.createElement("div",{style:Object.assign({position:"relative"},r?{}:b),className:r},i.createElement(T,null)):i.createElement("div",Object.assign({ref:d,"data-testid":"map",style:r?void 0:b,className:r},n?{id:n}:{}),s?i.createElement(B.Provider,{value:S},t):null)};U.deckGLViewProps=!0;let G=new Set,Z=(e=null)=>{let t=(0,i.useContext)(E),{map:n}=(0,i.useContext)(B)||{};if(null===t)return!function(...e){let t=JSON.stringify(e);G.has(t)||(G.add(t),console.error(...e))}("useMap(): failed to retrieve APIProviderContext. Make sure that the component exists and that the component you are calling `useMap()` from is a sibling of the ."),null;let{mapInstances:r}=t;return null!==e?r[e]||null:n||r.default||null};function $(e){let t=z(),n=(0,i.useContext)(E);return(0,i.useEffect)(()=>{t&&n&&n.importLibrary(e)},[t,n,e]),(null==n?void 0:n.loadedLibraries[e])||null}let{useLayoutEffect:q,useRef:V}=o||(o=n.t(i,2)),W=null!==(l=i.useInsertionEffect)&&void 0!==l?l:q;function K(){throw Error("useEffectEvent: invalid call during rendering.")}let Q=function(e){let t=V(K);return W(()=>{t.current=e},[e]),(...e)=>t.current(...e)},X=()=>{};function Y(e,t,n){let r=Q(null!=n?n:X),o=!!n;(0,i.useEffect)(()=>{if(!e||!t||!o)return;let n=google.maps.event.addListener(e,t,r);return()=>n.remove()},[e,t,o])}function ee(e,t,n){(0,i.useEffect)(()=>{e&&(e[t]=n)},[e,t,n])}let et=()=>{};function en(e,t,n){let r=Q(null!=n?n:et),o=!!n;(0,i.useEffect)(()=>{if(e&&t&&o)return e.addEventListener(t,r),()=>e.removeEventListener(t,r)},[e,t,o])}class er{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+=` gmp-advanced-marker[data-origin='rgm'] { pointer-events: none !important; } `,this.renderedStyles.add("marker-pointer-events")}cleanup(){this.styleElement&&(this.styleElement.remove(),this.styleElement=null,this.renderedStyles.clear())}}let eo=new er,el=i.createContext(null),ei={BOTTOM:["50%","100%"]},ea=(0,i.forwardRef)((e,t)=>{let{children:n,style:r,className:o,anchorPoint:l}=e,[s,u]=function(e){var t;let[n,r]=(0,i.useState)(null),[o,l]=(0,i.useState)(null),a=Z(),s=$("marker"),{children:u,onClick:d,className:c,onMouseEnter:f,onMouseLeave:g,onDrag:p,onDragStart:m,onDragEnd:h,collisionBehavior:v,clickable:y,draggable:b,position:E,title:S,zIndex:O,anchorPoint:_,anchorLeft:C,anchorTop:w}=e,A=i.Children.count(u);return(0,i.useEffect)(()=>{if(!a||!s)return;let e=new s.AdvancedMarkerElement;e.map=a,r(e);let t=null;return A>0&&(t=document.createElement("div"),e.content=t,l(t)),()=>{e.map=null,null==t||t.remove(),r(null),l(null)}},[a,s,A]),(0,i.useEffect)(()=>{(null==n?void 0:n.content)&&es(n.content)&&!(A>0)&&(n.content.className=null!=c?c:"")},[n,c,A]),t=A>0,(0,i.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("."),o=parseInt(r[0],10),l=parseInt(r[1],10);return o>3||3===o&&l>=62}(0,0),r=n.content;if(r&&es(r)){if(void 0!==C||void 0!==w){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=C,n.anchorTop=w,void 0!==_&&console.warn("AdvancedMarker: the anchorPoint prop is ignored when anchorLeft and/or anchorTop are set.");return}if(void 0!==_){let[t,o]=null!=_?_:ei.BOTTOM,l=`calc(-1 * ${t})`,i=`calc(-1 * ${o})`;e?(n.anchorLeft=l,n.anchorTop=i,r.style.transform=""):(r.style.transform=`translate(50%, 100%) translate(${l}, ${i})`,n.dataset.origin="rgm",eo.addAdvancedMarkerPointerEventsOverwrite())}}},[n,_,C,w,t]),ee(n,"position",E),ee(n,"title",null!=S?S:""),ee(n,"zIndex",O),ee(n,"collisionBehavior",v),(0,i.useEffect)(()=>{n&&(void 0!==b?n.gmpDraggable=b:p||m||h?n.gmpDraggable=!0:n.gmpDraggable=!1)},[n,b,p,h,m]),(0,i.useEffect)(()=>{if(!n)return;let e=void 0!==y?y:!!d||!!f||!!g;n.gmpClickable=e,e&&(null==n?void 0:n.content)&&es(n.content)&&(n.content.style.pointerEvents="all",d&&(n.content.style.cursor="pointer"))},[n,y,d,f,g]),Y(n,"click",d),Y(n,"drag",p),Y(n,"dragstart",m),Y(n,"dragend",h),en(null==n?void 0:n.element,"mouseenter",f),en(null==n?void 0:n.element,"mouseleave",g),[n,o]}(e),d=(0,i.useMemo)(()=>s?{marker:s}:null,[s]);return((0,i.useImperativeHandle)(t,()=>s,[s]),u)?i.createElement(el.Provider,{value:d},(0,a.createPortal)(i.createElement(eu,{anchorPoint:l,styles:r,className:o},n),u)):null});function es(e){return e.nodeType===Node.ELEMENT_NODE}ea.displayName="AdvancedMarker";let eu=({children:e,styles:t,className:n})=>i.createElement("div",{className:n,style:t},e);function ed(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||ec.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}(0,i.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:o,onDrag:l,onDragStart:a,onDragEnd:d,onMouseOver:c,onMouseOut:f,onRadiusChanged:g,onCenterChanged:p,center:m,defaultCenter:h,radius:v,defaultRadius:y}=e,b=u(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onRadiusChanged","onCenterChanged","center","defaultCenter","radius","defaultRadius"]),[E,S]=(0,i.useState)(null),O=Z(),_=I(Object.assign(Object.assign({},b),{clickable:null!==(t=b.clickable)&&void 0!==t?t:!!o,draggable:null!==(n=b.draggable)&&void 0!==n?n:!!(l||a||d||p),editable:null!==(r=b.editable)&&void 0!==r?r:!!g}),s);return(0,i.useEffect)(()=>{if(!O){void 0===O&&console.error(" has to be inside a Map component.");return}let e=new google.maps.Circle(Object.assign(Object.assign({},_),{center:null!=m?m:h,radius:null!=v?v:y}));return e.setMap(O),S(e),()=>{e.setMap(null),S(null)}},[O]),Y(E,"click",o),Y(E,"drag",l),Y(E,"dragstart",a),Y(E,"dragend",d),Y(E,"mouseover",c),Y(E,"mouseout",f),Y(E,"radius_changed",g?()=>{let e=null==E?void 0:E.getRadius();void 0!==e&&g(e)}:null),Y(E,"center_changed",p?()=>{p(null==E?void 0:E.getCenter())}:null),(0,i.useEffect)(()=>{E&&E.setOptions(_)},[E,_]),(0,i.useEffect)(()=>{E&&m&&!N(m,E.getCenter())&&E.setCenter(m)},[E,m]),(0,i.useEffect)(()=>{E&&void 0!==v&&v!==E.getRadius()&&E.setRadius(v)},[E,v]),E}(e);return(0,i.useImperativeHandle)(t,()=>n,[n]),i.createElement(i.Fragment,null)}).displayName="Circle";let ec=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"]);function ef(e){let t=e.getPaths(),n=[];for(let e=0;e{let n=function(e){var t,n,r;let{onClick:o,onDrag:l,onDragStart:a,onDragEnd:d,onMouseOver:c,onMouseOut:f,onPathsChanged:g,polygon:p,encodedPaths:m,paths:h,defaultPaths:v}=e,y=u(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onPathsChanged","polygon","encodedPaths","paths","defaultPaths"]),[b,E]=(0,i.useState)(null),S=Z(),O=$("geometry"),_=(0,i.useRef)(!1),C=I(Object.assign(Object.assign({},y),{clickable:null!==(t=y.clickable)&&void 0!==t?t:!!o,draggable:null!==(n=y.draggable)&&void 0!==n?n:!!(l||a||d||g),editable:null!==(r=y.editable)&&void 0!==r?r:!!g}),s);return(0,i.useEffect)(()=>{let e;if(!S){void 0===S&&console.error(" has to be inside a Map component.");return}if(p){e=p;let t=null!=h?h:v;t&&Array.isArray(t)&&e.setPaths(t),e.setOptions(C)}else{let t=null!=h?h:v,n=Object.assign({},C);t&&Array.isArray(t)&&(n.paths=t),e=new google.maps.Polygon(n)}return e.setMap(S),E(e),()=>{e.setMap(null),E(null)}},[S,p]),Y(b,"click",o),Y(b,"drag",l),Y(b,"dragstart",a),Y(b,"mouseover",c),Y(b,"mouseout",f),Y(b,"dragend",e=>{null==d||d(e),g&&b&&!_.current&&g(ef(b))}),(0,i.useEffect)(()=>{if(!b||!g)return;let e=[],t=b.getPaths();if("function"!=typeof t.getLength||"function"!=typeof t.getAt)return;let n=()=>{_.current||g(ef(b))},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{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())}},[b,g,h,m,C.editable,C.draggable]),(0,i.useEffect)(()=>{b&&b.setOptions(C)},[b,C]),(0,i.useEffect)(()=>{b&&h&&Array.isArray(h)&&!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{if(!b||!m||!O)return;_.current=!0;let e=m.map(e=>O.encoding.decodePath(e));b.setPaths(e),_.current=!1},[b,m,O]),b}(e);return(0,i.useImperativeHandle)(t,()=>n,[n]),i.createElement(i.Fragment,null)}).displayName="Polygon",(0,i.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:o,onDrag:l,onDragStart:a,onDragEnd:d,onMouseOver:c,onMouseOut:f,onPathChanged:g,polyline:p,encodedPath:m,path:h,defaultPath:v}=e,y=u(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onPathChanged","polyline","encodedPath","path","defaultPath"]),[b,E]=(0,i.useState)(null),S=Z(),O=$("geometry"),_=(0,i.useRef)(!1),C=I(Object.assign(Object.assign({},y),{clickable:null!==(t=y.clickable)&&void 0!==t?t:!!o,draggable:null!==(n=y.draggable)&&void 0!==n?n:!!(l||a||d||g),editable:null!==(r=y.editable)&&void 0!==r?r:!!g}),s);return(0,i.useEffect)(()=>{let e;if(!S){void 0===S&&console.error(" has to be inside a Map component.");return}if(p){e=p;let t=null!=h?h:v;t&&Array.isArray(t)&&e.setPath(t),e.setOptions(C)}else{let t=null!=h?h:v,n=Object.assign({},C);t&&Array.isArray(t)&&(n.path=t),e=new google.maps.Polyline(n)}return e.setMap(S),E(e),()=>{e.setMap(null),E(null)}},[S,p]),Y(b,"click",o),Y(b,"drag",l),Y(b,"dragstart",a),Y(b,"mouseover",c),Y(b,"mouseout",f),Y(b,"dragend",e=>{null==d||d(e),g&&b&&!_.current&&g(b.getPath().getArray())}),(0,i.useEffect)(()=>{if(!b||!g)return;let e=b.getPath();if(!e)return;let t=()=>{_.current||g(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())}},[b,g,h,m,C.editable,C.draggable]),(0,i.useEffect)(()=>{b&&b.setOptions(C)},[b,C]),(0,i.useEffect)(()=>{b&&h&&(D(h,b.getPath())||(_.current=!0,b.setPath(h),_.current=!1))},[b,h]),(0,i.useEffect)(()=>{if(!b||!m||!O)return;_.current=!0;let e=O.encoding.decodePath(m);b.setPath(e),_.current=!1},[b,m,O]),b}(e);return(0,i.useImperativeHandle)(t,()=>n,[n]),i.createElement(i.Fragment,null)}).displayName="Polyline";let eg={center:{lat:0,lng:0,altitude:0},range:0,heading:0,tilt:0,roll:0},ep=["center","range","heading","tilt","roll"],em=["gmp-centerchange","gmp-headingchange","gmp-tiltchange","gmp-rangechange","gmp-rollchange"];function eh(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 ev(e,t,n,r){(0,i.useEffect)(()=>{if(!e||!n)return;let o=()=>{n(r(e,t))};return e.addEventListener(t,o),()=>e.removeEventListener(t,o)},[e,t,n,r])}let ey=new Set(["bounds","defaultUIHidden","gestureHandling","internalUsageAttributionIds","maxAltitude","maxHeading","maxTilt","minAltitude","minHeading","minTilt","mode"]),eb=i.createContext(null),eE={width:"100%",height:"100%",position:"relative"};(0,i.forwardRef)((e,t)=>{let{children:n,id:r,className:o,style:l}=e,a=(0,i.useContext)(E);if(!a)throw Error(" can only be used inside an component.");let{addMap3DInstance:s,removeMap3DInstance:d}=a,[c,f,g,p,m]=function(e){let t=$("maps3d"),[n,r]=(0,i.useState)(!1),[,o]=F(),[l,a]=F(),s=function(e){let t=H(),n=(0,i.useRef)(Object.assign({},eg));return(0,i.useEffect)(()=>{if(!e)return;let r=[];for(let o of ep){let l=`gmp-${o}change`,i=()=>{(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,o),t()};e.addEventListener(l,i),r.push(()=>e.removeEventListener(l,i))}return()=>{for(let e of r)e()}},[e,t]),n}(l);return(0,i.useEffect)(()=>{customElements.whenDefined("gmp-map-3d").then(()=>{r(!0)})},[]),(0,i.useEffect)(()=>{if(!l)return;let{center:t,heading:n,tilt:r,range:o,roll:i,defaultCenter:a,defaultHeading:s,defaultTilt:d,defaultRange:c,defaultRoll:f,id:g,style:p,className:m,children:h,onCenterChanged:v,onHeadingChanged:y,onTiltChanged:b,onRangeChanged:E,onRollChanged:S,onCameraChanged:O,onClick:_,onSteadyChange:C,onAnimationEnd:w,onError:A,mode:k,gestureHandling:L}=e,I=u(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"]),P=null!=t?t:a,j=null!=n?n:s,M=null!=r?r:d,N=null!=o?o:c,R=null!=i?i:f,x=Object.assign({},I);P&&(x.center=P),void 0!==j&&(x.heading=j),void 0!==M&&(x.tilt=M),void 0!==N&&(x.range=N),void 0!==R&&(x.roll=R),Object.assign(l,x)},[l]),[l,o,a,s,!!t&&n]}(e);!function(e,t,n){var r,o,l,a,s,u,d,c;let f=(c=n.center)?"toJSON"in c&&"function"==typeof c.toJSON?c.toJSON():c:null,g=null!==(r=null==f?void 0:f.lat)&&void 0!==r?r:null,p=null!==(o=null==f?void 0:f.lng)&&void 0!==o?o:null,m=null!==(l=null==f?void 0:f.altitude)&&void 0!==l?l:null,h=null!==(a=n.range)&&void 0!==a?a:null,v=null!==(s=n.heading)&&void 0!==s?s:null,y=null!==(u=n.tilt)&&void 0!==u?u:null,b=null!==(d=n.roll)&&void 0!==d?d:null;(0,i.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)})}(c,p,e),function(e,t){let{onCenterChanged:n,onHeadingChanged:r,onTiltChanged:o,onRangeChanged:l,onRollChanged:a,onCameraChanged:s,onClick:u,onSteadyChange:d,onAnimationEnd:c,onError:f}=t;ev(e,"gmp-centerchange",n,eh),ev(e,"gmp-headingchange",r,eh),ev(e,"gmp-tiltchange",o,eh),ev(e,"gmp-rangechange",l,eh),ev(e,"gmp-rollchange",a,eh),(0,i.useEffect)(()=>{if(!e||!s)return;let t=()=>{s(eh(e,"camerachange"))};for(let n of em)e.addEventListener(n,t);return()=>{for(let n of em)e.removeEventListener(n,t)}},[e,s]),(0,i.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,i.useEffect)(()=>{if(!e||!d)return;let t=t=>{d({type:"gmp-steadychange",map3d:e,detail:{isSteady:t.isSteady}})};return e.addEventListener("gmp-steadychange",t),()=>e.removeEventListener("gmp-steadychange",t)},[e,d]),ev(e,"gmp-animationend",c,(e,t)=>({type:t,map3d:e})),ev(e,"gmp-error",f,(e,t)=>({type:t,map3d:e}))}(c,e),function(e,t){let n=(0,i.useMemo)(()=>{let e={};for(let n of Object.keys(t)){if(!ey.has(n))continue;let r=t[n];void 0!==r&&(e[n]=r)}return e},[t]);P(()=>{e&&Object.assign(e,n)},[e,n])}(c,e),(0,i.useEffect)(()=>{if(!c)return;let e=null!=r?r:"default";return s(c,e),()=>{d(e)}},[c,r]),(0,i.useImperativeHandle)(t,()=>({map3d:c,flyCameraAround:e=>{null==c||c.flyCameraAround(e)},flyCameraTo:e=>{null==c||c.flyCameraTo(e)},stopCameraAnimation:()=>{null==c||c.stopCameraAnimation()}}),[c]);let h=(0,i.useMemo)(()=>Object.assign(Object.assign({},eE),l),[l]),v=(0,i.useMemo)(()=>({map3d:c}),[c]);return m?i.createElement("div",Object.assign({ref:f,"data-testid":"map-3d",style:o?void 0:h,className:o},r?{id:r}:{}),i.createElement("gmp-map-3d",{ref:g,style:{width:"100%",height:"100%"}},c&&i.createElement(eb.Provider,{value:v},n))):i.createElement("div",Object.assign({ref:f,"data-testid":"map-3d",style:o?void 0:h,className:o},r?{id:r}:{}))}).displayName="Map3D";let eS=(0,i.createContext)(null);(0,i.forwardRef)(function(e,t){let{children:n,onClick:r,position:o,altitudeMode:l,collisionBehavior:s,drawsWhenOccluded:u,extruded:d,label:c,sizePreserved:f,zIndex:g,title:p}=e,m=!!r,[h,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(!1),E=(0,i.useMemo)(()=>{let e=document.createElement("div");return e.style.display="none",document.body.appendChild(e),e},[]);(0,i.useEffect)(()=>()=>E.remove(),[E]);let S=(0,i.useCallback)(e=>{v(e),"function"==typeof t?t(e):t&&(t.current=e)},[t]);en(h,"gmp-click",r),(0,i.useLayoutEffect)(()=>{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 O=(0,i.useMemo)(()=>({marker:h,setContentHandledExternally:b}),[h]);return ee(h,"position",o),ee(h,"altitudeMode",l),ee(h,"collisionBehavior",s),ee(h,"drawsWhenOccluded",u),ee(h,"extruded",d),ee(h,"label",c),ee(h,"sizePreserved",f),ee(h,"zIndex",g),ee(h,"title",null!=p?p:""),i.createElement(eS.Provider,{value:O},m?i.createElement("gmp-marker-3d-interactive",{ref:S}):i.createElement("gmp-marker-3d",{ref:S}),(0,a.createPortal)(n,E))}).displayName="Marker3D",(0,i.forwardRef)(function(e,t){var n;let{children:r,headerContent:o,style:l,className:a,open:s=!0,position:u,anchor:d,anchorId:c,altitudeMode:f,lightDismissDisabled:g,autoPanDisabled:p,onClose:m}=e,[h,v]=(0,i.useState)(null),y=(0,i.useRef)(null);return(0,i.useImperativeHandle)(t,()=>h,[h]),function(e,t,n){let r=(0,i.useRef)(void 0),o=(0,i.useRef)(t);(0,i.useEffect)(()=>{o.current=t},[t]),(0,i.useEffect)(()=>{if(!e||!n)return;let t=new MutationObserver(t=>{for(let l of t)if("attributes"===l.type&&"open"===l.attributeName){let t=e.hasAttribute("open");!0!==r.current||t||!1===o.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),ee(h,"open",null!=s&&s),ee(h,"altitudeMode",f),ee(h,"lightDismissDisabled",g),ee(h,"autoPanDisabled",p),ee(h,"positionAnchor",null!==(n=null!=d?d:c)&&void 0!==n?n:u),(0,i.useLayoutEffect)(()=>{h&&(function(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)&&ed(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 o=t[e];t.hasOwnProperty(e)&&n[e]!==o&&ed(r,e,o)}}(h,l||null,y.current),y.current=l||null)},[h,l]),i.createElement("gmp-popover",{ref:v,className:a},o&&i.createElement("div",{slot:"header"},o),r)}).displayName="Popover",(0,i.forwardRef)((e,t)=>{let n=function(e){let[t,n]=(0,i.useState)(null),r=Z(),{onClick:o,onDrag:l,onDragStart:a,onDragEnd:s,onMouseOver:d,onMouseOut:c}=e,f=u(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut"]),{position:g,draggable:p}=f;return(0,i.useEffect)(()=>{if(!r){void 0===r&&console.error(" 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,i.useEffect)(()=>{if(!t)return;let e=google.maps.event;return o&&e.addListener(t,"click",o),l&&e.addListener(t,"drag",l),a&&e.addListener(t,"dragstart",a),s&&e.addListener(t,"dragend",s),d&&e.addListener(t,"mouseover",d),c&&e.addListener(t,"mouseout",c),t.setDraggable(!!p),()=>{e.clearInstanceListeners(t)}},[t,p,o,l,a,s,d,c]),(0,i.useEffect)(()=>{t&&f&&t.setOptions(f)},[t,f]),(0,i.useEffect)(()=>{!p&&g&&t&&t.setPosition(g)},[p,g,t]),t}(e);return(0,i.useImperativeHandle)(t,()=>n,[n]),i.createElement(i.Fragment,null)}).displayName="Marker",(0,i.forwardRef)((e,t)=>{let n=function(e){var t,n,r;let{onClick:o,onDrag:l,onDragStart:a,onDragEnd:d,onMouseOver:c,onMouseOut:f,onBoundsChanged:g,bounds:p,defaultBounds:m}=e,h=u(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onBoundsChanged","bounds","defaultBounds"]),[v,y]=(0,i.useState)(null),b=Z(),E=I(Object.assign(Object.assign({},h),{clickable:null!==(t=h.clickable)&&void 0!==t?t:!!o,draggable:null!==(n=h.draggable)&&void 0!==n?n:!!(l||a||d||g),editable:null!==(r=h.editable)&&void 0!==r?r:!!g}),s);return(0,i.useEffect)(()=>{if(!b){void 0===b&&console.error(" has to be inside a Map component.");return}let e=new google.maps.Rectangle(Object.assign(Object.assign({},E),{bounds:null!=p?p:m}));return e.setMap(b),y(e),()=>{e.setMap(null),y(null)}},[b]),Y(v,"click",o),Y(v,"drag",l),Y(v,"dragstart",a),Y(v,"dragend",d),Y(v,"mouseover",c),Y(v,"mouseout",f),Y(v,"bounds_changed",g?()=>{g(null==v?void 0:v.getBounds())}:null),(0,i.useEffect)(()=>{v&&v.setOptions(E)},[v,E]),(0,i.useEffect)(()=>{v&&p&&!function(e,t){if(!e||!t)return!1;let n=x(e),r=x(t);return n.north===r.north&&n.south===r.south&&n.east===r.east&&n.west===r.west}(p,v.getBounds())&&v.setBounds(p)},[v,p]),v}(e);return(0,i.useImperativeHandle)(t,()=>n,[n]),i.createElement(i.Fragment,null)}).displayName="Rectangle"}}]);