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

vue3-google-map

Package Overview
Dependencies
Maintainers
2
Versions
43
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.17.0 to 0.17.1

dist/types/shims-google-maps.d.ts

21

dist/index.cjs.js

@@ -1,3 +0,3 @@

(function(){"use strict";try{if(typeof document<"u"){var d=document.createElement("style");d.appendChild(document.createTextNode(".mapdiv[data-v-7d660dd5]{width:100%;height:100%}.info-window-wrapper[data-v-45a4606d]{display:none}.mapdiv .info-window-wrapper[data-v-45a4606d]{display:inline-block}.custom-marker-wrapper[data-v-c7599d50]{display:none}.mapdiv .custom-marker-wrapper[data-v-c7599d50]{display:inline-block}")),document.head.appendChild(d)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
"use strict";var ke=Object.defineProperty;var Ce=(n,e,t)=>e in n?ke(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var z=(n,e,t)=>(Ce(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),A=Symbol("map"),T=Symbol("api"),de=Symbol("marker"),he=Symbol("markerCluster"),F=Symbol("CustomMarker"),pe=Symbol("mapTilesLoaded"),L=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];var _e=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,r,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(r=s;r--!==0;)if(!n(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),s=o.length,s!==Object.keys(t).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=s;r--!==0;){var a=o[r];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const X="__googleMapsScriptId";class O{constructor({apiKey:e,channel:t,client:s,id:r=X,libraries:o=[],language:a,region:u,version:i,mapIds:h,nonce:d,retries:c=3,url:p="https://maps.googleapis.com/maps/api/js"}){if(this.CALLBACK="__googleMapsCallback",this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.version=i,this.apiKey=e,this.channel=t,this.client=s,this.id=r||X,this.libraries=o,this.language=a,this.region=u,this.mapIds=h,this.nonce=d,this.retries=c,this.url=p,O.instance){if(!_e(this.options,O.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(O.instance.options)}`);return O.instance}O.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}}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+=`?callback=${this.CALLBACK}`,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(",")}`),e}deleteScript(){const e=document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(s=>{s?t(s.error):e(window.google)})})}loadCallback(e){this.callbacks.push(e),this.execute()}setScript(){if(document.getElementById(this.id)){this.callback();return}const e=this.createUrl(),t=document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.nonce&&(t.nonce=this.nonce),document.head.appendChild(t)}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){const t=this.errors.length*Math.pow(2,this.errors.length);console.log(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},t)}else this.onerrorEvent=e,this.callback()}setCallback(){window.__googleMapsCallback=this.callback.bind(this)}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.setCallback(),this.setScript())}}}function Me(n){return class extends n.OverlayView{constructor(s){super();z(this,"element");z(this,"opts");const{element:r,...o}=s;this.element=r,this.opts=o,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof n.LatLng?this.opts.position:new n.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const s=this.element;return s.style.display!=="none"&&s.style.visibility!=="hidden"&&(s.style.opacity===""||Number(s.style.opacity)>.01)}onAdd(){if(!this.element)return;const s=this.getPanes();s&&s.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const r=this.getProjection().fromLatLngToDivPixel(this.getPosition());if(r){this.element.style.position="absolute";const o=this.element.offsetHeight,a=this.element.offsetWidth;let u,i;switch(this.opts.anchorPoint){case"TOP_CENTER":u=r.x-a/2,i=r.y;break;case"BOTTOM_CENTER":u=r.x-a/2,i=r.y-o;break;case"LEFT_CENTER":u=r.x,i=r.y-o/2;break;case"RIGHT_CENTER":u=r.x-a,i=r.y-o/2;break;case"TOP_LEFT":u=r.x,i=r.y;break;case"TOP_RIGHT":u=r.x-a,i=r.y;break;case"BOTTOM_LEFT":u=r.x,i=r.y-o;break;case"BOTTOM_RIGHT":u=r.x-a,i=r.y-o;break;default:u=r.x-a/2,i=r.y-o/2}this.element.style.left=u+"px",this.element.style.top=i+"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(s){this.opts=s,this.draw()}}}let Q;const ee=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","heading_changed","idle","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","resize","rightclick","tilesloaded","tilt_changed","zoom_changed"],be=l.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places"]},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},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}},emits:ee,setup(n,{emit:e}){const t=l.ref(),s=l.ref(!1),r=l.ref(),o=l.ref(),a=l.ref(!1);l.provide(A,r),l.provide(T,o),l.provide(pe,a);const u=()=>{const c={...n};Object.keys(c).forEach(g=>{c[g]===void 0&&delete c[g]});const f=g=>{var v;return g?{position:(v=o.value)==null?void 0:v.ControlPosition[g]}:{}},m={scaleControlOptions:n.scaleControlStyle?{style:n.scaleControlStyle}:{},panControlOptions:f(n.panControlPosition),zoomControlOptions:f(n.zoomControlPosition),rotateControlOptions:f(n.rotateControlPosition),streetViewControlOptions:f(n.streetViewControlPosition),fullscreenControlOptions:f(n.fullscreenControlPosition),disableDefaultUI:n.disableDefaultUi};return{...c,...m}},i=l.watch([o,r],([c,p])=>{const f=c,m=p;f&&m&&(f.event.addListenerOnce(m,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:c,region:p,version:f,language:m,libraries:g}=n;Q=new O({apiKey:c,region:p,version:f,language:m,libraries:g})}catch(c){console.error(c)}},d=c=>{o.value=l.markRaw(c.maps),r.value=l.markRaw(new c.maps.Map(t.value,u()));const p=Me(o.value);o.value[F]=p,ee.forEach(m=>{var g;(g=r.value)==null||g.addListener(m,v=>e(m,v))}),s.value=!0;const f=Object.keys(n).filter(m=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(m)).map(m=>l.toRef(n,m));l.watch([()=>n.center,()=>n.zoom,...f],([m,g],[v,y])=>{var N,_,B;const{center:w,zoom:C,...x}=u();(N=r.value)==null||N.setOptions(x),g!==void 0&&g!==y&&((_=r.value)==null||_.setZoom(g));const j=!v||m.lng!==v.lng||m.lat!==v.lat;m&&j&&((B=r.value)==null||B.panTo(m))})};return l.onMounted(()=>{n.apiPromise&&n.apiPromise instanceof Promise?n.apiPromise.then(d):(h(),Q.load().then(d))}),l.onBeforeUnmount(()=>{var c;a.value=!1,r.value&&((c=o.value)==null||c.event.clearInstanceListeners(r.value))}),{mapRef:t,ready:s,map:r,api:o,mapTilesLoaded:a}}});const D=(n,e)=>{const t=n.__vccOpts||n;for(const[s,r]of e)t[s]=r;return t},Pe={ref:"mapRef",class:"mapdiv"};function Oe(n,e,t,s,r,o){return l.openBlock(),l.createElementBlock("div",null,[l.createElementVNode("div",Pe,null,512),l.renderSlot(n.$slots,"default",l.normalizeProps(l.guardReactiveProps({ready:n.ready,map:n.map,api:n.api,mapTilesLoaded:n.mapTilesLoaded})),void 0,!0)])}const Ee=D(be,[["render",Oe],["__scopeId","data-v-7d660dd5"]]);function xe(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Se=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,r,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(r=s;r--!==0;)if(!n(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),s=o.length,s!==Object.keys(t).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=s;r--!==0;){var a=o[r];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const E=xe(Se),Le=n=>n==="Marker",Ae=n=>n===F,I=(n,e,t,s)=>{const r=l.ref(),o=l.inject(A,l.ref()),a=l.inject(T,l.ref()),u=l.inject(he,l.ref()),i=l.computed(()=>!!(u.value&&a.value&&(r.value instanceof a.value.Marker||r.value instanceof a.value[F])));return l.watch([o,t],(h,[d,c])=>{var f,m,g;const p=!E(t.value,c)||o.value!==d;!o.value||!a.value||!p||(r.value?(r.value.setOptions(t.value),i.value&&((f=u.value)==null||f.removeMarker(r.value),(m=u.value)==null||m.addMarker(r.value))):(Le(n)?r.value=l.markRaw(new a.value[n](t.value)):Ae(n)?r.value=l.markRaw(new a.value[n](t.value)):r.value=l.markRaw(new a.value[n]({...t.value,map:o.value})),i.value?(g=u.value)==null||g.addMarker(r.value):r.value.setMap(o.value),e.forEach(v=>{var y;(y=r.value)==null||y.addListener(v,w=>s(v,w))})))},{immediate:!0}),l.onBeforeUnmount(()=>{var h,d;r.value&&((h=a.value)==null||h.event.clearInstanceListeners(r.value),i.value?(d=u.value)==null||d.removeMarker(r.value):r.value.setMap(null))}),r},te=["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"],Te=l.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:te,setup(n,{emit:e,expose:t,slots:s}){const r=l.toRef(n,"options"),o=I("Marker",te,r,e);return l.provide(de,o),t({marker:o}),()=>{var a;return(a=s.default)==null?void 0:a.call(s)}}}),Ie=l.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:L,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polyline:I("Polyline",L,t,e)}},render:()=>null}),je=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:L,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:I("Polygon",L,t,e)}},render:()=>null}),se=L.concat(["bounds_changed"]),Be=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:se,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:I("Rectangle",se,t,e)}},render:()=>null}),re=L.concat(["center_changed","radius_changed"]),Re=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:re,setup(n,{emit:e}){const t=l.toRef(n,"options");return{circle:I("Circle",re,t,e)}},render:()=>null}),$e=l.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(n,{emit:e}){const t=l.ref(null),s=l.inject(A,l.ref()),r=l.inject(T,l.ref()),o=l.inject(pe,l.ref(!1)),a=l.ref(!1),u=l.watch([o,r,t],([d,c,p])=>{c&&d&&p&&(i(n.position),a.value=!0,e("content:loaded"),setTimeout(u,0))},{immediate:!0}),i=d=>{if(s.value&&r.value&&t.value){const c=r.value.ControlPosition[d];s.value.controls[c].push(t.value)}},h=d=>{if(s.value&&r.value){let c=null;const p=r.value.ControlPosition[d];s.value.controls[p].forEach((f,m)=>{f===t.value&&(c=m)}),c!==null&&s.value.controls[p].removeAt(c)}};return l.onBeforeUnmount(()=>h(n.position)),l.watch(()=>n.position,(d,c)=>{h(c),i(d)}),l.watch(()=>n.index,d=>{d&&t.value&&(t.value.index=n.index)}),{controlRef:t,showContent:a}}}),qe={ref:"controlRef"};function Ne(n,e,t,s,r,o){return l.withDirectives((l.openBlock(),l.createElementBlock("div",qe,[l.renderSlot(n.$slots,"default")],512)),[[l.vShow,n.showContent]])}const Ze=D($e,[["render",Ne]]),ne=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Ue=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})}},emits:ne,setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.ref(),a=l.inject(A,l.ref()),u=l.inject(T,l.ref()),i=l.inject(de,l.ref());let h;const d=l.computed(()=>{var f;return(f=e.default)==null?void 0:f.call(e).some(m=>m.type!==l.Comment)}),c=f=>{var m;return(m=r.value)==null?void 0:m.open({map:a.value,anchor:i.value,...f})},p=()=>{var f;return(f=r.value)==null?void 0:f.close()};return l.onMounted(()=>{l.watch([a,()=>n.options],([f,m],[g,v])=>{const y=!E(m,v)||a.value!==g;a.value&&u.value&&y&&(r.value?(r.value.setOptions({...m,content:d.value?o.value:m.content}),i.value||c()):(r.value=l.markRaw(new u.value.InfoWindow({...m,content:d.value?o.value:m.content})),i.value?h=i.value.addListener("click",()=>{c()}):c(),ne.forEach(w=>{var C;(C=r.value)==null||C.addListener(w,x=>t(w,x))})))},{immediate:!0})}),l.onBeforeUnmount(()=>{var f;h&&h.remove(),r.value&&((f=u.value)==null||f.event.clearInstanceListeners(r.value),p())}),s({infoWindow:r,open:c,close:p}),{infoWindow:r,infoWindowRef:o,hasSlotContent:d,open:c,close:p}}});const Fe={key:0,class:"info-window-wrapper"};function De(n,e,t,s,r,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",Fe,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const ze=D(Ue,[["render",De],["__scopeId","data-v-45a4606d"]]),oe=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],V=1,R=8;class K{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,s]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const r=s>>4;if(r!==V)throw new Error(`Got v${r} data when expected v${V}.`);const o=oe[s&15];if(!o)throw new Error("Unrecognized array type.");const[a]=new Uint16Array(e,2,1),[u]=new Uint32Array(e,4,1);return new K(u,a,o,e)}constructor(e,t=64,s=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=s,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const o=oe.indexOf(this.ArrayType),a=e*2*this.ArrayType.BYTES_PER_ELEMENT,u=e*this.IndexArrayType.BYTES_PER_ELEMENT,i=(8-u%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${s}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,R,e),this.coords=new this.ArrayType(this.data,R+u+i,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(R+a+u+i),this.ids=new this.IndexArrayType(this.data,R,e),this.coords=new this.ArrayType(this.data,R+u+i,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(V<<4)+o]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const s=this._pos>>1;return this.ids[s]=s,this.coords[this._pos++]=e,this.coords[this._pos++]=t,s}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return W(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,s,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:a,nodeSize:u}=this,i=[0,o.length-1,0],h=[];for(;i.length;){const d=i.pop()||0,c=i.pop()||0,p=i.pop()||0;if(c-p<=u){for(let v=p;v<=c;v++){const y=a[2*v],w=a[2*v+1];y>=e&&y<=s&&w>=t&&w<=r&&h.push(o[v])}continue}const f=p+c>>1,m=a[2*f],g=a[2*f+1];m>=e&&m<=s&&g>=t&&g<=r&&h.push(o[f]),(d===0?e<=m:t<=g)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?s>=m:r>=g)&&(i.push(f+1),i.push(c),i.push(1-d))}return h}within(e,t,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:o,nodeSize:a}=this,u=[0,r.length-1,0],i=[],h=s*s;for(;u.length;){const d=u.pop()||0,c=u.pop()||0,p=u.pop()||0;if(c-p<=a){for(let v=p;v<=c;v++)ie(o[2*v],o[2*v+1],e,t)<=h&&i.push(r[v]);continue}const f=p+c>>1,m=o[2*f],g=o[2*f+1];ie(m,g,e,t)<=h&&i.push(r[f]),(d===0?e-s<=m:t-s<=g)&&(u.push(p),u.push(f-1),u.push(1-d)),(d===0?e+s>=m:t+s>=g)&&(u.push(f+1),u.push(c),u.push(1-d))}return i}}function W(n,e,t,s,r,o){if(r-s<=t)return;const a=s+r>>1;fe(n,e,a,s,r,o),W(n,e,t,s,a-1,1-o),W(n,e,t,a+1,r,1-o)}function fe(n,e,t,s,r,o){for(;r>s;){if(r-s>600){const h=r-s+1,d=t-s+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),m=Math.max(s,Math.floor(t-d*p/h+f)),g=Math.min(r,Math.floor(t+(h-d)*p/h+f));fe(n,e,t,m,g,o)}const a=e[2*t+o];let u=s,i=r;for($(n,e,s,t),e[2*r+o]>a&&$(n,e,s,r);u<i;){for($(n,e,u,i),u++,i--;e[2*u+o]<a;)u++;for(;e[2*i+o]>a;)i--}e[2*s+o]===a?$(n,e,s,i):(i++,$(n,e,i,r)),i<=t&&(s=i+1),t<=i&&(r=i-1)}}function $(n,e,t,s){G(n,t,s),G(e,2*t,2*s),G(e,2*t+1,2*s+1)}function G(n,e,t){const s=n[e];n[e]=n[t],n[t]=s}function ie(n,e,t,s){const r=n-t,o=e-s;return r*r+o*o}const Ve={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:n=>n},ae=Math.fround||(n=>e=>(n[0]=+e,n[0]))(new Float32Array(1)),P=2,b=3,H=4,M=5,me=6;class ge{constructor(e){this.options=Object.assign(Object.create(Ve),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:s,maxZoom:r}=this.options;t&&console.time("total time");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const a=[];for(let i=0;i<e.length;i++){const h=e[i];if(!h.geometry)continue;const[d,c]=h.geometry.coordinates,p=ae(Z(d)),f=ae(U(c));a.push(p,f,1/0,i,-1,1),this.options.reduce&&a.push(0)}let u=this.trees[r+1]=this._createTree(a);t&&console.timeEnd(o);for(let i=r;i>=s;i--){const h=+Date.now();u=this.trees[i]=this._createTree(this._cluster(u,i)),t&&console.log("z%d: %d clusters in %dms",i,u.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let s=((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 a=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)s=-180,o=180;else if(s>o){const c=this.getClusters([s,r,180,a],t),p=this.getClusters([-180,r,o,a],t);return c.concat(p)}const u=this.trees[this._limitZoom(t)],i=u.range(Z(s),U(a),Z(o),U(r)),h=u.data,d=[];for(const c of i){const p=this.stride*c;d.push(h[p+M]>1?le(h,p,this.clusterProps):this.points[h[p+b]])}return d}getChildren(e){const t=this._getOriginId(e),s=this._getOriginZoom(e),r="No cluster with the specified id.",o=this.trees[s];if(!o)throw new Error(r);const a=o.data;if(t*this.stride>=a.length)throw new Error(r);const u=this.options.radius/(this.options.extent*Math.pow(2,s-1)),i=a[t*this.stride],h=a[t*this.stride+1],d=o.within(i,h,u),c=[];for(const p of d){const f=p*this.stride;a[f+H]===e&&c.push(a[f+M]>1?le(a,f,this.clusterProps):this.points[a[f+b]])}if(c.length===0)throw new Error(r);return c}getLeaves(e,t,s){t=t||10,s=s||0;const r=[];return this._appendLeaves(r,e,t,s,0),r}getTile(e,t,s){const r=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:a,radius:u}=this.options,i=u/a,h=(s-i)/o,d=(s+1+i)/o,c={features:[]};return this._addTileFeatures(r.range((t-i)/o,h,(t+1+i)/o,d),r.data,t,s,o,c),t===0&&this._addTileFeatures(r.range(1-i/o,h,1,d),r.data,o,s,o,c),t===o-1&&this._addTileFeatures(r.range(0,h,i/o,d),r.data,-1,s,o,c),c.features.length?c:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const s=this.getChildren(e);if(t++,s.length!==1)break;e=s[0].properties.cluster_id}return t}_appendLeaves(e,t,s,r,o){const a=this.getChildren(t);for(const u of a){const i=u.properties;if(i&&i.cluster?o+i.point_count<=r?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,s,r,o):o<r?o++:e.push(u),e.length===s)break}return o}_createTree(e){const t=new K(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let s=0;s<e.length;s+=this.stride)t.add(e[s],e[s+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,s,r,o,a){for(const u of e){const i=u*this.stride,h=t[i+M]>1;let d,c,p;if(h)d=ve(t,i,this.clusterProps),c=t[i],p=t[i+1];else{const g=this.points[t[i+b]];d=g.properties;const[v,y]=g.geometry.coordinates;c=Z(v),p=U(y)}const f={type:1,geometry:[[Math.round(this.options.extent*(c*o-s)),Math.round(this.options.extent*(p*o-r))]],tags:d};let m;h||this.options.generateId?m=t[i+b]:m=this.points[t[i+b]].id,m!==void 0&&(f.id=m),a.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:s,extent:r,reduce:o,minPoints:a}=this.options,u=s/(r*Math.pow(2,t)),i=e.data,h=[],d=this.stride;for(let c=0;c<i.length;c+=d){if(i[c+P]<=t)continue;i[c+P]=t;const p=i[c],f=i[c+1],m=e.within(i[c],i[c+1],u),g=i[c+M];let v=g;for(const y of m){const w=y*d;i[w+P]>t&&(v+=i[w+M])}if(v>g&&v>=a){let y=p*g,w=f*g,C,x=-1;const j=((c/d|0)<<5)+(t+1)+this.points.length;for(const N of m){const _=N*d;if(i[_+P]<=t)continue;i[_+P]=t;const B=i[_+M];y+=i[_]*B,w+=i[_+1]*B,i[_+H]=j,o&&(C||(C=this._map(i,c,!0),x=this.clusterProps.length,this.clusterProps.push(C)),o(C,this._map(i,_)))}i[c+H]=j,h.push(y/v,w/v,1/0,j,-1,v),o&&h.push(x)}else{for(let y=0;y<d;y++)h.push(i[c+y]);if(v>1)for(const y of m){const w=y*d;if(!(i[w+P]<=t)){i[w+P]=t;for(let C=0;C<d;C++)h.push(i[w+C])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,s){if(e[t+M]>1){const a=this.clusterProps[e[t+me]];return s?Object.assign({},a):a}const r=this.points[e[t+b]].properties,o=this.options.map(r);return s&&o===r?Object.assign({},o):o}}function le(n,e,t){return{type:"Feature",id:n[e+b],properties:ve(n,e,t),geometry:{type:"Point",coordinates:[Ge(n[e]),He(n[e+1])]}}}function ve(n,e,t){const s=n[e+M],r=s>=1e4?`${Math.round(s/1e3)}k`:s>=1e3?`${Math.round(s/100)/10}k`:s,o=n[e+me],a=o===-1?{}:Object.assign({},t[o]);return Object.assign(a,{cluster:!0,cluster_id:n[e+b],point_count:s,point_count_abbreviated:r})}function Z(n){return n/360+.5}function U(n){const e=Math.sin(n*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function Ge(n){return(n-.5)*360}function He(n){const e=(180-n*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-174b771e]{width:100%;height:100%}.info-window-wrapper[data-v-45a4606d]{display:none}.mapdiv .info-window-wrapper[data-v-45a4606d]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}")),document.head.appendChild(a)}}catch(d){console.error("vite-plugin-css-injected-by-js",d)}})();
"use strict";var _e=Object.defineProperty;var Ce=(n,e,t)=>e in n?_e(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var V=(n,e,t)=>(Ce(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),R=Symbol("map"),j=Symbol("api"),he=Symbol("marker"),pe=Symbol("markerCluster"),F=Symbol("CustomMarker"),fe=Symbol("mapTilesLoaded"),T=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

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

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function J(n,e){var t={};for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&e.indexOf(s)<0&&(t[s]=n[s]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(n);r<s.length;r++)e.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(n,s[r])&&(t[s[r]]=n[s[r]]);return t}class k{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 q{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(k.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>k.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(k.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const We=(n,e,t,s)=>{const r=ye(n.getBounds(),e,s);return t.filter(o=>r.contains(k.getPosition(o)))},ye=(n,e,t)=>{const{northEast:s,southWest:r}=Ke(n,e),o=Je({northEast:s,southWest:r},t);return Ye(o,e)},ce=(n,e,t)=>{const s=ye(n,e,t),r=s.getNorthEast(),o=s.getSouthWest();return[o.lng(),o.lat(),r.lng(),r.lat()]},Ke=(n,e)=>({northEast:e.fromLatLngToDivPixel(n.getNorthEast()),southWest:e.fromLatLngToDivPixel(n.getSouthWest())}),Je=({northEast:n,southWest:e},t)=>(n.x+=t,n.y-=t,e.x-=t,e.y+=t,{northEast:n,southWest:e}),Ye=({northEast:n,southWest:e},t)=>{const s=t.fromDivPixelToLatLng(e),r=t.fromDivPixelToLatLng(n);return new google.maps.LatLngBounds(s,r)};class we{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return Qe(e)}}class Xe extends we{constructor(e){var{viewportPadding:t=60}=e,s=J(e,["viewportPadding"]);super(s),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:s}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:We(t,s,e,this.viewportPadding),map:t,mapCanvasProjection:s})}}}const Qe=n=>n.map(t=>new q({position:k.getPosition(t),markers:[t]}));class et extends we{constructor(e){var{maxZoom:t,radius:s=60}=e,r=J(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:s},r))}calculate(e){let t=!1;const s={zoom:e.map.getZoom()};if(!E(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const a=k.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return t||(this.state.zoom<=this.maxZoom||s.zoom<=this.maxZoom)&&(t=!E(this.state,s)),this.state=s,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:s}){if(s.cluster)return new q({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=s.marker;return new q({markers:[r],position:k.getPosition(r)})}}class tt extends Xe{constructor(e){var{maxZoom:t,radius:s=60,viewportPadding:r=60}=e,o=J(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:r}),this.superCluster=new ge(Object.assign({maxZoom:this.maxZoom,radius:s},o)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:ce(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let s=!E(this.state,t);if(!E(e.markers,this.markers)){s=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const a=k.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return s&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:s}}cluster({map:e,mapCanvasProjection:t}){const s={zoom:Math.round(e.getZoom()),view:ce(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(s.view,s.zoom).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:s}){if(s.cluster)return new q({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=s.marker;return new q({markers:[r],position:k.getPosition(r)})}}class st{constructor(e,t){this.markers={sum:e.length};const s=t.map(o=>o.count),r=s.reduce((o,a)=>o+a,0);this.clusters={count:t.length,markers:{mean:r/t.length,sum:r,min:Math.min(...s),max:Math.max(...s)}}}}class rt{render({count:e,position:t},s,r){const a=`<svg fill="${e>Math.max(10,s.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">
***************************************************************************** */function be(n,e,t,r){function s(o){return o instanceof t?o:new t(function(a){a(o)})}return new(t||(t=Promise))(function(o,a){function c(d){try{h(r.next(d))}catch(u){a(u)}}function i(d){try{h(r.throw(d))}catch(u){a(u)}}function h(d){d.done?o(d.value):s(d.value).then(c,i)}h((r=r.apply(n,e||[])).next())})}var Me=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,s,o;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(s=r;s--!==0;)if(!n(e[s],t[s]))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),r=o.length,r!==Object.keys(t).length)return!1;for(s=r;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=r;s--!==0;){var a=o[s];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const Q="__googleMapsScriptId";var I;(function(n){n[n.INITIALIZED=0]="INITIALIZED",n[n.LOADING=1]="LOADING",n[n.SUCCESS=2]="SUCCESS",n[n.FAILURE=3]="FAILURE"})(I||(I={}));class x{constructor({apiKey:e,authReferrerPolicy:t,channel:r,client:s,id:o=Q,language:a,libraries:c=[],mapIds:i,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=r,this.client=s,this.id=o||Q,this.language=a,this.libraries=c,this.mapIds=i,this.nonce=h,this.region=d,this.retries=u,this.url=p,this.version=f,x.instance){if(!Me(this.options,x.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(x.instance.options)}`);return x.instance}x.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?I.FAILURE:this.done?I.SUCCESS:this.loading?I.LOADING:I.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(r=>{r?t(r.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 r={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(r).forEach(o=>!r[o]&&delete r[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 a,c,i,h="The Google Maps JavaScript API",d="google",u="importLibrary",p="__ib__",f=document,m=window;m=m[d]||(m[d]={});const g=m.maps||(m.maps={}),v=new Set,y=new URLSearchParams,w=()=>a||(a=new Promise((k,C)=>be(this,void 0,void 0,function*(){var M;yield c=f.createElement("script"),c.id=this.id,y.set("libraries",[...v]+"");for(i in o)y.set(i.replace(/[A-Z]/g,L=>"_"+L[0].toLowerCase()),o[i]);y.set("callback",d+".maps."+p),c.src=this.url+"?"+y,g[p]=k,c.onerror=()=>a=C(Error(h+" could not load.")),c.nonce=this.nonce||((M=f.querySelector("script[nonce]"))===null||M===void 0?void 0:M.nonce)||"",f.head.append(c)})));g[u]?console.warn(h+" only loads once. Ignoring:",o):g[u]=(k,...C)=>v.add(k)&&w().then(()=>g[u](k,...C))})(r);const s=this.libraries.map(o=>this.importLibrary(o));s.length||s.push(this.importLibrary("core")),Promise.all(s).then(()=>this.callback(),o=>{const a=new ErrorEvent("error",{error:o});this.loadErrorCallback(a)})}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(n){return class extends n.OverlayView{constructor(r){super();V(this,"element");V(this,"opts");const{element:s,...o}=r;this.element=s,this.opts=o,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof n.LatLng?this.opts.position:new n.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const r=this.element;return r.style.display!=="none"&&r.style.visibility!=="hidden"&&(r.style.opacity===""||Number(r.style.opacity)>.01)}onAdd(){if(!this.element)return;const r=this.getPanes();r&&r.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const r=this.getProjection(),s=r==null?void 0:r.fromLatLngToDivPixel(this.getPosition());if(s){this.element.style.position="absolute";const o=this.element.offsetHeight,a=this.element.offsetWidth;let c,i;switch(this.opts.anchorPoint){case"TOP_CENTER":c=s.x-a/2,i=s.y;break;case"BOTTOM_CENTER":c=s.x-a/2,i=s.y-o;break;case"LEFT_CENTER":c=s.x,i=s.y-o/2;break;case"RIGHT_CENTER":c=s.x-a,i=s.y-o/2;break;case"TOP_LEFT":c=s.x,i=s.y;break;case"TOP_RIGHT":c=s.x-a,i=s.y;break;case"BOTTOM_LEFT":c=s.x,i=s.y-o;break;case"BOTTOM_RIGHT":c=s.x-a,i=s.y-o;break;default:c=s.x-a/2,i=s.y-o/2}this.element.style.left=c+"px",this.element.style.top=i+"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(r){const{element:s,...o}=r;this.element=s,this.opts=o,this.draw()}}}let ee;const te=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","heading_changed","idle","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","resize","rightclick","tilesloaded","tilt_changed","zoom_changed"],Pe=l.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places"]},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},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}},emits:te,setup(n,{emit:e}){const t=l.ref(),r=l.ref(!1),s=l.ref(),o=l.ref(),a=l.ref(!1);l.provide(R,s),l.provide(j,o),l.provide(fe,a);const c=()=>{const u={...n};Object.keys(u).forEach(g=>{u[g]===void 0&&delete u[g]});const f=g=>{var v;return g?{position:(v=o.value)==null?void 0:v.ControlPosition[g]}:{}},m={scaleControlOptions:n.scaleControlStyle?{style:n.scaleControlStyle}:{},panControlOptions:f(n.panControlPosition),zoomControlOptions:f(n.zoomControlPosition),rotateControlOptions:f(n.rotateControlPosition),streetViewControlOptions:f(n.streetViewControlPosition),fullscreenControlOptions:f(n.fullscreenControlPosition),disableDefaultUI:n.disableDefaultUi};return{...u,...m}},i=l.watch([o,s],([u,p])=>{const f=u,m=p;f&&m&&(f.event.addListenerOnce(m,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:m,libraries:g}=n;ee=new x({apiKey:u,region:p,version:f,language:m,libraries:g})}catch(u){console.error(u)}},d=u=>{o.value=l.markRaw(u.maps),s.value=l.markRaw(new u.maps.Map(t.value,c()));const p=Ee(o.value);o.value[F]=p,te.forEach(m=>{var g;(g=s.value)==null||g.addListener(m,v=>e(m,v))}),r.value=!0;const f=Object.keys(n).filter(m=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(m)).map(m=>l.toRef(n,m));l.watch([()=>n.center,()=>n.zoom,...f],([m,g],[v,y])=>{var L,b,B;const{center:w,zoom:k,...C}=c();(L=s.value)==null||L.setOptions(C),g!==void 0&&g!==y&&((b=s.value)==null||b.setZoom(g));const M=!v||m.lng!==v.lng||m.lat!==v.lat;m&&M&&((B=s.value)==null||B.panTo(m))})};return l.onMounted(()=>{n.apiPromise&&n.apiPromise instanceof Promise?n.apiPromise.then(d):(h(),ee.load().then(d))}),l.onBeforeUnmount(()=>{var u;a.value=!1,s.value&&((u=o.value)==null||u.event.clearInstanceListeners(s.value))}),{mapRef:t,ready:r,map:s,api:o,mapTilesLoaded:a}}});const z=(n,e)=>{const t=n.__vccOpts||n;for(const[r,s]of e)t[r]=s;return t},Oe={ref:"mapRef",class:"mapdiv"};function xe(n,e,t,r,s,o){return l.openBlock(),l.createElementBlock("div",null,[l.createElementVNode("div",Oe,null,512),l.renderSlot(n.$slots,"default",l.normalizeProps(l.guardReactiveProps({ready:n.ready,map:n.map,api:n.api,mapTilesLoaded:n.mapTilesLoaded})),void 0,!0)])}const Se=z(Pe,[["render",xe],["__scopeId","data-v-174b771e"]]);function Le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ie=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,s,o;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(s=r;s--!==0;)if(!n(e[s],t[s]))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),r=o.length,r!==Object.keys(t).length)return!1;for(s=r;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=r;s--!==0;){var a=o[s];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const S=Le(Ie),Ae=n=>n==="Marker",Te=n=>n===F,$=(n,e,t,r)=>{const s=l.ref(),o=l.inject(R,l.ref()),a=l.inject(j,l.ref()),c=l.inject(pe,l.ref()),i=l.computed(()=>!!(c.value&&a.value&&(s.value instanceof a.value.Marker||s.value instanceof a.value[F])));return l.watch([o,t],(h,[d,u])=>{var f,m,g;const p=!S(t.value,u)||o.value!==d;!o.value||!a.value||!p||(s.value?(s.value.setOptions(t.value),i.value&&((f=c.value)==null||f.removeMarker(s.value),(m=c.value)==null||m.addMarker(s.value))):(Ae(n)?s.value=l.markRaw(new a.value[n](t.value)):Te(n)?s.value=l.markRaw(new a.value[n](t.value)):s.value=l.markRaw(new a.value[n]({...t.value,map:o.value})),i.value?(g=c.value)==null||g.addMarker(s.value):s.value.setMap(o.value),e.forEach(v=>{var y;(y=s.value)==null||y.addListener(v,w=>r(v,w))})))},{immediate:!0}),l.onBeforeUnmount(()=>{var h,d;s.value&&((h=a.value)==null||h.event.clearInstanceListeners(s.value),i.value?(d=c.value)==null||d.removeMarker(s.value):s.value.setMap(null))}),s},re=["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"],Re=l.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:re,setup(n,{emit:e,expose:t,slots:r}){const s=l.toRef(n,"options"),o=$("Marker",re,s,e);return l.provide(he,o),t({marker:o}),()=>{var a;return(a=r.default)==null?void 0:a.call(r)}}}),je=l.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polyline:$("Polyline",T,t,e)}},render:()=>null}),$e=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:$("Polygon",T,t,e)}},render:()=>null}),se=T.concat(["bounds_changed"]),Be=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:se,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:$("Rectangle",se,t,e)}},render:()=>null}),ne=T.concat(["center_changed","radius_changed"]),qe=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:ne,setup(n,{emit:e}){const t=l.toRef(n,"options");return{circle:$("Circle",ne,t,e)}},render:()=>null}),Ne=l.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(n,{emit:e}){const t=l.ref(null),r=l.inject(R,l.ref()),s=l.inject(j,l.ref()),o=l.inject(fe,l.ref(!1)),a=l.ref(!1),c=l.watch([o,s,t],([d,u,p])=>{u&&d&&p&&(i(n.position),a.value=!0,e("content:loaded"),setTimeout(c,0))},{immediate:!0}),i=d=>{if(r.value&&s.value&&t.value){const u=s.value.ControlPosition[d];r.value.controls[u].push(t.value)}},h=d=>{if(r.value&&s.value){let u=null;const p=s.value.ControlPosition[d];r.value.controls[p].forEach((f,m)=>{f===t.value&&(u=m)}),u!==null&&r.value.controls[p].removeAt(u)}};return l.onBeforeUnmount(()=>h(n.position)),l.watch(()=>n.position,(d,u)=>{h(u),i(d)}),l.watch(()=>n.index,d=>{d&&t.value&&(t.value.index=n.index)}),{controlRef:t,showContent:a}}}),Ze={ref:"controlRef"};function Ue(n,e,t,r,s,o){return l.withDirectives((l.openBlock(),l.createElementBlock("div",Ze,[l.renderSlot(n.$slots,"default")],512)),[[l.vShow,n.showContent]])}const De=z(Ne,[["render",Ue]]),oe=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Fe=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})}},emits:oe,setup(n,{slots:e,emit:t,expose:r}){const s=l.ref(),o=l.ref(),a=l.inject(R,l.ref()),c=l.inject(j,l.ref()),i=l.inject(he,l.ref());let h;const d=l.computed(()=>{var f;return(f=e.default)==null?void 0:f.call(e).some(m=>m.type!==l.Comment)}),u=f=>{var m;return(m=s.value)==null?void 0:m.open({map:a.value,anchor:i.value,...f})},p=()=>{var f;return(f=s.value)==null?void 0:f.close()};return l.onMounted(()=>{l.watch([a,()=>n.options],([f,m],[g,v])=>{const y=!S(m,v)||a.value!==g;a.value&&c.value&&y&&(s.value?(s.value.setOptions({...m,content:d.value?o.value:m.content}),i.value||u()):(s.value=l.markRaw(new c.value.InfoWindow({...m,content:d.value?o.value:m.content})),i.value?h=i.value.addListener("click",()=>{u()}):u(),oe.forEach(w=>{var k;(k=s.value)==null||k.addListener(w,C=>t(w,C))})))},{immediate:!0})}),l.onBeforeUnmount(()=>{var f;h&&h.remove(),s.value&&((f=c.value)==null||f.event.clearInstanceListeners(s.value),p())}),r({infoWindow:s,open:u,close:p}),{infoWindow:s,infoWindowRef:o,hasSlotContent:d,open:u,close:p}}});const ze={key:0,class:"info-window-wrapper"};function Ve(n,e,t,r,s,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",ze,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const Ge=z(Fe,[["render",Ve],["__scopeId","data-v-45a4606d"]]),ie=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],G=1,q=8;class J{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,r]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const s=r>>4;if(s!==G)throw new Error(`Got v${s} data when expected v${G}.`);const o=ie[r&15];if(!o)throw new Error("Unrecognized array type.");const[a]=new Uint16Array(e,2,1),[c]=new Uint32Array(e,4,1);return new J(c,a,o,e)}constructor(e,t=64,r=Float64Array,s){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=r,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const o=ie.indexOf(this.ArrayType),a=e*2*this.ArrayType.BYTES_PER_ELEMENT,c=e*this.IndexArrayType.BYTES_PER_ELEMENT,i=(8-c%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${r}.`);s&&s instanceof ArrayBuffer?(this.data=s,this.ids=new this.IndexArrayType(this.data,q,e),this.coords=new this.ArrayType(this.data,q+c+i,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(q+a+c+i),this.ids=new this.IndexArrayType(this.data,q,e),this.coords=new this.ArrayType(this.data,q+c+i,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(G<<4)+o]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=e,this.coords[this._pos++]=t,r}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return K(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,r,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:a,nodeSize:c}=this,i=[0,o.length-1,0],h=[];for(;i.length;){const d=i.pop()||0,u=i.pop()||0,p=i.pop()||0;if(u-p<=c){for(let v=p;v<=u;v++){const y=a[2*v],w=a[2*v+1];y>=e&&y<=r&&w>=t&&w<=s&&h.push(o[v])}continue}const f=p+u>>1,m=a[2*f],g=a[2*f+1];m>=e&&m<=r&&g>=t&&g<=s&&h.push(o[f]),(d===0?e<=m:t<=g)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?r>=m:s>=g)&&(i.push(f+1),i.push(u),i.push(1-d))}return h}within(e,t,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:o,nodeSize:a}=this,c=[0,s.length-1,0],i=[],h=r*r;for(;c.length;){const d=c.pop()||0,u=c.pop()||0,p=c.pop()||0;if(u-p<=a){for(let v=p;v<=u;v++)ae(o[2*v],o[2*v+1],e,t)<=h&&i.push(s[v]);continue}const f=p+u>>1,m=o[2*f],g=o[2*f+1];ae(m,g,e,t)<=h&&i.push(s[f]),(d===0?e-r<=m:t-r<=g)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+r>=m:t+r>=g)&&(c.push(f+1),c.push(u),c.push(1-d))}return i}}function K(n,e,t,r,s,o){if(s-r<=t)return;const a=r+s>>1;me(n,e,a,r,s,o),K(n,e,t,r,a-1,1-o),K(n,e,t,a+1,s,1-o)}function me(n,e,t,r,s,o){for(;s>r;){if(s-r>600){const h=s-r+1,d=t-r+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),m=Math.max(r,Math.floor(t-d*p/h+f)),g=Math.min(s,Math.floor(t+(h-d)*p/h+f));me(n,e,t,m,g,o)}const a=e[2*t+o];let c=r,i=s;for(N(n,e,r,t),e[2*s+o]>a&&N(n,e,r,s);c<i;){for(N(n,e,c,i),c++,i--;e[2*c+o]<a;)c++;for(;e[2*i+o]>a;)i--}e[2*r+o]===a?N(n,e,r,i):(i++,N(n,e,i,s)),i<=t&&(r=i+1),t<=i&&(s=i-1)}}function N(n,e,t,r){H(n,t,r),H(e,2*t,2*r),H(e,2*t+1,2*r+1)}function H(n,e,t){const r=n[e];n[e]=n[t],n[t]=r}function ae(n,e,t,r){const s=n-t,o=e-r;return s*s+o*o}const He={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:n=>n},le=Math.fround||(n=>e=>(n[0]=+e,n[0]))(new Float32Array(1)),O=2,P=3,W=4,E=5,ge=6;class ve{constructor(e){this.options=Object.assign(Object.create(He),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:r,maxZoom:s}=this.options;t&&console.time("total time");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const a=[];for(let i=0;i<e.length;i++){const h=e[i];if(!h.geometry)continue;const[d,u]=h.geometry.coordinates,p=le(U(d)),f=le(D(u));a.push(p,f,1/0,i,-1,1),this.options.reduce&&a.push(0)}let c=this.trees[s+1]=this._createTree(a);t&&console.timeEnd(o);for(let i=s;i>=r;i--){const h=+Date.now();c=this.trees[i]=this._createTree(this._cluster(c,i)),t&&console.log("z%d: %d clusters in %dms",i,c.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let r=((e[0]+180)%360+360)%360-180;const s=Math.max(-90,Math.min(90,e[1]));let o=e[2]===180?180:((e[2]+180)%360+360)%360-180;const a=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,o=180;else if(r>o){const u=this.getClusters([r,s,180,a],t),p=this.getClusters([-180,s,o,a],t);return u.concat(p)}const c=this.trees[this._limitZoom(t)],i=c.range(U(r),D(a),U(o),D(s)),h=c.data,d=[];for(const u of i){const p=this.stride*u;d.push(h[p+E]>1?ce(h,p,this.clusterProps):this.points[h[p+P]])}return d}getChildren(e){const t=this._getOriginId(e),r=this._getOriginZoom(e),s="No cluster with the specified id.",o=this.trees[r];if(!o)throw new Error(s);const a=o.data;if(t*this.stride>=a.length)throw new Error(s);const c=this.options.radius/(this.options.extent*Math.pow(2,r-1)),i=a[t*this.stride],h=a[t*this.stride+1],d=o.within(i,h,c),u=[];for(const p of d){const f=p*this.stride;a[f+W]===e&&u.push(a[f+E]>1?ce(a,f,this.clusterProps):this.points[a[f+P]])}if(u.length===0)throw new Error(s);return u}getLeaves(e,t,r){t=t||10,r=r||0;const s=[];return this._appendLeaves(s,e,t,r,0),s}getTile(e,t,r){const s=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:a,radius:c}=this.options,i=c/a,h=(r-i)/o,d=(r+1+i)/o,u={features:[]};return this._addTileFeatures(s.range((t-i)/o,h,(t+1+i)/o,d),s.data,t,r,o,u),t===0&&this._addTileFeatures(s.range(1-i/o,h,1,d),s.data,o,r,o,u),t===o-1&&this._addTileFeatures(s.range(0,h,i/o,d),s.data,-1,r,o,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const r=this.getChildren(e);if(t++,r.length!==1)break;e=r[0].properties.cluster_id}return t}_appendLeaves(e,t,r,s,o){const a=this.getChildren(t);for(const c of a){const i=c.properties;if(i&&i.cluster?o+i.point_count<=s?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,r,s,o):o<s?o++:e.push(c),e.length===r)break}return o}_createTree(e){const t=new J(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let r=0;r<e.length;r+=this.stride)t.add(e[r],e[r+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,r,s,o,a){for(const c of e){const i=c*this.stride,h=t[i+E]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const g=this.points[t[i+P]];d=g.properties;const[v,y]=g.geometry.coordinates;u=U(v),p=D(y)}const f={type:1,geometry:[[Math.round(this.options.extent*(u*o-r)),Math.round(this.options.extent*(p*o-s))]],tags:d};let m;h||this.options.generateId?m=t[i+P]:m=this.points[t[i+P]].id,m!==void 0&&(f.id=m),a.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:r,extent:s,reduce:o,minPoints:a}=this.options,c=r/(s*Math.pow(2,t)),i=e.data,h=[],d=this.stride;for(let u=0;u<i.length;u+=d){if(i[u+O]<=t)continue;i[u+O]=t;const p=i[u],f=i[u+1],m=e.within(i[u],i[u+1],c),g=i[u+E];let v=g;for(const y of m){const w=y*d;i[w+O]>t&&(v+=i[w+E])}if(v>g&&v>=a){let y=p*g,w=f*g,k,C=-1;const M=((u/d|0)<<5)+(t+1)+this.points.length;for(const L of m){const b=L*d;if(i[b+O]<=t)continue;i[b+O]=t;const B=i[b+E];y+=i[b]*B,w+=i[b+1]*B,i[b+W]=M,o&&(k||(k=this._map(i,u,!0),C=this.clusterProps.length,this.clusterProps.push(k)),o(k,this._map(i,b)))}i[u+W]=M,h.push(y/v,w/v,1/0,M,-1,v),o&&h.push(C)}else{for(let y=0;y<d;y++)h.push(i[u+y]);if(v>1)for(const y of m){const w=y*d;if(!(i[w+O]<=t)){i[w+O]=t;for(let k=0;k<d;k++)h.push(i[w+k])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,r){if(e[t+E]>1){const a=this.clusterProps[e[t+ge]];return r?Object.assign({},a):a}const s=this.points[e[t+P]].properties,o=this.options.map(s);return r&&o===s?Object.assign({},o):o}}function ce(n,e,t){return{type:"Feature",id:n[e+P],properties:ye(n,e,t),geometry:{type:"Point",coordinates:[We(n[e]),Ke(n[e+1])]}}}function ye(n,e,t){const r=n[e+E],s=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?`${Math.round(r/100)/10}k`:r,o=n[e+ge],a=o===-1?{}:Object.assign({},t[o]);return Object.assign(a,{cluster:!0,cluster_id:n[e+P],point_count:r,point_count_abbreviated:s})}function U(n){return n/360+.5}function D(n){const e=Math.sin(n*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function We(n){return(n-.5)*360}function Ke(n){const e=(180-n*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function Y(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(t[r[s]]=n[r[s]]);return t}class _{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 Z{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(_.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>_.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(_.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const Je=(n,e,t,r)=>{const s=we(n.getBounds(),e,r);return t.filter(o=>s.contains(_.getPosition(o)))},we=(n,e,t)=>{const{northEast:r,southWest:s}=Ye(n,e),o=Xe({northEast:r,southWest:s},t);return Qe(o,e)},ue=(n,e,t)=>{const r=we(n,e,t),s=r.getNorthEast(),o=r.getSouthWest();return[o.lng(),o.lat(),s.lng(),s.lat()]},Ye=(n,e)=>({northEast:e.fromLatLngToDivPixel(n.getNorthEast()),southWest:e.fromLatLngToDivPixel(n.getSouthWest())}),Xe=({northEast:n,southWest:e},t)=>(n.x+=t,n.y-=t,e.x-=t,e.y+=t,{northEast:n,southWest:e}),Qe=({northEast:n,southWest:e},t)=>{const r=t.fromDivPixelToLatLng(e),s=t.fromDivPixelToLatLng(n);return new google.maps.LatLngBounds(r,s)};class ke{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return tt(e)}}class et extends ke{constructor(e){var{viewportPadding:t=60}=e,r=Y(e,["viewportPadding"]);super(r),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:r}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:Je(t,r,e,this.viewportPadding),map:t,mapCanvasProjection:r})}}}const tt=n=>n.map(t=>new Z({position:_.getPosition(t),markers:[t]}));class rt extends ke{constructor(e){var{maxZoom:t,radius:r=60}=e,s=Y(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new ve(Object.assign({maxZoom:this.maxZoom,radius:r},s))}calculate(e){let t=!1;const r={zoom:e.map.getZoom()};if(!S(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const s=this.markers.map(o=>{const a=_.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(s)}return t||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(t=!S(this.state,r)),this.state=r,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:r}){if(r.cluster)return new Z({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const s=r.marker;return new Z({markers:[s],position:_.getPosition(s)})}}class st extends et{constructor(e){var{maxZoom:t,radius:r=60,viewportPadding:s=60}=e,o=Y(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:s}),this.superCluster=new ve(Object.assign({maxZoom:this.maxZoom,radius:r},o)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:ue(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let r=!S(this.state,t);if(!S(e.markers,this.markers)){r=!0,this.markers=[...e.markers];const s=this.markers.map(o=>{const a=_.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(s)}return r&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:r}}cluster({map:e,mapCanvasProjection:t}){const r={zoom:Math.round(e.getZoom()),view:ue(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(r.view,r.zoom).map(s=>this.transformCluster(s))}transformCluster({geometry:{coordinates:[e,t]},properties:r}){if(r.cluster)return new Z({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const s=r.marker;return new Z({markers:[s],position:_.getPosition(s)})}}class nt{constructor(e,t){this.markers={sum:e.length};const r=t.map(o=>o.count),s=r.reduce((o,a)=>o+a,0);this.clusters={count:t.length,markers:{mean:s/t.length,sum:s,min:Math.min(...r),max:Math.max(...r)}}}}class ot{render({count:e,position:t},r,s){const a=`<svg fill="${e>Math.max(10,r.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" />

@@ -21,2 +34,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>`,u=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(k.isAdvancedMarkerAvailable(r)){const d=document.createElement("div");d.innerHTML=a;const c=d.firstElementChild;c.setAttribute("transform","translate(0 25)");const p={map:r,position:t,zIndex:i,title:u,content:c};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:i,title:u,icon:{url:`data:image/svg+xml;base64,${btoa(a)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function nt(n,e){for(let t in e.prototype)n.prototype[t]=e.prototype[t]}class Y{constructor(){nt(Y,google.maps.OverlayView)}}var S;(function(n){n.CLUSTERING_BEGIN="clusteringbegin",n.CLUSTERING_END="clusteringend",n.CLUSTER_CLICK="click"})(S||(S={}));const ot=(n,e,t)=>{t.fitBounds(e.bounds)};class it extends Y{constructor({map:e,markers:t=[],algorithmOptions:s={},algorithm:r=new et(s),renderer:o=new rt,onClusterClick:a=ot}){super(),this.markers=[...t],this.clusters=[],this.algorithm=r,this.renderer=o,this.onClusterClick=a,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(s=>{this.addMarker(s,!0)}),t||this.render()}removeMarker(e,t){const s=this.markers.indexOf(e);return s===-1?!1:(k.setMap(e,null),this.markers.splice(s,1),t||this.render(),!0)}removeMarkers(e,t){let s=!1;return e.forEach(r=>{s=this.removeMarker(r,!0)||s}),s&&!t&&this.render(),s}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,S.CLUSTERING_BEGIN,this);const{clusters:t,changed:s}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(s||s==null){const r=new Set;for(const a of t)a.markers.length==1&&r.add(a.markers[0]);const o=[];for(const a of this.clusters)a.marker!=null&&(a.markers.length==1?r.has(a.marker)||k.setMap(a.marker,null):o.push(a.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>o.forEach(a=>k.setMap(a,null)))}google.maps.event.trigger(this,S.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=>k.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new st(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(s=>{s.markers.length===1?s.marker=s.markers[0]:(s.marker=this.renderer.render(s,e,t),s.markers.forEach(r=>k.setMap(r,null)),this.onClusterClick&&s.marker.addListener("click",r=>{google.maps.event.trigger(this,S.CLUSTER_CLICK,s),this.onClusterClick(r,s,t)})),k.setMap(s.marker,t)})}}const ue=Object.values(S),at=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:ue,setup(n,{emit:e,expose:t,slots:s}){const r=l.ref(),o=l.inject(A,l.ref()),a=l.inject(T,l.ref());return l.provide(he,r),l.watch(o,()=>{o.value&&(r.value=l.markRaw(new it({map:o.value,algorithm:new tt(n.options.algorithmOptions??{}),...n.options})),ue.forEach(u=>{var i;(i=r.value)==null||i.addListener(u,h=>e(u,h))}))},{immediate:!0}),l.onBeforeUnmount(()=>{var u;r.value&&((u=a.value)==null||u.event.clearInstanceListeners(r.value),r.value.clearMarkers(),r.value.setMap(null))}),t({markerCluster:r}),()=>{var u;return(u=s.default)==null?void 0:u.call(s)}}}),lt=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.computed(()=>{var i;return(i=e.default)==null?void 0:i.call(e).some(h=>h.type!==l.Comment)}),a=l.computed(()=>({...n.options,element:r.value})),u=I(F,[],a,t);return s({customMarker:u}),{customMarkerRef:r,customMarker:u,hasSlotContent:o}}});const ct={key:0,class:"custom-marker-wrapper"};function ut(n,e,t,s,r,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",ct,[l.createElementVNode("div",l.mergeProps({ref:"customMarkerRef",style:{cursor:n.$attrs.onClick?"pointer":void 0}},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const dt=D(lt,[["render",ut],["__scopeId","data-v-c7599d50"]]),ht=l.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(n){const e=l.ref(),t=l.inject(A,l.ref()),s=l.inject(T,l.ref());return l.watch([t,()=>n.options],([r,o],[a,u])=>{var h;const i=!E(o,u)||t.value!==a;if(t.value&&s.value&&i){const d=structuredClone(o);if(d.data&&!(d.data instanceof s.value.MVCArray)){const c=s.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=l.markRaw(new s.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),l.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});exports.Circle=Re;exports.CustomControl=Ze;exports.CustomMarker=dt;exports.GoogleMap=Ee;exports.HeatmapLayer=ht;exports.InfoWindow=ze;exports.Marker=Te;exports.MarkerCluster=at;exports.Polygon=je;exports.Polyline=Ie;exports.Rectangle=Be;
</svg>`,c=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(_.isAdvancedMarkerAvailable(s)){const d=document.createElement("div");d.innerHTML=a;const u=d.firstElementChild;u.setAttribute("transform","translate(0 25)");const p={map:s,position:t,zIndex:i,title:c,content:u};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:i,title:c,icon:{url:`data:image/svg+xml;base64,${btoa(a)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function it(n,e){for(let t in e.prototype)n.prototype[t]=e.prototype[t]}class X{constructor(){it(X,google.maps.OverlayView)}}var A;(function(n){n.CLUSTERING_BEGIN="clusteringbegin",n.CLUSTERING_END="clusteringend",n.CLUSTER_CLICK="click"})(A||(A={}));const at=(n,e,t)=>{t.fitBounds(e.bounds)};class lt extends X{constructor({map:e,markers:t=[],algorithmOptions:r={},algorithm:s=new rt(r),renderer:o=new ot,onClusterClick:a=at}){super(),this.markers=[...t],this.clusters=[],this.algorithm=s,this.renderer=o,this.onClusterClick=a,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(r=>{this.addMarker(r,!0)}),t||this.render()}removeMarker(e,t){const r=this.markers.indexOf(e);return r===-1?!1:(_.setMap(e,null),this.markers.splice(r,1),t||this.render(),!0)}removeMarkers(e,t){let r=!1;return e.forEach(s=>{r=this.removeMarker(s,!0)||r}),r&&!t&&this.render(),r}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,A.CLUSTERING_BEGIN,this);const{clusters:t,changed:r}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(r||r==null){const s=new Set;for(const a of t)a.markers.length==1&&s.add(a.markers[0]);const o=[];for(const a of this.clusters)a.marker!=null&&(a.markers.length==1?s.has(a.marker)||_.setMap(a.marker,null):o.push(a.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>o.forEach(a=>_.setMap(a,null)))}google.maps.event.trigger(this,A.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=>_.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new nt(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(r=>{r.markers.length===1?r.marker=r.markers[0]:(r.marker=this.renderer.render(r,e,t),r.markers.forEach(s=>_.setMap(s,null)),this.onClusterClick&&r.marker.addListener("click",s=>{google.maps.event.trigger(this,A.CLUSTER_CLICK,r),this.onClusterClick(s,r,t)})),_.setMap(r.marker,t)})}}const de=Object.values(A),ct=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:de,setup(n,{emit:e,expose:t,slots:r}){const s=l.ref(),o=l.inject(R,l.ref()),a=l.inject(j,l.ref());return l.provide(pe,s),l.watch(o,()=>{o.value&&(s.value=l.markRaw(new lt({map:o.value,algorithm:new st(n.options.algorithmOptions??{}),...n.options})),de.forEach(c=>{var i;(i=s.value)==null||i.addListener(c,h=>e(c,h))}))},{immediate:!0}),l.onBeforeUnmount(()=>{var c;s.value&&((c=a.value)==null||c.event.clearInstanceListeners(s.value),s.value.clearMarkers(),s.value.setMap(null))}),t({markerCluster:s}),()=>{var c;return(c=r.default)==null?void 0:c.call(r)}}}),ut=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(n,{slots:e,emit:t,expose:r}){const s=l.ref(),o=l.computed(()=>{var i;return(i=e.default)==null?void 0:i.call(e).some(h=>h.type!==l.Comment)}),a=l.computed(()=>({...n.options,element:s.value})),c=$(F,[],a,t);return r({customMarker:c}),{customMarkerRef:s,customMarker:c,hasSlotContent:o}}});const dt={key:0,class:"custom-marker-wrapper"};function ht(n,e,t,r,s,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",dt,[l.createElementVNode("div",l.mergeProps({ref:"customMarkerRef",style:{cursor:n.$attrs.onClick?"pointer":void 0}},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const pt=z(ut,[["render",ht],["__scopeId","data-v-2d2d343a"]]),ft=l.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(n){const e=l.ref(),t=l.inject(R,l.ref()),r=l.inject(j,l.ref());return l.watch([t,()=>n.options],([s,o],[a,c])=>{var h;const i=!S(o,c)||t.value!==a;if(t.value&&r.value&&i){const d=structuredClone(o);if(d.data&&!(d.data instanceof r.value.MVCArray)){const u=r.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 r.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),l.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});exports.Circle=qe;exports.CustomControl=De;exports.CustomMarker=pt;exports.GoogleMap=Se;exports.HeatmapLayer=ft;exports.InfoWindow=Ge;exports.Marker=Re;exports.MarkerCluster=ct;exports.Polygon=$e;exports.Polyline=je;exports.Rectangle=Be;

1103

dist/index.es.js

@@ -1,7 +0,7 @@

(function(){"use strict";try{if(typeof document<"u"){var d=document.createElement("style");d.appendChild(document.createTextNode(".mapdiv[data-v-7d660dd5]{width:100%;height:100%}.info-window-wrapper[data-v-45a4606d]{display:none}.mapdiv .info-window-wrapper[data-v-45a4606d]{display:inline-block}.custom-marker-wrapper[data-v-c7599d50]{display:none}.mapdiv .custom-marker-wrapper[data-v-c7599d50]{display:inline-block}")),document.head.appendChild(d)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
var Be = Object.defineProperty;
var qe = (o, e, t) => e in o ? Be(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
var te = (o, e, t) => (qe(o, typeof e != "symbol" ? e + "" : e, t), t);
import { defineComponent as M, ref as v, provide as z, watch as O, onMounted as Me, onBeforeUnmount as j, markRaw as E, toRef as B, openBlock as J, createElementBlock as Y, createElementVNode as ie, renderSlot as X, normalizeProps as Re, guardReactiveProps as Ze, inject as _, computed as K, withDirectives as Ne, vShow as Fe, Comment as be, mergeProps as Oe, createCommentVNode as Pe } from "vue";
const q = Symbol("map"), R = Symbol("api"), xe = Symbol("marker"), Ee = Symbol("markerCluster"), Q = Symbol("CustomMarker"), Le = Symbol("mapTilesLoaded"), $ = [
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-174b771e]{width:100%;height:100%}.info-window-wrapper[data-v-45a4606d]{display:none}.mapdiv .info-window-wrapper[data-v-45a4606d]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}")),document.head.appendChild(a)}}catch(d){console.error("vite-plugin-css-injected-by-js",d)}})();
var qe = Object.defineProperty;
var Be = (n, e, t) => e in n ? qe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
var se = (n, e, t) => (Be(n, typeof e != "symbol" ? e + "" : e, t), t);
import { defineComponent as b, ref as y, provide as G, watch as O, onMounted as Me, onBeforeUnmount as B, markRaw as S, toRef as N, openBlock as Y, createElementBlock as X, createElementVNode as ae, renderSlot as Q, normalizeProps as Ne, guardReactiveProps as Ze, inject as C, computed as J, withDirectives as De, vShow as Ue, Comment as Ee, mergeProps as Pe, createCommentVNode as Oe } from "vue";
const Z = Symbol("map"), D = Symbol("api"), xe = Symbol("marker"), Le = Symbol("markerCluster"), ee = Symbol("CustomMarker"), Se = Symbol("mapTilesLoaded"), q = [
"click",

@@ -19,3 +19,44 @@ "dblclick",

];
var De = function o(e, t) {
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function Fe(n, e, t, s) {
function r(o) {
return o instanceof t ? o : new t(function(a) {
a(o);
});
}
return new (t || (t = Promise))(function(o, a) {
function l(u) {
try {
h(s.next(u));
} catch (c) {
a(c);
}
}
function i(u) {
try {
h(s.throw(u));
} catch (c) {
a(c);
}
}
function h(u) {
u.done ? o(u.value) : r(u.value).then(l, i);
}
h((s = s.apply(n, e || [])).next());
});
}
var ze = function n(e, t) {
if (e === t)

@@ -26,3 +67,3 @@ return !0;

return !1;
var s, r, n;
var s, r, o;
if (Array.isArray(e)) {

@@ -32,3 +73,3 @@ if (s = e.length, s != t.length)

for (r = s; r-- !== 0; )
if (!o(e[r], t[r]))
if (!n(e[r], t[r]))
return !1;

@@ -43,10 +84,10 @@ return !0;

return e.toString() === t.toString();
if (n = Object.keys(e), s = n.length, s !== Object.keys(t).length)
if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)
return !1;
for (r = s; r-- !== 0; )
if (!Object.prototype.hasOwnProperty.call(t, n[r]))
if (!Object.prototype.hasOwnProperty.call(t, o[r]))
return !1;
for (r = s; r-- !== 0; ) {
var a = n[r];
if (!o(e[a], t[a]))
var a = o[r];
if (!n(e[a], t[a]))
return !1;

@@ -58,4 +99,8 @@ }

};
const ue = "__googleMapsScriptId";
class S {
const he = "__googleMapsScriptId";
var R;
(function(n) {
n[n.INITIALIZED = 0] = "INITIALIZED", n[n.LOADING = 1] = "LOADING", n[n.SUCCESS = 2] = "SUCCESS", n[n.FAILURE = 3] = "FAILURE";
})(R || (R = {}));
class A {
/**

@@ -70,9 +115,9 @@ * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set

*/
constructor({ apiKey: e, channel: t, client: s, id: r = ue, libraries: n = [], language: a, region: c, version: i, mapIds: d, nonce: u, retries: l = 3, url: h = "https://maps.googleapis.com/maps/api/js" }) {
if (this.CALLBACK = "__googleMapsCallback", this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.version = i, this.apiKey = e, this.channel = t, this.client = s, this.id = r || ue, this.libraries = n, this.language = a, this.region = c, this.mapIds = d, this.nonce = u, this.retries = l, this.url = h, S.instance) {
if (!De(this.options, S.instance.options))
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(S.instance.options)}`);
return S.instance;
constructor({ apiKey: e, authReferrerPolicy: t, channel: s, client: r, id: o = he, language: a, libraries: l = [], mapIds: i, nonce: h, region: u, retries: c = 3, url: d = "https://maps.googleapis.com/maps/api/js", version: p }) {
if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = t, this.channel = s, this.client = r, this.id = o || he, this.language = a, this.libraries = l, this.mapIds = i, this.nonce = h, this.region = u, this.retries = c, this.url = d, this.version = p, A.instance) {
if (!ze(this.options, A.instance.options))
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(A.instance.options)}`);
return A.instance;
}
S.instance = this;
A.instance = this;
}

@@ -91,5 +136,9 @@ get options() {

nonce: this.nonce,
url: this.url
url: this.url,
authReferrerPolicy: this.authReferrerPolicy
};
}
get status() {
return this.errors.length ? R.FAILURE : this.done ? R.SUCCESS : this.loading ? R.LOADING : R.INITIALIZED;
}
get failed() {

@@ -102,6 +151,7 @@ return this.done && !this.loading && this.errors.length >= this.retries + 1;

* @ignore
* @deprecated
*/
createUrl() {
let e = this.url;
return e += `?callback=${this.CALLBACK}`, 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(",")}`), e;
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;
}

@@ -114,2 +164,3 @@ deleteScript() {

* Load the Google Maps JavaScript API script and return a Promise.
* @deprecated, use importLibrary() instead.
*/

@@ -123,2 +174,3 @@ load() {

* @ignore
* @deprecated, use importLibrary() instead.
*/

@@ -132,4 +184,8 @@ loadPromise() {

}
importLibrary(e) {
return this.execute(), google.maps.importLibrary(e);
}
/**
* Load the Google Maps JavaScript API script with a callback.
* @deprecated, use importLibrary() instead.
*/

@@ -143,2 +199,3 @@ loadCallback(e) {

setScript() {
var e, t;
if (document.getElementById(this.id)) {

@@ -148,4 +205,36 @@ this.callback();

}
const e = this.createUrl(), t = document.createElement("script");
t.id = this.id, t.type = "text/javascript", t.src = e, t.onerror = this.loadErrorCallback.bind(this), t.defer = !0, t.async = !0, this.nonce && (t.nonce = this.nonce), document.head.appendChild(t);
const s = {
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(s).forEach(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(o) => !s[o] && delete s[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 a, l, i, h = "The Google Maps JavaScript API", u = "google", c = "importLibrary", d = "__ib__", p = document, f = window;
f = f[u] || (f[u] = {});
const m = f.maps || (f.maps = {}), g = /* @__PURE__ */ new Set(), v = new URLSearchParams(), w = () => (
// @ts-ignore
a || (a = new Promise((_, M) => Fe(this, void 0, void 0, function* () {
var P;
yield l = p.createElement("script"), l.id = this.id, v.set("libraries", [...g] + "");
for (i in o)
v.set(i.replace(/[A-Z]/g, ($) => "_" + $[0].toLowerCase()), o[i]);
v.set("callback", u + ".maps." + d), l.src = this.url + "?" + v, m[d] = _, l.onerror = () => a = M(Error(h + " could not load.")), l.nonce = this.nonce || ((P = p.querySelector("script[nonce]")) === null || P === void 0 ? void 0 : P.nonce) || "", p.head.append(l);
})))
);
m[c] ? console.warn(h + " only loads once. Ignoring:", o) : m[c] = (_, ...M) => g.add(_) && w().then(() => m[c](_, ...M));
})(s);
const r = this.libraries.map((o) => this.importLibrary(o));
r.length || r.push(this.importLibrary("core")), Promise.all(r).then(() => this.callback(), (o) => {
const a = new ErrorEvent("error", { error: o });
this.loadErrorCallback(a);
});
}

@@ -164,3 +253,3 @@ /**

const t = this.errors.length * Math.pow(2, this.errors.length);
console.log(`Failed to load Google Maps script, retrying in ${t} ms.`), setTimeout(() => {
console.error(`Failed to load Google Maps script, retrying in ${t} ms.`), setTimeout(() => {
this.deleteScript(), this.setScript();

@@ -171,5 +260,2 @@ }, t);

}
setCallback() {
window.__googleMapsCallback = this.callback.bind(this);
}
callback() {

@@ -188,17 +274,17 @@ this.done = !0, this.loading = !1, this.callbacks.forEach((e) => {

}
this.loading || (this.loading = !0, this.setCallback(), this.setScript());
this.loading || (this.loading = !0, this.setScript());
}
}
}
function Ue(o) {
return class extends o.OverlayView {
function Ve(n) {
return class extends n.OverlayView {
constructor(s) {
super();
te(this, "element");
te(this, "opts");
const { element: r, ...n } = s;
this.element = r, this.opts = n, this.opts.map && this.setMap(this.opts.map);
se(this, "element");
se(this, "opts");
const { element: r, ...o } = s;
this.element = r, this.opts = o, 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;
return this.opts.position ? this.opts.position instanceof n.LatLng ? this.opts.position : new n.LatLng(this.opts.position) : null;
}

@@ -220,36 +306,36 @@ getVisible() {

return;
const r = this.getProjection().fromLatLngToDivPixel(this.getPosition());
const s = this.getProjection(), r = s == null ? void 0 : s.fromLatLngToDivPixel(this.getPosition());
if (r) {
this.element.style.position = "absolute";
const n = this.element.offsetHeight, a = this.element.offsetWidth;
let c, i;
const o = this.element.offsetHeight, a = this.element.offsetWidth;
let l, i;
switch (this.opts.anchorPoint) {
case "TOP_CENTER":
c = r.x - a / 2, i = r.y;
l = r.x - a / 2, i = r.y;
break;
case "BOTTOM_CENTER":
c = r.x - a / 2, i = r.y - n;
l = r.x - a / 2, i = r.y - o;
break;
case "LEFT_CENTER":
c = r.x, i = r.y - n / 2;
l = r.x, i = r.y - o / 2;
break;
case "RIGHT_CENTER":
c = r.x - a, i = r.y - n / 2;
l = r.x - a, i = r.y - o / 2;
break;
case "TOP_LEFT":
c = r.x, i = r.y;
l = r.x, i = r.y;
break;
case "TOP_RIGHT":
c = r.x - a, i = r.y;
l = r.x - a, i = r.y;
break;
case "BOTTOM_LEFT":
c = r.x, i = r.y - n;
l = r.x, i = r.y - o;
break;
case "BOTTOM_RIGHT":
c = r.x - a, i = r.y - n;
l = r.x - a, i = r.y - o;
break;
default:
c = r.x - a / 2, i = r.y - n / 2;
l = r.x - a / 2, i = r.y - o / 2;
}
this.element.style.left = c + "px", this.element.style.top = i + "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());
this.element.style.left = l + "px", this.element.style.top = i + "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());
}

@@ -261,3 +347,4 @@ }

setOptions(s) {
this.opts = s, this.draw();
const { element: r, ...o } = s;
this.element = r, this.opts = o, this.draw();
}

@@ -267,3 +354,3 @@ };

let de;
const he = [
const pe = [
"bounds_changed",

@@ -288,3 +375,3 @@ "center_changed",

"zoom_changed"
], ze = M({
], Ge = b({
props: {

@@ -477,28 +564,28 @@ apiPromise: {

},
emits: he,
setup(o, { emit: e }) {
const t = v(), s = v(!1), r = v(), n = v(), a = v(!1);
z(q, r), z(R, n), z(Le, a);
const c = () => {
const l = { ...o };
Object.keys(l).forEach((m) => {
l[m] === void 0 && delete l[m];
emits: pe,
setup(n, { emit: e }) {
const t = y(), s = y(!1), r = y(), o = y(), a = y(!1);
G(Z, r), G(D, o), G(Se, a);
const l = () => {
const c = { ...n };
Object.keys(c).forEach((m) => {
c[m] === void 0 && delete c[m];
});
const p = (m) => {
var g;
return m ? { position: (g = n.value) == null ? void 0 : g.ControlPosition[m] } : {};
return m ? { position: (g = o.value) == null ? void 0 : g.ControlPosition[m] } : {};
}, f = {
scaleControlOptions: o.scaleControlStyle ? { style: o.scaleControlStyle } : {},
panControlOptions: p(o.panControlPosition),
zoomControlOptions: p(o.zoomControlPosition),
rotateControlOptions: p(o.rotateControlPosition),
streetViewControlOptions: p(o.streetViewControlPosition),
fullscreenControlOptions: p(o.fullscreenControlPosition),
disableDefaultUI: o.disableDefaultUi
scaleControlOptions: n.scaleControlStyle ? { style: n.scaleControlStyle } : {},
panControlOptions: p(n.panControlPosition),
zoomControlOptions: p(n.zoomControlPosition),
rotateControlOptions: p(n.rotateControlPosition),
streetViewControlOptions: p(n.streetViewControlPosition),
fullscreenControlOptions: p(n.fullscreenControlPosition),
disableDefaultUI: n.disableDefaultUi
};
return { ...l, ...f };
return { ...c, ...f };
}, i = O(
[n, r],
([l, h]) => {
const p = l, f = h;
[o, r],
([c, d]) => {
const p = c, f = d;
p && f && (p.event.addListenerOnce(f, "tilesloaded", () => {

@@ -509,27 +596,27 @@ a.value = !0;

{ immediate: !0 }
), d = () => {
), h = () => {
try {
const { apiKey: l, region: h, version: p, language: f, libraries: m } = o;
de = new S({ apiKey: l, region: h, version: p, language: f, libraries: m });
} catch (l) {
console.error(l);
const { apiKey: c, region: d, version: p, language: f, libraries: m } = n;
de = new A({ apiKey: c, region: d, version: p, language: f, libraries: m });
} catch (c) {
console.error(c);
}
}, u = (l) => {
n.value = E(l.maps), r.value = E(new l.maps.Map(t.value, c()));
const h = Ue(n.value);
n.value[Q] = h, he.forEach((f) => {
}, u = (c) => {
o.value = S(c.maps), r.value = S(new c.maps.Map(t.value, l()));
const d = Ve(o.value);
o.value[ee] = d, pe.forEach((f) => {
var m;
(m = r.value) == null || m.addListener(f, (g) => e(f, g));
}), s.value = !0;
const p = Object.keys(o).filter(
const p = Object.keys(n).filter(
(f) => !["apiPromise", "apiKey", "version", "libraries", "region", "language", "center", "zoom"].includes(f)
).map((f) => B(o, f));
).map((f) => N(n, f));
O(
[() => o.center, () => o.zoom, ...p],
([f, m], [g, y]) => {
var G, b, F;
const { center: w, zoom: C, ...T } = c();
(G = r.value) == null || G.setOptions(T), m !== void 0 && m !== y && ((b = r.value) == null || b.setZoom(m));
const N = !g || f.lng !== g.lng || f.lat !== g.lat;
f && N && ((F = r.value) == null || F.panTo(f));
[() => n.center, () => n.zoom, ...p],
([f, m], [g, v]) => {
var $, E, F;
const { center: w, zoom: _, ...M } = l();
($ = r.value) == null || $.setOptions(M), m !== void 0 && m !== v && ((E = r.value) == null || E.setZoom(m));
const P = !g || f.lng !== g.lng || f.lat !== g.lat;
f && P && ((F = r.value) == null || F.panTo(f));
}

@@ -539,29 +626,29 @@ );

return Me(() => {
o.apiPromise && o.apiPromise instanceof Promise ? o.apiPromise.then(u) : (d(), de.load().then(u));
}), j(() => {
var l;
a.value = !1, r.value && ((l = n.value) == null || l.event.clearInstanceListeners(r.value));
}), { mapRef: t, ready: s, map: r, api: n, mapTilesLoaded: a };
n.apiPromise && n.apiPromise instanceof Promise ? n.apiPromise.then(u) : (h(), de.load().then(u));
}), B(() => {
var c;
a.value = !1, r.value && ((c = o.value) == null || c.event.clearInstanceListeners(r.value));
}), { mapRef: t, ready: s, map: r, api: o, mapTilesLoaded: a };
}
});
const ee = (o, e) => {
const t = o.__vccOpts || o;
const te = (n, e) => {
const t = n.__vccOpts || n;
for (const [s, r] of e)
t[s] = r;
return t;
}, Ve = {
}, He = {
ref: "mapRef",
class: "mapdiv"
};
function Ge(o, e, t, s, r, n) {
return J(), Y("div", null, [
ie("div", Ve, null, 512),
X(o.$slots, "default", Re(Ze({ ready: o.ready, map: o.map, api: o.api, mapTilesLoaded: o.mapTilesLoaded })), void 0, !0)
function We(n, e, t, s, r, o) {
return Y(), X("div", null, [
ae("div", He, null, 512),
Q(n.$slots, "default", Ne(Ze({ ready: n.ready, map: n.map, api: n.api, mapTilesLoaded: n.mapTilesLoaded })), void 0, !0)
]);
}
const Ot = /* @__PURE__ */ ee(ze, [["render", Ge], ["__scopeId", "data-v-7d660dd5"]]);
function He(o) {
return o && o.__esModule && Object.prototype.hasOwnProperty.call(o, "default") ? o.default : o;
const Ot = /* @__PURE__ */ te(Ge, [["render", We], ["__scopeId", "data-v-174b771e"]]);
function Ke(n) {
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
}
var We = function o(e, t) {
var Je = function n(e, t) {
if (e === t)

@@ -572,3 +659,3 @@ return !0;

return !1;
var s, r, n;
var s, r, o;
if (Array.isArray(e)) {

@@ -578,3 +665,3 @@ if (s = e.length, s != t.length)

for (r = s; r-- !== 0; )
if (!o(e[r], t[r]))
if (!n(e[r], t[r]))
return !1;

@@ -589,10 +676,10 @@ return !0;

return e.toString() === t.toString();
if (n = Object.keys(e), s = n.length, s !== Object.keys(t).length)
if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)
return !1;
for (r = s; r-- !== 0; )
if (!Object.prototype.hasOwnProperty.call(t, n[r]))
if (!Object.prototype.hasOwnProperty.call(t, o[r]))
return !1;
for (r = s; r-- !== 0; ) {
var a = n[r];
if (!o(e[a], t[a]))
var a = o[r];
if (!n(e[a], t[a]))
return !1;

@@ -604,23 +691,23 @@ }

};
const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o === Q, Z = (o, e, t, s) => {
const r = v(), n = _(q, v()), a = _(R, v()), c = _(Ee, v()), i = K(
() => !!(c.value && a.value && (r.value instanceof a.value.Marker || r.value instanceof a.value[Q]))
const T = /* @__PURE__ */ Ke(Je), Ye = (n) => n === "Marker", Xe = (n) => n === ee, U = (n, e, t, s) => {
const r = y(), o = C(Z, y()), a = C(D, y()), l = C(Le, y()), i = J(
() => !!(l.value && a.value && (r.value instanceof a.value.Marker || r.value instanceof a.value[ee]))
);
return O(
[n, t],
(d, [u, l]) => {
[o, t],
(h, [u, c]) => {
var p, f, m;
const h = !A(t.value, l) || n.value !== u;
!n.value || !a.value || !h || (r.value ? (r.value.setOptions(t.value), i.value && ((p = c.value) == null || p.removeMarker(r.value), (f = c.value) == null || f.addMarker(r.value))) : (Ke(o) ? r.value = E(
new a.value[o](t.value)
) : Je(o) ? r.value = E(
new a.value[o](t.value)
) : r.value = E(
new a.value[o]({
const d = !T(t.value, c) || o.value !== u;
!o.value || !a.value || !d || (r.value ? (r.value.setOptions(t.value), i.value && ((p = l.value) == null || p.removeMarker(r.value), (f = l.value) == null || f.addMarker(r.value))) : (Ye(n) ? r.value = S(
new a.value[n](t.value)
) : Xe(n) ? r.value = S(
new a.value[n](t.value)
) : r.value = S(
new a.value[n]({
...t.value,
map: n.value
map: o.value
})
), i.value ? (m = c.value) == null || m.addMarker(r.value) : r.value.setMap(n.value), e.forEach((g) => {
var y;
(y = r.value) == null || y.addListener(g, (w) => s(g, w));
), i.value ? (m = l.value) == null || m.addMarker(r.value) : r.value.setMap(o.value), e.forEach((g) => {
var v;
(v = r.value) == null || v.addListener(g, (w) => s(g, w));
})));

@@ -631,7 +718,7 @@ },

}
), j(() => {
var d, u;
r.value && ((d = a.value) == null || d.event.clearInstanceListeners(r.value), i.value ? (u = c.value) == null || u.removeMarker(r.value) : r.value.setMap(null));
), B(() => {
var h, u;
r.value && ((h = a.value) == null || h.event.clearInstanceListeners(r.value), i.value ? (u = l.value) == null || u.removeMarker(r.value) : r.value.setMap(null));
}), r;
}, pe = [
}, fe = [
"animation_changed",

@@ -660,3 +747,3 @@ "click",

"visible_changed"
], Pt = M({
], xt = b({
name: "Marker",

@@ -669,6 +756,6 @@ props: {

},
emits: pe,
setup(o, { emit: e, expose: t, slots: s }) {
const r = B(o, "options"), n = Z("Marker", pe, r, e);
return z(xe, n), t({ marker: n }), () => {
emits: fe,
setup(n, { emit: e, expose: t, slots: s }) {
const r = N(n, "options"), o = U("Marker", fe, r, e);
return G(xe, o), t({ marker: o }), () => {
var a;

@@ -678,3 +765,3 @@ return (a = s.default) == null ? void 0 : a.call(s);

}
}), xt = M({
}), Lt = b({
name: "Polyline",

@@ -687,9 +774,9 @@ props: {

},
emits: $,
setup(o, { emit: e }) {
const t = B(o, "options");
return { polyline: Z("Polyline", $, t, e) };
emits: q,
setup(n, { emit: e }) {
const t = N(n, "options");
return { polyline: U("Polyline", q, t, e) };
},
render: () => null
}), Et = M({
}), St = b({
name: "Polygon",

@@ -702,9 +789,9 @@ props: {

},
emits: $,
setup(o, { emit: e }) {
const t = B(o, "options");
return { polygon: Z("Polygon", $, t, e) };
emits: q,
setup(n, { emit: e }) {
const t = N(n, "options");
return { polygon: U("Polygon", q, t, e) };
},
render: () => null
}), fe = $.concat(["bounds_changed"]), Lt = M({
}), me = q.concat(["bounds_changed"]), It = b({
name: "Rectangle",

@@ -717,9 +804,9 @@ props: {

},
emits: fe,
setup(o, { emit: e }) {
const t = B(o, "options");
return { rectangle: Z("Rectangle", fe, t, e) };
emits: me,
setup(n, { emit: e }) {
const t = N(n, "options");
return { rectangle: U("Rectangle", me, t, e) };
},
render: () => null
}), me = $.concat(["center_changed", "radius_changed"]), St = M({
}), ge = q.concat(["center_changed", "radius_changed"]), At = b({
name: "Circle",

@@ -732,9 +819,9 @@ props: {

},
emits: me,
setup(o, { emit: e }) {
const t = B(o, "options");
return { circle: Z("Circle", me, t, e) };
emits: ge,
setup(n, { emit: e }) {
const t = N(n, "options");
return { circle: U("Circle", ge, t, e) };
},
render: () => null
}), Ye = M({
}), Qe = b({
props: {

@@ -751,7 +838,7 @@ position: {

emits: ["content:loaded"],
setup(o, { emit: e }) {
const t = v(null), s = _(q, v()), r = _(R, v()), n = _(Le, v(!1)), a = v(!1), c = O(
[n, r, t],
([u, l, h]) => {
l && u && h && (i(o.position), a.value = !0, e("content:loaded"), setTimeout(c, 0));
setup(n, { emit: e }) {
const t = y(null), s = C(Z, y()), r = C(D, y()), o = C(Se, y(!1)), a = y(!1), l = O(
[o, r, t],
([u, c, d]) => {
c && u && d && (i(n.position), a.value = !0, e("content:loaded"), setTimeout(l, 0));
},

@@ -761,35 +848,35 @@ { immediate: !0 }

if (s.value && r.value && t.value) {
const l = r.value.ControlPosition[u];
s.value.controls[l].push(t.value);
const c = r.value.ControlPosition[u];
s.value.controls[c].push(t.value);
}
}, d = (u) => {
}, h = (u) => {
if (s.value && r.value) {
let l = null;
const h = r.value.ControlPosition[u];
s.value.controls[h].forEach((p, f) => {
p === t.value && (l = f);
}), l !== null && s.value.controls[h].removeAt(l);
let c = null;
const d = r.value.ControlPosition[u];
s.value.controls[d].forEach((p, f) => {
p === t.value && (c = f);
}), c !== null && s.value.controls[d].removeAt(c);
}
};
return j(() => d(o.position)), O(
() => o.position,
(u, l) => {
d(l), i(u);
return B(() => h(n.position)), O(
() => n.position,
(u, c) => {
h(c), i(u);
}
), O(
() => o.index,
() => n.index,
(u) => {
u && t.value && (t.value.index = o.index);
u && t.value && (t.value.index = n.index);
}
), { controlRef: t, showContent: a };
}
}), Xe = { ref: "controlRef" };
function Qe(o, e, t, s, r, n) {
return Ne((J(), Y("div", Xe, [
X(o.$slots, "default")
}), et = { ref: "controlRef" };
function tt(n, e, t, s, r, o) {
return De((Y(), X("div", et, [
Q(n.$slots, "default")
], 512)), [
[Fe, o.showContent]
[Ue, n.showContent]
]);
}
const At = /* @__PURE__ */ ee(Ye, [["render", Qe]]), ge = ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"], et = M({
const Tt = /* @__PURE__ */ te(Qe, [["render", tt]]), ve = ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"], st = b({
inheritAttrs: !1,

@@ -802,13 +889,13 @@ props: {

},
emits: ge,
setup(o, { slots: e, emit: t, expose: s }) {
const r = v(), n = v(), a = _(q, v()), c = _(R, v()), i = _(xe, v());
let d;
const u = K(() => {
emits: ve,
setup(n, { slots: e, emit: t, expose: s }) {
const r = y(), o = y(), a = C(Z, y()), l = C(D, y()), i = C(xe, y());
let h;
const u = J(() => {
var p;
return (p = e.default) == null ? void 0 : p.call(e).some((f) => f.type !== be);
}), l = (p) => {
return (p = e.default) == null ? void 0 : p.call(e).some((f) => f.type !== Ee);
}), c = (p) => {
var f;
return (f = r.value) == null ? void 0 : f.open({ map: a.value, anchor: i.value, ...p });
}, h = () => {
}, d = () => {
var p;

@@ -819,18 +906,18 @@ return (p = r.value) == null ? void 0 : p.close();

O(
[a, () => o.options],
[a, () => n.options],
([p, f], [m, g]) => {
const y = !A(f, g) || a.value !== m;
a.value && c.value && y && (r.value ? (r.value.setOptions({
const v = !T(f, g) || a.value !== m;
a.value && l.value && v && (r.value ? (r.value.setOptions({
...f,
content: u.value ? n.value : f.content
}), i.value || l()) : (r.value = E(
new c.value.InfoWindow({
content: u.value ? o.value : f.content
}), i.value || c()) : (r.value = S(
new l.value.InfoWindow({
...f,
content: u.value ? n.value : f.content
content: u.value ? o.value : f.content
})
), i.value ? d = i.value.addListener("click", () => {
l();
}) : l(), ge.forEach((w) => {
var C;
(C = r.value) == null || C.addListener(w, (T) => t(w, T));
), i.value ? h = i.value.addListener("click", () => {
c();
}) : c(), ve.forEach((w) => {
var _;
(_ = r.value) == null || _.addListener(w, (M) => t(w, M));
})));

@@ -842,20 +929,20 @@ },

);
}), j(() => {
}), B(() => {
var p;
d && d.remove(), r.value && ((p = c.value) == null || p.event.clearInstanceListeners(r.value), h());
}), s({ infoWindow: r, open: l, close: h }), { infoWindow: r, infoWindowRef: n, hasSlotContent: u, open: l, close: h };
h && h.remove(), r.value && ((p = l.value) == null || p.event.clearInstanceListeners(r.value), d());
}), s({ infoWindow: r, open: c, close: d }), { infoWindow: r, infoWindowRef: o, hasSlotContent: u, open: c, close: d };
}
});
const tt = {
const rt = {
key: 0,
class: "info-window-wrapper"
};
function st(o, e, t, s, r, n) {
return o.hasSlotContent ? (J(), Y("div", tt, [
ie("div", Oe({ ref: "infoWindowRef" }, o.$attrs), [
X(o.$slots, "default", {}, void 0, !0)
function nt(n, e, t, s, r, o) {
return n.hasSlotContent ? (Y(), X("div", rt, [
ae("div", Pe({ ref: "infoWindowRef" }, n.$attrs), [
Q(n.$slots, "default", {}, void 0, !0)
], 16)
])) : Pe("", !0);
])) : Oe("", !0);
}
const Tt = /* @__PURE__ */ ee(et, [["render", st], ["__scopeId", "data-v-45a4606d"]]), ve = [
const $t = /* @__PURE__ */ te(st, [["render", nt], ["__scopeId", "data-v-45a4606d"]]), ye = [
Int8Array,

@@ -870,4 +957,4 @@ Uint8Array,

Float64Array
], se = 1, D = 8;
class ae {
], re = 1, z = 8;
class le {
/**

@@ -884,9 +971,9 @@ * Creates an index from raw `ArrayBuffer` data.

const r = s >> 4;
if (r !== se)
throw new Error(`Got v${r} data when expected v${se}.`);
const n = ve[s & 15];
if (!n)
if (r !== re)
throw new Error(`Got v${r} data when expected v${re}.`);
const o = ye[s & 15];
if (!o)
throw new Error("Unrecognized array type.");
const [a] = new Uint16Array(e, 2, 1), [c] = new Uint32Array(e, 4, 1);
return new ae(c, a, n, e);
const [a] = new Uint16Array(e, 2, 1), [l] = new Uint32Array(e, 4, 1);
return new le(l, a, o, e);
}

@@ -904,6 +991,6 @@ /**

this.numItems = +e, this.nodeSize = Math.min(Math.max(+t, 2), 65535), this.ArrayType = s, this.IndexArrayType = e < 65536 ? Uint16Array : Uint32Array;
const n = ve.indexOf(this.ArrayType), a = e * 2 * this.ArrayType.BYTES_PER_ELEMENT, c = e * this.IndexArrayType.BYTES_PER_ELEMENT, i = (8 - c % 8) % 8;
if (n < 0)
const o = ye.indexOf(this.ArrayType), a = e * 2 * this.ArrayType.BYTES_PER_ELEMENT, l = e * this.IndexArrayType.BYTES_PER_ELEMENT, i = (8 - l % 8) % 8;
if (o < 0)
throw new Error(`Unexpected typed array class: ${s}.`);
r && r instanceof ArrayBuffer ? (this.data = r, this.ids = new this.IndexArrayType(this.data, D, e), this.coords = new this.ArrayType(this.data, D + c + i, e * 2), this._pos = e * 2, this._finished = !0) : (this.data = new ArrayBuffer(D + a + c + i), this.ids = new this.IndexArrayType(this.data, D, e), this.coords = new this.ArrayType(this.data, D + c + i, e * 2), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, (se << 4) + n]), new Uint16Array(this.data, 2, 1)[0] = t, new Uint32Array(this.data, 4, 1)[0] = e);
r && r instanceof ArrayBuffer ? (this.data = r, this.ids = new this.IndexArrayType(this.data, z, e), this.coords = new this.ArrayType(this.data, z + l + i, e * 2), this._pos = e * 2, this._finished = !0) : (this.data = new ArrayBuffer(z + a + l + i), this.ids = new this.IndexArrayType(this.data, z, e), this.coords = new this.ArrayType(this.data, z + l + i, e * 2), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, (re << 4) + o]), new Uint16Array(this.data, 2, 1)[0] = t, new Uint32Array(this.data, 4, 1)[0] = e);
}

@@ -927,3 +1014,3 @@ /**

throw new Error(`Added ${e} items when expected ${this.numItems}.`);
return ne(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this;
return ie(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this;
}

@@ -941,16 +1028,16 @@ /**

throw new Error("Data not yet indexed - call index.finish().");
const { ids: n, coords: a, nodeSize: c } = this, i = [0, n.length - 1, 0], d = [];
const { ids: o, coords: a, nodeSize: l } = this, i = [0, o.length - 1, 0], h = [];
for (; i.length; ) {
const u = i.pop() || 0, l = i.pop() || 0, h = i.pop() || 0;
if (l - h <= c) {
for (let g = h; g <= l; g++) {
const y = a[2 * g], w = a[2 * g + 1];
y >= e && y <= s && w >= t && w <= r && d.push(n[g]);
const u = i.pop() || 0, c = i.pop() || 0, d = i.pop() || 0;
if (c - d <= l) {
for (let g = d; g <= c; g++) {
const v = a[2 * g], w = a[2 * g + 1];
v >= e && v <= s && w >= t && w <= r && h.push(o[g]);
}
continue;
}
const p = h + l >> 1, f = a[2 * p], m = a[2 * p + 1];
f >= e && f <= s && m >= t && m <= r && d.push(n[p]), (u === 0 ? e <= f : t <= m) && (i.push(h), i.push(p - 1), i.push(1 - u)), (u === 0 ? s >= f : r >= m) && (i.push(p + 1), i.push(l), i.push(1 - u));
const p = d + c >> 1, f = a[2 * p], m = a[2 * p + 1];
f >= e && f <= s && m >= t && m <= r && h.push(o[p]), (u === 0 ? e <= f : t <= m) && (i.push(d), i.push(p - 1), i.push(1 - u)), (u === 0 ? s >= f : r >= m) && (i.push(p + 1), i.push(c), i.push(1 - u));
}
return d;
return h;
}

@@ -967,12 +1054,12 @@ /**

throw new Error("Data not yet indexed - call index.finish().");
const { ids: r, coords: n, nodeSize: a } = this, c = [0, r.length - 1, 0], i = [], d = s * s;
for (; c.length; ) {
const u = c.pop() || 0, l = c.pop() || 0, h = c.pop() || 0;
if (l - h <= a) {
for (let g = h; g <= l; g++)
ye(n[2 * g], n[2 * g + 1], e, t) <= d && i.push(r[g]);
const { ids: r, coords: o, nodeSize: a } = this, l = [0, r.length - 1, 0], i = [], h = s * s;
for (; l.length; ) {
const u = l.pop() || 0, c = l.pop() || 0, d = l.pop() || 0;
if (c - d <= a) {
for (let g = d; g <= c; g++)
we(o[2 * g], o[2 * g + 1], e, t) <= h && i.push(r[g]);
continue;
}
const p = h + l >> 1, f = n[2 * p], m = n[2 * p + 1];
ye(f, m, e, t) <= d && i.push(r[p]), (u === 0 ? e - s <= f : t - s <= m) && (c.push(h), c.push(p - 1), c.push(1 - u)), (u === 0 ? e + s >= f : t + s >= m) && (c.push(p + 1), c.push(l), c.push(1 - u));
const p = d + c >> 1, f = o[2 * p], m = o[2 * p + 1];
we(f, m, e, t) <= h && i.push(r[p]), (u === 0 ? e - s <= f : t - s <= m) && (l.push(d), l.push(p - 1), l.push(1 - u)), (u === 0 ? e + s >= f : t + s >= m) && (l.push(p + 1), l.push(c), l.push(1 - u));
}

@@ -982,37 +1069,37 @@ return i;

}
function ne(o, e, t, s, r, n) {
function ie(n, e, t, s, r, o) {
if (r - s <= t)
return;
const a = s + r >> 1;
Se(o, e, a, s, r, n), ne(o, e, t, s, a - 1, 1 - n), ne(o, e, t, a + 1, r, 1 - n);
Ie(n, e, a, s, r, o), ie(n, e, t, s, a - 1, 1 - o), ie(n, e, t, a + 1, r, 1 - o);
}
function Se(o, e, t, s, r, n) {
function Ie(n, e, t, s, r, o) {
for (; r > s; ) {
if (r - s > 600) {
const d = r - s + 1, u = t - s + 1, l = Math.log(d), h = 0.5 * Math.exp(2 * l / 3), p = 0.5 * Math.sqrt(l * h * (d - h) / d) * (u - d / 2 < 0 ? -1 : 1), f = Math.max(s, Math.floor(t - u * h / d + p)), m = Math.min(r, Math.floor(t + (d - u) * h / d + p));
Se(o, e, t, f, m, n);
const h = r - s + 1, u = t - s + 1, c = Math.log(h), d = 0.5 * Math.exp(2 * c / 3), p = 0.5 * Math.sqrt(c * d * (h - d) / h) * (u - h / 2 < 0 ? -1 : 1), f = Math.max(s, Math.floor(t - u * d / h + p)), m = Math.min(r, Math.floor(t + (h - u) * d / h + p));
Ie(n, e, t, f, m, o);
}
const a = e[2 * t + n];
let c = s, i = r;
for (U(o, e, s, t), e[2 * r + n] > a && U(o, e, s, r); c < i; ) {
for (U(o, e, c, i), c++, i--; e[2 * c + n] < a; )
c++;
for (; e[2 * i + n] > a; )
const a = e[2 * t + o];
let l = s, i = r;
for (V(n, e, s, t), e[2 * r + o] > a && V(n, e, s, r); l < i; ) {
for (V(n, e, l, i), l++, i--; e[2 * l + o] < a; )
l++;
for (; e[2 * i + o] > a; )
i--;
}
e[2 * s + n] === a ? U(o, e, s, i) : (i++, U(o, e, i, r)), i <= t && (s = i + 1), t <= i && (r = i - 1);
e[2 * s + o] === a ? V(n, e, s, i) : (i++, V(n, e, i, r)), i <= t && (s = i + 1), t <= i && (r = i - 1);
}
}
function U(o, e, t, s) {
re(o, t, s), re(e, 2 * t, 2 * s), re(e, 2 * t + 1, 2 * s + 1);
function V(n, e, t, s) {
ne(n, t, s), ne(e, 2 * t, 2 * s), ne(e, 2 * t + 1, 2 * s + 1);
}
function re(o, e, t) {
const s = o[e];
o[e] = o[t], o[t] = s;
function ne(n, e, t) {
const s = n[e];
n[e] = n[t], n[t] = s;
}
function ye(o, e, t, s) {
const r = o - t, n = e - s;
return r * r + n * n;
function we(n, e, t, s) {
const r = n - t, o = e - s;
return r * r + o * o;
}
const rt = {
const ot = {
minZoom: 0,

@@ -1038,8 +1125,8 @@ // min zoom to generate clusters on

// properties to use for individual points when running the reducer
map: (o) => o
map: (n) => n
// props => ({sum: props.my_value})
}, we = Math.fround || ((o) => (e) => (o[0] = +e, o[0]))(new Float32Array(1)), L = 2, x = 3, oe = 4, P = 5, Ae = 6;
}, _e = Math.fround || ((n) => (e) => (n[0] = +e, n[0]))(new Float32Array(1)), I = 2, L = 3, oe = 4, x = 5, Ae = 6;
class Te {
constructor(e) {
this.options = Object.assign(Object.create(rt), e), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];
this.options = Object.assign(Object.create(ot), e), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];
}

@@ -1049,12 +1136,12 @@ load(e) {

t && console.time("total time");
const n = `prepare ${e.length} points`;
t && console.time(n), this.points = e;
const o = `prepare ${e.length} points`;
t && console.time(o), this.points = e;
const a = [];
for (let i = 0; i < e.length; i++) {
const d = e[i];
if (!d.geometry)
const h = e[i];
if (!h.geometry)
continue;
const [u, l] = d.geometry.coordinates, h = we(H(u)), p = we(W(l));
const [u, c] = h.geometry.coordinates, d = _e(W(u)), p = _e(K(c));
a.push(
h,
d,
p,

@@ -1072,7 +1159,7 @@ // projected point coordinates

}
let c = this.trees[r + 1] = this._createTree(a);
t && console.timeEnd(n);
let l = this.trees[r + 1] = this._createTree(a);
t && console.timeEnd(o);
for (let i = r; i >= s; i--) {
const d = +Date.now();
c = this.trees[i] = this._createTree(this._cluster(c, i)), t && console.log("z%d: %d clusters in %dms", i, c.numItems, +Date.now() - d);
const h = +Date.now();
l = this.trees[i] = this._createTree(this._cluster(l, i)), t && console.log("z%d: %d clusters in %dms", i, l.numItems, +Date.now() - h);
}

@@ -1084,14 +1171,14 @@ return t && console.timeEnd("total time"), this;

const r = Math.max(-90, Math.min(90, e[1]));
let n = e[2] === 180 ? 180 : ((e[2] + 180) % 360 + 360) % 360 - 180;
let o = e[2] === 180 ? 180 : ((e[2] + 180) % 360 + 360) % 360 - 180;
const a = Math.max(-90, Math.min(90, e[3]));
if (e[2] - e[0] >= 360)
s = -180, n = 180;
else if (s > n) {
const l = this.getClusters([s, r, 180, a], t), h = this.getClusters([-180, r, n, a], t);
return l.concat(h);
s = -180, o = 180;
else if (s > o) {
const c = this.getClusters([s, r, 180, a], t), d = this.getClusters([-180, r, o, a], t);
return c.concat(d);
}
const c = this.trees[this._limitZoom(t)], i = c.range(H(s), W(a), H(n), W(r)), d = c.data, u = [];
for (const l of i) {
const h = this.stride * l;
u.push(d[h + P] > 1 ? ke(d, h, this.clusterProps) : this.points[d[h + x]]);
const l = this.trees[this._limitZoom(t)], i = l.range(W(s), K(a), W(o), K(r)), h = l.data, u = [];
for (const c of i) {
const d = this.stride * c;
u.push(h[d + x] > 1 ? ke(h, d, this.clusterProps) : this.points[h[d + L]]);
}

@@ -1101,16 +1188,16 @@ return u;

getChildren(e) {
const t = this._getOriginId(e), s = this._getOriginZoom(e), r = "No cluster with the specified id.", n = this.trees[s];
if (!n)
const t = this._getOriginId(e), s = this._getOriginZoom(e), r = "No cluster with the specified id.", o = this.trees[s];
if (!o)
throw new Error(r);
const a = n.data;
const a = o.data;
if (t * this.stride >= a.length)
throw new Error(r);
const c = this.options.radius / (this.options.extent * Math.pow(2, s - 1)), i = a[t * this.stride], d = a[t * this.stride + 1], u = n.within(i, d, c), l = [];
for (const h of u) {
const p = h * this.stride;
a[p + oe] === e && l.push(a[p + P] > 1 ? ke(a, p, this.clusterProps) : this.points[a[p + x]]);
const l = this.options.radius / (this.options.extent * Math.pow(2, s - 1)), i = a[t * this.stride], h = a[t * this.stride + 1], u = o.within(i, h, l), c = [];
for (const d of u) {
const p = d * this.stride;
a[p + oe] === e && c.push(a[p + x] > 1 ? ke(a, p, this.clusterProps) : this.points[a[p + L]]);
}
if (l.length === 0)
if (c.length === 0)
throw new Error(r);
return l;
return c;
}

@@ -1123,27 +1210,27 @@ getLeaves(e, t, s) {

getTile(e, t, s) {
const r = this.trees[this._limitZoom(e)], n = Math.pow(2, e), { extent: a, radius: c } = this.options, i = c / a, d = (s - i) / n, u = (s + 1 + i) / n, l = {
const r = this.trees[this._limitZoom(e)], o = Math.pow(2, e), { extent: a, radius: l } = this.options, i = l / a, h = (s - i) / o, u = (s + 1 + i) / o, c = {
features: []
};
return this._addTileFeatures(
r.range((t - i) / n, d, (t + 1 + i) / n, u),
r.range((t - i) / o, h, (t + 1 + i) / o, u),
r.data,
t,
s,
n,
l
o,
c
), t === 0 && this._addTileFeatures(
r.range(1 - i / n, d, 1, u),
r.range(1 - i / o, h, 1, u),
r.data,
n,
o,
s,
n,
l
), t === n - 1 && this._addTileFeatures(
r.range(0, d, i / n, u),
o,
c
), t === o - 1 && this._addTileFeatures(
r.range(0, h, i / o, u),
r.data,
-1,
s,
n,
l
), l.features.length ? l : null;
o,
c
), c.features.length ? c : null;
}

@@ -1160,13 +1247,13 @@ getClusterExpansionZoom(e) {

}
_appendLeaves(e, t, s, r, n) {
_appendLeaves(e, t, s, r, o) {
const a = this.getChildren(t);
for (const c of a) {
const i = c.properties;
if (i && i.cluster ? n + i.point_count <= r ? n += i.point_count : n = this._appendLeaves(e, i.cluster_id, s, r, n) : n < r ? n++ : e.push(c), e.length === s)
for (const l of a) {
const i = l.properties;
if (i && i.cluster ? o + i.point_count <= r ? o += i.point_count : o = this._appendLeaves(e, i.cluster_id, s, r, o) : o < r ? o++ : e.push(l), e.length === s)
break;
}
return n;
return o;
}
_createTree(e) {
const t = new ae(e.length / this.stride | 0, this.options.nodeSize, Float32Array);
const t = new le(e.length / this.stride | 0, this.options.nodeSize, Float32Array);
for (let s = 0; s < e.length; s += this.stride)

@@ -1176,13 +1263,13 @@ t.add(e[s], e[s + 1]);

}
_addTileFeatures(e, t, s, r, n, a) {
for (const c of e) {
const i = c * this.stride, d = t[i + P] > 1;
let u, l, h;
if (d)
u = Ie(t, i, this.clusterProps), l = t[i], h = t[i + 1];
_addTileFeatures(e, t, s, r, o, a) {
for (const l of e) {
const i = l * this.stride, h = t[i + x] > 1;
let u, c, d;
if (h)
u = $e(t, i, this.clusterProps), c = t[i], d = t[i + 1];
else {
const m = this.points[t[i + x]];
const m = this.points[t[i + L]];
u = m.properties;
const [g, y] = m.geometry.coordinates;
l = H(g), h = W(y);
const [g, v] = m.geometry.coordinates;
c = W(g), d = K(v);
}

@@ -1192,4 +1279,4 @@ const p = {

geometry: [[
Math.round(this.options.extent * (l * n - s)),
Math.round(this.options.extent * (h * n - r))
Math.round(this.options.extent * (c * o - s)),
Math.round(this.options.extent * (d * o - r))
]],

@@ -1199,3 +1286,3 @@ tags: u

let f;
d || this.options.generateId ? f = t[i + x] : f = this.points[t[i + x]].id, f !== void 0 && (p.id = f), a.features.push(p);
h || this.options.generateId ? f = t[i + L] : f = this.points[t[i + L]].id, f !== void 0 && (p.id = f), a.features.push(p);
}

@@ -1207,35 +1294,35 @@ }

_cluster(e, t) {
const { radius: s, extent: r, reduce: n, minPoints: a } = this.options, c = s / (r * Math.pow(2, t)), i = e.data, d = [], u = this.stride;
for (let l = 0; l < i.length; l += u) {
if (i[l + L] <= t)
const { radius: s, extent: r, reduce: o, minPoints: a } = this.options, l = s / (r * Math.pow(2, t)), i = e.data, h = [], u = this.stride;
for (let c = 0; c < i.length; c += u) {
if (i[c + I] <= t)
continue;
i[l + L] = t;
const h = i[l], p = i[l + 1], f = e.within(i[l], i[l + 1], c), m = i[l + P];
i[c + I] = t;
const d = i[c], p = i[c + 1], f = e.within(i[c], i[c + 1], l), m = i[c + x];
let g = m;
for (const y of f) {
const w = y * u;
i[w + L] > t && (g += i[w + P]);
for (const v of f) {
const w = v * u;
i[w + I] > t && (g += i[w + x]);
}
if (g > m && g >= a) {
let y = h * m, w = p * m, C, T = -1;
const N = ((l / u | 0) << 5) + (t + 1) + this.points.length;
for (const G of f) {
const b = G * u;
if (i[b + L] <= t)
let v = d * m, w = p * m, _, M = -1;
const P = ((c / u | 0) << 5) + (t + 1) + this.points.length;
for (const $ of f) {
const E = $ * u;
if (i[E + I] <= t)
continue;
i[b + L] = t;
const F = i[b + P];
y += i[b] * F, w += i[b + 1] * F, i[b + oe] = N, n && (C || (C = this._map(i, l, !0), T = this.clusterProps.length, this.clusterProps.push(C)), n(C, this._map(i, b)));
i[E + I] = t;
const F = i[E + x];
v += i[E] * F, w += i[E + 1] * F, i[E + oe] = P, o && (_ || (_ = this._map(i, c, !0), M = this.clusterProps.length, this.clusterProps.push(_)), o(_, this._map(i, E)));
}
i[l + oe] = N, d.push(y / g, w / g, 1 / 0, N, -1, g), n && d.push(T);
i[c + oe] = P, h.push(v / g, w / g, 1 / 0, P, -1, g), o && h.push(M);
} else {
for (let y = 0; y < u; y++)
d.push(i[l + y]);
for (let v = 0; v < u; v++)
h.push(i[c + v]);
if (g > 1)
for (const y of f) {
const w = y * u;
if (!(i[w + L] <= t)) {
i[w + L] = t;
for (let C = 0; C < u; C++)
d.push(i[w + C]);
for (const v of f) {
const w = v * u;
if (!(i[w + I] <= t)) {
i[w + I] = t;
for (let _ = 0; _ < u; _++)
h.push(i[w + _]);
}

@@ -1245,3 +1332,3 @@ }

}
return d;
return h;
}

@@ -1257,26 +1344,26 @@ // get index of the point from which the cluster originated

_map(e, t, s) {
if (e[t + P] > 1) {
if (e[t + x] > 1) {
const a = this.clusterProps[e[t + Ae]];
return s ? Object.assign({}, a) : a;
}
const r = this.points[e[t + x]].properties, n = this.options.map(r);
return s && n === r ? Object.assign({}, n) : n;
const r = this.points[e[t + L]].properties, o = this.options.map(r);
return s && o === r ? Object.assign({}, o) : o;
}
}
function ke(o, e, t) {
function ke(n, e, t) {
return {
type: "Feature",
id: o[e + x],
properties: Ie(o, e, t),
id: n[e + L],
properties: $e(n, e, t),
geometry: {
type: "Point",
coordinates: [ot(o[e]), nt(o[e + 1])]
coordinates: [it(n[e]), at(n[e + 1])]
}
};
}
function Ie(o, e, t) {
const s = o[e + P], r = s >= 1e4 ? `${Math.round(s / 1e3)}k` : s >= 1e3 ? `${Math.round(s / 100) / 10}k` : s, n = o[e + Ae], a = n === -1 ? {} : Object.assign({}, t[n]);
function $e(n, e, t) {
const s = n[e + x], r = s >= 1e4 ? `${Math.round(s / 1e3)}k` : s >= 1e3 ? `${Math.round(s / 100) / 10}k` : s, o = n[e + Ae], a = o === -1 ? {} : Object.assign({}, t[o]);
return Object.assign(a, {
cluster: !0,
cluster_id: o[e + x],
cluster_id: n[e + L],
point_count: s,

@@ -1286,14 +1373,14 @@ point_count_abbreviated: r

}
function H(o) {
return o / 360 + 0.5;
function W(n) {
return n / 360 + 0.5;
}
function W(o) {
const e = Math.sin(o * Math.PI / 180), t = 0.5 - 0.25 * Math.log((1 + e) / (1 - e)) / Math.PI;
function K(n) {
const e = Math.sin(n * Math.PI / 180), t = 0.5 - 0.25 * Math.log((1 + e) / (1 - e)) / Math.PI;
return t < 0 ? 0 : t > 1 ? 1 : t;
}
function ot(o) {
return (o - 0.5) * 360;
function it(n) {
return (n - 0.5) * 360;
}
function nt(o) {
const e = (180 - o * 360) * Math.PI / 180;
function at(n) {
const e = (180 - n * 360) * Math.PI / 180;
return 360 * Math.atan(Math.exp(e)) / Math.PI - 90;

@@ -1315,9 +1402,9 @@ }

***************************************************************************** */
function le(o, e) {
function ce(n, e) {
var t = {};
for (var s in o)
Object.prototype.hasOwnProperty.call(o, s) && e.indexOf(s) < 0 && (t[s] = o[s]);
if (o != null && typeof Object.getOwnPropertySymbols == "function")
for (var r = 0, s = Object.getOwnPropertySymbols(o); r < s.length; r++)
e.indexOf(s[r]) < 0 && Object.prototype.propertyIsEnumerable.call(o, s[r]) && (t[s[r]] = o[s[r]]);
for (var s in n)
Object.prototype.hasOwnProperty.call(n, s) && e.indexOf(s) < 0 && (t[s] = n[s]);
if (n != null && typeof Object.getOwnPropertySymbols == "function")
for (var r = 0, s = Object.getOwnPropertySymbols(n); r < s.length; r++)
e.indexOf(s[r]) < 0 && Object.prototype.propertyIsEnumerable.call(n, s[r]) && (t[s[r]] = n[s[r]]);
return t;

@@ -1351,3 +1438,3 @@ }

}
class V {
class H {
constructor({ markers: e, position: t }) {

@@ -1386,16 +1473,16 @@ this.markers = e, t && (t instanceof google.maps.LatLng ? this._position = t : this._position = new google.maps.LatLng(t));

}
const it = (o, e, t, s) => {
const r = $e(o.getBounds(), e, s);
return t.filter((n) => r.contains(k.getPosition(n)));
}, $e = (o, e, t) => {
const { northEast: s, southWest: r } = at(o, e), n = lt({ northEast: s, southWest: r }, t);
return ct(n, e);
}, _e = (o, e, t) => {
const s = $e(o, e, t), r = s.getNorthEast(), n = s.getSouthWest();
return [n.lng(), n.lat(), r.lng(), r.lat()];
}, at = (o, e) => ({
northEast: e.fromLatLngToDivPixel(o.getNorthEast()),
southWest: e.fromLatLngToDivPixel(o.getSouthWest())
}), lt = ({ northEast: o, southWest: e }, t) => (o.x += t, o.y -= t, e.x -= t, e.y += t, { northEast: o, southWest: e }), ct = ({ northEast: o, southWest: e }, t) => {
const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(o);
const lt = (n, e, t, s) => {
const r = Re(n.getBounds(), e, s);
return t.filter((o) => r.contains(k.getPosition(o)));
}, Re = (n, e, t) => {
const { northEast: s, southWest: r } = ct(n, e), o = ut({ northEast: s, southWest: r }, t);
return ht(o, e);
}, Ce = (n, e, t) => {
const s = Re(n, e, t), r = s.getNorthEast(), o = s.getSouthWest();
return [o.lng(), o.lat(), r.lng(), r.lat()];
}, ct = (n, e) => ({
northEast: e.fromLatLngToDivPixel(n.getNorthEast()),
southWest: e.fromLatLngToDivPixel(n.getSouthWest())
}), ut = ({ northEast: n, southWest: e }, t) => (n.x += t, n.y -= t, e.x -= t, e.y += t, { northEast: n, southWest: e }), ht = ({ northEast: n, southWest: e }, t) => {
const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(n);
return new google.maps.LatLngBounds(s, r);

@@ -1420,8 +1507,8 @@ };

noop({ markers: e }) {
return dt(e);
return pt(e);
}
}
class ut extends je {
class dt extends je {
constructor(e) {
var { viewportPadding: t = 60 } = e, s = le(e, ["viewportPadding"]);
var { viewportPadding: t = 60 } = e, s = ce(e, ["viewportPadding"]);
super(s), this.viewportPadding = 60, this.viewportPadding = t;

@@ -1437,3 +1524,3 @@ }

clusters: this.cluster({
markers: it(t, s, e, this.viewportPadding),
markers: lt(t, s, e, this.viewportPadding),
map: t,

@@ -1445,9 +1532,9 @@ mapCanvasProjection: s

}
const dt = (o) => o.map((t) => new V({
const pt = (n) => n.map((t) => new H({
position: k.getPosition(t),
markers: [t]
}));
class ht extends je {
class ft extends je {
constructor(e) {
var { maxZoom: t, radius: s = 60 } = e, r = le(e, ["maxZoom", "radius"]);
var { maxZoom: t, radius: s = 60 } = e, r = ce(e, ["maxZoom", "radius"]);
super({ maxZoom: t }), this.state = { zoom: -1 }, this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, r));

@@ -1458,6 +1545,6 @@ }

const s = { zoom: e.map.getZoom() };
if (!A(e.markers, this.markers)) {
if (!T(e.markers, this.markers)) {
t = !0, this.markers = [...e.markers];
const r = this.markers.map((n) => {
const a = k.getPosition(n);
const r = this.markers.map((o) => {
const a = k.getPosition(o);
return {

@@ -1469,3 +1556,3 @@ type: "Feature",

},
properties: { marker: n }
properties: { marker: o }
};

@@ -1475,3 +1562,3 @@ });

}
return t || (this.state.zoom <= this.maxZoom || s.zoom <= this.maxZoom) && (t = !A(this.state, s)), this.state = s, t && (this.clusters = this.cluster(e)), { clusters: this.clusters, changed: t };
return t || (this.state.zoom <= this.maxZoom || s.zoom <= this.maxZoom) && (t = !T(this.state, s)), this.state = s, t && (this.clusters = this.cluster(e)), { clusters: this.clusters, changed: t };
}

@@ -1483,8 +1570,8 @@ cluster({ map: e }) {

if (s.cluster)
return new V({
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((n) => n.properties.marker),
return new H({
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),
position: { lat: t, lng: e }
});
const r = s.marker;
return new V({
return new H({
markers: [r],

@@ -1495,6 +1582,6 @@ position: k.getPosition(r)

}
class pt extends ut {
class mt extends dt {
constructor(e) {
var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e, n = le(e, ["maxZoom", "radius", "viewportPadding"]);
super({ maxZoom: t, viewportPadding: r }), this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, n)), this.state = { zoom: -1, view: [0, 0, 0, 0] };
var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e, o = ce(e, ["maxZoom", "radius", "viewportPadding"]);
super({ maxZoom: t, viewportPadding: r }), this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, o)), this.state = { zoom: -1, view: [0, 0, 0, 0] };
}

@@ -1504,9 +1591,9 @@ calculate(e) {

zoom: Math.round(e.map.getZoom()),
view: _e(e.map.getBounds(), e.mapCanvasProjection, this.viewportPadding)
view: Ce(e.map.getBounds(), e.mapCanvasProjection, this.viewportPadding)
};
let s = !A(this.state, t);
if (!A(e.markers, this.markers)) {
let s = !T(this.state, t);
if (!T(e.markers, this.markers)) {
s = !0, this.markers = [...e.markers];
const r = this.markers.map((n) => {
const a = k.getPosition(n);
const r = this.markers.map((o) => {
const a = k.getPosition(o);
return {

@@ -1518,3 +1605,3 @@ type: "Feature",

},
properties: { marker: n }
properties: { marker: o }
};

@@ -1529,3 +1616,3 @@ });

zoom: Math.round(e.getZoom()),
view: _e(e.getBounds(), t, this.viewportPadding)
view: Ce(e.getBounds(), t, this.viewportPadding)
};

@@ -1536,8 +1623,8 @@ return this.superCluster.getClusters(s.view, s.zoom).map((r) => this.transformCluster(r));

if (s.cluster)
return new V({
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((n) => n.properties.marker),
return new H({
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),
position: { lat: t, lng: e }
});
const r = s.marker;
return new V({
return new H({
markers: [r],

@@ -1548,6 +1635,6 @@ position: k.getPosition(r)

}
class ft {
class gt {
constructor(e, t) {
this.markers = { sum: e.length };
const s = t.map((n) => n.count), r = s.reduce((n, a) => n + a, 0);
const s = t.map((o) => o.count), r = s.reduce((o, a) => o + a, 0);
this.clusters = {

@@ -1564,3 +1651,3 @@ count: t.length,

}
class mt {
class vt {
/**

@@ -1610,21 +1697,21 @@ * The default render function for the library used by {@link MarkerClusterer}.

<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`, i = Number(google.maps.Marker.MAX_ZINDEX) + e;
</svg>`, l = `Cluster of ${e} markers`, i = Number(google.maps.Marker.MAX_ZINDEX) + e;
if (k.isAdvancedMarkerAvailable(r)) {
const u = document.createElement("div");
u.innerHTML = a;
const l = u.firstElementChild;
l.setAttribute("transform", "translate(0 25)");
const h = {
const c = u.firstElementChild;
c.setAttribute("transform", "translate(0 25)");
const d = {
map: r,
position: t,
zIndex: i,
title: c,
content: l
title: l,
content: c
};
return new google.maps.marker.AdvancedMarkerElement(h);
return new google.maps.marker.AdvancedMarkerElement(d);
}
const d = {
const h = {
position: t,
zIndex: i,
title: c,
title: l,
icon: {

@@ -1635,24 +1722,24 @@ url: `data:image/svg+xml;base64,${btoa(a)}`,

};
return new google.maps.Marker(d);
return new google.maps.Marker(h);
}
}
function gt(o, e) {
function yt(n, e) {
for (let t in e.prototype)
o.prototype[t] = e.prototype[t];
n.prototype[t] = e.prototype[t];
}
class ce {
class ue {
constructor() {
gt(ce, google.maps.OverlayView);
yt(ue, google.maps.OverlayView);
}
}
var I;
(function(o) {
o.CLUSTERING_BEGIN = "clusteringbegin", o.CLUSTERING_END = "clusteringend", o.CLUSTER_CLICK = "click";
})(I || (I = {}));
const vt = (o, e, t) => {
var j;
(function(n) {
n.CLUSTERING_BEGIN = "clusteringbegin", n.CLUSTERING_END = "clusteringend", n.CLUSTER_CLICK = "click";
})(j || (j = {}));
const wt = (n, e, t) => {
t.fitBounds(e.bounds);
};
class yt extends ce {
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ht(s), renderer: n = new mt(), onClusterClick: a = vt }) {
super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer = n, this.onClusterClick = a, e && this.setMap(e);
class _t extends ue {
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ft(s), renderer: o = new vt(), onClusterClick: a = wt }) {
super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer = o, this.onClusterClick = a, e && this.setMap(e);
}

@@ -1686,3 +1773,3 @@ addMarker(e, t) {

if (e instanceof google.maps.Map && e.getProjection()) {
google.maps.event.trigger(this, I.CLUSTERING_BEGIN, this);
google.maps.event.trigger(this, j.CLUSTERING_BEGIN, this);
const { clusters: t, changed: s } = this.algorithm.calculate({

@@ -1697,8 +1784,8 @@ markers: this.markers,

a.markers.length == 1 && r.add(a.markers[0]);
const n = [];
const o = [];
for (const a of this.clusters)
a.marker != null && (a.markers.length == 1 ? r.has(a.marker) || k.setMap(a.marker, null) : n.push(a.marker));
this.clusters = t, this.renderClusters(), requestAnimationFrame(() => n.forEach((a) => k.setMap(a, null)));
a.marker != null && (a.markers.length == 1 ? r.has(a.marker) || k.setMap(a.marker, null) : o.push(a.marker));
this.clusters = t, this.renderClusters(), requestAnimationFrame(() => o.forEach((a) => k.setMap(a, null)));
}
google.maps.event.trigger(this, I.CLUSTERING_END, this);
google.maps.event.trigger(this, j.CLUSTERING_END, this);
}

@@ -1716,3 +1803,3 @@ }

renderClusters() {
const e = new ft(this.markers, this.clusters), t = this.getMap();
const e = new gt(this.markers, this.clusters), t = this.getMap();
this.clusters.forEach((s) => {

@@ -1723,3 +1810,3 @@ s.markers.length === 1 ? s.marker = s.markers[0] : (s.marker = this.renderer.render(s, e, t), s.markers.forEach((r) => k.setMap(r, null)), this.onClusterClick && s.marker.addListener(

(r) => {
google.maps.event.trigger(this, I.CLUSTER_CLICK, s), this.onClusterClick(r, s, t);
google.maps.event.trigger(this, j.CLUSTER_CLICK, s), this.onClusterClick(r, s, t);
}

@@ -1730,3 +1817,3 @@ )), k.setMap(s.marker, t);

}
const Ce = Object.values(I), It = M({
const be = Object.values(j), Rt = b({
name: "MarkerCluster",

@@ -1739,19 +1826,19 @@ props: {

},
emits: Ce,
setup(o, { emit: e, expose: t, slots: s }) {
const r = v(), n = _(q, v()), a = _(R, v());
return z(Ee, r), O(
n,
emits: be,
setup(n, { emit: e, expose: t, slots: s }) {
const r = y(), o = C(Z, y()), a = C(D, y());
return G(Le, r), O(
o,
() => {
n.value && (r.value = E(
new yt({
map: n.value,
o.value && (r.value = S(
new _t({
map: o.value,
// Better perf than the default `SuperClusterAlgorithm`. See:
// https://github.com/googlemaps/js-markerclusterer/pull/640
algorithm: new pt(o.options.algorithmOptions ?? {}),
...o.options
algorithm: new mt(n.options.algorithmOptions ?? {}),
...n.options
})
), Ce.forEach((c) => {
), be.forEach((l) => {
var i;
(i = r.value) == null || i.addListener(c, (d) => e(c, d));
(i = r.value) == null || i.addListener(l, (h) => e(l, h));
}));

@@ -1762,11 +1849,11 @@ },

}
), j(() => {
var c;
r.value && ((c = a.value) == null || c.event.clearInstanceListeners(r.value), r.value.clearMarkers(), r.value.setMap(null));
), B(() => {
var l;
r.value && ((l = a.value) == null || l.event.clearInstanceListeners(r.value), r.value.clearMarkers(), r.value.setMap(null));
}), t({ markerCluster: r }), () => {
var c;
return (c = s.default) == null ? void 0 : c.call(s);
var l;
return (l = s.default) == null ? void 0 : l.call(s);
};
}
}), wt = M({
}), kt = b({
inheritAttrs: !1,

@@ -1779,30 +1866,30 @@ props: {

},
setup(o, { slots: e, emit: t, expose: s }) {
const r = v(), n = K(() => {
setup(n, { slots: e, emit: t, expose: s }) {
const r = y(), o = J(() => {
var i;
return (i = e.default) == null ? void 0 : i.call(e).some((d) => d.type !== be);
}), a = K(() => ({
...o.options,
return (i = e.default) == null ? void 0 : i.call(e).some((h) => h.type !== Ee);
}), a = J(() => ({
...n.options,
element: r.value
})), c = Z(Q, [], a, t);
})), l = U(ee, [], a, t);
return s({
customMarker: c
}), { customMarkerRef: r, customMarker: c, hasSlotContent: n };
customMarker: l
}), { customMarkerRef: r, customMarker: l, hasSlotContent: o };
}
});
const kt = {
const Ct = {
key: 0,
class: "custom-marker-wrapper"
};
function _t(o, e, t, s, r, n) {
return o.hasSlotContent ? (J(), Y("div", kt, [
ie("div", Oe({
function bt(n, e, t, s, r, o) {
return n.hasSlotContent ? (Y(), X("div", Ct, [
ae("div", Pe({
ref: "customMarkerRef",
style: { cursor: o.$attrs.onClick ? "pointer" : void 0 }
}, o.$attrs), [
X(o.$slots, "default", {}, void 0, !0)
style: { cursor: n.$attrs.onClick ? "pointer" : void 0 }
}, n.$attrs), [
Q(n.$slots, "default", {}, void 0, !0)
], 16)
])) : Pe("", !0);
])) : Oe("", !0);
}
const $t = /* @__PURE__ */ ee(wt, [["render", _t], ["__scopeId", "data-v-c7599d50"]]), jt = M({
const jt = /* @__PURE__ */ te(kt, [["render", bt], ["__scopeId", "data-v-2d2d343a"]]), qt = b({
name: "HeatmapLayer",

@@ -1815,16 +1902,16 @@ props: {

},
setup(o) {
const e = v(), t = _(q, v()), s = _(R, v());
setup(n) {
const e = y(), t = C(Z, y()), s = C(D, y());
return O(
[t, () => o.options],
([r, n], [a, c]) => {
var d;
const i = !A(n, c) || t.value !== a;
[t, () => n.options],
([r, o], [a, l]) => {
var h;
const i = !T(o, l) || t.value !== a;
if (t.value && s.value && i) {
const u = structuredClone(n);
const u = structuredClone(o);
if (u.data && !(u.data instanceof s.value.MVCArray)) {
const l = s.value.LatLng;
u.data = (d = u.data) == null ? void 0 : d.map((h) => h instanceof l || "location" in h && (h.location instanceof l || h.location === null) ? h : "location" in h ? { ...h, location: new l(h.location) } : new l(h));
const c = s.value.LatLng;
u.data = (h = u.data) == null ? void 0 : h.map((d) => d instanceof c || "location" in d && (d.location instanceof c || d.location === null) ? d : "location" in d ? { ...d, location: new c(d.location) } : new c(d));
}
e.value ? e.value.setOptions(u) : e.value = E(
e.value ? e.value.setOptions(u) : e.value = S(
new s.value.visualization.HeatmapLayer({

@@ -1838,3 +1925,3 @@ ...u,

{ immediate: !0 }
), j(() => {
), B(() => {
e.value && e.value.setMap(null);

@@ -1846,13 +1933,13 @@ }), { heatmapLayer: e };

export {
St as Circle,
At as CustomControl,
$t as CustomMarker,
At as Circle,
Tt as CustomControl,
jt as CustomMarker,
Ot as GoogleMap,
jt as HeatmapLayer,
Tt as InfoWindow,
Pt as Marker,
It as MarkerCluster,
Et as Polygon,
xt as Polyline,
Lt as Rectangle
qt as HeatmapLayer,
$t as InfoWindow,
xt as Marker,
Rt as MarkerCluster,
St as Polygon,
Lt as Polyline,
It as Rectangle
};

@@ -1,3 +0,3 @@

(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".mapdiv[data-v-765a8e46]{width:100%;height:100%}.info-window-wrapper[data-v-7138f548]{display:none}.mapdiv .info-window-wrapper[data-v-7138f548]{display:inline-block}.custom-marker-wrapper[data-v-cab807c1]{display:none}.mapdiv .custom-marker-wrapper[data-v-cab807c1]{display:inline-block}")),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
(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 ht=Object.defineProperty;var pt=(w,a,_)=>a in w?ht(w,a,{enumerable:!0,configurable:!0,writable:!0,value:_}):w[a]=_;var X=(w,a,_)=>(pt(w,typeof a!="symbol"?a+"":a,_),_);const _=Symbol("map"),L=Symbol("api"),Q=Symbol("marker"),ee=Symbol("markerCluster"),Z=Symbol("CustomMarker"),te=Symbol("mapTilesLoaded"),T=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];var Ce=function r(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,n,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(n=s;n--!==0;)if(!r(e[n],t[n]))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),s=o.length,s!==Object.keys(t).length)return!1;for(n=s;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[n]))return!1;for(n=s;n--!==0;){var l=o[n];if(!r(e[l],t[l]))return!1}return!0}return e!==e&&t!==t};const se="__googleMapsScriptId";class E{constructor({apiKey:e,channel:t,client:s,id:n=se,libraries:o=[],language:l,region:u,version:i,mapIds:h,nonce:d,retries:c=3,url:p="https://maps.googleapis.com/maps/api/js"}){if(this.CALLBACK="__googleMapsCallback",this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.version=i,this.apiKey=e,this.channel=t,this.client=s,this.id=n||se,this.libraries=o,this.language=l,this.region=u,this.mapIds=h,this.nonce=d,this.retries=c,this.url=p,E.instance){if(!Ce(this.options,E.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(E.instance.options)}`);return E.instance}E.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}}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+=`?callback=${this.CALLBACK}`,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(",")}`),e}deleteScript(){const e=document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(s=>{s?t(s.error):e(window.google)})})}loadCallback(e){this.callbacks.push(e),this.execute()}setScript(){if(document.getElementById(this.id)){this.callback();return}const e=this.createUrl(),t=document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.nonce&&(t.nonce=this.nonce),document.head.appendChild(t)}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){const t=this.errors.length*Math.pow(2,this.errors.length);console.log(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},t)}else this.onerrorEvent=e,this.callback()}setCallback(){window.__googleMapsCallback=this.callback.bind(this)}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.setCallback(),this.setScript())}}}function _e(r){return class extends r.OverlayView{constructor(s){super();X(this,"element");X(this,"opts");const{element:n,...o}=s;this.element=n,this.opts=o,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof r.LatLng?this.opts.position:new r.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const s=this.element;return s.style.display!=="none"&&s.style.visibility!=="hidden"&&(s.style.opacity===""||Number(s.style.opacity)>.01)}onAdd(){if(!this.element)return;const s=this.getPanes();s&&s.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const n=this.getProjection().fromLatLngToDivPixel(this.getPosition());if(n){this.element.style.position="absolute";const o=this.element.offsetHeight,l=this.element.offsetWidth;let u,i;switch(this.opts.anchorPoint){case"TOP_CENTER":u=n.x-l/2,i=n.y;break;case"BOTTOM_CENTER":u=n.x-l/2,i=n.y-o;break;case"LEFT_CENTER":u=n.x,i=n.y-o/2;break;case"RIGHT_CENTER":u=n.x-l,i=n.y-o/2;break;case"TOP_LEFT":u=n.x,i=n.y;break;case"TOP_RIGHT":u=n.x-l,i=n.y;break;case"BOTTOM_LEFT":u=n.x,i=n.y-o;break;case"BOTTOM_RIGHT":u=n.x-l,i=n.y-o;break;default:u=n.x-l/2,i=n.y-o/2}this.element.style.left=u+"px",this.element.style.top=i+"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(s){this.opts=s,this.draw()}}}let ne;const re=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","heading_changed","idle","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","resize","rightclick","tilesloaded","tilt_changed","zoom_changed"],Me=a.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places"]},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},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}},emits:re,setup(r,{emit:e}){const t=a.ref(),s=a.ref(!1),n=a.ref(),o=a.ref(),l=a.ref(!1);a.provide(_,n),a.provide(L,o),a.provide(te,l);const u=()=>{const c={...r};Object.keys(c).forEach(g=>{c[g]===void 0&&delete c[g]});const f=g=>{var y;return g?{position:(y=o.value)==null?void 0:y.ControlPosition[g]}:{}},m={scaleControlOptions:r.scaleControlStyle?{style:r.scaleControlStyle}:{},panControlOptions:f(r.panControlPosition),zoomControlOptions:f(r.zoomControlPosition),rotateControlOptions:f(r.rotateControlPosition),streetViewControlOptions:f(r.streetViewControlPosition),fullscreenControlOptions:f(r.fullscreenControlPosition),disableDefaultUI:r.disableDefaultUi};return{...c,...m}},i=a.watch([o,n],([c,p])=>{const f=c,m=p;f&&m&&(f.event.addListenerOnce(m,"tilesloaded",()=>{l.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:c,region:p,version:f,language:m,libraries:g}=r;ne=new E({apiKey:c,region:p,version:f,language:m,libraries:g})}catch(c){console.error(c)}},d=c=>{o.value=a.markRaw(c.maps),n.value=a.markRaw(new c.maps.Map(t.value,u()));const p=_e(o.value);o.value[Z]=p,re.forEach(m=>{var g;(g=n.value)==null||g.addListener(m,y=>e(m,y))}),s.value=!0;const f=Object.keys(r).filter(m=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(m)).map(m=>a.toRef(r,m));a.watch([()=>r.center,()=>r.zoom,...f],([m,g],[y,v])=>{var z,b,N;const{center:k,zoom:M,...j}=u();(z=n.value)==null||z.setOptions(j),g!==void 0&&g!==v&&((b=n.value)==null||b.setZoom(g));const q=!y||m.lng!==y.lng||m.lat!==y.lat;m&&q&&((N=n.value)==null||N.panTo(m))})};return a.onMounted(()=>{r.apiPromise&&r.apiPromise instanceof Promise?r.apiPromise.then(d):(h(),ne.load().then(d))}),a.onBeforeUnmount(()=>{var c;l.value=!1,n.value&&((c=o.value)==null||c.event.clearInstanceListeners(n.value))}),{mapRef:t,ready:s,map:n,api:o,mapTilesLoaded:l}}}),ft="",U=(r,e)=>{const t=r.__vccOpts||r;for(const[s,n]of e)t[s]=n;return t},be={ref:"mapRef",class:"mapdiv"};function Pe(r,e,t,s,n,o){return a.openBlock(),a.createElementBlock("div",null,[a.createElementVNode("div",be,null,512),a.renderSlot(r.$slots,"default",a.normalizeProps(a.guardReactiveProps({ready:r.ready,map:r.map,api:r.api,mapTilesLoaded:r.mapTilesLoaded})),void 0,!0)])}const Oe=U(Me,[["render",Pe],["__scopeId","data-v-765a8e46"]]);function Ee(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Se=function r(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,n,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(n=s;n--!==0;)if(!r(e[n],t[n]))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),s=o.length,s!==Object.keys(t).length)return!1;for(n=s;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[n]))return!1;for(n=s;n--!==0;){var l=o[n];if(!r(e[l],t[l]))return!1}return!0}return e!==e&&t!==t};const S=Ee(Se),xe=r=>r==="Marker",Le=r=>r===Z,A=(r,e,t,s)=>{const n=a.ref(),o=a.inject(_,a.ref()),l=a.inject(L,a.ref()),u=a.inject(ee,a.ref()),i=a.computed(()=>!!(u.value&&l.value&&(n.value instanceof l.value.Marker||n.value instanceof l.value[Z])));return a.watch([o,t],(h,[d,c])=>{var f,m,g;const p=!S(t.value,c)||o.value!==d;!o.value||!l.value||!p||(n.value?(n.value.setOptions(t.value),i.value&&((f=u.value)==null||f.removeMarker(n.value),(m=u.value)==null||m.addMarker(n.value))):(xe(r)?n.value=a.markRaw(new l.value[r](t.value)):Le(r)?n.value=a.markRaw(new l.value[r](t.value)):n.value=a.markRaw(new l.value[r]({...t.value,map:o.value})),i.value?(g=u.value)==null||g.addMarker(n.value):n.value.setMap(o.value),e.forEach(y=>{var v;(v=n.value)==null||v.addListener(y,k=>s(y,k))})))},{immediate:!0}),a.onBeforeUnmount(()=>{var h,d;n.value&&((h=l.value)==null||h.event.clearInstanceListeners(n.value),i.value?(d=u.value)==null||d.removeMarker(n.value):n.value.setMap(null))}),n},oe=["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"],Te=a.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:oe,setup(r,{emit:e,expose:t,slots:s}){const n=a.toRef(r,"options"),o=A("Marker",oe,n,e);return a.provide(Q,o),t({marker:o}),()=>{var l;return(l=s.default)==null?void 0:l.call(s)}}}),Ae=a.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:T,setup(r,{emit:e}){const t=a.toRef(r,"options");return{polyline:A("Polyline",T,t,e)}},render:()=>null}),Ie=a.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:T,setup(r,{emit:e}){const t=a.toRef(r,"options");return{polygon:A("Polygon",T,t,e)}},render:()=>null}),ie=T.concat(["bounds_changed"]),je=a.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:ie,setup(r,{emit:e}){const t=a.toRef(r,"options");return{rectangle:A("Rectangle",ie,t,e)}},render:()=>null}),ae=T.concat(["center_changed","radius_changed"]),Be=a.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:ae,setup(r,{emit:e}){const t=a.toRef(r,"options");return{circle:A("Circle",ae,t,e)}},render:()=>null}),Re=a.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(r,{emit:e}){const t=a.ref(null),s=a.inject(_,a.ref()),n=a.inject(L,a.ref()),o=a.inject(te,a.ref(!1)),l=a.ref(!1),u=a.watch([o,n,t],([d,c,p])=>{c&&d&&p&&(i(r.position),l.value=!0,e("content:loaded"),setTimeout(u,0))},{immediate:!0}),i=d=>{if(s.value&&n.value&&t.value){const c=n.value.ControlPosition[d];s.value.controls[c].push(t.value)}},h=d=>{if(s.value&&n.value){let c=null;const p=n.value.ControlPosition[d];s.value.controls[p].forEach((f,m)=>{f===t.value&&(c=m)}),c!==null&&s.value.controls[p].removeAt(c)}};return a.onBeforeUnmount(()=>h(r.position)),a.watch(()=>r.position,(d,c)=>{h(c),i(d)}),a.watch(()=>r.index,d=>{d&&t.value&&(t.value.index=r.index)}),{controlRef:t,showContent:l}}}),$e={ref:"controlRef"};function qe(r,e,t,s,n,o){return a.withDirectives((a.openBlock(),a.createElementBlock("div",$e,[a.renderSlot(r.$slots,"default")],512)),[[a.vShow,r.showContent]])}const Ne=U(Re,[["render",qe]]),le=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Ze=a.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})}},emits:le,setup(r,{slots:e,emit:t,expose:s}){const n=a.ref(),o=a.ref(),l=a.inject(_,a.ref()),u=a.inject(L,a.ref()),i=a.inject(Q,a.ref());let h;const d=a.computed(()=>{var f;return(f=e.default)==null?void 0:f.call(e).some(m=>m.type!==a.Comment)}),c=f=>{var m;return(m=n.value)==null?void 0:m.open({map:l.value,anchor:i.value,...f})},p=()=>{var f;return(f=n.value)==null?void 0:f.close()};return a.onMounted(()=>{a.watch([l,()=>r.options],([f,m],[g,y])=>{const v=!S(m,y)||l.value!==g;l.value&&u.value&&v&&(n.value?(n.value.setOptions({...m,content:d.value?o.value:m.content}),i.value||c()):(n.value=a.markRaw(new u.value.InfoWindow({...m,content:d.value?o.value:m.content})),i.value?h=i.value.addListener("click",()=>{c()}):c(),le.forEach(k=>{var M;(M=n.value)==null||M.addListener(k,j=>t(k,j))})))},{immediate:!0})}),a.onBeforeUnmount(()=>{var f;h&&h.remove(),n.value&&((f=u.value)==null||f.event.clearInstanceListeners(n.value),p())}),s({infoWindow:n,open:c,close:p}),{infoWindow:n,infoWindowRef:o,hasSlotContent:d,open:c,close:p}}}),mt="",Ue={key:0,class:"info-window-wrapper"};function Fe(r,e,t,s,n,o){return r.hasSlotContent?(a.openBlock(),a.createElementBlock("div",Ue,[a.createElementVNode("div",a.mergeProps({ref:"infoWindowRef"},r.$attrs),[a.renderSlot(r.$slots,"default",{},void 0,!0)],16)])):a.createCommentVNode("",!0)}const De=U(Ze,[["render",Fe],["__scopeId","data-v-7138f548"]]),ce=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],V=1,B=8;class G{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,s]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const n=s>>4;if(n!==V)throw new Error(`Got v${n} data when expected v${V}.`);const o=ce[s&15];if(!o)throw new Error("Unrecognized array type.");const[l]=new Uint16Array(e,2,1),[u]=new Uint32Array(e,4,1);return new G(u,l,o,e)}constructor(e,t=64,s=Float64Array,n){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=s,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const o=ce.indexOf(this.ArrayType),l=e*2*this.ArrayType.BYTES_PER_ELEMENT,u=e*this.IndexArrayType.BYTES_PER_ELEMENT,i=(8-u%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${s}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,B,e),this.coords=new this.ArrayType(this.data,B+u+i,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(B+l+u+i),this.ids=new this.IndexArrayType(this.data,B,e),this.coords=new this.ArrayType(this.data,B+u+i,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(V<<4)+o]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const s=this._pos>>1;return this.ids[s]=s,this.coords[this._pos++]=e,this.coords[this._pos++]=t,s}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return H(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,s,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:l,nodeSize:u}=this,i=[0,o.length-1,0],h=[];for(;i.length;){const d=i.pop()||0,c=i.pop()||0,p=i.pop()||0;if(c-p<=u){for(let y=p;y<=c;y++){const v=l[2*y],k=l[2*y+1];v>=e&&v<=s&&k>=t&&k<=n&&h.push(o[y])}continue}const f=p+c>>1,m=l[2*f],g=l[2*f+1];m>=e&&m<=s&&g>=t&&g<=n&&h.push(o[f]),(d===0?e<=m:t<=g)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?s>=m:n>=g)&&(i.push(f+1),i.push(c),i.push(1-d))}return h}within(e,t,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:o,nodeSize:l}=this,u=[0,n.length-1,0],i=[],h=s*s;for(;u.length;){const d=u.pop()||0,c=u.pop()||0,p=u.pop()||0;if(c-p<=l){for(let y=p;y<=c;y++)de(o[2*y],o[2*y+1],e,t)<=h&&i.push(n[y]);continue}const f=p+c>>1,m=o[2*f],g=o[2*f+1];de(m,g,e,t)<=h&&i.push(n[f]),(d===0?e-s<=m:t-s<=g)&&(u.push(p),u.push(f-1),u.push(1-d)),(d===0?e+s>=m:t+s>=g)&&(u.push(f+1),u.push(c),u.push(1-d))}return i}}function H(r,e,t,s,n,o){if(n-s<=t)return;const l=s+n>>1;ue(r,e,l,s,n,o),H(r,e,t,s,l-1,1-o),H(r,e,t,l+1,n,1-o)}function ue(r,e,t,s,n,o){for(;n>s;){if(n-s>600){const h=n-s+1,d=t-s+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),m=Math.max(s,Math.floor(t-d*p/h+f)),g=Math.min(n,Math.floor(t+(h-d)*p/h+f));ue(r,e,t,m,g,o)}const l=e[2*t+o];let u=s,i=n;for(R(r,e,s,t),e[2*n+o]>l&&R(r,e,s,n);u<i;){for(R(r,e,u,i),u++,i--;e[2*u+o]<l;)u++;for(;e[2*i+o]>l;)i--}e[2*s+o]===l?R(r,e,s,i):(i++,R(r,e,i,n)),i<=t&&(s=i+1),t<=i&&(n=i-1)}}function R(r,e,t,s){W(r,t,s),W(e,2*t,2*s),W(e,2*t+1,2*s+1)}function W(r,e,t){const s=r[e];r[e]=r[t],r[t]=s}function de(r,e,t,s){const n=r-t,o=e-s;return n*n+o*o}const ze={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:r=>r},he=Math.fround||(r=>e=>(r[0]=+e,r[0]))(new Float32Array(1)),x=2,P=3,K=4,O=5,pe=6;class fe{constructor(e){this.options=Object.assign(Object.create(ze),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:s,maxZoom:n}=this.options;t&&console.time("total time");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const l=[];for(let i=0;i<e.length;i++){const h=e[i];if(!h.geometry)continue;const[d,c]=h.geometry.coordinates,p=he(F(d)),f=he(D(c));l.push(p,f,1/0,i,-1,1),this.options.reduce&&l.push(0)}let u=this.trees[n+1]=this._createTree(l);t&&console.timeEnd(o);for(let i=n;i>=s;i--){const h=+Date.now();u=this.trees[i]=this._createTree(this._cluster(u,i)),t&&console.log("z%d: %d clusters in %dms",i,u.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let s=((e[0]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[1]));let o=e[2]===180?180:((e[2]+180)%360+360)%360-180;const l=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)s=-180,o=180;else if(s>o){const c=this.getClusters([s,n,180,l],t),p=this.getClusters([-180,n,o,l],t);return c.concat(p)}const u=this.trees[this._limitZoom(t)],i=u.range(F(s),D(l),F(o),D(n)),h=u.data,d=[];for(const c of i){const p=this.stride*c;d.push(h[p+O]>1?me(h,p,this.clusterProps):this.points[h[p+P]])}return d}getChildren(e){const t=this._getOriginId(e),s=this._getOriginZoom(e),n="No cluster with the specified id.",o=this.trees[s];if(!o)throw new Error(n);const l=o.data;if(t*this.stride>=l.length)throw new Error(n);const u=this.options.radius/(this.options.extent*Math.pow(2,s-1)),i=l[t*this.stride],h=l[t*this.stride+1],d=o.within(i,h,u),c=[];for(const p of d){const f=p*this.stride;l[f+K]===e&&c.push(l[f+O]>1?me(l,f,this.clusterProps):this.points[l[f+P]])}if(c.length===0)throw new Error(n);return c}getLeaves(e,t,s){t=t||10,s=s||0;const n=[];return this._appendLeaves(n,e,t,s,0),n}getTile(e,t,s){const n=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:l,radius:u}=this.options,i=u/l,h=(s-i)/o,d=(s+1+i)/o,c={features:[]};return this._addTileFeatures(n.range((t-i)/o,h,(t+1+i)/o,d),n.data,t,s,o,c),t===0&&this._addTileFeatures(n.range(1-i/o,h,1,d),n.data,o,s,o,c),t===o-1&&this._addTileFeatures(n.range(0,h,i/o,d),n.data,-1,s,o,c),c.features.length?c:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const s=this.getChildren(e);if(t++,s.length!==1)break;e=s[0].properties.cluster_id}return t}_appendLeaves(e,t,s,n,o){const l=this.getChildren(t);for(const u of l){const i=u.properties;if(i&&i.cluster?o+i.point_count<=n?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,s,n,o):o<n?o++:e.push(u),e.length===s)break}return o}_createTree(e){const t=new G(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let s=0;s<e.length;s+=this.stride)t.add(e[s],e[s+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,s,n,o,l){for(const u of e){const i=u*this.stride,h=t[i+O]>1;let d,c,p;if(h)d=ge(t,i,this.clusterProps),c=t[i],p=t[i+1];else{const g=this.points[t[i+P]];d=g.properties;const[y,v]=g.geometry.coordinates;c=F(y),p=D(v)}const f={type:1,geometry:[[Math.round(this.options.extent*(c*o-s)),Math.round(this.options.extent*(p*o-n))]],tags:d};let m;h||this.options.generateId?m=t[i+P]:m=this.points[t[i+P]].id,m!==void 0&&(f.id=m),l.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:s,extent:n,reduce:o,minPoints:l}=this.options,u=s/(n*Math.pow(2,t)),i=e.data,h=[],d=this.stride;for(let c=0;c<i.length;c+=d){if(i[c+x]<=t)continue;i[c+x]=t;const p=i[c],f=i[c+1],m=e.within(i[c],i[c+1],u),g=i[c+O];let y=g;for(const v of m){const k=v*d;i[k+x]>t&&(y+=i[k+O])}if(y>g&&y>=l){let v=p*g,k=f*g,M,j=-1;const q=((c/d|0)<<5)+(t+1)+this.points.length;for(const z of m){const b=z*d;if(i[b+x]<=t)continue;i[b+x]=t;const N=i[b+O];v+=i[b]*N,k+=i[b+1]*N,i[b+K]=q,o&&(M||(M=this._map(i,c,!0),j=this.clusterProps.length,this.clusterProps.push(M)),o(M,this._map(i,b)))}i[c+K]=q,h.push(v/y,k/y,1/0,q,-1,y),o&&h.push(j)}else{for(let v=0;v<d;v++)h.push(i[c+v]);if(y>1)for(const v of m){const k=v*d;if(!(i[k+x]<=t)){i[k+x]=t;for(let M=0;M<d;M++)h.push(i[k+M])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,s){if(e[t+O]>1){const l=this.clusterProps[e[t+pe]];return s?Object.assign({},l):l}const n=this.points[e[t+P]].properties,o=this.options.map(n);return s&&o===n?Object.assign({},o):o}}function me(r,e,t){return{type:"Feature",id:r[e+P],properties:ge(r,e,t),geometry:{type:"Point",coordinates:[Ve(r[e]),Ge(r[e+1])]}}}function ge(r,e,t){const s=r[e+O],n=s>=1e4?`${Math.round(s/1e3)}k`:s>=1e3?`${Math.round(s/100)/10}k`:s,o=r[e+pe],l=o===-1?{}:Object.assign({},t[o]);return Object.assign(l,{cluster:!0,cluster_id:r[e+P],point_count:s,point_count_abbreviated:n})}function F(r){return r/360+.5}function D(r){const e=Math.sin(r*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function Ve(r){return(r-.5)*360}function Ge(r){const e=(180-r*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".mapdiv[data-v-543ca811]{width:100%;height:100%}.info-window-wrapper[data-v-7138f548]{display:none}.mapdiv .info-window-wrapper[data-v-7138f548]{display:inline-block}.custom-marker-wrapper[data-v-4b2eafc1]{display:none}.mapdiv .custom-marker-wrapper[data-v-4b2eafc1]{display:inline-block}")),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
(function(v,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(v=typeof globalThis<"u"?globalThis:v||self,l(v.Vue3GoogleMap={},v.Vue))})(this,function(v,l){"use strict";var ft=Object.defineProperty;var mt=(v,l,M)=>l in v?ft(v,l,{enumerable:!0,configurable:!0,writable:!0,value:M}):v[l]=M;var Q=(v,l,M)=>(mt(v,typeof l!="symbol"?l+"":l,M),M);const M=Symbol("map"),A=Symbol("api"),ee=Symbol("marker"),te=Symbol("markerCluster"),D=Symbol("CustomMarker"),se=Symbol("mapTilesLoaded"),T=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

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

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function J(r,e){var t={};for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&e.indexOf(s)<0&&(t[s]=r[s]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,s=Object.getOwnPropertySymbols(r);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(r,s[n])&&(t[s[n]]=r[s[n]]);return t}class C{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 ${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(C.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>C.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(C.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const He=(r,e,t,s)=>{const n=ye(r.getBounds(),e,s);return t.filter(o=>n.contains(C.getPosition(o)))},ye=(r,e,t)=>{const{northEast:s,southWest:n}=We(r,e),o=Ke({northEast:s,southWest:n},t);return Je(o,e)},we=(r,e,t)=>{const s=ye(r,e,t),n=s.getNorthEast(),o=s.getSouthWest();return[o.lng(),o.lat(),n.lng(),n.lat()]},We=(r,e)=>({northEast:e.fromLatLngToDivPixel(r.getNorthEast()),southWest:e.fromLatLngToDivPixel(r.getSouthWest())}),Ke=({northEast:r,southWest:e},t)=>(r.x+=t,r.y-=t,e.x-=t,e.y+=t,{northEast:r,southWest:e}),Je=({northEast:r,southWest:e},t)=>{const s=t.fromDivPixelToLatLng(e),n=t.fromDivPixelToLatLng(r);return new google.maps.LatLngBounds(s,n)};class ve{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return Xe(e)}}class Ye extends ve{constructor(e){var{viewportPadding:t=60}=e,s=J(e,["viewportPadding"]);super(s),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:s}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:He(t,s,e,this.viewportPadding),map:t,mapCanvasProjection:s})}}}const Xe=r=>r.map(t=>new $({position:C.getPosition(t),markers:[t]}));class Qe extends ve{constructor(e){var{maxZoom:t,radius:s=60}=e,n=J(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new fe(Object.assign({maxZoom:this.maxZoom,radius:s},n))}calculate(e){let t=!1;const s={zoom:e.map.getZoom()};if(!S(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const n=this.markers.map(o=>{const l=C.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[l.lng(),l.lat()]},properties:{marker:o}}});this.superCluster.load(n)}return t||(this.state.zoom<=this.maxZoom||s.zoom<=this.maxZoom)&&(t=!S(this.state,s)),this.state=s,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:s}){if(s.cluster)return new $({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const n=s.marker;return new $({markers:[n],position:C.getPosition(n)})}}class et extends Ye{constructor(e){var{maxZoom:t,radius:s=60,viewportPadding:n=60}=e,o=J(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:n}),this.superCluster=new fe(Object.assign({maxZoom:this.maxZoom,radius:s},o)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:we(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let s=!S(this.state,t);if(!S(e.markers,this.markers)){s=!0,this.markers=[...e.markers];const n=this.markers.map(o=>{const l=C.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[l.lng(),l.lat()]},properties:{marker:o}}});this.superCluster.load(n)}return s&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:s}}cluster({map:e,mapCanvasProjection:t}){const s={zoom:Math.round(e.getZoom()),view:we(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(s.view,s.zoom).map(n=>this.transformCluster(n))}transformCluster({geometry:{coordinates:[e,t]},properties:s}){if(s.cluster)return new $({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const n=s.marker;return new $({markers:[n],position:C.getPosition(n)})}}class tt{constructor(e,t){this.markers={sum:e.length};const s=t.map(o=>o.count),n=s.reduce((o,l)=>o+l,0);this.clusters={count:t.length,markers:{mean:n/t.length,sum:n,min:Math.min(...s),max:Math.max(...s)}}}}class st{render({count:e,position:t},s,n){const l=`<svg fill="${e>Math.max(10,s.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">
***************************************************************************** */function Ce(n,e,t,s){function r(o){return o instanceof t?o:new t(function(a){a(o)})}return new(t||(t=Promise))(function(o,a){function c(d){try{h(s.next(d))}catch(u){a(u)}}function i(d){try{h(s.throw(d))}catch(u){a(u)}}function h(d){d.done?o(d.value):r(d.value).then(c,i)}h((s=s.apply(n,e||[])).next())})}var Me=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,r,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(r=s;r--!==0;)if(!n(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),s=o.length,s!==Object.keys(t).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=s;r--!==0;){var a=o[r];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const re="__googleMapsScriptId";var R;(function(n){n[n.INITIALIZED=0]="INITIALIZED",n[n.LOADING=1]="LOADING",n[n.SUCCESS=2]="SUCCESS",n[n.FAILURE=3]="FAILURE"})(R||(R={}));class L{constructor({apiKey:e,authReferrerPolicy:t,channel:s,client:r,id:o=re,language:a,libraries:c=[],mapIds:i,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=s,this.client=r,this.id=o||re,this.language=a,this.libraries=c,this.mapIds=i,this.nonce=h,this.region=d,this.retries=u,this.url=p,this.version=f,L.instance){if(!Me(this.options,L.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(L.instance.options)}`);return L.instance}L.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?R.FAILURE:this.done?R.SUCCESS:this.loading?R.LOADING:R.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let e=this.url;return e+="?callback=__googleMapsCallback",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(s=>{s?t(s.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 s={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(s).forEach(o=>!s[o]&&delete s[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 a,c,i,h="The Google Maps JavaScript API",d="google",u="importLibrary",p="__ib__",f=document,m=window;m=m[d]||(m[d]={});const g=m.maps||(m.maps={}),y=new Set,w=new URLSearchParams,k=()=>a||(a=new Promise((_,b)=>Ce(this,void 0,void 0,function*(){var P;yield c=f.createElement("script"),c.id=this.id,w.set("libraries",[...y]+"");for(i in o)w.set(i.replace(/[A-Z]/g,B=>"_"+B[0].toLowerCase()),o[i]);w.set("callback",d+".maps."+p),c.src=this.url+"?"+w,g[p]=_,c.onerror=()=>a=b(Error(h+" could not load.")),c.nonce=this.nonce||((P=f.querySelector("script[nonce]"))===null||P===void 0?void 0:P.nonce)||"",f.head.append(c)})));g[u]?console.warn(h+" only loads once. Ignoring:",o):g[u]=(_,...b)=>y.add(_)&&k().then(()=>g[u](_,...b))})(s);const r=this.libraries.map(o=>this.importLibrary(o));r.length||r.push(this.importLibrary("core")),Promise.all(r).then(()=>this.callback(),o=>{const a=new ErrorEvent("error",{error:o});this.loadErrorCallback(a)})}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 be(n){return class extends n.OverlayView{constructor(s){super();Q(this,"element");Q(this,"opts");const{element:r,...o}=s;this.element=r,this.opts=o,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof n.LatLng?this.opts.position:new n.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const s=this.element;return s.style.display!=="none"&&s.style.visibility!=="hidden"&&(s.style.opacity===""||Number(s.style.opacity)>.01)}onAdd(){if(!this.element)return;const s=this.getPanes();s&&s.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const s=this.getProjection(),r=s==null?void 0:s.fromLatLngToDivPixel(this.getPosition());if(r){this.element.style.position="absolute";const o=this.element.offsetHeight,a=this.element.offsetWidth;let c,i;switch(this.opts.anchorPoint){case"TOP_CENTER":c=r.x-a/2,i=r.y;break;case"BOTTOM_CENTER":c=r.x-a/2,i=r.y-o;break;case"LEFT_CENTER":c=r.x,i=r.y-o/2;break;case"RIGHT_CENTER":c=r.x-a,i=r.y-o/2;break;case"TOP_LEFT":c=r.x,i=r.y;break;case"TOP_RIGHT":c=r.x-a,i=r.y;break;case"BOTTOM_LEFT":c=r.x,i=r.y-o;break;case"BOTTOM_RIGHT":c=r.x-a,i=r.y-o;break;default:c=r.x-a/2,i=r.y-o/2}this.element.style.left=c+"px",this.element.style.top=i+"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(s){const{element:r,...o}=s;this.element=r,this.opts=o,this.draw()}}}let ne;const oe=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","heading_changed","idle","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","resize","rightclick","tilesloaded","tilt_changed","zoom_changed"],Ee=l.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places"]},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},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}},emits:oe,setup(n,{emit:e}){const t=l.ref(),s=l.ref(!1),r=l.ref(),o=l.ref(),a=l.ref(!1);l.provide(M,r),l.provide(A,o),l.provide(se,a);const c=()=>{const u={...n};Object.keys(u).forEach(g=>{u[g]===void 0&&delete u[g]});const f=g=>{var y;return g?{position:(y=o.value)==null?void 0:y.ControlPosition[g]}:{}},m={scaleControlOptions:n.scaleControlStyle?{style:n.scaleControlStyle}:{},panControlOptions:f(n.panControlPosition),zoomControlOptions:f(n.zoomControlPosition),rotateControlOptions:f(n.rotateControlPosition),streetViewControlOptions:f(n.streetViewControlPosition),fullscreenControlOptions:f(n.fullscreenControlPosition),disableDefaultUI:n.disableDefaultUi};return{...u,...m}},i=l.watch([o,r],([u,p])=>{const f=u,m=p;f&&m&&(f.event.addListenerOnce(m,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:m,libraries:g}=n;ne=new L({apiKey:u,region:p,version:f,language:m,libraries:g})}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=be(o.value);o.value[D]=p,oe.forEach(m=>{var g;(g=r.value)==null||g.addListener(m,y=>e(m,y))}),s.value=!0;const f=Object.keys(n).filter(m=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(m)).map(m=>l.toRef(n,m));l.watch([()=>n.center,()=>n.zoom,...f],([m,g],[y,w])=>{var B,E,U;const{center:k,zoom:_,...b}=c();(B=r.value)==null||B.setOptions(b),g!==void 0&&g!==w&&((E=r.value)==null||E.setZoom(g));const P=!y||m.lng!==y.lng||m.lat!==y.lat;m&&P&&((U=r.value)==null||U.panTo(m))})};return l.onMounted(()=>{n.apiPromise&&n.apiPromise instanceof Promise?n.apiPromise.then(d):(h(),ne.load().then(d))}),l.onBeforeUnmount(()=>{var u;a.value=!1,r.value&&((u=o.value)==null||u.event.clearInstanceListeners(r.value))}),{mapRef:t,ready:s,map:r,api:o,mapTilesLoaded:a}}}),gt="",F=(n,e)=>{const t=n.__vccOpts||n;for(const[s,r]of e)t[s]=r;return t},Pe={ref:"mapRef",class:"mapdiv"};function Oe(n,e,t,s,r,o){return l.openBlock(),l.createElementBlock("div",null,[l.createElementVNode("div",Pe,null,512),l.renderSlot(n.$slots,"default",l.normalizeProps(l.guardReactiveProps({ready:n.ready,map:n.map,api:n.api,mapTilesLoaded:n.mapTilesLoaded})),void 0,!0)])}const Se=F(Ee,[["render",Oe],["__scopeId","data-v-543ca811"]]);function Le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var xe=function n(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,r,o;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(r=s;r--!==0;)if(!n(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),s=o.length,s!==Object.keys(t).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=s;r--!==0;){var a=o[r];if(!n(e[a],t[a]))return!1}return!0}return e!==e&&t!==t};const x=Le(xe),Ie=n=>n==="Marker",Ae=n=>n===D,j=(n,e,t,s)=>{const r=l.ref(),o=l.inject(M,l.ref()),a=l.inject(A,l.ref()),c=l.inject(te,l.ref()),i=l.computed(()=>!!(c.value&&a.value&&(r.value instanceof a.value.Marker||r.value instanceof a.value[D])));return l.watch([o,t],(h,[d,u])=>{var f,m,g;const p=!x(t.value,u)||o.value!==d;!o.value||!a.value||!p||(r.value?(r.value.setOptions(t.value),i.value&&((f=c.value)==null||f.removeMarker(r.value),(m=c.value)==null||m.addMarker(r.value))):(Ie(n)?r.value=l.markRaw(new a.value[n](t.value)):Ae(n)?r.value=l.markRaw(new a.value[n](t.value)):r.value=l.markRaw(new a.value[n]({...t.value,map:o.value})),i.value?(g=c.value)==null||g.addMarker(r.value):r.value.setMap(o.value),e.forEach(y=>{var w;(w=r.value)==null||w.addListener(y,k=>s(y,k))})))},{immediate:!0}),l.onBeforeUnmount(()=>{var h,d;r.value&&((h=a.value)==null||h.event.clearInstanceListeners(r.value),i.value?(d=c.value)==null||d.removeMarker(r.value):r.value.setMap(null))}),r},ie=["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"],Te=l.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:ie,setup(n,{emit:e,expose:t,slots:s}){const r=l.toRef(n,"options"),o=j("Marker",ie,r,e);return l.provide(ee,o),t({marker:o}),()=>{var a;return(a=s.default)==null?void 0:a.call(s)}}}),Re=l.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polyline:j("Polyline",T,t,e)}},render:()=>null}),je=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:j("Polygon",T,t,e)}},render:()=>null}),ae=T.concat(["bounds_changed"]),$e=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:ae,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:j("Rectangle",ae,t,e)}},render:()=>null}),le=T.concat(["center_changed","radius_changed"]),Be=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:le,setup(n,{emit:e}){const t=l.toRef(n,"options");return{circle:j("Circle",le,t,e)}},render:()=>null}),qe=l.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(n,{emit:e}){const t=l.ref(null),s=l.inject(M,l.ref()),r=l.inject(A,l.ref()),o=l.inject(se,l.ref(!1)),a=l.ref(!1),c=l.watch([o,r,t],([d,u,p])=>{u&&d&&p&&(i(n.position),a.value=!0,e("content:loaded"),setTimeout(c,0))},{immediate:!0}),i=d=>{if(s.value&&r.value&&t.value){const u=r.value.ControlPosition[d];s.value.controls[u].push(t.value)}},h=d=>{if(s.value&&r.value){let u=null;const p=r.value.ControlPosition[d];s.value.controls[p].forEach((f,m)=>{f===t.value&&(u=m)}),u!==null&&s.value.controls[p].removeAt(u)}};return l.onBeforeUnmount(()=>h(n.position)),l.watch(()=>n.position,(d,u)=>{h(u),i(d)}),l.watch(()=>n.index,d=>{d&&t.value&&(t.value.index=n.index)}),{controlRef:t,showContent:a}}}),Ne={ref:"controlRef"};function Ze(n,e,t,s,r,o){return l.withDirectives((l.openBlock(),l.createElementBlock("div",Ne,[l.renderSlot(n.$slots,"default")],512)),[[l.vShow,n.showContent]])}const Ue=F(qe,[["render",Ze]]),ce=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],De=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})}},emits:ce,setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.ref(),a=l.inject(M,l.ref()),c=l.inject(A,l.ref()),i=l.inject(ee,l.ref());let h;const d=l.computed(()=>{var f;return(f=e.default)==null?void 0:f.call(e).some(m=>m.type!==l.Comment)}),u=f=>{var m;return(m=r.value)==null?void 0:m.open({map:a.value,anchor:i.value,...f})},p=()=>{var f;return(f=r.value)==null?void 0:f.close()};return l.onMounted(()=>{l.watch([a,()=>n.options],([f,m],[g,y])=>{const w=!x(m,y)||a.value!==g;a.value&&c.value&&w&&(r.value?(r.value.setOptions({...m,content:d.value?o.value:m.content}),i.value||u()):(r.value=l.markRaw(new c.value.InfoWindow({...m,content:d.value?o.value:m.content})),i.value?h=i.value.addListener("click",()=>{u()}):u(),ce.forEach(k=>{var _;(_=r.value)==null||_.addListener(k,b=>t(k,b))})))},{immediate:!0})}),l.onBeforeUnmount(()=>{var f;h&&h.remove(),r.value&&((f=c.value)==null||f.event.clearInstanceListeners(r.value),p())}),s({infoWindow:r,open:u,close:p}),{infoWindow:r,infoWindowRef:o,hasSlotContent:d,open:u,close:p}}}),yt="",Fe={key:0,class:"info-window-wrapper"};function ze(n,e,t,s,r,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",Fe,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const Ve=F(De,[["render",ze],["__scopeId","data-v-7138f548"]]),ue=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],G=1,q=8;class H{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,s]=new Uint8Array(e,0,2);if(t!==219)throw new Error("Data does not appear to be in a KDBush format.");const r=s>>4;if(r!==G)throw new Error(`Got v${r} data when expected v${G}.`);const o=ue[s&15];if(!o)throw new Error("Unrecognized array type.");const[a]=new Uint16Array(e,2,1),[c]=new Uint32Array(e,4,1);return new H(c,a,o,e)}constructor(e,t=64,s=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=s,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const o=ue.indexOf(this.ArrayType),a=e*2*this.ArrayType.BYTES_PER_ELEMENT,c=e*this.IndexArrayType.BYTES_PER_ELEMENT,i=(8-c%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${s}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,q,e),this.coords=new this.ArrayType(this.data,q+c+i,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(q+a+c+i),this.ids=new this.IndexArrayType(this.data,q,e),this.coords=new this.ArrayType(this.data,q+c+i,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(G<<4)+o]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const s=this._pos>>1;return this.ids[s]=s,this.coords[this._pos++]=e,this.coords[this._pos++]=t,s}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return W(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,s,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:a,nodeSize:c}=this,i=[0,o.length-1,0],h=[];for(;i.length;){const d=i.pop()||0,u=i.pop()||0,p=i.pop()||0;if(u-p<=c){for(let y=p;y<=u;y++){const w=a[2*y],k=a[2*y+1];w>=e&&w<=s&&k>=t&&k<=r&&h.push(o[y])}continue}const f=p+u>>1,m=a[2*f],g=a[2*f+1];m>=e&&m<=s&&g>=t&&g<=r&&h.push(o[f]),(d===0?e<=m:t<=g)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?s>=m:r>=g)&&(i.push(f+1),i.push(u),i.push(1-d))}return h}within(e,t,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:o,nodeSize:a}=this,c=[0,r.length-1,0],i=[],h=s*s;for(;c.length;){const d=c.pop()||0,u=c.pop()||0,p=c.pop()||0;if(u-p<=a){for(let y=p;y<=u;y++)he(o[2*y],o[2*y+1],e,t)<=h&&i.push(r[y]);continue}const f=p+u>>1,m=o[2*f],g=o[2*f+1];he(m,g,e,t)<=h&&i.push(r[f]),(d===0?e-s<=m:t-s<=g)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+s>=m:t+s>=g)&&(c.push(f+1),c.push(u),c.push(1-d))}return i}}function W(n,e,t,s,r,o){if(r-s<=t)return;const a=s+r>>1;de(n,e,a,s,r,o),W(n,e,t,s,a-1,1-o),W(n,e,t,a+1,r,1-o)}function de(n,e,t,s,r,o){for(;r>s;){if(r-s>600){const h=r-s+1,d=t-s+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),m=Math.max(s,Math.floor(t-d*p/h+f)),g=Math.min(r,Math.floor(t+(h-d)*p/h+f));de(n,e,t,m,g,o)}const a=e[2*t+o];let c=s,i=r;for(N(n,e,s,t),e[2*r+o]>a&&N(n,e,s,r);c<i;){for(N(n,e,c,i),c++,i--;e[2*c+o]<a;)c++;for(;e[2*i+o]>a;)i--}e[2*s+o]===a?N(n,e,s,i):(i++,N(n,e,i,r)),i<=t&&(s=i+1),t<=i&&(r=i-1)}}function N(n,e,t,s){K(n,t,s),K(e,2*t,2*s),K(e,2*t+1,2*s+1)}function K(n,e,t){const s=n[e];n[e]=n[t],n[t]=s}function he(n,e,t,s){const r=n-t,o=e-s;return r*r+o*o}const Ge={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:n=>n},pe=Math.fround||(n=>e=>(n[0]=+e,n[0]))(new Float32Array(1)),I=2,O=3,J=4,S=5,fe=6;class me{constructor(e){this.options=Object.assign(Object.create(Ge),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:s,maxZoom:r}=this.options;t&&console.time("total time");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const a=[];for(let i=0;i<e.length;i++){const h=e[i];if(!h.geometry)continue;const[d,u]=h.geometry.coordinates,p=pe(z(d)),f=pe(V(u));a.push(p,f,1/0,i,-1,1),this.options.reduce&&a.push(0)}let c=this.trees[r+1]=this._createTree(a);t&&console.timeEnd(o);for(let i=r;i>=s;i--){const h=+Date.now();c=this.trees[i]=this._createTree(this._cluster(c,i)),t&&console.log("z%d: %d clusters in %dms",i,c.numItems,+Date.now()-h)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let s=((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 a=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)s=-180,o=180;else if(s>o){const u=this.getClusters([s,r,180,a],t),p=this.getClusters([-180,r,o,a],t);return u.concat(p)}const c=this.trees[this._limitZoom(t)],i=c.range(z(s),V(a),z(o),V(r)),h=c.data,d=[];for(const u of i){const p=this.stride*u;d.push(h[p+S]>1?ge(h,p,this.clusterProps):this.points[h[p+O]])}return d}getChildren(e){const t=this._getOriginId(e),s=this._getOriginZoom(e),r="No cluster with the specified id.",o=this.trees[s];if(!o)throw new Error(r);const a=o.data;if(t*this.stride>=a.length)throw new Error(r);const c=this.options.radius/(this.options.extent*Math.pow(2,s-1)),i=a[t*this.stride],h=a[t*this.stride+1],d=o.within(i,h,c),u=[];for(const p of d){const f=p*this.stride;a[f+J]===e&&u.push(a[f+S]>1?ge(a,f,this.clusterProps):this.points[a[f+O]])}if(u.length===0)throw new Error(r);return u}getLeaves(e,t,s){t=t||10,s=s||0;const r=[];return this._appendLeaves(r,e,t,s,0),r}getTile(e,t,s){const r=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:a,radius:c}=this.options,i=c/a,h=(s-i)/o,d=(s+1+i)/o,u={features:[]};return this._addTileFeatures(r.range((t-i)/o,h,(t+1+i)/o,d),r.data,t,s,o,u),t===0&&this._addTileFeatures(r.range(1-i/o,h,1,d),r.data,o,s,o,u),t===o-1&&this._addTileFeatures(r.range(0,h,i/o,d),r.data,-1,s,o,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const s=this.getChildren(e);if(t++,s.length!==1)break;e=s[0].properties.cluster_id}return t}_appendLeaves(e,t,s,r,o){const a=this.getChildren(t);for(const c of a){const i=c.properties;if(i&&i.cluster?o+i.point_count<=r?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,s,r,o):o<r?o++:e.push(c),e.length===s)break}return o}_createTree(e){const t=new H(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let s=0;s<e.length;s+=this.stride)t.add(e[s],e[s+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,s,r,o,a){for(const c of e){const i=c*this.stride,h=t[i+S]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const g=this.points[t[i+O]];d=g.properties;const[y,w]=g.geometry.coordinates;u=z(y),p=V(w)}const f={type:1,geometry:[[Math.round(this.options.extent*(u*o-s)),Math.round(this.options.extent*(p*o-r))]],tags:d};let m;h||this.options.generateId?m=t[i+O]:m=this.points[t[i+O]].id,m!==void 0&&(f.id=m),a.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:s,extent:r,reduce:o,minPoints:a}=this.options,c=s/(r*Math.pow(2,t)),i=e.data,h=[],d=this.stride;for(let u=0;u<i.length;u+=d){if(i[u+I]<=t)continue;i[u+I]=t;const p=i[u],f=i[u+1],m=e.within(i[u],i[u+1],c),g=i[u+S];let y=g;for(const w of m){const k=w*d;i[k+I]>t&&(y+=i[k+S])}if(y>g&&y>=a){let w=p*g,k=f*g,_,b=-1;const P=((u/d|0)<<5)+(t+1)+this.points.length;for(const B of m){const E=B*d;if(i[E+I]<=t)continue;i[E+I]=t;const U=i[E+S];w+=i[E]*U,k+=i[E+1]*U,i[E+J]=P,o&&(_||(_=this._map(i,u,!0),b=this.clusterProps.length,this.clusterProps.push(_)),o(_,this._map(i,E)))}i[u+J]=P,h.push(w/y,k/y,1/0,P,-1,y),o&&h.push(b)}else{for(let w=0;w<d;w++)h.push(i[u+w]);if(y>1)for(const w of m){const k=w*d;if(!(i[k+I]<=t)){i[k+I]=t;for(let _=0;_<d;_++)h.push(i[k+_])}}}}return h}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,s){if(e[t+S]>1){const a=this.clusterProps[e[t+fe]];return s?Object.assign({},a):a}const r=this.points[e[t+O]].properties,o=this.options.map(r);return s&&o===r?Object.assign({},o):o}}function ge(n,e,t){return{type:"Feature",id:n[e+O],properties:ye(n,e,t),geometry:{type:"Point",coordinates:[He(n[e]),We(n[e+1])]}}}function ye(n,e,t){const s=n[e+S],r=s>=1e4?`${Math.round(s/1e3)}k`:s>=1e3?`${Math.round(s/100)/10}k`:s,o=n[e+fe],a=o===-1?{}:Object.assign({},t[o]);return Object.assign(a,{cluster:!0,cluster_id:n[e+O],point_count:s,point_count_abbreviated:r})}function z(n){return n/360+.5}function V(n){const e=Math.sin(n*Math.PI/180),t=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return t<0?0:t>1?1:t}function He(n){return(n-.5)*360}function We(n){const e=(180-n*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function Y(n,e){var t={};for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&e.indexOf(s)<0&&(t[s]=n[s]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(n);r<s.length;r++)e.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(n,s[r])&&(t[s[r]]=n[s[r]]);return t}class C{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 Z{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(C.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>C.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(C.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const Ke=(n,e,t,s)=>{const r=we(n.getBounds(),e,s);return t.filter(o=>r.contains(C.getPosition(o)))},we=(n,e,t)=>{const{northEast:s,southWest:r}=Je(n,e),o=Ye({northEast:s,southWest:r},t);return Xe(o,e)},ve=(n,e,t)=>{const s=we(n,e,t),r=s.getNorthEast(),o=s.getSouthWest();return[o.lng(),o.lat(),r.lng(),r.lat()]},Je=(n,e)=>({northEast:e.fromLatLngToDivPixel(n.getNorthEast()),southWest:e.fromLatLngToDivPixel(n.getSouthWest())}),Ye=({northEast:n,southWest:e},t)=>(n.x+=t,n.y-=t,e.x-=t,e.y+=t,{northEast:n,southWest:e}),Xe=({northEast:n,southWest:e},t)=>{const s=t.fromDivPixelToLatLng(e),r=t.fromDivPixelToLatLng(n);return new google.maps.LatLngBounds(s,r)};class ke{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return et(e)}}class Qe extends ke{constructor(e){var{viewportPadding:t=60}=e,s=Y(e,["viewportPadding"]);super(s),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:s}){return t.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:Ke(t,s,e,this.viewportPadding),map:t,mapCanvasProjection:s})}}}const et=n=>n.map(t=>new Z({position:C.getPosition(t),markers:[t]}));class tt extends ke{constructor(e){var{maxZoom:t,radius:s=60}=e,r=Y(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new me(Object.assign({maxZoom:this.maxZoom,radius:s},r))}calculate(e){let t=!1;const s={zoom:e.map.getZoom()};if(!x(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const a=C.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return t||(this.state.zoom<=this.maxZoom||s.zoom<=this.maxZoom)&&(t=!x(this.state,s)),this.state=s,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:s}){if(s.cluster)return new Z({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=s.marker;return new Z({markers:[r],position:C.getPosition(r)})}}class st extends Qe{constructor(e){var{maxZoom:t,radius:s=60,viewportPadding:r=60}=e,o=Y(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:r}),this.superCluster=new me(Object.assign({maxZoom:this.maxZoom,radius:s},o)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t={zoom:Math.round(e.map.getZoom()),view:ve(e.map.getBounds(),e.mapCanvasProjection,this.viewportPadding)};let s=!x(this.state,t);if(!x(e.markers,this.markers)){s=!0,this.markers=[...e.markers];const r=this.markers.map(o=>{const a=C.getPosition(o);return{type:"Feature",geometry:{type:"Point",coordinates:[a.lng(),a.lat()]},properties:{marker:o}}});this.superCluster.load(r)}return s&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:s}}cluster({map:e,mapCanvasProjection:t}){const s={zoom:Math.round(e.getZoom()),view:ve(e.getBounds(),t,this.viewportPadding)};return this.superCluster.getClusters(s.view,s.zoom).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:s}){if(s.cluster)return new Z({markers:this.superCluster.getLeaves(s.cluster_id,1/0).map(o=>o.properties.marker),position:{lat:t,lng:e}});const r=s.marker;return new Z({markers:[r],position:C.getPosition(r)})}}class rt{constructor(e,t){this.markers={sum:e.length};const s=t.map(o=>o.count),r=s.reduce((o,a)=>o+a,0);this.clusters={count:t.length,markers:{mean:r/t.length,sum:r,min:Math.min(...s),max:Math.max(...s)}}}}class nt{render({count:e,position:t},s,r){const a=`<svg fill="${e>Math.max(10,s.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" />

@@ -21,2 +34,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>`,u=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(C.isAdvancedMarkerAvailable(n)){const d=document.createElement("div");d.innerHTML=l;const c=d.firstElementChild;c.setAttribute("transform","translate(0 25)");const p={map:n,position:t,zIndex:i,title:u,content:c};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:i,title:u,icon:{url:`data:image/svg+xml;base64,${btoa(l)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function nt(r,e){for(let t in e.prototype)r.prototype[t]=e.prototype[t]}class Y{constructor(){nt(Y,google.maps.OverlayView)}}var I;(function(r){r.CLUSTERING_BEGIN="clusteringbegin",r.CLUSTERING_END="clusteringend",r.CLUSTER_CLICK="click"})(I||(I={}));const rt=(r,e,t)=>{t.fitBounds(e.bounds)};class ot extends Y{constructor({map:e,markers:t=[],algorithmOptions:s={},algorithm:n=new Qe(s),renderer:o=new st,onClusterClick:l=rt}){super(),this.markers=[...t],this.clusters=[],this.algorithm=n,this.renderer=o,this.onClusterClick=l,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(s=>{this.addMarker(s,!0)}),t||this.render()}removeMarker(e,t){const s=this.markers.indexOf(e);return s===-1?!1:(C.setMap(e,null),this.markers.splice(s,1),t||this.render(),!0)}removeMarkers(e,t){let s=!1;return e.forEach(n=>{s=this.removeMarker(n,!0)||s}),s&&!t&&this.render(),s}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,I.CLUSTERING_BEGIN,this);const{clusters:t,changed:s}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(s||s==null){const n=new Set;for(const l of t)l.markers.length==1&&n.add(l.markers[0]);const o=[];for(const l of this.clusters)l.marker!=null&&(l.markers.length==1?n.has(l.marker)||C.setMap(l.marker,null):o.push(l.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>o.forEach(l=>C.setMap(l,null)))}google.maps.event.trigger(this,I.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=>C.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new tt(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(s=>{s.markers.length===1?s.marker=s.markers[0]:(s.marker=this.renderer.render(s,e,t),s.markers.forEach(n=>C.setMap(n,null)),this.onClusterClick&&s.marker.addListener("click",n=>{google.maps.event.trigger(this,I.CLUSTER_CLICK,s),this.onClusterClick(n,s,t)})),C.setMap(s.marker,t)})}}const ke=Object.values(I),it=a.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:ke,setup(r,{emit:e,expose:t,slots:s}){const n=a.ref(),o=a.inject(_,a.ref()),l=a.inject(L,a.ref());return a.provide(ee,n),a.watch(o,()=>{o.value&&(n.value=a.markRaw(new ot({map:o.value,algorithm:new et(r.options.algorithmOptions??{}),...r.options})),ke.forEach(u=>{var i;(i=n.value)==null||i.addListener(u,h=>e(u,h))}))},{immediate:!0}),a.onBeforeUnmount(()=>{var u;n.value&&((u=l.value)==null||u.event.clearInstanceListeners(n.value),n.value.clearMarkers(),n.value.setMap(null))}),t({markerCluster:n}),()=>{var u;return(u=s.default)==null?void 0:u.call(s)}}}),at=a.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(r,{slots:e,emit:t,expose:s}){const n=a.ref(),o=a.computed(()=>{var i;return(i=e.default)==null?void 0:i.call(e).some(h=>h.type!==a.Comment)}),l=a.computed(()=>({...r.options,element:n.value})),u=A(Z,[],l,t);return s({customMarker:u}),{customMarkerRef:n,customMarker:u,hasSlotContent:o}}}),gt="",lt={key:0,class:"custom-marker-wrapper"};function ct(r,e,t,s,n,o){return r.hasSlotContent?(a.openBlock(),a.createElementBlock("div",lt,[a.createElementVNode("div",a.mergeProps({ref:"customMarkerRef",style:{cursor:r.$attrs.onClick?"pointer":void 0}},r.$attrs),[a.renderSlot(r.$slots,"default",{},void 0,!0)],16)])):a.createCommentVNode("",!0)}const ut=U(at,[["render",ct],["__scopeId","data-v-cab807c1"]]),dt=a.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(r){const e=a.ref(),t=a.inject(_,a.ref()),s=a.inject(L,a.ref());return a.watch([t,()=>r.options],([n,o],[l,u])=>{var h;const i=!S(o,u)||t.value!==l;if(t.value&&s.value&&i){const d=structuredClone(o);if(d.data&&!(d.data instanceof s.value.MVCArray)){const c=s.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 s.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),a.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});w.Circle=Be,w.CustomControl=Ne,w.CustomMarker=ut,w.GoogleMap=Oe,w.HeatmapLayer=dt,w.InfoWindow=De,w.Marker=Te,w.MarkerCluster=it,w.Polygon=Ie,w.Polyline=Ae,w.Rectangle=je,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
</svg>`,c=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(C.isAdvancedMarkerAvailable(r)){const d=document.createElement("div");d.innerHTML=a;const u=d.firstElementChild;u.setAttribute("transform","translate(0 25)");const p={map:r,position:t,zIndex:i,title:c,content:u};return new google.maps.marker.AdvancedMarkerElement(p)}const h={position:t,zIndex:i,title:c,icon:{url:`data:image/svg+xml;base64,${btoa(a)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(h)}}function ot(n,e){for(let t in e.prototype)n.prototype[t]=e.prototype[t]}class X{constructor(){ot(X,google.maps.OverlayView)}}var $;(function(n){n.CLUSTERING_BEGIN="clusteringbegin",n.CLUSTERING_END="clusteringend",n.CLUSTER_CLICK="click"})($||($={}));const it=(n,e,t)=>{t.fitBounds(e.bounds)};class at extends X{constructor({map:e,markers:t=[],algorithmOptions:s={},algorithm:r=new tt(s),renderer:o=new nt,onClusterClick:a=it}){super(),this.markers=[...t],this.clusters=[],this.algorithm=r,this.renderer=o,this.onClusterClick=a,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach(s=>{this.addMarker(s,!0)}),t||this.render()}removeMarker(e,t){const s=this.markers.indexOf(e);return s===-1?!1:(C.setMap(e,null),this.markers.splice(s,1),t||this.render(),!0)}removeMarkers(e,t){let s=!1;return e.forEach(r=>{s=this.removeMarker(r,!0)||s}),s&&!t&&this.render(),s}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,$.CLUSTERING_BEGIN,this);const{clusters:t,changed:s}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(s||s==null){const r=new Set;for(const a of t)a.markers.length==1&&r.add(a.markers[0]);const o=[];for(const a of this.clusters)a.marker!=null&&(a.markers.length==1?r.has(a.marker)||C.setMap(a.marker,null):o.push(a.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame(()=>o.forEach(a=>C.setMap(a,null)))}google.maps.event.trigger(this,$.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=>C.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new rt(this.markers,this.clusters),t=this.getMap();this.clusters.forEach(s=>{s.markers.length===1?s.marker=s.markers[0]:(s.marker=this.renderer.render(s,e,t),s.markers.forEach(r=>C.setMap(r,null)),this.onClusterClick&&s.marker.addListener("click",r=>{google.maps.event.trigger(this,$.CLUSTER_CLICK,s),this.onClusterClick(r,s,t)})),C.setMap(s.marker,t)})}}const _e=Object.values($),lt=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:_e,setup(n,{emit:e,expose:t,slots:s}){const r=l.ref(),o=l.inject(M,l.ref()),a=l.inject(A,l.ref());return l.provide(te,r),l.watch(o,()=>{o.value&&(r.value=l.markRaw(new at({map:o.value,algorithm:new st(n.options.algorithmOptions??{}),...n.options})),_e.forEach(c=>{var i;(i=r.value)==null||i.addListener(c,h=>e(c,h))}))},{immediate:!0}),l.onBeforeUnmount(()=>{var c;r.value&&((c=a.value)==null||c.event.clearInstanceListeners(r.value),r.value.clearMarkers(),r.value.setMap(null))}),t({markerCluster:r}),()=>{var c;return(c=s.default)==null?void 0:c.call(s)}}}),ct=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.computed(()=>{var i;return(i=e.default)==null?void 0:i.call(e).some(h=>h.type!==l.Comment)}),a=l.computed(()=>({...n.options,element:r.value})),c=j(D,[],a,t);return s({customMarker:c}),{customMarkerRef:r,customMarker:c,hasSlotContent:o}}}),wt="",ut={key:0,class:"custom-marker-wrapper"};function dt(n,e,t,s,r,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",ut,[l.createElementVNode("div",l.mergeProps({ref:"customMarkerRef",style:{cursor:n.$attrs.onClick?"pointer":void 0}},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const ht=F(ct,[["render",dt],["__scopeId","data-v-4b2eafc1"]]),pt=l.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(n){const e=l.ref(),t=l.inject(M,l.ref()),s=l.inject(A,l.ref());return l.watch([t,()=>n.options],([r,o],[a,c])=>{var h;const i=!x(o,c)||t.value!==a;if(t.value&&s.value&&i){const d=structuredClone(o);if(d.data&&!(d.data instanceof s.value.MVCArray)){const u=s.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 s.value.visualization.HeatmapLayer({...d,map:t.value}))}},{immediate:!0}),l.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});v.Circle=Be,v.CustomControl=Ue,v.CustomMarker=ht,v.GoogleMap=Se,v.HeatmapLayer=pt,v.InfoWindow=Ve,v.Marker=Te,v.MarkerCluster=lt,v.Polygon=je,v.Polyline=Re,v.Rectangle=$e,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});

@@ -0,1 +1,2 @@

/// <reference path="../shims-google-maps.d.ts" />
/// <reference types="google.maps" />

@@ -2,0 +3,0 @@ import { PropType } from "vue";

@@ -391,6 +391,6 @@ /// <reference types="google.maps" />

draggable: boolean;
center: google.maps.LatLng | google.maps.LatLngLiteral;
version: string;
apiKey: string;
libraries: ("geometry" | "drawing" | "localContext" | "places" | "visualization")[];
center: google.maps.LatLng | google.maps.LatLngLiteral;
clickableIcons: boolean;

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

{
"name": "vue3-google-map",
"version": "0.17.0",
"version": "0.17.1",
"license": "MIT",

@@ -54,28 +54,26 @@ "repository": {

"dependencies": {
"@googlemaps/js-api-loader": "^1.12.11",
"@googlemaps/js-api-loader": "^1.16.2",
"@googlemaps/markerclusterer": "^2.4.0",
"fast-deep-equal": "^3.1.3",
"vite-plugin-css-injected-by-js": "^3.2.1"
"fast-deep-equal": "^3.1.3"
},
"devDependencies": {
"@types/google.maps": "^3.45.6",
"@typescript-eslint/eslint-plugin": "^4.25.0",
"@typescript-eslint/parser": "^4.25.0",
"@vitejs/plugin-vue": "^4.2.3",
"@types/google.maps": "^3.53.6",
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"@vitejs/plugin-vue": "^4.3.1",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-typescript": "^7.0.0",
"eslint": "^7.27.0",
"eslint-config-prettier": "^8.2.0",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-vue": "^7.9.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.1.2",
"rimraf": "^3.0.2",
"standard-version": "^9.3.2",
"ttypescript": "^1.5.12",
"typescript": "^5.0.2",
"vite": "^4.4.5",
"vitepress": "^0.14.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-prettier": "^3.4.1",
"eslint-plugin-vue": "^7.20.0",
"prettier": "^2.8.8",
"rimraf": "^5.0.1",
"standard-version": "^9.5.0",
"typescript": "^5.1.6",
"vite": "^4.4.9",
"vite-plugin-css-injected-by-js": "^3.2.1",
"vitepress": "^1.0.0-rc.4",
"vue": "^3.3.4",
"vue-tsc": "^1.8.5"
"vue-tsc": "^1.8.8"
},

@@ -86,4 +84,4 @@ "peerDependencies": {

"engines": {
"node": ">=18.17.0"
"node": ">=16.11.0"
}
}
# vue3-google-map
![Build Status](https://github.com/inocan-group/vue3-google-map/actions/workflows/build.yml/badge.svg)
[![License](https://img.shields.io/github/license/inocan-group/vue3-google-map)](https://github.com/inocan-group/vue3-google-map/blob/develop/LICENSE)

@@ -38,3 +40,3 @@ > Composable components for easy use of Google Maps with Vue 3

# OR
yarn add vue3-google-map
pnpm add vue3-google-map
```

@@ -50,3 +52,3 @@

All the map components are available on the `Vue3GoogeMap` global variable.
All the map components are available on the `Vue3GoogleMap` global variable.

@@ -53,0 +55,0 @@ [Codepen demo](https://codepen.io/husamibrahim/pen/poQXZbR)

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