Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vue3-google-map

Package Overview
Dependencies
Maintainers
0
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue3-google-map - npm Package Compare versions

Comparing version 0.21.0 to 0.21.1

8

dist/index.umd.js
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-104539fc]{width:100%;height:100%}.custom-control-wrapper[data-v-268ef28d]{display:none}.mapdiv .custom-control-wrapper[data-v-268ef28d]{display:inline-block}.info-window-wrapper[data-v-f929b615]{display:none}.mapdiv .info-window-wrapper[data-v-f929b615]{display:inline-block}.custom-marker-wrapper[data-v-4b2eafc1]{display:none}.mapdiv .custom-marker-wrapper[data-v-4b2eafc1]{display:inline-block}")),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
(function(w,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(w=typeof globalThis<"u"?globalThis:w||self,l(w.Vue3GoogleMap={},w.Vue))})(this,function(w,l){"use strict";var gt=Object.defineProperty;var yt=(w,l,O)=>l in w?gt(w,l,{enumerable:!0,configurable:!0,writable:!0,value:O}):w[l]=O;var te=(w,l,O)=>(yt(w,typeof l!="symbol"?l+"":l,O),O);const O=Symbol("map"),I=Symbol("api"),G=Symbol("marker"),H=Symbol("markerCluster"),D=Symbol("CustomMarker"),ne=Symbol("mapTilesLoaded"),j=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! *****************************************************************************
(function(w,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],a):(w=typeof globalThis<"u"?globalThis:w||self,a(w.Vue3GoogleMap={},w.Vue))})(this,function(w,a){"use strict";var gt=Object.defineProperty;var yt=(w,a,O)=>a in w?gt(w,a,{enumerable:!0,configurable:!0,writable:!0,value:O}):w[a]=O;var te=(w,a,O)=>(yt(w,typeof a!="symbol"?a+"":a,O),O);const O=Symbol("map"),x=Symbol("api"),G=Symbol("marker"),H=Symbol("markerCluster"),D=Symbol("CustomMarker"),ne=Symbol("mapTilesLoaded"),j=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

@@ -15,3 +15,3 @@

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function Me(s,e,t,n){function r(o){return o instanceof t?o:new t(function(i){i(o)})}return new(t||(t=Promise))(function(o,i){function c(d){try{h(n.next(d))}catch(u){i(u)}}function a(d){try{h(n.throw(d))}catch(u){i(u)}}function h(d){d.done?o(d.value):r(d.value).then(c,a)}h((n=n.apply(s,e||[])).next())})}var be=function s(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!s(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){var i=o[r];if(!s(e[i],t[i]))return!1}return!0}return e!==e&&t!==t};const re="__googleMapsScriptId";var B;(function(s){s[s.INITIALIZED=0]="INITIALIZED",s[s.LOADING=1]="LOADING",s[s.SUCCESS=2]="SUCCESS",s[s.FAILURE=3]="FAILURE"})(B||(B={}));class T{constructor({apiKey:e,authReferrerPolicy:t,channel:n,client:r,id:o=re,language:i,libraries:c=[],mapIds:a,nonce:h,region:d,retries:u=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||re,this.language=i,this.libraries=c,this.mapIds=a,this.nonce=h,this.region=d,this.retries=u,this.url=p,this.version=f,T.instance){if(!be(this.options,T.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(T.instance.options)}`);return T.instance}T.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?B.FAILURE:this.done?B.SUCCESS:this.loading?B.LOADING:B.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+="?callback=__googleMapsCallback",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(){const 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}const 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(o=>!n[o]&&delete n[o]),!((t=(e=window==null?void 0:window.google)===null||e===void 0?void 0:e.maps)===null||t===void 0)&&t.importLibrary||(o=>{let i,c,a,h="The Google Maps JavaScript API",d="google",u="importLibrary",p="__ib__",f=document,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),y=new Set,v=new URLSearchParams,k=()=>i||(i=new Promise((_,E)=>Me(this,void 0,void 0,function*(){var b;yield c=f.createElement("script"),c.id=this.id,v.set("libraries",[...y]+"");for(a in o)v.set(a.replace(/[A-Z]/g,P=>"_"+P[0].toLowerCase()),o[a]);v.set("callback",d+".maps."+p),c.src=this.url+"?"+v,m[p]=_,c.onerror=()=>i=E(Error(h+" could not load.")),c.nonce=this.nonce||((b=f.querySelector("script[nonce]"))===null||b===void 0?void 0:b.nonce)||"",f.head.append(c)})));m[u]?console.warn(h+" only loads once. Ignoring:",o):m[u]=(_,...E)=>y.add(_)&&k().then(()=>m[u](_,...E))})(n);const r=this.libraries.map(o=>this.importLibrary(o));r.length||r.push(this.importLibrary("core")),Promise.all(r).then(()=>this.callback(),o=>{const i=new ErrorEvent("error",{error:o});this.loadErrorCallback(i)})}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){const t=this.errors.length*Math.pow(2,this.errors.length);console.error(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},t)}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.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||(this.loading=!0,this.setScript())}}}function Ee(s){return class extends s.OverlayView{constructor(n){super();te(this,"element");te(this,"opts");const{element:r,...o}=n;this.element=r,this.opts=o,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof s.LatLng?this.opts.position:new s.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const n=this.element;return n.style.display!=="none"&&n.style.visibility!=="hidden"&&(n.style.opacity===""||Number(n.style.opacity)>.01)}onAdd(){if(!this.element)return;const n=this.getPanes();n&&n.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const n=this.getProjection(),r=n==null?void 0:n.fromLatLngToDivPixel(this.getPosition());if(r){this.element.style.position="absolute";const o=this.element.offsetHeight,i=this.element.offsetWidth;let c,a;switch(this.opts.anchorPoint){case"TOP_CENTER":c=r.x-i/2,a=r.y;break;case"BOTTOM_CENTER":c=r.x-i/2,a=r.y-o;break;case"LEFT_CENTER":c=r.x,a=r.y-o/2;break;case"RIGHT_CENTER":c=r.x-i,a=r.y-o/2;break;case"TOP_LEFT":c=r.x,a=r.y;break;case"TOP_RIGHT":c=r.x-i,a=r.y;break;case"BOTTOM_LEFT":c=r.x,a=r.y-o;break;case"BOTTOM_RIGHT":c=r.x-i,a=r.y-o;break;default:c=r.x-i/2,a=r.y-o/2}this.element.style.left=c+"px",this.element.style.top=a+"px",this.element.style.transform=`translateX(${this.opts.offsetX||0}px) translateY(${this.opts.offsetY||0}px)`,this.opts.zIndex&&(this.element.style.zIndex=this.opts.zIndex.toString())}}onRemove(){this.element&&this.element.remove()}setOptions(n){const{element:r,...o}=n;this.element=r,this.opts=o,this.draw()}}}let se;const oe=["bounds_changed","center_changed","click","contextmenu","dblclick","drag","dragend","dragstart","heading_changed","idle","isfractionalzoomenabled_changed","mapcapabilities_changed","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","renderingtype_changed","rightclick","tilesloaded","tilt_changed","zoom_changed"],Oe=l.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places","marker"]},region:{type:String,required:!1},language:{type:String,required:!1},backgroundColor:{type:String,required:!1},center:{type:Object,default:()=>({lat:0,lng:0})},clickableIcons:{type:Boolean,required:!1,default:void 0},controlSize:{type:Number,required:!1},disableDefaultUi:{type:Boolean,required:!1,default:void 0},disableDoubleClickZoom:{type:Boolean,required:!1,default:void 0},draggable:{type:Boolean,required:!1,default:void 0},draggableCursor:{type:String,required:!1},draggingCursor:{type:String,required:!1},fullscreenControl:{type:Boolean,required:!1,default:void 0},fullscreenControlPosition:{type:String,required:!1},gestureHandling:{type:String,required:!1},heading:{type:Number,required:!1},isFractionalZoomEnabled:{type:Boolean,required:!1,default:void 0},keyboardShortcuts:{type:Boolean,required:!1,default:void 0},mapTypeControl:{type:Boolean,required:!1,default:void 0},mapTypeControlOptions:{type:Object,required:!1},mapTypeId:{type:[Number,String],required:!1},mapId:{type:String,required:!1},maxZoom:{type:Number,required:!1},minZoom:{type:Number,required:!1},noClear:{type:Boolean,required:!1,default:void 0},panControl:{type:Boolean,required:!1,default:void 0},panControlPosition:{type:String,required:!1},restriction:{type:Object,required:!1},rotateControl:{type:Boolean,required:!1,default:void 0},rotateControlPosition:{type:String,required:!1},scaleControl:{type:Boolean,required:!1,default:void 0},scaleControlStyle:{type:Number,required:!1},scrollwheel:{type:Boolean,required:!1,default:void 0},streetView:{type:Object,required:!1},streetViewControl:{type:Boolean,required:!1,default:void 0},streetViewControlPosition:{type:String,required:!1},styles:{type:Array,required:!1},tilt:{type:Number,required:!1},zoom:{type:Number,required:!1},zoomControl:{type:Boolean,required:!1,default:void 0},zoomControlPosition:{type:String,required:!1},nonce:{type:String,default:""}},emits:oe,setup(s,{emit:e}){const t=l.ref(),n=l.ref(!1),r=l.ref(),o=l.ref(),i=l.ref(!1);l.provide(O,r),l.provide(I,o),l.provide(ne,i);const c=()=>{const u={...s};Object.keys(u).forEach(m=>{u[m]===void 0&&delete u[m]});const f=m=>{var y;return m?{position:(y=o.value)==null?void 0:y.ControlPosition[m]}:{}},g={scaleControlOptions:s.scaleControlStyle?{style:s.scaleControlStyle}:{},panControlOptions:f(s.panControlPosition),zoomControlOptions:f(s.zoomControlPosition),rotateControlOptions:f(s.rotateControlPosition),streetViewControlOptions:f(s.streetViewControlPosition),fullscreenControlOptions:f(s.fullscreenControlPosition),disableDefaultUI:s.disableDefaultUi};return{...u,...g}},a=l.watch([o,r],([u,p])=>{const f=u,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{i.value=!0}),setTimeout(a,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:g,libraries:m,nonce:y}=s;se=new T({apiKey:u,region:p,version:f,language:g,libraries:m,nonce:y})}catch(u){console.error(u)}},d=u=>{o.value=l.markRaw(u.maps),r.value=l.markRaw(new u.maps.Map(t.value,c()));const p=Ee(o.value);o.value[D]=p,oe.forEach(g=>{var m;(m=r.value)==null||m.addListener(g,y=>e(g,y))}),n.value=!0;const f=Object.keys(s).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom","nonce"].includes(g)).map(g=>l.toRef(s,g));l.watch([()=>s.center,()=>s.zoom,...f],([g,m],[y,v])=>{var P,C,L;const{center:k,zoom:_,...E}=c();(P=r.value)==null||P.setOptions(E),m!==void 0&&m!==v&&((C=r.value)==null||C.setZoom(m));const b=!y||g.lng!==y.lng||g.lat!==y.lat;g&&b&&((L=r.value)==null||L.panTo(g))})};return l.onMounted(()=>{s.apiPromise&&s.apiPromise instanceof Promise?s.apiPromise.then(d):(h(),se.load().then(d))}),l.onBeforeUnmount(()=>{var u;i.value=!1,r.value&&((u=o.value)==null||u.event.clearInstanceListeners(r.value))}),{mapRef:t,ready:n,map:r,api:o,mapTilesLoaded:i}}}),vt="",F=(s,e)=>{const t=s.__vccOpts||s;for(const[n,r]of e)t[n]=r;return t},Pe={ref:"mapRef",class:"mapdiv"};function Se(s,e,t,n,r,o){return l.openBlock(),l.createElementBlock("div",null,[l.createElementVNode("div",Pe,null,512),l.renderSlot(s.$slots,"default",l.normalizeProps(l.guardReactiveProps({ready:s.ready,map:s.map,api:s.api,mapTilesLoaded:s.mapTilesLoaded})),void 0,!0)])}const Le=F(Oe,[["render",Se],["__scopeId","data-v-104539fc"]]);function xe(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var Ae=function s(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!s(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){var i=o[r];if(!s(e[i],t[i]))return!1}return!0}return e!==e&&t!==t};const S=xe(Ae),ie=["click","drag","dragend","dragstart","gmp-click"],Ie=l.defineComponent({name:"AdvancedMarker",props:{options:{type:Object,required:!0},pinOptions:{type:Object,required:!1}},emits:ie,setup(s,{emit:e,expose:t,slots:n}){const r=l.toRef(s,"options"),o=l.toRef(s,"pinOptions"),i=l.ref(),c=l.inject(O,l.ref()),a=l.inject(I,l.ref()),h=l.inject(H,l.ref()),d=l.computed(()=>!!(h.value&&a.value&&i.value instanceof google.maps.marker.AdvancedMarkerElement));return l.watch([c,r,o],async(u,[p,f,g])=>{var _,E,b;const y=!S(r.value,f)||!S(o.value,g)||c.value!==p;if(!c.value||!a.value||!y)return;const{AdvancedMarkerElement:v,PinElement:k}=a.value.marker;if(i.value){const{map:P,content:C,...L}=r.value;Object.assign(i.value,{content:o.value?new k(o.value).element:C,...L}),d.value&&((_=h.value)==null||_.removeMarker(i.value),(E=h.value)==null||E.addMarker(i.value))}else o.value&&(r.value.content=new k(o.value).element),i.value=l.markRaw(new v(r.value)),d.value?(b=h.value)==null||b.addMarker(i.value):i.value.map=c.value,ie.forEach(P=>{var C;(C=i.value)==null||C.addListener(P,L=>e(P,L))})},{immediate:!0}),l.onBeforeUnmount(()=>{var u,p;i.value&&((u=a.value)==null||u.event.clearInstanceListeners(i.value),d.value?(p=h.value)==null||p.removeMarker(i.value):i.value.map=null)}),l.provide(G,i),t({marker:i}),()=>{var u;return(u=n.default)==null?void 0:u.call(n)}}}),Te=s=>s==="Marker",Re=s=>s===D,$=(s,e,t,n)=>{const r=l.ref(),o=l.inject(O,l.ref()),i=l.inject(I,l.ref()),c=l.inject(H,l.ref()),a=l.computed(()=>!!(c.value&&i.value&&(r.value instanceof i.value.Marker||r.value instanceof i.value[D])));return l.watch([o,t],(h,[d,u])=>{var f,g,m;const p=!S(t.value,u)||o.value!==d;!o.value||!i.value||!p||(r.value?(r.value.setOptions(t.value),a.value&&((f=c.value)==null||f.removeMarker(r.value),(g=c.value)==null||g.addMarker(r.value))):(Te(s)?r.value=l.markRaw(new i.value[s](t.value)):Re(s)?r.value=l.markRaw(new i.value[s](t.value)):r.value=l.markRaw(new i.value[s]({...t.value,map:o.value})),a.value?(m=c.value)==null||m.addMarker(r.value):r.value.setMap(o.value),e.forEach(y=>{var v;(v=r.value)==null||v.addListener(y,k=>n(y,k))})))},{immediate:!0}),l.onBeforeUnmount(()=>{var h,d;r.value&&((h=i.value)==null||h.event.clearInstanceListeners(r.value),a.value?(d=c.value)==null||d.removeMarker(r.value):r.value.setMap(null))}),r},ae=["animation_changed","click","dblclick","rightclick","dragstart","dragend","drag","mouseover","mousedown","mouseout","mouseup","draggable_changed","clickable_changed","contextmenu","cursor_changed","flat_changed","rightclick","zindex_changed","icon_changed","position_changed","shape_changed","title_changed","visible_changed"],je=l.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:ae,setup(s,{emit:e,expose:t,slots:n}){const r=l.toRef(s,"options"),o=$("Marker",ae,r,e);return l.provide(G,o),t({marker:o}),()=>{var i;return(i=n.default)==null?void 0:i.call(n)}}}),Be=l.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:j,setup(s,{emit:e}){const t=l.toRef(s,"options");return{polyline:$("Polyline",j,t,e)}},render:()=>null}),$e=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:j,setup(s,{emit:e}){const t=l.toRef(s,"options");return{polygon:$("Polygon",j,t,e)}},render:()=>null}),le=j.concat(["bounds_changed"]),qe=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:le,setup(s,{emit:e}){const t=l.toRef(s,"options");return{rectangle:$("Rectangle",le,t,e)}},render:()=>null}),ce=j.concat(["center_changed","radius_changed"]),Ne=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:ce,setup(s,{emit:e}){const t=l.toRef(s,"options");return{circle:$("Circle",ce,t,e)}},render:()=>null}),Ze=l.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(s,{emit:e}){const t=l.ref(null),n=l.inject(O,l.ref()),r=l.inject(I,l.ref()),o=l.inject(ne,l.ref(!1)),i=l.watch([o,r,t],([h,d,u])=>{d&&h&&u&&(c(s.position),e("content:loaded"),setTimeout(i,0))},{immediate:!0}),c=h=>{if(n.value&&r.value&&t.value){const d=r.value.ControlPosition[h];n.value.controls[d].push(t.value)}},a=h=>{if(n.value&&r.value){let d=null;const u=r.value.ControlPosition[h];n.value.controls[u].forEach((p,f)=>{p===t.value&&(d=f)}),d!==null&&n.value.controls[u].removeAt(d)}};return l.onBeforeUnmount(()=>a(s.position)),l.watch(()=>s.position,(h,d)=>{a(d),c(h)}),l.watch(()=>s.index,h=>{h&&t.value&&(t.value.index=s.index)}),{controlRef:t}}}),wt="",Ue={ref:"controlRef",class:"custom-control-wrapper"};function De(s,e,t,n,r,o){return l.openBlock(),l.createElementBlock("div",Ue,[l.renderSlot(s.$slots,"default",{},void 0,!0)],512)}const Fe=F(Ze,[["render",De],["__scopeId","data-v-268ef28d"]]),ue=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Ve=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...ue,"update:modelValue"],setup(s,{slots:e,emit:t,expose:n}){const r=l.ref(),o=l.ref(),i=l.inject(O,l.ref()),c=l.inject(I,l.ref()),a=l.inject(G,l.ref());let h,d=s.modelValue;const u=l.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(y=>y.type!==l.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{r.value&&(r.value.open({map:i.value,anchor:a.value,...m}),p(!0))},g=()=>{r.value&&(r.value.close(),p(!1))};return l.onMounted(()=>{l.watch([i,()=>s.options],([m,y],[v,k])=>{var E;const _=!S(y,k)||i.value!==v;i.value&&c.value&&_&&(r.value?(r.value.setOptions({...y,content:u.value?o.value:y.content}),a.value||f()):(r.value=l.markRaw(new c.value.InfoWindow({...y,content:u.value?o.value:y.content})),a.value&&(h=a.value.addListener("click",()=>{f()})),(!a.value||d)&&f(),ue.forEach(b=>{var P;(P=r.value)==null||P.addListener(b,C=>t(b,C))}),(E=r.value)==null||E.addListener("closeclick",()=>p(!1))))},{immediate:!0}),l.watch(()=>s.modelValue,m=>{m!==d&&(m?f():g())})}),l.onBeforeUnmount(()=>{var m;h&&h.remove(),r.value&&((m=c.value)==null||m.event.clearInstanceListeners(r.value),g())}),n({infoWindow:r,open:f,close:g}),{infoWindow:r,infoWindowRef:o,hasSlotContent:u,open:f,close:g}}}),kt="",ze={key:0,class:"info-window-wrapper"};function Ge(s,e,t,n,r,o){return s.hasSlotContent?(l.openBlock(),l.createElementBlock("div",ze,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},s.$attrs),[l.renderSlot(s.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const He=F(Ve,[["render",Ge],["__scopeId","data-v-f929b615"]]),de=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],W=1,N=8;class K{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,n]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const r=n>>4;if(r!==W)throw new Error(`Got v${r} data when expected v${W}.`);const o=de[n&15];if(!o)throw new Error("Unrecognized array type.");const[i]=new Uint16Array(e,2,1),[c]=new Uint32Array(e,4,1);return new K(c,i,o,e)}constructor(e,t=64,n=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const o=de.indexOf(this.ArrayType),i=e*2*this.ArrayType.BYTES_PER_ELEMENT,c=e*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-c%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${n}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,N,e),this.coords=new this.ArrayType(this.data,N+c+a,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(N+i+c+a),this.ids=new this.IndexArrayType(this.data,N,e),this.coords=new this.ArrayType(this.data,N+c+a,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(W<<4)+o]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=t,n}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return J(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,n,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:i,nodeSize:c}=this,a=[0,o.length-1,0],h=[];for(;a.length;){const d=a.pop()||0,u=a.pop()||0,p=a.pop()||0;if(u-p<=c){for(let y=p;y<=u;y++){const v=i[2*y],k=i[2*y+1];v>=e&&v<=n&&k>=t&&k<=r&&h.push(o[y])}continue}const f=p+u>>1,g=i[2*f],m=i[2*f+1];g>=e&&g<=n&&m>=t&&m<=r&&h.push(o[f]),(d===0?e<=g:t<=m)&&(a.push(p),a.push(f-1),a.push(1-d)),(d===0?n>=g:r>=m)&&(a.push(f+1),a.push(u),a.push(1-d))}return h}within(e,t,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:o,nodeSize:i}=this,c=[0,r.length-1,0],a=[],h=n*n;for(;c.length;){const d=c.pop()||0,u=c.pop()||0,p=c.pop()||0;if(u-p<=i){for(let y=p;y<=u;y++)pe(o[2*y],o[2*y+1],e,t)<=h&&a.push(r[y]);continue}const f=p+u>>1,g=o[2*f],m=o[2*f+1];pe(g,m,e,t)<=h&&a.push(r[f]),(d===0?e-n<=g:t-n<=m)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+n>=g:t+n>=m)&&(c.push(f+1),c.push(u),c.push(1-d))}return a}}function J(s,e,t,n,r,o){if(r-n<=t)return;const i=n+r>>1;he(s,e,i,n,r,o),J(s,e,t,n,i-1,1-o),J(s,e,t,i+1,r,1-o)}function he(s,e,t,n,r,o){for(;r>n;){if(r-n>600){const h=r-n+1,d=t-n+1,u=Math.log(h),p=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*p*(h-p)/h)*(d-h/2<0?-1:1),g=Math.max(n,Math.floor(t-d*p/h+f)),m=Math.min(r,Math.floor(t+(h-d)*p/h+f));he(s,e,t,g,m,o)}const i=e[2*t+o];let c=n,a=r;for(Z(s,e,n,t),e[2*r+o]>i&&Z(s,e,n,r);c<a;){for(Z(s,e,c,a),c++,a--;e[2*c+o]<i;)c++;for(;e[2*a+o]>i;)a--}e[2*n+o]===i?Z(s,e,n,a):(a++,Z(s,e,a,r)),a<=t&&(n=a+1),t<=a&&(r=a-1)}}function Z(s,e,t,n){Y(s,t,n),Y(e,2*t,2*n),Y(e,2*t+1,2*n+1)}function Y(s,e,t){const n=s[e];s[e]=s[t],s[t]=n}function pe(s,e,t,n){const r=s-t,o=e-n;return r*r+o*o}const We={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:s=>s},fe=Math.fround||(s=>e=>(s[0]=+e,s[0]))(new Float32Array(1)),R=2,x=3,X=4,A=5,me=6;class ge{constructor(e){this.options=Object.assign(Object.create(We),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:n,maxZoom:r}=this.options;t&&console.time("total time");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const i=[];for(let a=0;a<e.length;a++){const h=e[a];if(!h.geometry)continue;const[d,u]=h.geometry.coordinates,p=fe(V(d)),f=fe(z(u));i.push(p,f,1/0,a,-1,1),this.options.reduce&&i.push(0)}let c=this.trees[r+1]=this._createTree(i);t&&console.timeEnd(o);for(let a=r;a>=n;a--){const h=+Date.now();c=this.trees[a]=this._createTree(this._cluster(c,a)),t&&console.log("z%d: %d clusters in %dms",a,c.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let n=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let o=e[2]===180?180:((e[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)n=-180,o=180;else if(n>o){const u=this.getClusters([n,r,180,i],t),p=this.getClusters([-180,r,o,i],t);return u.concat(p)}const c=this.trees[this._limitZoom(t)],a=c.range(V(n),z(i),V(o),z(r)),h=c.data,d=[];for(const u of a){const p=this.stride*u;d.push(h[p+A]>1?ye(h,p,this.clusterProps):this.points[h[p+x]])}return d}getChildren(e){const t=this._getOriginId(e),n=this._getOriginZoom(e),r="No cluster with the specified id.",o=this.trees[n];if(!o)throw new Error(r);const i=o.data;if(t*this.stride>=i.length)throw new Error(r);const c=this.options.radius/(this.options.extent*Math.pow(2,n-1)),a=i[t*this.stride],h=i[t*this.stride+1],d=o.within(a,h,c),u=[];for(const p of d){const f=p*this.stride;i[f+X]===e&&u.push(i[f+A]>1?ye(i,f,this.clusterProps):this.points[i[f+x]])}if(u.length===0)throw new Error(r);return u}getLeaves(e,t,n){t=t||10,n=n||0;const r=[];return this._appendLeaves(r,e,t,n,0),r}getTile(e,t,n){const r=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:i,radius:c}=this.options,a=c/i,h=(n-a)/o,d=(n+1+a)/o,u={features:[]};return this._addTileFeatures(r.range((t-a)/o,h,(t+1+a)/o,d),r.data,t,n,o,u),t===0&&this._addTileFeatures(r.range(1-a/o,h,1,d),r.data,o,n,o,u),t===o-1&&this._addTileFeatures(r.range(0,h,a/o,d),r.data,-1,n,o,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const n=this.getChildren(e);if(t++,n.length!==1)break;e=n[0].properties.cluster_id}return t}_appendLeaves(e,t,n,r,o){const i=this.getChildren(t);for(const c of i){const a=c.properties;if(a&&a.cluster?o+a.point_count<=r?o+=a.point_count:o=this._appendLeaves(e,a.cluster_id,n,r,o):o<r?o++:e.push(c),e.length===n)break}return o}_createTree(e){const t=new K(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let n=0;n<e.length;n+=this.stride)t.add(e[n],e[n+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,n,r,o,i){for(const c of e){const a=c*this.stride,h=t[a+A]>1;let d,u,p;if(h)d=ve(t,a,this.clusterProps),u=t[a],p=t[a+1];else{const m=this.points[t[a+x]];d=m.properties;const[y,v]=m.geometry.coordinates;u=V(y),p=z(v)}const f={type:1,geometry:[[Math.round(this.options.extent*(u*o-n)),Math.round(this.options.extent*(p*o-r))]],tags:d};let g;h||this.options.generateId?g=t[a+x]:g=this.points[t[a+x]].id,g!==void 0&&(f.id=g),i.features.push(f)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:n,extent:r,reduce:o,minPoints:i}=this.options,c=n/(r*Math.pow(2,t)),a=e.data,h=[],d=this.stride;for(let u=0;u<a.length;u+=d){if(a[u+R]<=t)continue;a[u+R]=t;const p=a[u],f=a[u+1],g=e.within(a[u],a[u+1],c),m=a[u+A];let y=m;for(const v of g){const k=v*d;a[k+R]>t&&(y+=a[k+A])}if(y>m&&y>=i){let v=p*m,k=f*m,_,E=-1;const b=((u/d|0)<<5)+(t+1)+this.points.length;for(const P of g){const C=P*d;if(a[C+R]<=t)continue;a[C+R]=t;const L=a[C+A];v+=a[C]*L,k+=a[C+1]*L,a[C+X]=b,o&&(_||(_=this._map(a,u,!0),E=this.clusterProps.length,this.clusterProps.push(_)),o(_,this._map(a,C)))}a[u+X]=b,h.push(v/y,k/y,1/0,b,-1,y),o&&h.push(E)}else{for(let v=0;v<d;v++)h.push(a[u+v]);if(y>1)for(const v of g){const k=v*d;if(!(a[k+R]<=t)){a[k+R]=t;for(let _=0;_<d;_++)h.push(a[k+_])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,n){if(e[t+A]>1){const i=this.clusterProps[e[t+me]];return n?Object.assign({},i):i}const r=this.points[e[t+x]].properties,o=this.options.map(r);return n&&o===r?Object.assign({},o):o}}function ye(s,e,t){return{type:"Feature",id:s[e+x],properties:ve(s,e,t),geometry:{type:"Point",coordinates:[Ke(s[e]),Je(s[e+1])]}}}function ve(s,e,t){const n=s[e+A],r=n>=1e4?`${Math.round(n/1e3)}k`:n>=1e3?`${Math.round(n/100)/10}k`:n,o=s[e+me],i=o===-1?{}:Object.assign({},t[o]);return Object.assign(i,{cluster:!0,cluster_id:s[e+x],point_count:n,point_count_abbreviated:r})}function V(s){return s/360+.5}function z(s){const e=Math.sin(s*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function Ke(s){return(s-.5)*360}function Je(s){const e=(180-s*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
***************************************************************************** */function Me(o,e,t,n){function r(s){return s instanceof t?s:new t(function(i){i(s)})}return new(t||(t=Promise))(function(s,i){function u(d){try{h(n.next(d))}catch(c){i(c)}}function l(d){try{h(n.throw(d))}catch(c){i(c)}}function h(d){d.done?s(d.value):r(d.value).then(u,l)}h((n=n.apply(o,e||[])).next())})}var be=function o(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,s;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!o(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[r]))return!1;for(r=n;r--!==0;){var i=s[r];if(!o(e[i],t[i]))return!1}return!0}return e!==e&&t!==t};const re="__googleMapsScriptId";var $;(function(o){o[o.INITIALIZED=0]="INITIALIZED",o[o.LOADING=1]="LOADING",o[o.SUCCESS=2]="SUCCESS",o[o.FAILURE=3]="FAILURE"})($||($={}));class T{constructor({apiKey:e,authReferrerPolicy:t,channel:n,client:r,id:s=re,language:i,libraries:u=[],mapIds:l,nonce:h,region:d,retries:c=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=s||re,this.language=i,this.libraries=u,this.mapIds=l,this.nonce=h,this.region=d,this.retries=c,this.url=p,this.version=f,T.instance){if(!be(this.options,T.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(T.instance.options)}`);return T.instance}T.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?$.FAILURE:this.done?$.SUCCESS:this.loading?$.LOADING:$.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+="?callback=__googleMapsCallback",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(){const 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}const 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(s=>!n[s]&&delete n[s]),!((t=(e=window==null?void 0:window.google)===null||e===void 0?void 0:e.maps)===null||t===void 0)&&t.importLibrary||(s=>{let i,u,l,h="The Google Maps JavaScript API",d="google",c="importLibrary",p="__ib__",f=document,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),y=new Set,v=new URLSearchParams,k=()=>i||(i=new Promise((_,E)=>Me(this,void 0,void 0,function*(){var b;yield u=f.createElement("script"),u.id=this.id,v.set("libraries",[...y]+"");for(l in s)v.set(l.replace(/[A-Z]/g,P=>"_"+P[0].toLowerCase()),s[l]);v.set("callback",d+".maps."+p),u.src=this.url+"?"+v,m[p]=_,u.onerror=()=>i=E(Error(h+" could not load.")),u.nonce=this.nonce||((b=f.querySelector("script[nonce]"))===null||b===void 0?void 0:b.nonce)||"",f.head.append(u)})));m[c]?console.warn(h+" only loads once. Ignoring:",s):m[c]=(_,...E)=>y.add(_)&&k().then(()=>m[c](_,...E))})(n);const r=this.libraries.map(s=>this.importLibrary(s));r.length||r.push(this.importLibrary("core")),Promise.all(r).then(()=>this.callback(),s=>{const i=new ErrorEvent("error",{error:s});this.loadErrorCallback(i)})}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){const t=this.errors.length*Math.pow(2,this.errors.length);console.error(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},t)}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.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||(this.loading=!0,this.setScript())}}}function Ee(o){return class extends o.OverlayView{constructor(n){super();te(this,"element");te(this,"opts");const{element:r,...s}=n;this.element=r,this.opts=s,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof o.LatLng?this.opts.position:new o.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const n=this.element;return n.style.display!=="none"&&n.style.visibility!=="hidden"&&(n.style.opacity===""||Number(n.style.opacity)>.01)}onAdd(){if(!this.element)return;const n=this.getPanes();n&&n.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const n=this.getProjection(),r=n==null?void 0:n.fromLatLngToDivPixel(this.getPosition());if(r){this.element.style.position="absolute";let s,i;switch(this.opts.anchorPoint){case"TOP_CENTER":s="-50%",i="-100%";break;case"BOTTOM_CENTER":s="-50%",i="0";break;case"LEFT_CENTER":s="-100%",i="-50%";break;case"RIGHT_CENTER":s="0",i="-50%";break;case"TOP_LEFT":s="-100%",i="-100%";break;case"TOP_RIGHT":s="0",i="-100%";break;case"BOTTOM_LEFT":s="-100%",i="0";break;case"BOTTOM_RIGHT":s="0",i="0";break;default:s="-50%",i="-50%"}const u=r.x+(this.opts.offsetX||0)+"px",l=r.y+(this.opts.offsetY||0)+"px";this.element.style.transform=`translateX(${s}) translateX(${u}) translateY(${i}) translateY(${l})`,this.opts.zIndex&&(this.element.style.zIndex=this.opts.zIndex.toString())}}onRemove(){this.element&&this.element.remove()}setOptions(n){const{element:r,...s}=n;this.element=r,this.opts=s,this.draw()}}}let se;const oe=["bounds_changed","center_changed","click","contextmenu","dblclick","drag","dragend","dragstart","heading_changed","idle","isfractionalzoomenabled_changed","mapcapabilities_changed","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","renderingtype_changed","rightclick","tilesloaded","tilt_changed","zoom_changed"],Oe=a.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places","marker"]},region:{type:String,required:!1},language:{type:String,required:!1},backgroundColor:{type:String,required:!1},center:{type:Object,default:()=>({lat:0,lng:0})},clickableIcons:{type:Boolean,required:!1,default:void 0},controlSize:{type:Number,required:!1},disableDefaultUi:{type:Boolean,required:!1,default:void 0},disableDoubleClickZoom:{type:Boolean,required:!1,default:void 0},draggable:{type:Boolean,required:!1,default:void 0},draggableCursor:{type:String,required:!1},draggingCursor:{type:String,required:!1},fullscreenControl:{type:Boolean,required:!1,default:void 0},fullscreenControlPosition:{type:String,required:!1},gestureHandling:{type:String,required:!1},heading:{type:Number,required:!1},isFractionalZoomEnabled:{type:Boolean,required:!1,default:void 0},keyboardShortcuts:{type:Boolean,required:!1,default:void 0},mapTypeControl:{type:Boolean,required:!1,default:void 0},mapTypeControlOptions:{type:Object,required:!1},mapTypeId:{type:[Number,String],required:!1},mapId:{type:String,required:!1},maxZoom:{type:Number,required:!1},minZoom:{type:Number,required:!1},noClear:{type:Boolean,required:!1,default:void 0},panControl:{type:Boolean,required:!1,default:void 0},panControlPosition:{type:String,required:!1},restriction:{type:Object,required:!1},rotateControl:{type:Boolean,required:!1,default:void 0},rotateControlPosition:{type:String,required:!1},scaleControl:{type:Boolean,required:!1,default:void 0},scaleControlStyle:{type:Number,required:!1},scrollwheel:{type:Boolean,required:!1,default:void 0},streetView:{type:Object,required:!1},streetViewControl:{type:Boolean,required:!1,default:void 0},streetViewControlPosition:{type:String,required:!1},styles:{type:Array,required:!1},tilt:{type:Number,required:!1},zoom:{type:Number,required:!1},zoomControl:{type:Boolean,required:!1,default:void 0},zoomControlPosition:{type:String,required:!1},nonce:{type:String,default:""}},emits:oe,setup(o,{emit:e}){const t=a.ref(),n=a.ref(!1),r=a.ref(),s=a.ref(),i=a.ref(!1);a.provide(O,r),a.provide(x,s),a.provide(ne,i);const u=()=>{const c={...o};Object.keys(c).forEach(m=>{c[m]===void 0&&delete c[m]});const f=m=>{var y;return m?{position:(y=s.value)==null?void 0:y.ControlPosition[m]}:{}},g={scaleControlOptions:o.scaleControlStyle?{style:o.scaleControlStyle}:{},panControlOptions:f(o.panControlPosition),zoomControlOptions:f(o.zoomControlPosition),rotateControlOptions:f(o.rotateControlPosition),streetViewControlOptions:f(o.streetViewControlPosition),fullscreenControlOptions:f(o.fullscreenControlPosition),disableDefaultUI:o.disableDefaultUi};return{...c,...g}},l=a.watch([s,r],([c,p])=>{const f=c,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{i.value=!0}),setTimeout(l,0))},{immediate:!0}),h=()=>{try{const{apiKey:c,region:p,version:f,language:g,libraries:m,nonce:y}=o;se=new T({apiKey:c,region:p,version:f,language:g,libraries:m,nonce:y})}catch(c){console.error(c)}},d=c=>{s.value=a.markRaw(c.maps),r.value=a.markRaw(new c.maps.Map(t.value,u()));const p=Ee(s.value);s.value[D]=p,oe.forEach(g=>{var m;(m=r.value)==null||m.addListener(g,y=>e(g,y))}),n.value=!0;const f=Object.keys(o).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom","nonce"].includes(g)).map(g=>a.toRef(o,g));a.watch([()=>o.center,()=>o.zoom,...f],([g,m],[y,v])=>{var P,C,L;const{center:k,zoom:_,...E}=u();(P=r.value)==null||P.setOptions(E),m!==void 0&&m!==v&&((C=r.value)==null||C.setZoom(m));const b=!y||g.lng!==y.lng||g.lat!==y.lat;g&&b&&((L=r.value)==null||L.panTo(g))})};return a.onMounted(()=>{o.apiPromise&&o.apiPromise instanceof Promise?o.apiPromise.then(d):(h(),se.load().then(d))}),a.onBeforeUnmount(()=>{var c;i.value=!1,r.value&&((c=s.value)==null||c.event.clearInstanceListeners(r.value))}),{mapRef:t,ready:n,map:r,api:s,mapTilesLoaded:i}}}),vt="",F=(o,e)=>{const t=o.__vccOpts||o;for(const[n,r]of e)t[n]=r;return t},Pe={ref:"mapRef",class:"mapdiv"};function Se(o,e,t,n,r,s){return a.openBlock(),a.createElementBlock("div",null,[a.createElementVNode("div",Pe,null,512),a.renderSlot(o.$slots,"default",a.normalizeProps(a.guardReactiveProps({ready:o.ready,map:o.map,api:o.api,mapTilesLoaded:o.mapTilesLoaded})),void 0,!0)])}const Le=F(Oe,[["render",Se],["__scopeId","data-v-104539fc"]]);function Ae(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Ie=function o(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,s;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!o(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[r]))return!1;for(r=n;r--!==0;){var i=s[r];if(!o(e[i],t[i]))return!1}return!0}return e!==e&&t!==t};const S=Ae(Ie),ie=["click","drag","dragend","dragstart","gmp-click"],xe=a.defineComponent({name:"AdvancedMarker",props:{options:{type:Object,required:!0},pinOptions:{type:Object,required:!1}},emits:ie,setup(o,{emit:e,expose:t,slots:n}){const r=a.toRef(o,"options"),s=a.toRef(o,"pinOptions"),i=a.ref(),u=a.inject(O,a.ref()),l=a.inject(x,a.ref()),h=a.inject(H,a.ref()),d=a.computed(()=>!!(h.value&&l.value&&i.value instanceof google.maps.marker.AdvancedMarkerElement));return a.watch([u,r,s],async(c,[p,f,g])=>{var _,E,b;const y=!S(r.value,f)||!S(s.value,g)||u.value!==p;if(!u.value||!l.value||!y)return;const{AdvancedMarkerElement:v,PinElement:k}=l.value.marker;if(i.value){const{map:P,content:C,...L}=r.value;Object.assign(i.value,{content:s.value?new k(s.value).element:C,...L}),d.value&&((_=h.value)==null||_.removeMarker(i.value),(E=h.value)==null||E.addMarker(i.value))}else s.value&&(r.value.content=new k(s.value).element),i.value=a.markRaw(new v(r.value)),d.value?(b=h.value)==null||b.addMarker(i.value):i.value.map=u.value,ie.forEach(P=>{var C;(C=i.value)==null||C.addListener(P,L=>e(P,L))})},{immediate:!0}),a.onBeforeUnmount(()=>{var c,p;i.value&&((c=l.value)==null||c.event.clearInstanceListeners(i.value),d.value?(p=h.value)==null||p.removeMarker(i.value):i.value.map=null)}),a.provide(G,i),t({marker:i}),()=>{var c;return(c=n.default)==null?void 0:c.call(n)}}}),Te=o=>o==="Marker",Re=o=>o===D,B=(o,e,t,n)=>{const r=a.ref(),s=a.inject(O,a.ref()),i=a.inject(x,a.ref()),u=a.inject(H,a.ref()),l=a.computed(()=>!!(u.value&&i.value&&(r.value instanceof i.value.Marker||r.value instanceof i.value[D])));return a.watch([s,t],(h,[d,c])=>{var f,g,m;const p=!S(t.value,c)||s.value!==d;!s.value||!i.value||!p||(r.value?(r.value.setOptions(t.value),l.value&&((f=u.value)==null||f.removeMarker(r.value),(g=u.value)==null||g.addMarker(r.value))):(Te(o)?r.value=a.markRaw(new i.value[o](t.value)):Re(o)?r.value=a.markRaw(new i.value[o](t.value)):r.value=a.markRaw(new i.value[o]({...t.value,map:s.value})),l.value?(m=u.value)==null||m.addMarker(r.value):r.value.setMap(s.value),e.forEach(y=>{var v;(v=r.value)==null||v.addListener(y,k=>n(y,k))})))},{immediate:!0}),a.onBeforeUnmount(()=>{var h,d;r.value&&((h=i.value)==null||h.event.clearInstanceListeners(r.value),l.value?(d=u.value)==null||d.removeMarker(r.value):r.value.setMap(null))}),r},ae=["animation_changed","click","dblclick","rightclick","dragstart","dragend","drag","mouseover","mousedown","mouseout","mouseup","draggable_changed","clickable_changed","contextmenu","cursor_changed","flat_changed","rightclick","zindex_changed","icon_changed","position_changed","shape_changed","title_changed","visible_changed"],je=a.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:ae,setup(o,{emit:e,expose:t,slots:n}){const r=a.toRef(o,"options"),s=B("Marker",ae,r,e);return a.provide(G,s),t({marker:s}),()=>{var i;return(i=n.default)==null?void 0:i.call(n)}}}),$e=a.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:j,setup(o,{emit:e}){const t=a.toRef(o,"options");return{polyline:B("Polyline",j,t,e)}},render:()=>null}),Be=a.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:j,setup(o,{emit:e}){const t=a.toRef(o,"options");return{polygon:B("Polygon",j,t,e)}},render:()=>null}),le=j.concat(["bounds_changed"]),qe=a.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:le,setup(o,{emit:e}){const t=a.toRef(o,"options");return{rectangle:B("Rectangle",le,t,e)}},render:()=>null}),ce=j.concat(["center_changed","radius_changed"]),Ne=a.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:ce,setup(o,{emit:e}){const t=a.toRef(o,"options");return{circle:B("Circle",ce,t,e)}},render:()=>null}),Ze=a.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(o,{emit:e}){const t=a.ref(null),n=a.inject(O,a.ref()),r=a.inject(x,a.ref()),s=a.inject(ne,a.ref(!1)),i=a.watch([s,r,t],([h,d,c])=>{d&&h&&c&&(u(o.position),e("content:loaded"),setTimeout(i,0))},{immediate:!0}),u=h=>{if(n.value&&r.value&&t.value){const d=r.value.ControlPosition[h];n.value.controls[d].push(t.value)}},l=h=>{if(n.value&&r.value){let d=null;const c=r.value.ControlPosition[h];n.value.controls[c].forEach((p,f)=>{p===t.value&&(d=f)}),d!==null&&n.value.controls[c].removeAt(d)}};return a.onBeforeUnmount(()=>l(o.position)),a.watch(()=>o.position,(h,d)=>{l(d),u(h)}),a.watch(()=>o.index,h=>{h&&t.value&&(t.value.index=o.index)}),{controlRef:t}}}),wt="",Ue={ref:"controlRef",class:"custom-control-wrapper"};function De(o,e,t,n,r,s){return a.openBlock(),a.createElementBlock("div",Ue,[a.renderSlot(o.$slots,"default",{},void 0,!0)],512)}const Fe=F(Ze,[["render",De],["__scopeId","data-v-268ef28d"]]),ue=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Ve=a.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...ue,"update:modelValue"],setup(o,{slots:e,emit:t,expose:n}){const r=a.ref(),s=a.ref(),i=a.inject(O,a.ref()),u=a.inject(x,a.ref()),l=a.inject(G,a.ref());let h,d=o.modelValue;const c=a.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(y=>y.type!==a.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{r.value&&(r.value.open({map:i.value,anchor:l.value,...m}),p(!0))},g=()=>{r.value&&(r.value.close(),p(!1))};return a.onMounted(()=>{a.watch([i,()=>o.options],([m,y],[v,k])=>{var E;const _=!S(y,k)||i.value!==v;i.value&&u.value&&_&&(r.value?(r.value.setOptions({...y,content:c.value?s.value:y.content}),l.value||f()):(r.value=a.markRaw(new u.value.InfoWindow({...y,content:c.value?s.value:y.content})),l.value&&(h=l.value.addListener("click",()=>{f()})),(!l.value||d)&&f(),ue.forEach(b=>{var P;(P=r.value)==null||P.addListener(b,C=>t(b,C))}),(E=r.value)==null||E.addListener("closeclick",()=>p(!1))))},{immediate:!0}),a.watch(()=>o.modelValue,m=>{m!==d&&(m?f():g())})}),a.onBeforeUnmount(()=>{var m;h&&h.remove(),r.value&&((m=u.value)==null||m.event.clearInstanceListeners(r.value),g())}),n({infoWindow:r,open:f,close:g}),{infoWindow:r,infoWindowRef:s,hasSlotContent:c,open:f,close:g}}}),kt="",ze={key:0,class:"info-window-wrapper"};function Ge(o,e,t,n,r,s){return o.hasSlotContent?(a.openBlock(),a.createElementBlock("div",ze,[a.createElementVNode("div",a.mergeProps({ref:"infoWindowRef"},o.$attrs),[a.renderSlot(o.$slots,"default",{},void 0,!0)],16)])):a.createCommentVNode("",!0)}const He=F(Ve,[["render",Ge],["__scopeId","data-v-f929b615"]]),de=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],W=1,N=8;class K{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,n]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const r=n>>4;if(r!==W)throw new Error(`Got v${r} data when expected v${W}.`);const s=de[n&15];if(!s)throw new Error("Unrecognized array type.");const[i]=new Uint16Array(e,2,1),[u]=new Uint32Array(e,4,1);return new K(u,i,s,e)}constructor(e,t=64,n=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const s=de.indexOf(this.ArrayType),i=e*2*this.ArrayType.BYTES_PER_ELEMENT,u=e*this.IndexArrayType.BYTES_PER_ELEMENT,l=(8-u%8)%8;if(s<0)throw new Error(`Unexpected typed array class: ${n}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,N,e),this.coords=new this.ArrayType(this.data,N+u+l,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(N+i+u+l),this.ids=new this.IndexArrayType(this.data,N,e),this.coords=new this.ArrayType(this.data,N+u+l,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(W<<4)+s]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=t,n}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Y(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,n,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:i,nodeSize:u}=this,l=[0,s.length-1,0],h=[];for(;l.length;){const d=l.pop()||0,c=l.pop()||0,p=l.pop()||0;if(c-p<=u){for(let y=p;y<=c;y++){const v=i[2*y],k=i[2*y+1];v>=e&&v<=n&&k>=t&&k<=r&&h.push(s[y])}continue}const f=p+c>>1,g=i[2*f],m=i[2*f+1];g>=e&&g<=n&&m>=t&&m<=r&&h.push(s[f]),(d===0?e<=g:t<=m)&&(l.push(p),l.push(f-1),l.push(1-d)),(d===0?n>=g:r>=m)&&(l.push(f+1),l.push(c),l.push(1-d))}return h}within(e,t,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:s,nodeSize:i}=this,u=[0,r.length-1,0],l=[],h=n*n;for(;u.length;){const d=u.pop()||0,c=u.pop()||0,p=u.pop()||0;if(c-p<=i){for(let y=p;y<=c;y++)pe(s[2*y],s[2*y+1],e,t)<=h&&l.push(r[y]);continue}const f=p+c>>1,g=s[2*f],m=s[2*f+1];pe(g,m,e,t)<=h&&l.push(r[f]),(d===0?e-n<=g:t-n<=m)&&(u.push(p),u.push(f-1),u.push(1-d)),(d===0?e+n>=g:t+n>=m)&&(u.push(f+1),u.push(c),u.push(1-d))}return l}}function Y(o,e,t,n,r,s){if(r-n<=t)return;const i=n+r>>1;he(o,e,i,n,r,s),Y(o,e,t,n,i-1,1-s),Y(o,e,t,i+1,r,1-s)}function he(o,e,t,n,r,s){for(;r>n;){if(r-n>600){const h=r-n+1,d=t-n+1,c=Math.log(h),p=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*p*(h-p)/h)*(d-h/2<0?-1:1),g=Math.max(n,Math.floor(t-d*p/h+f)),m=Math.min(r,Math.floor(t+(h-d)*p/h+f));he(o,e,t,g,m,s)}const i=e[2*t+s];let u=n,l=r;for(Z(o,e,n,t),e[2*r+s]>i&&Z(o,e,n,r);u<l;){for(Z(o,e,u,l),u++,l--;e[2*u+s]<i;)u++;for(;e[2*l+s]>i;)l--}e[2*n+s]===i?Z(o,e,n,l):(l++,Z(o,e,l,r)),l<=t&&(n=l+1),t<=l&&(r=l-1)}}function Z(o,e,t,n){J(o,t,n),J(e,2*t,2*n),J(e,2*t+1,2*n+1)}function J(o,e,t){const n=o[e];o[e]=o[t],o[t]=n}function pe(o,e,t,n){const r=o-t,s=e-n;return r*r+s*s}const We={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:o=>o},fe=Math.fround||(o=>e=>(o[0]=+e,o[0]))(new Float32Array(1)),R=2,A=3,X=4,I=5,me=6;class ge{constructor(e){this.options=Object.assign(Object.create(We),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:n,maxZoom:r}=this.options;t&&console.time("total time");const s=`prepare ${e.length} points`;t&&console.time(s),this.points=e;const i=[];for(let l=0;l<e.length;l++){const h=e[l];if(!h.geometry)continue;const[d,c]=h.geometry.coordinates,p=fe(V(d)),f=fe(z(c));i.push(p,f,1/0,l,-1,1),this.options.reduce&&i.push(0)}let u=this.trees[r+1]=this._createTree(i);t&&console.timeEnd(s);for(let l=r;l>=n;l--){const h=+Date.now();u=this.trees[l]=this._createTree(this._cluster(u,l)),t&&console.log("z%d: %d clusters in %dms",l,u.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let n=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let s=e[2]===180?180:((e[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)n=-180,s=180;else if(n>s){const c=this.getClusters([n,r,180,i],t),p=this.getClusters([-180,r,s,i],t);return c.concat(p)}const u=this.trees[this._limitZoom(t)],l=u.range(V(n),z(i),V(s),z(r)),h=u.data,d=[];for(const c of l){const p=this.stride*c;d.push(h[p+I]>1?ye(h,p,this.clusterProps):this.points[h[p+A]])}return d}getChildren(e){const t=this._getOriginId(e),n=this._getOriginZoom(e),r="No cluster with the specified id.",s=this.trees[n];if(!s)throw new Error(r);const i=s.data;if(t*this.stride>=i.length)throw new Error(r);const u=this.options.radius/(this.options.extent*Math.pow(2,n-1)),l=i[t*this.stride],h=i[t*this.stride+1],d=s.within(l,h,u),c=[];for(const p of d){const f=p*this.stride;i[f+X]===e&&c.push(i[f+I]>1?ye(i,f,this.clusterProps):this.points[i[f+A]])}if(c.length===0)throw new Error(r);return c}getLeaves(e,t,n){t=t||10,n=n||0;const r=[];return this._appendLeaves(r,e,t,n,0),r}getTile(e,t,n){const r=this.trees[this._limitZoom(e)],s=Math.pow(2,e),{extent:i,radius:u}=this.options,l=u/i,h=(n-l)/s,d=(n+1+l)/s,c={features:[]};return this._addTileFeatures(r.range((t-l)/s,h,(t+1+l)/s,d),r.data,t,n,s,c),t===0&&this._addTileFeatures(r.range(1-l/s,h,1,d),r.data,s,n,s,c),t===s-1&&this._addTileFeatures(r.range(0,h,l/s,d),r.data,-1,n,s,c),c.features.length?c:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const n=this.getChildren(e);if(t++,n.length!==1)break;e=n[0].properties.cluster_id}return t}_appendLeaves(e,t,n,r,s){const i=this.getChildren(t);for(const u of i){const l=u.properties;if(l&&l.cluster?s+l.point_count<=r?s+=l.point_count:s=this._appendLeaves(e,l.cluster_id,n,r,s):s<r?s++:e.push(u),e.length===n)break}return s}_createTree(e){const t=new K(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let n=0;n<e.length;n+=this.stride)t.add(e[n],e[n+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,n,r,s,i){for(const u of e){const l=u*this.stride,h=t[l+I]>1;let d,c,p;if(h)d=ve(t,l,this.clusterProps),c=t[l],p=t[l+1];else{const m=this.points[t[l+A]];d=m.properties;const[y,v]=m.geometry.coordinates;c=V(y),p=z(v)}const f={type:1,geometry:[[Math.round(this.options.extent*(c*s-n)),Math.round(this.options.extent*(p*s-r))]],tags:d};let g;h||this.options.generateId?g=t[l+A]:g=this.points[t[l+A]].id,g!==void 0&&(f.id=g),i.features.push(f)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:n,extent:r,reduce:s,minPoints:i}=this.options,u=n/(r*Math.pow(2,t)),l=e.data,h=[],d=this.stride;for(let c=0;c<l.length;c+=d){if(l[c+R]<=t)continue;l[c+R]=t;const p=l[c],f=l[c+1],g=e.within(l[c],l[c+1],u),m=l[c+I];let y=m;for(const v of g){const k=v*d;l[k+R]>t&&(y+=l[k+I])}if(y>m&&y>=i){let v=p*m,k=f*m,_,E=-1;const b=((c/d|0)<<5)+(t+1)+this.points.length;for(const P of g){const C=P*d;if(l[C+R]<=t)continue;l[C+R]=t;const L=l[C+I];v+=l[C]*L,k+=l[C+1]*L,l[C+X]=b,s&&(_||(_=this._map(l,c,!0),E=this.clusterProps.length,this.clusterProps.push(_)),s(_,this._map(l,C)))}l[c+X]=b,h.push(v/y,k/y,1/0,b,-1,y),s&&h.push(E)}else{for(let v=0;v<d;v++)h.push(l[c+v]);if(y>1)for(const v of g){const k=v*d;if(!(l[k+R]<=t)){l[k+R]=t;for(let _=0;_<d;_++)h.push(l[k+_])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,n){if(e[t+I]>1){const i=this.clusterProps[e[t+me]];return n?Object.assign({},i):i}const r=this.points[e[t+A]].properties,s=this.options.map(r);return n&&s===r?Object.assign({},s):s}}function ye(o,e,t){return{type:"Feature",id:o[e+A],properties:ve(o,e,t),geometry:{type:"Point",coordinates:[Ke(o[e]),Ye(o[e+1])]}}}function ve(o,e,t){const n=o[e+I],r=n>=1e4?`${Math.round(n/1e3)}k`:n>=1e3?`${Math.round(n/100)/10}k`:n,s=o[e+me],i=s===-1?{}:Object.assign({},t[s]);return Object.assign(i,{cluster:!0,cluster_id:o[e+A],point_count:n,point_count_abbreviated:r})}function V(o){return o/360+.5}function z(o){const e=Math.sin(o*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function Ke(o){return(o-.5)*360}function Ye(o){const e=(180-o*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

@@ -29,3 +29,3 @@

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function Q(s,e){var t={};for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&e.indexOf(n)<0&&(t[n]=s[n]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(s);r<n.length;r++)e.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(s,n[r])&&(t[n[r]]=s[n[r]]);return t}class M{static isAdvancedMarkerAvailable(e){return google.maps.marker&&e.getMapCapabilities().isAdvancedMarkersAvailable===!0}static isAdvancedMarker(e){return google.maps.marker&&e instanceof google.maps.marker.AdvancedMarkerElement}static setMap(e,t){this.isAdvancedMarker(e)?e.map=t:e.setMap(t)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(e.position.lat&&e.position.lng)return new google.maps.LatLng(e.position.lat,e.position.lng)}return new google.maps.LatLng(null)}return e.getPosition()}static getVisible(e){return this.isAdvancedMarker(e)?!0:e.getVisible()}}class U{constructor({markers:e,position:t}){this.markers=e,t&&(t instanceof google.maps.LatLng?this._position=t:this._position=new google.maps.LatLng(t))}get bounds(){if(this.markers.length===0&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const t of this.markers)e.extend(M.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>M.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(M.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const Ye=(s,e,t,n)=>{const r=we(s.getBounds(),e,n);return t.filter(o=>r.contains(M.getPosition(o)))},we=(s,e,t)=>{const{northEast:n,southWest:r}=Xe(s,e),o=Qe({northEast:n,southWest:r},t);return et(o,e)},ke=(s,e,t)=>{const n=we(s,e,t),r=n.getNorthEast(),o=n.getSouthWest();return[o.lng(),o.lat(),r.lng(),r.lat()]},Xe=(s,e)=>({northEast:e.fromLatLngToDivPixel(s.getNorthEast()),southWest:e.fromLatLngToDivPixel(s.getSouthWest())}),Qe=({northEast:s,southWest:e},t)=>(s.x+=t,s.y-=t,e.x-=t,e.y+=t,{northEast:s,southWest:e}),et=({northEast:s,southWest:e},t)=>{const n=t.fromDivPixelToLatLng(e),r=t.fromDivPixelToLatLng(s);return new google.maps.LatLngBounds(n,r)};class _e{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return nt(e)}}class tt extends _e{constructor(e){var{viewportPadding:t=60}=e,n=Q(e,["viewportPadding"]);super(n),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:n}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:Ye(t,n,e,this.viewportPadding),map:t,mapCanvasProjection:n})}}}const nt=s=>s.map(t=>new U({position:M.getPosition(t),markers:[t]}));class rt extends _e{constructor(e){var{maxZoom:t,radius:n=60}=e,r=Q(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:n},r))}calculate(e){let t=!1;const n={zoom:e.map.getZoom()};if(!S(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const i=M.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[i.lng(),i.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return t||(this.state.zoom<=this.maxZoom||n.zoom<=this.maxZoom)&&(t=!S(this.state,n)),this.state=n,t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map(t=>this.transformCluster(t))}transformCluster({geometry:{coordinates:[e,t]},properties:n}){if(n.cluster)return new U({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=n.marker;return new U({markers:[r],position:M.getPosition(r)})}}class st extends tt{constructor(e){var{maxZoom:t,radius:n=60,viewportPadding:r=60}=e,o=Q(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:r}),this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:n},o)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:ke(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let n=!S(this.state,t);if(!S(e.markers,this.markers)){n=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const i=M.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[i.lng(),i.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return n&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:n}}cluster({map:e,mapCanvasProjection:t}){const n={zoom:Math.round(e.getZoom()),view:ke(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(n.view,n.zoom).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:n}){if(n.cluster)return new U({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=n.marker;return new U({markers:[r],position:M.getPosition(r)})}}class ot{constructor(e,t){this.markers={sum:e.length};const n=t.map(o=>o.count),r=n.reduce((o,i)=>o+i,0);this.clusters={count:t.length,markers:{mean:r/t.length,sum:r,min:Math.min(...n),max:Math.max(...n)}}}}class it{render({count:e,position:t},n,r){const i=`<svg fill="${e>Math.max(10,n.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">
***************************************************************************** */function Q(o,e){var t={};for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&e.indexOf(n)<0&&(t[n]=o[n]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(o);r<n.length;r++)e.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(o,n[r])&&(t[n[r]]=o[n[r]]);return t}class M{static isAdvancedMarkerAvailable(e){return google.maps.marker&&e.getMapCapabilities().isAdvancedMarkersAvailable===!0}static isAdvancedMarker(e){return google.maps.marker&&e instanceof google.maps.marker.AdvancedMarkerElement}static setMap(e,t){this.isAdvancedMarker(e)?e.map=t:e.setMap(t)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(e.position.lat&&e.position.lng)return new google.maps.LatLng(e.position.lat,e.position.lng)}return new google.maps.LatLng(null)}return e.getPosition()}static getVisible(e){return this.isAdvancedMarker(e)?!0:e.getVisible()}}class U{constructor({markers:e,position:t}){this.markers=e,t&&(t instanceof google.maps.LatLng?this._position=t:this._position=new google.maps.LatLng(t))}get bounds(){if(this.markers.length===0&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const t of this.markers)e.extend(M.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>M.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(M.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const Je=(o,e,t,n)=>{const r=we(o.getBounds(),e,n);return t.filter(s=>r.contains(M.getPosition(s)))},we=(o,e,t)=>{const{northEast:n,southWest:r}=Xe(o,e),s=Qe({northEast:n,southWest:r},t);return et(s,e)},ke=(o,e,t)=>{const n=we(o,e,t),r=n.getNorthEast(),s=n.getSouthWest();return[s.lng(),s.lat(),r.lng(),r.lat()]},Xe=(o,e)=>({northEast:e.fromLatLngToDivPixel(o.getNorthEast()),southWest:e.fromLatLngToDivPixel(o.getSouthWest())}),Qe=({northEast:o,southWest:e},t)=>(o.x+=t,o.y-=t,e.x-=t,e.y+=t,{northEast:o,southWest:e}),et=({northEast:o,southWest:e},t)=>{const n=t.fromDivPixelToLatLng(e),r=t.fromDivPixelToLatLng(o);return new google.maps.LatLngBounds(n,r)};class _e{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return nt(e)}}class tt extends _e{constructor(e){var{viewportPadding:t=60}=e,n=Q(e,["viewportPadding"]);super(n),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:n}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:Je(t,n,e,this.viewportPadding),map:t,mapCanvasProjection:n})}}}const nt=o=>o.map(t=>new U({position:M.getPosition(t),markers:[t]}));class rt extends _e{constructor(e){var{maxZoom:t,radius:n=60}=e,r=Q(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:n},r))}calculate(e){let t=!1;const n={zoom:e.map.getZoom()};if(!S(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const r=this.markers.map(s=>{const i=M.getPosition(s);return{type:"Feature",geometry:{type:"Point",coordinates:[i.lng(),i.lat()]},properties:{marker:s}}});this.superCluster.load(r)}return t||(this.state.zoom<=this.maxZoom||n.zoom<=this.maxZoom)&&(t=!S(this.state,n)),this.state=n,t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map(t=>this.transformCluster(t))}transformCluster({geometry:{coordinates:[e,t]},properties:n}){if(n.cluster)return new U({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:t,lng:e}});const r=n.marker;return new U({markers:[r],position:M.getPosition(r)})}}class st extends tt{constructor(e){var{maxZoom:t,radius:n=60,viewportPadding:r=60}=e,s=Q(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:r}),this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:n},s)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:ke(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let n=!S(this.state,t);if(!S(e.markers,this.markers)){n=!0,this.markers=[...e.markers];const r=this.markers.map(s=>{const i=M.getPosition(s);return{type:"Feature",geometry:{type:"Point",coordinates:[i.lng(),i.lat()]},properties:{marker:s}}});this.superCluster.load(r)}return n&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:n}}cluster({map:e,mapCanvasProjection:t}){const n={zoom:Math.round(e.getZoom()),view:ke(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(n.view,n.zoom).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:n}){if(n.cluster)return new U({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:t,lng:e}});const r=n.marker;return new U({markers:[r],position:M.getPosition(r)})}}class ot{constructor(e,t){this.markers={sum:e.length};const n=t.map(s=>s.count),r=n.reduce((s,i)=>s+i,0);this.clusters={count:t.length,markers:{mean:r/t.length,sum:r,min:Math.min(...n),max:Math.max(...n)}}}}class it{render({count:e,position:t},n,r){const i=`<svg fill="${e>Math.max(10,n.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">
<circle cx="120" cy="120" opacity=".6" r="70" />

@@ -35,2 +35,2 @@ <circle cx="120" cy="120" opacity=".3" r="90" />

<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text>
</svg>`,c=`Cluster of ${e} markers`,a=Number(google.maps.Marker.MAX_ZINDEX)+e;if(M.isAdvancedMarkerAvailable(r)){const d=document.createElement("div");d.innerHTML=i;const u=d.firstElementChild;u.setAttribute("transform","translate(0 25)");const p={map:r,position:t,zIndex:a,title:c,content:u};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:a,title:c,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function at(s,e){for(let t in e.prototype)s.prototype[t]=e.prototype[t]}class ee{constructor(){at(ee,google.maps.OverlayView)}}var q;(function(s){s.CLUSTERING_BEGIN="clusteringbegin",s.CLUSTERING_END="clusteringend",s.CLUSTER_CLICK="click"})(q||(q={}));const lt=(s,e,t)=>{t.fitBounds(e.bounds)};class ct extends ee{constructor({map:e,markers:t=[],algorithmOptions:n={},algorithm:r=new rt(n),renderer:o=new it,onClusterClick:i=lt}){super(),this.markers=[...t],this.clusters=[],this.algorithm=r,this.renderer=o,this.onClusterClick=i,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(n=>{this.addMarker(n,!0)}),t||this.render()}removeMarker(e,t){const n=this.markers.indexOf(e);return n===-1?!1:(M.setMap(e,null),this.markers.splice(n,1),t||this.render(),!0)}removeMarkers(e,t){let n=!1;return e.forEach(r=>{n=this.removeMarker(r,!0)||n}),n&&!t&&this.render(),n}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,q.CLUSTERING_BEGIN,this);const{clusters:t,changed:n}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(n||n==null){const r=new Set;for(const i of t)i.markers.length==1&&r.add(i.markers[0]);const o=[];for(const i of this.clusters)i.marker!=null&&(i.markers.length==1?r.has(i.marker)||M.setMap(i.marker,null):o.push(i.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>o.forEach(i=>M.setMap(i,null)))}google.maps.event.trigger(this,q.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(e=>M.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new ot(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(n=>{n.markers.length===1?n.marker=n.markers[0]:(n.marker=this.renderer.render(n,e,t),n.markers.forEach(r=>M.setMap(r,null)),this.onClusterClick&&n.marker.addListener("click",r=>{google.maps.event.trigger(this,q.CLUSTER_CLICK,n),this.onClusterClick(r,n,t)})),M.setMap(n.marker,t)})}}const Ce=Object.values(q),ut=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:Ce,setup(s,{emit:e,expose:t,slots:n}){const r=l.ref(),o=l.inject(O,l.ref()),i=l.inject(I,l.ref());return l.provide(H,r),l.watch(o,()=>{o.value&&(r.value=l.markRaw(new ct({map:o.value,algorithm:new st(s.options.algorithmOptions??{}),...s.options})),Ce.forEach(c=>{var a;(a=r.value)==null||a.addListener(c,h=>e(c,h))}))},{immediate:!0}),l.onBeforeUnmount(()=>{var c;r.value&&((c=i.value)==null||c.event.clearInstanceListeners(r.value),r.value.clearMarkers(),r.value.setMap(null))}),t({markerCluster:r}),()=>{var c;return(c=n.default)==null?void 0:c.call(n)}}}),dt=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(s,{slots:e,emit:t,expose:n}){const r=l.ref(),o=l.computed(()=>{var a;return(a=e.default)==null?void 0:a.call(e).some(h=>h.type!==l.Comment)}),i=l.computed(()=>({...s.options,element:r.value})),c=$(D,[],i,t);return n({customMarker:c}),{customMarkerRef:r,customMarker:c,hasSlotContent:o}}}),_t="",ht={key:0,class:"custom-marker-wrapper"};function pt(s,e,t,n,r,o){return s.hasSlotContent?(l.openBlock(),l.createElementBlock("div",ht,[l.createElementVNode("div",l.mergeProps({ref:"customMarkerRef",style:{cursor:s.$attrs.onClick?"pointer":void 0}},s.$attrs),[l.renderSlot(s.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const ft=F(dt,[["render",pt],["__scopeId","data-v-4b2eafc1"]]),mt=l.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(s){const e=l.ref(),t=l.inject(O,l.ref()),n=l.inject(I,l.ref());return l.watch([t,()=>s.options],([r,o],[i,c])=>{var h;const a=!S(o,c)||t.value!==i;if(t.value&&n.value&&a){const d=structuredClone(o);if(d.data&&!(d.data instanceof n.value.MVCArray)){const u=n.value.LatLng;d.data=(h=d.data)==null?void 0:h.map(p=>p instanceof u||"location"in p&&(p.location instanceof u||p.location===null)?p:"location"in p?{...p,location:new u(p.location)}:new u(p))}e.value?e.value.setOptions(d):e.value=l.markRaw(new n.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),l.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});w.AdvancedMarker=Ie,w.Circle=Ne,w.CustomControl=Fe,w.CustomMarker=ft,w.GoogleMap=Le,w.HeatmapLayer=mt,w.InfoWindow=He,w.Marker=je,w.MarkerCluster=ut,w.Polygon=$e,w.Polyline=Be,w.Rectangle=qe,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
</svg>`,u=`Cluster of ${e} markers`,l=Number(google.maps.Marker.MAX_ZINDEX)+e;if(M.isAdvancedMarkerAvailable(r)){const d=document.createElement("div");d.innerHTML=i;const c=d.firstElementChild;c.setAttribute("transform","translate(0 25)");const p={map:r,position:t,zIndex:l,title:u,content:c};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:l,title:u,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function at(o,e){for(let t in e.prototype)o.prototype[t]=e.prototype[t]}class ee{constructor(){at(ee,google.maps.OverlayView)}}var q;(function(o){o.CLUSTERING_BEGIN="clusteringbegin",o.CLUSTERING_END="clusteringend",o.CLUSTER_CLICK="click"})(q||(q={}));const lt=(o,e,t)=>{t.fitBounds(e.bounds)};class ct extends ee{constructor({map:e,markers:t=[],algorithmOptions:n={},algorithm:r=new rt(n),renderer:s=new it,onClusterClick:i=lt}){super(),this.markers=[...t],this.clusters=[],this.algorithm=r,this.renderer=s,this.onClusterClick=i,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(n=>{this.addMarker(n,!0)}),t||this.render()}removeMarker(e,t){const n=this.markers.indexOf(e);return n===-1?!1:(M.setMap(e,null),this.markers.splice(n,1),t||this.render(),!0)}removeMarkers(e,t){let n=!1;return e.forEach(r=>{n=this.removeMarker(r,!0)||n}),n&&!t&&this.render(),n}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,q.CLUSTERING_BEGIN,this);const{clusters:t,changed:n}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(n||n==null){const r=new Set;for(const i of t)i.markers.length==1&&r.add(i.markers[0]);const s=[];for(const i of this.clusters)i.marker!=null&&(i.markers.length==1?r.has(i.marker)||M.setMap(i.marker,null):s.push(i.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>s.forEach(i=>M.setMap(i,null)))}google.maps.event.trigger(this,q.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(e=>M.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new ot(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(n=>{n.markers.length===1?n.marker=n.markers[0]:(n.marker=this.renderer.render(n,e,t),n.markers.forEach(r=>M.setMap(r,null)),this.onClusterClick&&n.marker.addListener("click",r=>{google.maps.event.trigger(this,q.CLUSTER_CLICK,n),this.onClusterClick(r,n,t)})),M.setMap(n.marker,t)})}}const Ce=Object.values(q),ut=a.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:Ce,setup(o,{emit:e,expose:t,slots:n}){const r=a.ref(),s=a.inject(O,a.ref()),i=a.inject(x,a.ref());return a.provide(H,r),a.watch(s,()=>{s.value&&(r.value=a.markRaw(new ct({map:s.value,algorithm:new st(o.options.algorithmOptions??{}),...o.options})),Ce.forEach(u=>{var l;(l=r.value)==null||l.addListener(u,h=>e(u,h))}))},{immediate:!0}),a.onBeforeUnmount(()=>{var u;r.value&&((u=i.value)==null||u.event.clearInstanceListeners(r.value),r.value.clearMarkers(),r.value.setMap(null))}),t({markerCluster:r}),()=>{var u;return(u=n.default)==null?void 0:u.call(n)}}}),dt=a.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(o,{slots:e,emit:t,expose:n}){const r=a.ref(),s=a.computed(()=>{var l;return(l=e.default)==null?void 0:l.call(e).some(h=>h.type!==a.Comment)}),i=a.computed(()=>({...o.options,element:r.value})),u=B(D,[],i,t);return n({customMarker:u}),{customMarkerRef:r,customMarker:u,hasSlotContent:s}}}),_t="",ht={key:0,class:"custom-marker-wrapper"};function pt(o,e,t,n,r,s){return o.hasSlotContent?(a.openBlock(),a.createElementBlock("div",ht,[a.createElementVNode("div",a.mergeProps({ref:"customMarkerRef",style:{cursor:o.$attrs.onClick?"pointer":void 0}},o.$attrs),[a.renderSlot(o.$slots,"default",{},void 0,!0)],16)])):a.createCommentVNode("",!0)}const ft=F(dt,[["render",pt],["__scopeId","data-v-4b2eafc1"]]),mt=a.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(o){const e=a.ref(),t=a.inject(O,a.ref()),n=a.inject(x,a.ref());return a.watch([t,()=>o.options],([r,s],[i,u])=>{var h;const l=!S(s,u)||t.value!==i;if(t.value&&n.value&&l){const d=structuredClone(s);if(d.data&&!(d.data instanceof n.value.MVCArray)){const c=n.value.LatLng;d.data=(h=d.data)==null?void 0:h.map(p=>p instanceof c||"location"in p&&(p.location instanceof c||p.location===null)?p:"location"in p?{...p,location:new c(p.location)}:new c(p))}e.value?e.value.setOptions(d):e.value=a.markRaw(new n.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),a.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});w.AdvancedMarker=xe,w.Circle=Ne,w.CustomControl=Fe,w.CustomMarker=ft,w.GoogleMap=Le,w.HeatmapLayer=mt,w.InfoWindow=He,w.Marker=je,w.MarkerCluster=ut,w.Polygon=Be,w.Polyline=$e,w.Rectangle=qe,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});

@@ -411,5 +411,5 @@ /// <reference types="google.maps" />

version: string;
center: google.maps.LatLng | google.maps.LatLngLiteral;
apiKey: string;
libraries: Library[];
center: google.maps.LatLng | google.maps.LatLngLiteral;
clickableIcons: boolean;

@@ -416,0 +416,0 @@ disableDefaultUi: boolean;

{
"name": "vue3-google-map",
"version": "0.21.0",
"version": "0.21.1",
"license": "MIT",

@@ -74,3 +74,3 @@ "repository": {

"typescript": "^5.1.6",
"vite": "^4.4.9",
"vite": "^4.5.3",
"vite-plugin-css-injected-by-js": "^3.2.1",

@@ -77,0 +77,0 @@ "vitepress": "^1.0.0-rc.40",

@@ -62,2 +62,4 @@ # vue3-google-map

The [the following events](https://developers.google.com/maps/documentation/javascript/reference/map#Map-Events) will be emitted by the `GoogleMap` component and can be listened to by using `@event_name`.
```vue

@@ -64,0 +66,0 @@ <script setup>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc