vue3-google-map
Advanced tools
Comparing version 0.18.0 to 0.19.0
@@ -1,3 +0,3 @@ | ||
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".mapdiv[data-v-174b771e]{width:100%;height:100%}.info-window-wrapper[data-v-90174664]{display:none}.mapdiv .info-window-wrapper[data-v-90174664]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}")),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})(); | ||
"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 z=(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"];/*! ***************************************************************************** | ||
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-f29e129b]{width:100%;height:100%}.custom-control-wrapper[data-v-d099a3a6]{display:none}.mapdiv .custom-control-wrapper[data-v-d099a3a6]{display:inline-block}.info-window-wrapper[data-v-cbe1707b]{display:none}.mapdiv .info-window-wrapper[data-v-cbe1707b]{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(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"),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,3 @@ | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */function Me(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 be=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 S{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,S.instance){if(!be(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}S.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?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+=`®ion=${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,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),v=new Set,y=new URLSearchParams,w=()=>a||(a=new Promise((k,b)=>Me(this,void 0,void 0,function*(){var C;yield c=f.createElement("script"),c.id=this.id,y.set("libraries",[...v]+"");for(i in o)y.set(i.replace(/[A-Z]/g,E=>"_"+E[0].toLowerCase()),o[i]);y.set("callback",d+".maps."+p),c.src=this.url+"?"+y,m[p]=k,c.onerror=()=>a=b(Error(h+" could not load.")),c.nonce=this.nonce||((C=f.querySelector("script[nonce]"))===null||C===void 0?void 0:C.nonce)||"",f.head.append(c)})));m[u]?console.warn(h+" only loads once. Ignoring:",o):m[u]=(k,...b)=>v.add(k)&&w().then(()=>m[u](k,...b))})(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();z(this,"element");z(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(m=>{u[m]===void 0&&delete u[m]});const f=m=>{var v;return m?{position:(v=o.value)==null?void 0:v.ControlPosition[m]}:{}},g={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,...g}},i=l.watch([o,s],([u,p])=>{const f=u,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:g,libraries:m}=n;ee=new S({apiKey:u,region:p,version:f,language:g,libraries:m})}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(g=>{var m;(m=s.value)==null||m.addListener(g,v=>e(g,v))}),r.value=!0;const f=Object.keys(n).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(g)).map(g=>l.toRef(n,g));l.watch([()=>n.center,()=>n.zoom,...f],([g,m],[v,y])=>{var E,M,$;const{center:w,zoom:k,...b}=c();(E=s.value)==null||E.setOptions(b),m!==void 0&&m!==y&&((M=s.value)==null||M.setZoom(m));const C=!v||g.lng!==v.lng||g.lat!==v.lat;g&&C&&(($=s.value)==null||$.panTo(g))})};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 V=(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=V(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 L=Le(Ie),Ae=n=>n==="Marker",Te=n=>n===F,B=(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,g,m;const p=!L(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),(g=c.value)==null||g.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?(m=c.value)==null||m.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=B("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:B("Polyline",T,t,e)}},render:()=>null}),Be=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:B("Polygon",T,t,e)}},render:()=>null}),se=T.concat(["bounds_changed"]),$e=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:se,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:B("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:B("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,g)=>{f===t.value&&(u=g)}),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=V(Ne,[["render",Ue]]),oe=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Fe=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...oe,"update:modelValue"],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,d=n.modelValue;const u=l.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(v=>v.type!==l.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{s.value&&(s.value.open({map:a.value,anchor:i.value,...m}),p(!0))},g=()=>{s.value&&(s.value.close(),p(!1))};return l.onMounted(()=>{l.watch([a,()=>n.options],([m,v],[y,w])=>{var b;const k=!L(v,w)||a.value!==y;a.value&&c.value&&k&&(s.value?(s.value.setOptions({...v,content:u.value?o.value:v.content}),i.value||f()):(s.value=l.markRaw(new c.value.InfoWindow({...v,content:u.value?o.value:v.content})),i.value&&(h=i.value.addListener("click",()=>{f()})),(!i.value||d)&&f(),oe.forEach(C=>{var E;(E=s.value)==null||E.addListener(C,M=>t(C,M))}),(b=s.value)==null||b.addListener("closeclick",()=>p(!1))))},{immediate:!0}),l.watch(()=>n.modelValue,m=>{m!==d&&(m?f():g())})}),l.onBeforeUnmount(()=>{var m;h&&h.remove(),s.value&&((m=c.value)==null||m.event.clearInstanceListeners(s.value),g())}),r({infoWindow:s,open:f,close:g}),{infoWindow:s,infoWindowRef:o,hasSlotContent:u,open:f,close:g}}});const Ve={key:0,class:"info-window-wrapper"};function ze(n,e,t,r,s,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",Ve,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const Ge=V(Fe,[["render",ze],["__scopeId","data-v-90174664"]]),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,g=a[2*f],m=a[2*f+1];g>=e&&g<=r&&m>=t&&m<=s&&h.push(o[f]),(d===0?e<=g:t<=m)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?r>=g:s>=m)&&(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,g=o[2*f],m=o[2*f+1];ae(g,m,e,t)<=h&&i.push(s[f]),(d===0?e-r<=g:t-r<=m)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+r>=g:t+r>=m)&&(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),g=Math.max(r,Math.floor(t-d*p/h+f)),m=Math.min(s,Math.floor(t+(h-d)*p/h+f));me(n,e,t,g,m,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)),x=2,O=3,W=4,P=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+P]>1?ce(h,p,this.clusterProps):this.points[h[p+O]])}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+P]>1?ce(a,f,this.clusterProps):this.points[a[f+O]])}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+P]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const m=this.points[t[i+O]];d=m.properties;const[v,y]=m.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 g;h||this.options.generateId?g=t[i+O]:g=this.points[t[i+O]].id,g!==void 0&&(f.id=g),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+x]<=t)continue;i[u+x]=t;const p=i[u],f=i[u+1],g=e.within(i[u],i[u+1],c),m=i[u+P];let v=m;for(const y of g){const w=y*d;i[w+x]>t&&(v+=i[w+P])}if(v>m&&v>=a){let y=p*m,w=f*m,k,b=-1;const C=((u/d|0)<<5)+(t+1)+this.points.length;for(const E of g){const M=E*d;if(i[M+x]<=t)continue;i[M+x]=t;const $=i[M+P];y+=i[M]*$,w+=i[M+1]*$,i[M+W]=C,o&&(k||(k=this._map(i,u,!0),b=this.clusterProps.length,this.clusterProps.push(k)),o(k,this._map(i,M)))}i[u+W]=C,h.push(y/v,w/v,1/0,C,-1,v),o&&h.push(b)}else{for(let y=0;y<d;y++)h.push(i[u+y]);if(v>1)for(const y of g){const w=y*d;if(!(i[w+x]<=t)){i[w+x]=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+P]>1){const a=this.clusterProps[e[t+ge]];return r?Object.assign({},a):a}const s=this.points[e[t+O]].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+O],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+P],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+O],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}/*! ***************************************************************************** | ||
***************************************************************************** */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 S{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,S.instance){if(!Me(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}S.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?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+=`®ion=${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,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),v=new Set,y=new URLSearchParams,w=()=>a||(a=new Promise((_,M)=>be(this,void 0,void 0,function*(){var C;yield c=f.createElement("script"),c.id=this.id,y.set("libraries",[...v]+"");for(i in o)y.set(i.replace(/[A-Z]/g,E=>"_"+E[0].toLowerCase()),o[i]);y.set("callback",d+".maps."+p),c.src=this.url+"?"+y,m[p]=_,c.onerror=()=>a=M(Error(h+" could not load.")),c.nonce=this.nonce||((C=f.querySelector("script[nonce]"))===null||C===void 0?void 0:C.nonce)||"",f.head.append(c)})));m[u]?console.warn(h+" only loads once. Ignoring:",o):m[u]=(_,...M)=>v.add(_)&&w().then(()=>m[u](_,...M))})(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();z(this,"element");z(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","contextmenu","dblclick","drag","dragend","dragstart","heading_changed","idle","isfractionalzoomenabled_changed","mapcapabilities_changed","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","renderingtype_changed","rightclick","tilesloaded","tilt_changed","zoom_changed"],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},isFractionalZoomEnabled:{type:Boolean,required:!1,default:void 0},keyboardShortcuts:{type:Boolean,required:!1,default:void 0},mapTypeControl:{type:Boolean,required:!1,default:void 0},mapTypeControlOptions:{type:Object,required:!1},mapTypeId:{type:[Number,String],required:!1},mapId:{type:String,required:!1},maxZoom:{type:Number,required:!1},minZoom:{type:Number,required:!1},noClear:{type:Boolean,required:!1,default:void 0},panControl:{type:Boolean,required:!1,default:void 0},panControlPosition:{type:String,required:!1},restriction:{type:Object,required:!1},rotateControl:{type:Boolean,required:!1,default:void 0},rotateControlPosition:{type:String,required:!1},scaleControl:{type:Boolean,required:!1,default:void 0},scaleControlStyle:{type:Number,required:!1},scrollwheel:{type:Boolean,required:!1,default:void 0},streetView:{type:Object,required:!1},streetViewControl:{type:Boolean,required:!1,default:void 0},streetViewControlPosition:{type:String,required:!1},styles:{type:Array,required:!1},tilt:{type:Number,required:!1},zoom:{type:Number,required:!1},zoomControl:{type:Boolean,required:!1,default:void 0},zoomControlPosition:{type:String,required:!1}},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(m=>{u[m]===void 0&&delete u[m]});const f=m=>{var v;return m?{position:(v=o.value)==null?void 0:v.ControlPosition[m]}:{}},g={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,...g}},i=l.watch([o,s],([u,p])=>{const f=u,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:g,libraries:m}=n;ee=new S({apiKey:u,region:p,version:f,language:g,libraries:m})}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(g=>{var m;(m=s.value)==null||m.addListener(g,v=>e(g,v))}),r.value=!0;const f=Object.keys(n).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(g)).map(g=>l.toRef(n,g));l.watch([()=>n.center,()=>n.zoom,...f],([g,m],[v,y])=>{var E,b,$;const{center:w,zoom:_,...M}=c();(E=s.value)==null||E.setOptions(M),m!==void 0&&m!==y&&((b=s.value)==null||b.setZoom(m));const C=!v||g.lng!==v.lng||g.lat!==v.lat;g&&C&&(($=s.value)==null||$.panTo(g))})};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 V=(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=V(Pe,[["render",xe],["__scopeId","data-v-f29e129b"]]);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 L=Le(Ie),Ae=n=>n==="Marker",Te=n=>n===F,B=(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,g,m;const p=!L(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),(g=c.value)==null||g.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?(m=c.value)==null||m.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=B("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:B("Polyline",T,t,e)}},render:()=>null}),Be=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:T,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:B("Polygon",T,t,e)}},render:()=>null}),se=T.concat(["bounds_changed"]),$e=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:se,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:B("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:B("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.watch([o,s,t],([h,d,u])=>{d&&h&&u&&(c(n.position),e("content:loaded"),setTimeout(a,0))},{immediate:!0}),c=h=>{if(r.value&&s.value&&t.value){const d=s.value.ControlPosition[h];r.value.controls[d].push(t.value)}},i=h=>{if(r.value&&s.value){let d=null;const u=s.value.ControlPosition[h];r.value.controls[u].forEach((p,f)=>{p===t.value&&(d=f)}),d!==null&&r.value.controls[u].removeAt(d)}};return l.onBeforeUnmount(()=>i(n.position)),l.watch(()=>n.position,(h,d)=>{i(d),c(h)}),l.watch(()=>n.index,h=>{h&&t.value&&(t.value.index=n.index)}),{controlRef:t}}});const Ze={ref:"controlRef",class:"custom-control-wrapper"};function Ue(n,e,t,r,s,o){return l.openBlock(),l.createElementBlock("div",Ze,[l.renderSlot(n.$slots,"default",{},void 0,!0)],512)}const De=V(Ne,[["render",Ue],["__scopeId","data-v-d099a3a6"]]),oe=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],Fe=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...oe,"update:modelValue"],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,d=n.modelValue;const u=l.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(v=>v.type!==l.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{s.value&&(s.value.open({map:a.value,anchor:i.value,...m}),p(!0))},g=()=>{s.value&&(s.value.close(),p(!1))};return l.onMounted(()=>{l.watch([a,()=>n.options],([m,v],[y,w])=>{var M;const _=!L(v,w)||a.value!==y;a.value&&c.value&&_&&(s.value?(s.value.setOptions({...v,content:u.value?o.value:v.content}),i.value||f()):(s.value=l.markRaw(new c.value.InfoWindow({...v,content:u.value?o.value:v.content})),i.value&&(h=i.value.addListener("click",()=>{f()})),(!i.value||d)&&f(),oe.forEach(C=>{var E;(E=s.value)==null||E.addListener(C,b=>t(C,b))}),(M=s.value)==null||M.addListener("closeclick",()=>p(!1))))},{immediate:!0}),l.watch(()=>n.modelValue,m=>{m!==d&&(m?f():g())})}),l.onBeforeUnmount(()=>{var m;h&&h.remove(),s.value&&((m=c.value)==null||m.event.clearInstanceListeners(s.value),g())}),r({infoWindow:s,open:f,close:g}),{infoWindow:s,infoWindowRef:o,hasSlotContent:u,open:f,close:g}}});const Ve={key:0,class:"info-window-wrapper"};function ze(n,e,t,r,s,o){return n.hasSlotContent?(l.openBlock(),l.createElementBlock("div",Ve,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},n.$attrs),[l.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("",!0)}const Ge=V(Fe,[["render",ze],["__scopeId","data-v-cbe1707b"]]),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,g=a[2*f],m=a[2*f+1];g>=e&&g<=r&&m>=t&&m<=s&&h.push(o[f]),(d===0?e<=g:t<=m)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?r>=g:s>=m)&&(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,g=o[2*f],m=o[2*f+1];ae(g,m,e,t)<=h&&i.push(s[f]),(d===0?e-r<=g:t-r<=m)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+r>=g:t+r>=m)&&(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),g=Math.max(r,Math.floor(t-d*p/h+f)),m=Math.min(s,Math.floor(t+(h-d)*p/h+f));me(n,e,t,g,m,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)),x=2,O=3,W=4,P=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+P]>1?ce(h,p,this.clusterProps):this.points[h[p+O]])}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+P]>1?ce(a,f,this.clusterProps):this.points[a[f+O]])}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+P]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const m=this.points[t[i+O]];d=m.properties;const[v,y]=m.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 g;h||this.options.generateId?g=t[i+O]:g=this.points[t[i+O]].id,g!==void 0&&(f.id=g),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+x]<=t)continue;i[u+x]=t;const p=i[u],f=i[u+1],g=e.within(i[u],i[u+1],c),m=i[u+P];let v=m;for(const y of g){const w=y*d;i[w+x]>t&&(v+=i[w+P])}if(v>m&&v>=a){let y=p*m,w=f*m,_,M=-1;const C=((u/d|0)<<5)+(t+1)+this.points.length;for(const E of g){const b=E*d;if(i[b+x]<=t)continue;i[b+x]=t;const $=i[b+P];y+=i[b]*$,w+=i[b+1]*$,i[b+W]=C,o&&(_||(_=this._map(i,u,!0),M=this.clusterProps.length,this.clusterProps.push(_)),o(_,this._map(i,b)))}i[u+W]=C,h.push(y/v,w/v,1/0,C,-1,v),o&&h.push(M)}else{for(let y=0;y<d;y++)h.push(i[u+y]);if(v>1)for(const y of g){const w=y*d;if(!(i[w+x]<=t)){i[w+x]=t;for(let _=0;_<d;_++)h.push(i[w+_])}}}}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+P]>1){const a=this.clusterProps[e[t+ge]];return r?Object.assign({},a):a}const s=this.points[e[t+O]].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+O],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+P],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+O],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. | ||
@@ -29,3 +29,3 @@ | ||
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(!L(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=!L(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=!L(this.state,t);if(!L(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"> | ||
***************************************************************************** */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 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 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(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 Je=(n,e,t,r)=>{const s=we(n.getBounds(),e,r);return t.filter(o=>s.contains(k.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 _e{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return tt(e)}}class et extends _e{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:k.getPosition(t),markers:[t]}));class rt extends _e{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(!L(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const s=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(s)}return t||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(t=!L(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:k.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=!L(this.state,t);if(!L(e.markers,this.markers)){r=!0,this.markers=[...e.markers];const s=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(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:k.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" /> | ||
@@ -35,2 +35,2 @@ <circle cx="120" cy="120" opacity=".3" r="90" /> | ||
<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text> | ||
</svg>`,c=`Cluster of ${e} markers`,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=B(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=V(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=!L(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=Be;exports.Polyline=je;exports.Rectangle=$e; | ||
</svg>`,c=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(k.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:(k.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)||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,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=>k.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=>k.setMap(s,null)),this.onClusterClick&&r.marker.addListener("click",s=>{google.maps.event.trigger(this,A.CLUSTER_CLICK,r),this.onClusterClick(s,r,t)})),k.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=B(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=V(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=!L(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=Be;exports.Polyline=je;exports.Rectangle=$e; |
@@ -1,7 +0,7 @@ | ||
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".mapdiv[data-v-174b771e]{width:100%;height:100%}.info-window-wrapper[data-v-90174664]{display:none}.mapdiv .info-window-wrapper[data-v-90174664]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}")),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})(); | ||
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-f29e129b]{width:100%;height:100%}.custom-control-wrapper[data-v-d099a3a6]{display:none}.mapdiv .custom-control-wrapper[data-v-d099a3a6]{display:inline-block}.info-window-wrapper[data-v-cbe1707b]{display:none}.mapdiv .info-window-wrapper[data-v-cbe1707b]{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(e){console.error("vite-plugin-css-injected-by-js",e)}})(); | ||
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 P, ref as y, provide as G, watch as O, onMounted as Me, onBeforeUnmount as B, markRaw as I, 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 = [ | ||
import { defineComponent as P, ref as y, provide as G, watch as O, onMounted as Me, onBeforeUnmount as B, markRaw as I, toRef as Z, openBlock as Y, createElementBlock as X, createElementVNode as ae, renderSlot as Q, normalizeProps as Ze, guardReactiveProps as Ne, inject as C, computed as J, Comment as Ee, mergeProps as Pe, createCommentVNode as Oe } from "vue"; | ||
const N = Symbol("map"), U = Symbol("api"), xe = Symbol("marker"), Le = Symbol("markerCluster"), ee = Symbol("CustomMarker"), Se = Symbol("mapTilesLoaded"), q = [ | ||
"click", | ||
@@ -33,3 +33,3 @@ "dblclick", | ||
***************************************************************************** */ | ||
function Fe(n, e, t, s) { | ||
function Ue(n, e, t, s) { | ||
function r(o) { | ||
@@ -61,3 +61,3 @@ return o instanceof t ? o : new t(function(a) { | ||
} | ||
var Ve = function n(e, t) { | ||
var De = function n(e, t) { | ||
if (e === t) | ||
@@ -114,3 +114,3 @@ return !0; | ||
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 || de, this.language = a, this.libraries = l, this.mapIds = i, this.nonce = d, this.region = u, this.retries = c, this.url = h, this.version = p, T.instance) { | ||
if (!Ve(this.options, T.instance.options)) | ||
if (!De(this.options, T.instance.options)) | ||
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(T.instance.options)}`); | ||
@@ -215,3 +215,3 @@ return T.instance; | ||
// @ts-ignore | ||
a || (a = new Promise((_, E) => Fe(this, void 0, void 0, function* () { | ||
a || (a = new Promise((_, E) => Ue(this, void 0, void 0, function* () { | ||
var b; | ||
@@ -267,3 +267,3 @@ yield l = p.createElement("script"), l.id = this.id, v.set("libraries", [...g] + ""); | ||
} | ||
function ze(n) { | ||
function Fe(n) { | ||
return class extends n.OverlayView { | ||
@@ -345,2 +345,3 @@ constructor(s) { | ||
"click", | ||
"contextmenu", | ||
"dblclick", | ||
@@ -352,2 +353,4 @@ "drag", | ||
"idle", | ||
"isfractionalzoomenabled_changed", | ||
"mapcapabilities_changed", | ||
"maptypeid_changed", | ||
@@ -358,3 +361,3 @@ "mousemove", | ||
"projection_changed", | ||
"resize", | ||
"renderingtype_changed", | ||
"rightclick", | ||
@@ -364,3 +367,3 @@ "tilesloaded", | ||
"zoom_changed" | ||
], Ge = P({ | ||
], Ve = P({ | ||
props: { | ||
@@ -447,2 +450,7 @@ apiPromise: { | ||
}, | ||
isFractionalZoomEnabled: { | ||
type: Boolean, | ||
required: !1, | ||
default: void 0 | ||
}, | ||
keyboardShortcuts: { | ||
@@ -557,3 +565,3 @@ type: Boolean, | ||
const t = y(), s = y(!1), r = y(), o = y(), a = y(!1); | ||
G(Z, r), G(D, o), G(Se, a); | ||
G(N, r), G(U, o), G(Se, a); | ||
const l = () => { | ||
@@ -595,3 +603,3 @@ const c = { ...n }; | ||
o.value = I(c.maps), r.value = I(new c.maps.Map(t.value, l())); | ||
const h = ze(o.value); | ||
const h = Fe(o.value); | ||
o.value[ee] = h, pe.forEach((m) => { | ||
@@ -603,3 +611,3 @@ var f; | ||
(m) => !["apiPromise", "apiKey", "version", "libraries", "region", "language", "center", "zoom"].includes(m) | ||
).map((m) => N(n, m)); | ||
).map((m) => Z(n, m)); | ||
O( | ||
@@ -629,17 +637,17 @@ [() => n.center, () => n.zoom, ...p], | ||
return t; | ||
}, He = { | ||
}, ze = { | ||
ref: "mapRef", | ||
class: "mapdiv" | ||
}; | ||
function We(n, e, t, s, r, o) { | ||
function Ge(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) | ||
ae("div", ze, null, 512), | ||
Q(n.$slots, "default", Ze(Ne({ ready: n.ready, map: n.map, api: n.api, mapTilesLoaded: n.mapTilesLoaded })), void 0, !0) | ||
]); | ||
} | ||
const Ot = /* @__PURE__ */ te(Ge, [["render", We], ["__scopeId", "data-v-174b771e"]]); | ||
function Ke(n) { | ||
const Et = /* @__PURE__ */ te(Ve, [["render", Ge], ["__scopeId", "data-v-f29e129b"]]); | ||
function He(n) { | ||
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n; | ||
} | ||
var Je = function n(e, t) { | ||
var We = function n(e, t) { | ||
if (e === t) | ||
@@ -679,4 +687,4 @@ return !0; | ||
}; | ||
const $ = /* @__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( | ||
const $ = /* @__PURE__ */ He(We), Ke = (n) => n === "Marker", Je = (n) => n === ee, D = (n, e, t, s) => { | ||
const r = y(), o = C(N, y()), a = C(U, y()), l = C(Le, y()), i = J( | ||
() => !!(l.value && a.value && (r.value instanceof a.value.Marker || r.value instanceof a.value[ee])) | ||
@@ -689,5 +697,5 @@ ); | ||
const h = !$(t.value, c) || o.value !== u; | ||
!o.value || !a.value || !h || (r.value ? (r.value.setOptions(t.value), i.value && ((p = l.value) == null || p.removeMarker(r.value), (m = l.value) == null || m.addMarker(r.value))) : (Ye(n) ? r.value = I( | ||
!o.value || !a.value || !h || (r.value ? (r.value.setOptions(t.value), i.value && ((p = l.value) == null || p.removeMarker(r.value), (m = l.value) == null || m.addMarker(r.value))) : (Ke(n) ? r.value = I( | ||
new a.value[n](t.value) | ||
) : Xe(n) ? r.value = I( | ||
) : Je(n) ? r.value = I( | ||
new a.value[n](t.value) | ||
@@ -735,3 +743,3 @@ ) : r.value = I( | ||
"visible_changed" | ||
], xt = P({ | ||
], Pt = P({ | ||
name: "Marker", | ||
@@ -746,3 +754,3 @@ props: { | ||
setup(n, { emit: e, expose: t, slots: s }) { | ||
const r = N(n, "options"), o = U("Marker", fe, r, e); | ||
const r = Z(n, "options"), o = D("Marker", fe, r, e); | ||
return G(xe, o), t({ marker: o }), () => { | ||
@@ -753,3 +761,3 @@ var a; | ||
} | ||
}), Lt = P({ | ||
}), Ot = P({ | ||
name: "Polyline", | ||
@@ -764,7 +772,7 @@ props: { | ||
setup(n, { emit: e }) { | ||
const t = N(n, "options"); | ||
return { polyline: U("Polyline", q, t, e) }; | ||
const t = Z(n, "options"); | ||
return { polyline: D("Polyline", q, t, e) }; | ||
}, | ||
render: () => null | ||
}), St = P({ | ||
}), xt = P({ | ||
name: "Polygon", | ||
@@ -779,7 +787,7 @@ props: { | ||
setup(n, { emit: e }) { | ||
const t = N(n, "options"); | ||
return { polygon: U("Polygon", q, t, e) }; | ||
const t = Z(n, "options"); | ||
return { polygon: D("Polygon", q, t, e) }; | ||
}, | ||
render: () => null | ||
}), me = q.concat(["bounds_changed"]), It = P({ | ||
}), me = q.concat(["bounds_changed"]), Lt = P({ | ||
name: "Rectangle", | ||
@@ -794,7 +802,7 @@ props: { | ||
setup(n, { emit: e }) { | ||
const t = N(n, "options"); | ||
return { rectangle: U("Rectangle", me, t, e) }; | ||
const t = Z(n, "options"); | ||
return { rectangle: D("Rectangle", me, t, e) }; | ||
}, | ||
render: () => null | ||
}), ge = q.concat(["center_changed", "radius_changed"]), At = P({ | ||
}), ge = q.concat(["center_changed", "radius_changed"]), St = P({ | ||
name: "Circle", | ||
@@ -809,7 +817,7 @@ props: { | ||
setup(n, { emit: e }) { | ||
const t = N(n, "options"); | ||
return { circle: U("Circle", ge, t, e) }; | ||
const t = Z(n, "options"); | ||
return { circle: D("Circle", ge, t, e) }; | ||
}, | ||
render: () => null | ||
}), Qe = P({ | ||
}), Ye = P({ | ||
props: { | ||
@@ -827,43 +835,45 @@ position: { | ||
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( | ||
const t = y(null), s = C(N, y()), r = C(U, y()), o = C(Se, y(!1)), a = O( | ||
[o, r, t], | ||
([u, c, h]) => { | ||
c && u && h && (i(n.position), a.value = !0, e("content:loaded"), setTimeout(l, 0)); | ||
([d, u, c]) => { | ||
u && d && c && (l(n.position), e("content:loaded"), setTimeout(a, 0)); | ||
}, | ||
{ immediate: !0 } | ||
), i = (u) => { | ||
), l = (d) => { | ||
if (s.value && r.value && t.value) { | ||
const c = r.value.ControlPosition[u]; | ||
s.value.controls[c].push(t.value); | ||
const u = r.value.ControlPosition[d]; | ||
s.value.controls[u].push(t.value); | ||
} | ||
}, d = (u) => { | ||
}, i = (d) => { | ||
if (s.value && r.value) { | ||
let c = null; | ||
const h = r.value.ControlPosition[u]; | ||
s.value.controls[h].forEach((p, m) => { | ||
p === t.value && (c = m); | ||
}), c !== null && s.value.controls[h].removeAt(c); | ||
let u = null; | ||
const c = r.value.ControlPosition[d]; | ||
s.value.controls[c].forEach((h, p) => { | ||
h === t.value && (u = p); | ||
}), u !== null && s.value.controls[c].removeAt(u); | ||
} | ||
}; | ||
return B(() => d(n.position)), O( | ||
return B(() => i(n.position)), O( | ||
() => n.position, | ||
(u, c) => { | ||
d(c), i(u); | ||
(d, u) => { | ||
i(u), l(d); | ||
} | ||
), O( | ||
() => n.index, | ||
(u) => { | ||
u && t.value && (t.value.index = n.index); | ||
(d) => { | ||
d && t.value && (t.value.index = n.index); | ||
} | ||
), { controlRef: t, showContent: a }; | ||
), { controlRef: t }; | ||
} | ||
}), et = { ref: "controlRef" }; | ||
function tt(n, e, t, s, r, o) { | ||
return De((Y(), X("div", et, [ | ||
Q(n.$slots, "default") | ||
], 512)), [ | ||
[Ue, n.showContent] | ||
]); | ||
}); | ||
const Xe = { | ||
ref: "controlRef", | ||
class: "custom-control-wrapper" | ||
}; | ||
function Qe(n, e, t, s, r, o) { | ||
return Y(), X("div", Xe, [ | ||
Q(n.$slots, "default", {}, void 0, !0) | ||
], 512); | ||
} | ||
const Tt = /* @__PURE__ */ te(Qe, [["render", tt]]), ve = ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"], st = P({ | ||
const It = /* @__PURE__ */ te(Ye, [["render", Qe], ["__scopeId", "data-v-d099a3a6"]]), ve = ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"], et = P({ | ||
inheritAttrs: !1, | ||
@@ -881,3 +891,3 @@ props: { | ||
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()); | ||
const r = y(), o = y(), a = C(N, y()), l = C(U, y()), i = C(xe, y()); | ||
let d, u = n.modelValue; | ||
@@ -918,5 +928,8 @@ const c = J(() => { | ||
} | ||
), O(() => n.modelValue, (f) => { | ||
f !== u && (f ? p() : m()); | ||
}); | ||
), O( | ||
() => n.modelValue, | ||
(f) => { | ||
f !== u && (f ? p() : m()); | ||
} | ||
); | ||
}), B(() => { | ||
@@ -928,8 +941,8 @@ var f; | ||
}); | ||
const rt = { | ||
const tt = { | ||
key: 0, | ||
class: "info-window-wrapper" | ||
}; | ||
function nt(n, e, t, s, r, o) { | ||
return n.hasSlotContent ? (Y(), X("div", rt, [ | ||
function st(n, e, t, s, r, o) { | ||
return n.hasSlotContent ? (Y(), X("div", tt, [ | ||
ae("div", Pe({ ref: "infoWindowRef" }, n.$attrs), [ | ||
@@ -940,3 +953,3 @@ Q(n.$slots, "default", {}, void 0, !0) | ||
} | ||
const $t = /* @__PURE__ */ te(st, [["render", nt], ["__scopeId", "data-v-90174664"]]), ye = [ | ||
const At = /* @__PURE__ */ te(et, [["render", st], ["__scopeId", "data-v-cbe1707b"]]), ye = [ | ||
Int8Array, | ||
@@ -1091,3 +1104,3 @@ Uint8Array, | ||
} | ||
const ot = { | ||
const rt = { | ||
minZoom: 0, | ||
@@ -1118,3 +1131,3 @@ // min zoom to generate clusters on | ||
constructor(e) { | ||
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 = []; | ||
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 = []; | ||
} | ||
@@ -1336,3 +1349,3 @@ load(e) { | ||
type: "Point", | ||
coordinates: [it(n[e]), at(n[e + 1])] | ||
coordinates: [nt(n[e]), ot(n[e + 1])] | ||
} | ||
@@ -1357,6 +1370,6 @@ }; | ||
} | ||
function it(n) { | ||
function nt(n) { | ||
return (n - 0.5) * 360; | ||
} | ||
function at(n) { | ||
function ot(n) { | ||
const e = (180 - n * 360) * Math.PI / 180; | ||
@@ -1448,15 +1461,15 @@ return 360 * Math.atan(Math.exp(e)) / Math.PI - 90; | ||
} | ||
const lt = (n, e, t, s) => { | ||
const it = (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 dt(o, e); | ||
const { northEast: s, southWest: r } = at(n, e), o = lt({ northEast: s, southWest: r }, t); | ||
return ct(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) => ({ | ||
}, at = (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 }), dt = ({ northEast: n, southWest: e }, t) => { | ||
}), lt = ({ northEast: n, southWest: e }, t) => (n.x += t, n.y -= t, e.x -= t, e.y += t, { northEast: n, southWest: e }), ct = ({ northEast: n, southWest: e }, t) => { | ||
const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(n); | ||
@@ -1482,6 +1495,6 @@ return new google.maps.LatLngBounds(s, r); | ||
noop({ markers: e }) { | ||
return pt(e); | ||
return dt(e); | ||
} | ||
} | ||
class ht extends je { | ||
class ut extends je { | ||
constructor(e) { | ||
@@ -1499,3 +1512,3 @@ var { viewportPadding: t = 60 } = e, s = ce(e, ["viewportPadding"]); | ||
clusters: this.cluster({ | ||
markers: lt(t, s, e, this.viewportPadding), | ||
markers: it(t, s, e, this.viewportPadding), | ||
map: t, | ||
@@ -1507,7 +1520,7 @@ mapCanvasProjection: s | ||
} | ||
const pt = (n) => n.map((t) => new H({ | ||
const dt = (n) => n.map((t) => new H({ | ||
position: k.getPosition(t), | ||
markers: [t] | ||
})); | ||
class ft extends je { | ||
class ht extends je { | ||
constructor(e) { | ||
@@ -1553,3 +1566,3 @@ var { maxZoom: t, radius: s = 60 } = e, r = ce(e, ["maxZoom", "radius"]); | ||
} | ||
class mt extends ht { | ||
class pt extends ut { | ||
constructor(e) { | ||
@@ -1602,3 +1615,3 @@ var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e, o = ce(e, ["maxZoom", "radius", "viewportPadding"]); | ||
} | ||
class gt { | ||
class ft { | ||
constructor(e, t) { | ||
@@ -1618,3 +1631,3 @@ this.markers = { sum: e.length }; | ||
} | ||
class vt { | ||
class mt { | ||
/** | ||
@@ -1691,3 +1704,3 @@ * The default render function for the library used by {@link MarkerClusterer}. | ||
} | ||
function yt(n, e) { | ||
function gt(n, e) { | ||
for (let t in e.prototype) | ||
@@ -1698,3 +1711,3 @@ n.prototype[t] = e.prototype[t]; | ||
constructor() { | ||
yt(ue, google.maps.OverlayView); | ||
gt(ue, google.maps.OverlayView); | ||
} | ||
@@ -1706,7 +1719,7 @@ } | ||
})(j || (j = {})); | ||
const wt = (n, e, t) => { | ||
const vt = (n, e, t) => { | ||
t.fitBounds(e.bounds); | ||
}; | ||
class _t extends ue { | ||
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ft(s), renderer: o = new vt(), onClusterClick: a = wt }) { | ||
class yt extends ue { | ||
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ht(s), renderer: o = new mt(), onClusterClick: a = vt }) { | ||
super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer = o, this.onClusterClick = a, e && this.setMap(e); | ||
@@ -1769,3 +1782,3 @@ } | ||
renderClusters() { | ||
const e = new gt(this.markers, this.clusters), t = this.getMap(); | ||
const e = new ft(this.markers, this.clusters), t = this.getMap(); | ||
this.clusters.forEach((s) => { | ||
@@ -1782,3 +1795,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( | ||
} | ||
const be = Object.values(j), Rt = P({ | ||
const be = Object.values(j), Tt = P({ | ||
name: "MarkerCluster", | ||
@@ -1793,3 +1806,3 @@ props: { | ||
setup(n, { emit: e, expose: t, slots: s }) { | ||
const r = y(), o = C(Z, y()), a = C(D, y()); | ||
const r = y(), o = C(N, y()), a = C(U, y()); | ||
return G(Le, r), O( | ||
@@ -1799,7 +1812,7 @@ o, | ||
o.value && (r.value = I( | ||
new _t({ | ||
new yt({ | ||
map: o.value, | ||
// Better perf than the default `SuperClusterAlgorithm`. See: | ||
// https://github.com/googlemaps/js-markerclusterer/pull/640 | ||
algorithm: new mt(n.options.algorithmOptions ?? {}), | ||
algorithm: new pt(n.options.algorithmOptions ?? {}), | ||
...n.options | ||
@@ -1823,3 +1836,3 @@ }) | ||
} | ||
}), kt = P({ | ||
}), wt = P({ | ||
inheritAttrs: !1, | ||
@@ -1839,3 +1852,3 @@ props: { | ||
element: r.value | ||
})), l = U(ee, [], a, t); | ||
})), l = D(ee, [], a, t); | ||
return s({ | ||
@@ -1846,8 +1859,8 @@ customMarker: l | ||
}); | ||
const Ct = { | ||
const _t = { | ||
key: 0, | ||
class: "custom-marker-wrapper" | ||
}; | ||
function bt(n, e, t, s, r, o) { | ||
return n.hasSlotContent ? (Y(), X("div", Ct, [ | ||
function kt(n, e, t, s, r, o) { | ||
return n.hasSlotContent ? (Y(), X("div", _t, [ | ||
ae("div", Pe({ | ||
@@ -1861,3 +1874,3 @@ ref: "customMarkerRef", | ||
} | ||
const jt = /* @__PURE__ */ te(kt, [["render", bt], ["__scopeId", "data-v-2d2d343a"]]), qt = P({ | ||
const $t = /* @__PURE__ */ te(wt, [["render", kt], ["__scopeId", "data-v-2d2d343a"]]), Rt = P({ | ||
name: "HeatmapLayer", | ||
@@ -1871,3 +1884,3 @@ props: { | ||
setup(n) { | ||
const e = y(), t = C(Z, y()), s = C(D, y()); | ||
const e = y(), t = C(N, y()), s = C(U, y()); | ||
return O( | ||
@@ -1900,13 +1913,13 @@ [t, () => n.options], | ||
export { | ||
At as Circle, | ||
Tt as CustomControl, | ||
jt as CustomMarker, | ||
Ot as GoogleMap, | ||
qt as HeatmapLayer, | ||
$t as InfoWindow, | ||
xt as Marker, | ||
Rt as MarkerCluster, | ||
St as Polygon, | ||
Lt as Polyline, | ||
It as Rectangle | ||
St as Circle, | ||
It as CustomControl, | ||
$t as CustomMarker, | ||
Et as GoogleMap, | ||
Rt as HeatmapLayer, | ||
At as InfoWindow, | ||
Pt as Marker, | ||
Tt as MarkerCluster, | ||
xt as Polygon, | ||
Ot as Polyline, | ||
Lt 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-543ca811]{width:100%;height:100%}.info-window-wrapper[data-v-d60845d0]{display:none}.mapdiv .info-window-wrapper[data-v-d60845d0]{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"),T=Symbol("api"),ee=Symbol("marker"),te=Symbol("markerCluster"),D=Symbol("CustomMarker"),se=Symbol("mapTilesLoaded"),R=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! ***************************************************************************** | ||
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".mapdiv[data-v-6654c05e]{width:100%;height:100%}.custom-control-wrapper[data-v-268ef28d]{display:none}.mapdiv .custom-control-wrapper[data-v-268ef28d]{display:inline-block}.info-window-wrapper[data-v-f929b615]{display:none}.mapdiv .info-window-wrapper[data-v-f929b615]{display:inline-block}.custom-marker-wrapper[data-v-4b2eafc1]{display:none}.mapdiv .custom-marker-wrapper[data-v-4b2eafc1]{display:inline-block}")),document.head.appendChild(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,b)=>l in v?ft(v,l,{enumerable:!0,configurable:!0,writable:!0,value:b}):v[l]=b;var Q=(v,l,b)=>(mt(v,typeof l!="symbol"?l+"":l,b),b);const b=Symbol("map"),T=Symbol("api"),ee=Symbol("marker"),te=Symbol("markerCluster"),D=Symbol("CustomMarker"),se=Symbol("mapTilesLoaded"),R=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
@@ -15,3 +15,3 @@ | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */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 j;(function(n){n[n.INITIALIZED=0]="INITIALIZED",n[n.LOADING=1]="LOADING",n[n.SUCCESS=2]="SUCCESS",n[n.FAILURE=3]="FAILURE"})(j||(j={}));class x{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,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?j.FAILURE:this.done?j.SUCCESS:this.loading?j.LOADING:j.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+=`®ion=${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,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),y=new Set,w=new URLSearchParams,k=()=>a||(a=new Promise((C,P)=>Ce(this,void 0,void 0,function*(){var b;yield c=f.createElement("script"),c.id=this.id,w.set("libraries",[...y]+"");for(i in o)w.set(i.replace(/[A-Z]/g,O=>"_"+O[0].toLowerCase()),o[i]);w.set("callback",d+".maps."+p),c.src=this.url+"?"+w,m[p]=C,c.onerror=()=>a=P(Error(h+" could not load.")),c.nonce=this.nonce||((b=f.querySelector("script[nonce]"))===null||b===void 0?void 0:b.nonce)||"",f.head.append(c)})));m[u]?console.warn(h+" only loads once. Ignoring:",o):m[u]=(C,...P)=>y.add(C)&&k().then(()=>m[u](C,...P))})(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(T,o),l.provide(se,a);const c=()=>{const u={...n};Object.keys(u).forEach(m=>{u[m]===void 0&&delete u[m]});const f=m=>{var y;return m?{position:(y=o.value)==null?void 0:y.ControlPosition[m]}:{}},g={scaleControlOptions: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,...g}},i=l.watch([o,r],([u,p])=>{const f=u,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:g,libraries:m}=n;ne=new x({apiKey:u,region:p,version:f,language:g,libraries:m})}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(g=>{var m;(m=r.value)==null||m.addListener(g,y=>e(g,y))}),s.value=!0;const f=Object.keys(n).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(g)).map(g=>l.toRef(n,g));l.watch([()=>n.center,()=>n.zoom,...f],([g,m],[y,w])=>{var O,E,U;const{center:k,zoom:C,...P}=c();(O=r.value)==null||O.setOptions(P),m!==void 0&&m!==w&&((E=r.value)==null||E.setZoom(m));const b=!y||g.lng!==y.lng||g.lat!==y.lat;g&&b&&((U=r.value)==null||U.panTo(g))})};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 I=Le(xe),Ie=n=>n==="Marker",Ae=n=>n===D,B=(n,e,t,s)=>{const r=l.ref(),o=l.inject(M,l.ref()),a=l.inject(T,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,g,m;const p=!I(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),(g=c.value)==null||g.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?(m=c.value)==null||m.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=B("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:R,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polyline:B("Polyline",R,t,e)}},render:()=>null}),je=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:R,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:B("Polygon",R,t,e)}},render:()=>null}),ae=R.concat(["bounds_changed"]),Be=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:ae,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:B("Rectangle",ae,t,e)}},render:()=>null}),le=R.concat(["center_changed","radius_changed"]),$e=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:le,setup(n,{emit:e}){const t=l.toRef(n,"options");return{circle:B("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(T,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,g)=>{f===t.value&&(u=g)}),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:()=>({})},modelValue:{type:Boolean}},emits:[...ce,"update:modelValue"],setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.ref(),a=l.inject(M,l.ref()),c=l.inject(T,l.ref()),i=l.inject(ee,l.ref());let h,d=n.modelValue;const u=l.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(y=>y.type!==l.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{r.value&&(r.value.open({map:a.value,anchor:i.value,...m}),p(!0))},g=()=>{r.value&&(r.value.close(),p(!1))};return l.onMounted(()=>{l.watch([a,()=>n.options],([m,y],[w,k])=>{var P;const C=!I(y,k)||a.value!==w;a.value&&c.value&&C&&(r.value?(r.value.setOptions({...y,content:u.value?o.value:y.content}),i.value||f()):(r.value=l.markRaw(new c.value.InfoWindow({...y,content:u.value?o.value:y.content})),i.value&&(h=i.value.addListener("click",()=>{f()})),(!i.value||d)&&f(),ce.forEach(b=>{var O;(O=r.value)==null||O.addListener(b,E=>t(b,E))}),(P=r.value)==null||P.addListener("closeclick",()=>p(!1))))},{immediate:!0}),l.watch(()=>n.modelValue,m=>{m!==d&&(m?f():g())})}),l.onBeforeUnmount(()=>{var m;h&&h.remove(),r.value&&((m=c.value)==null||m.event.clearInstanceListeners(r.value),g())}),s({infoWindow:r,open:f,close:g}),{infoWindow:r,infoWindowRef:o,hasSlotContent:u,open:f,close:g}}}),yt="",Fe={key:0,class:"info-window-wrapper"};function Ve(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=F(De,[["render",Ve],["__scopeId","data-v-d60845d0"]]),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,g=a[2*f],m=a[2*f+1];g>=e&&g<=s&&m>=t&&m<=r&&h.push(o[f]),(d===0?e<=g:t<=m)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?s>=g:r>=m)&&(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,g=o[2*f],m=o[2*f+1];he(g,m,e,t)<=h&&i.push(r[f]),(d===0?e-s<=g:t-s<=m)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+s>=g:t+s>=m)&&(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),g=Math.max(s,Math.floor(t-d*p/h+f)),m=Math.min(r,Math.floor(t+(h-d)*p/h+f));de(n,e,t,g,m,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)),A=2,S=3,J=4,L=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(V(d)),f=pe(z(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(V(s),z(a),V(o),z(r)),h=c.data,d=[];for(const u of i){const p=this.stride*u;d.push(h[p+L]>1?ge(h,p,this.clusterProps):this.points[h[p+S]])}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+L]>1?ge(a,f,this.clusterProps):this.points[a[f+S]])}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+L]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const m=this.points[t[i+S]];d=m.properties;const[y,w]=m.geometry.coordinates;u=V(y),p=z(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 g;h||this.options.generateId?g=t[i+S]:g=this.points[t[i+S]].id,g!==void 0&&(f.id=g),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+A]<=t)continue;i[u+A]=t;const p=i[u],f=i[u+1],g=e.within(i[u],i[u+1],c),m=i[u+L];let y=m;for(const w of g){const k=w*d;i[k+A]>t&&(y+=i[k+L])}if(y>m&&y>=a){let w=p*m,k=f*m,C,P=-1;const b=((u/d|0)<<5)+(t+1)+this.points.length;for(const O of g){const E=O*d;if(i[E+A]<=t)continue;i[E+A]=t;const U=i[E+L];w+=i[E]*U,k+=i[E+1]*U,i[E+J]=b,o&&(C||(C=this._map(i,u,!0),P=this.clusterProps.length,this.clusterProps.push(C)),o(C,this._map(i,E)))}i[u+J]=b,h.push(w/y,k/y,1/0,b,-1,y),o&&h.push(P)}else{for(let w=0;w<d;w++)h.push(i[u+w]);if(y>1)for(const w of g){const k=w*d;if(!(i[k+A]<=t)){i[k+A]=t;for(let C=0;C<d;C++)h.push(i[k+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+L]>1){const a=this.clusterProps[e[t+fe]];return s?Object.assign({},a):a}const r=this.points[e[t+S]].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+S],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+L],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+S],point_count:s,point_count_abbreviated:r})}function V(n){return n/360+.5}function z(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}/*! ***************************************************************************** | ||
***************************************************************************** */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 be=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 j;(function(n){n[n.INITIALIZED=0]="INITIALIZED",n[n.LOADING=1]="LOADING",n[n.SUCCESS=2]="SUCCESS",n[n.FAILURE=3]="FAILURE"})(j||(j={}));class x{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,x.instance){if(!be(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?j.FAILURE:this.done?j.SUCCESS:this.loading?j.LOADING:j.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+=`®ion=${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,g=window;g=g[d]||(g[d]={});const m=g.maps||(g.maps={}),y=new Set,w=new URLSearchParams,_=()=>a||(a=new Promise((C,P)=>Ce(this,void 0,void 0,function*(){var M;yield c=f.createElement("script"),c.id=this.id,w.set("libraries",[...y]+"");for(i in o)w.set(i.replace(/[A-Z]/g,O=>"_"+O[0].toLowerCase()),o[i]);w.set("callback",d+".maps."+p),c.src=this.url+"?"+w,m[p]=C,c.onerror=()=>a=P(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)})));m[u]?console.warn(h+" only loads once. Ignoring:",o):m[u]=(C,...P)=>y.add(C)&&_().then(()=>m[u](C,...P))})(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 Me(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","contextmenu","dblclick","drag","dragend","dragstart","heading_changed","idle","isfractionalzoomenabled_changed","mapcapabilities_changed","maptypeid_changed","mousemove","mouseout","mouseover","projection_changed","renderingtype_changed","rightclick","tilesloaded","tilt_changed","zoom_changed"],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},isFractionalZoomEnabled:{type:Boolean,required:!1,default:void 0},keyboardShortcuts:{type:Boolean,required:!1,default:void 0},mapTypeControl:{type:Boolean,required:!1,default:void 0},mapTypeControlOptions:{type:Object,required:!1},mapTypeId:{type:[Number,String],required:!1},mapId:{type:String,required:!1},maxZoom:{type:Number,required:!1},minZoom:{type:Number,required:!1},noClear:{type:Boolean,required:!1,default:void 0},panControl:{type:Boolean,required:!1,default:void 0},panControlPosition:{type:String,required:!1},restriction:{type:Object,required:!1},rotateControl:{type:Boolean,required:!1,default:void 0},rotateControlPosition:{type:String,required:!1},scaleControl:{type:Boolean,required:!1,default:void 0},scaleControlStyle:{type:Number,required:!1},scrollwheel:{type:Boolean,required:!1,default:void 0},streetView:{type:Object,required:!1},streetViewControl:{type:Boolean,required:!1,default:void 0},streetViewControlPosition:{type:String,required:!1},styles:{type:Array,required:!1},tilt:{type:Number,required:!1},zoom:{type:Number,required:!1},zoomControl:{type:Boolean,required:!1,default:void 0},zoomControlPosition:{type:String,required:!1}},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(b,r),l.provide(T,o),l.provide(se,a);const c=()=>{const u={...n};Object.keys(u).forEach(m=>{u[m]===void 0&&delete u[m]});const f=m=>{var y;return m?{position:(y=o.value)==null?void 0:y.ControlPosition[m]}:{}},g={scaleControlOptions: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,...g}},i=l.watch([o,r],([u,p])=>{const f=u,g=p;f&&g&&(f.event.addListenerOnce(g,"tilesloaded",()=>{a.value=!0}),setTimeout(i,0))},{immediate:!0}),h=()=>{try{const{apiKey:u,region:p,version:f,language:g,libraries:m}=n;ne=new x({apiKey:u,region:p,version:f,language:g,libraries:m})}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=Me(o.value);o.value[D]=p,oe.forEach(g=>{var m;(m=r.value)==null||m.addListener(g,y=>e(g,y))}),s.value=!0;const f=Object.keys(n).filter(g=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(g)).map(g=>l.toRef(n,g));l.watch([()=>n.center,()=>n.zoom,...f],([g,m],[y,w])=>{var O,E,U;const{center:_,zoom:C,...P}=c();(O=r.value)==null||O.setOptions(P),m!==void 0&&m!==w&&((E=r.value)==null||E.setZoom(m));const M=!y||g.lng!==y.lng||g.lat!==y.lat;g&&M&&((U=r.value)==null||U.panTo(g))})};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-6654c05e"]]);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 I=Le(xe),Ie=n=>n==="Marker",Ae=n=>n===D,B=(n,e,t,s)=>{const r=l.ref(),o=l.inject(b,l.ref()),a=l.inject(T,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,g,m;const p=!I(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),(g=c.value)==null||g.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?(m=c.value)==null||m.addMarker(r.value):r.value.setMap(o.value),e.forEach(y=>{var w;(w=r.value)==null||w.addListener(y,_=>s(y,_))})))},{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=B("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:R,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polyline:B("Polyline",R,t,e)}},render:()=>null}),je=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:R,setup(n,{emit:e}){const t=l.toRef(n,"options");return{polygon:B("Polygon",R,t,e)}},render:()=>null}),ae=R.concat(["bounds_changed"]),Be=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:ae,setup(n,{emit:e}){const t=l.toRef(n,"options");return{rectangle:B("Rectangle",ae,t,e)}},render:()=>null}),le=R.concat(["center_changed","radius_changed"]),$e=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:le,setup(n,{emit:e}){const t=l.toRef(n,"options");return{circle:B("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(b,l.ref()),r=l.inject(T,l.ref()),o=l.inject(se,l.ref(!1)),a=l.watch([o,r,t],([h,d,u])=>{d&&h&&u&&(c(n.position),e("content:loaded"),setTimeout(a,0))},{immediate:!0}),c=h=>{if(s.value&&r.value&&t.value){const d=r.value.ControlPosition[h];s.value.controls[d].push(t.value)}},i=h=>{if(s.value&&r.value){let d=null;const u=r.value.ControlPosition[h];s.value.controls[u].forEach((p,f)=>{p===t.value&&(d=f)}),d!==null&&s.value.controls[u].removeAt(d)}};return l.onBeforeUnmount(()=>i(n.position)),l.watch(()=>n.position,(h,d)=>{i(d),c(h)}),l.watch(()=>n.index,h=>{h&&t.value&&(t.value.index=n.index)}),{controlRef:t}}}),yt="",Ne={ref:"controlRef",class:"custom-control-wrapper"};function Ze(n,e,t,s,r,o){return l.openBlock(),l.createElementBlock("div",Ne,[l.renderSlot(n.$slots,"default",{},void 0,!0)],512)}const Ue=F(qe,[["render",Ze],["__scopeId","data-v-268ef28d"]]),ce=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],De=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...ce,"update:modelValue"],setup(n,{slots:e,emit:t,expose:s}){const r=l.ref(),o=l.ref(),a=l.inject(b,l.ref()),c=l.inject(T,l.ref()),i=l.inject(ee,l.ref());let h,d=n.modelValue;const u=l.computed(()=>{var m;return(m=e.default)==null?void 0:m.call(e).some(y=>y.type!==l.Comment)}),p=m=>{d=m,t("update:modelValue",m)},f=m=>{r.value&&(r.value.open({map:a.value,anchor:i.value,...m}),p(!0))},g=()=>{r.value&&(r.value.close(),p(!1))};return l.onMounted(()=>{l.watch([a,()=>n.options],([m,y],[w,_])=>{var P;const C=!I(y,_)||a.value!==w;a.value&&c.value&&C&&(r.value?(r.value.setOptions({...y,content:u.value?o.value:y.content}),i.value||f()):(r.value=l.markRaw(new c.value.InfoWindow({...y,content:u.value?o.value:y.content})),i.value&&(h=i.value.addListener("click",()=>{f()})),(!i.value||d)&&f(),ce.forEach(M=>{var O;(O=r.value)==null||O.addListener(M,E=>t(M,E))}),(P=r.value)==null||P.addListener("closeclick",()=>p(!1))))},{immediate:!0}),l.watch(()=>n.modelValue,m=>{m!==d&&(m?f():g())})}),l.onBeforeUnmount(()=>{var m;h&&h.remove(),r.value&&((m=c.value)==null||m.event.clearInstanceListeners(r.value),g())}),s({infoWindow:r,open:f,close:g}),{infoWindow:r,infoWindowRef:o,hasSlotContent:u,open:f,close:g}}}),wt="",Fe={key:0,class:"info-window-wrapper"};function Ve(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=F(De,[["render",Ve],["__scopeId","data-v-f929b615"]]),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],_=a[2*y+1];w>=e&&w<=s&&_>=t&&_<=r&&h.push(o[y])}continue}const f=p+u>>1,g=a[2*f],m=a[2*f+1];g>=e&&g<=s&&m>=t&&m<=r&&h.push(o[f]),(d===0?e<=g:t<=m)&&(i.push(p),i.push(f-1),i.push(1-d)),(d===0?s>=g:r>=m)&&(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,g=o[2*f],m=o[2*f+1];he(g,m,e,t)<=h&&i.push(r[f]),(d===0?e-s<=g:t-s<=m)&&(c.push(p),c.push(f-1),c.push(1-d)),(d===0?e+s>=g:t+s>=m)&&(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),g=Math.max(s,Math.floor(t-d*p/h+f)),m=Math.min(r,Math.floor(t+(h-d)*p/h+f));de(n,e,t,g,m,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)),A=2,S=3,J=4,L=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(V(d)),f=pe(z(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(V(s),z(a),V(o),z(r)),h=c.data,d=[];for(const u of i){const p=this.stride*u;d.push(h[p+L]>1?ge(h,p,this.clusterProps):this.points[h[p+S]])}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+L]>1?ge(a,f,this.clusterProps):this.points[a[f+S]])}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+L]>1;let d,u,p;if(h)d=ye(t,i,this.clusterProps),u=t[i],p=t[i+1];else{const m=this.points[t[i+S]];d=m.properties;const[y,w]=m.geometry.coordinates;u=V(y),p=z(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 g;h||this.options.generateId?g=t[i+S]:g=this.points[t[i+S]].id,g!==void 0&&(f.id=g),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+A]<=t)continue;i[u+A]=t;const p=i[u],f=i[u+1],g=e.within(i[u],i[u+1],c),m=i[u+L];let y=m;for(const w of g){const _=w*d;i[_+A]>t&&(y+=i[_+L])}if(y>m&&y>=a){let w=p*m,_=f*m,C,P=-1;const M=((u/d|0)<<5)+(t+1)+this.points.length;for(const O of g){const E=O*d;if(i[E+A]<=t)continue;i[E+A]=t;const U=i[E+L];w+=i[E]*U,_+=i[E+1]*U,i[E+J]=M,o&&(C||(C=this._map(i,u,!0),P=this.clusterProps.length,this.clusterProps.push(C)),o(C,this._map(i,E)))}i[u+J]=M,h.push(w/y,_/y,1/0,M,-1,y),o&&h.push(P)}else{for(let w=0;w<d;w++)h.push(i[u+w]);if(y>1)for(const w of g){const _=w*d;if(!(i[_+A]<=t)){i[_+A]=t;for(let C=0;C<d;C++)h.push(i[_+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+L]>1){const a=this.clusterProps[e[t+fe]];return s?Object.assign({},a):a}const r=this.points[e[t+S]].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+S],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+L],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+S],point_count:s,point_count_abbreviated:r})}function V(n){return n/360+.5}function z(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. | ||
@@ -29,3 +29,3 @@ | ||
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 _{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 Ke=(n,e,t,s)=>{const r=we(n.getBounds(),e,s);return t.filter(o=>r.contains(_.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:_.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(!I(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const r=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(r)}return t||(this.state.zoom<=this.maxZoom||s.zoom<=this.maxZoom)&&(t=!I(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:_.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=!I(this.state,t);if(!I(e.markers,this.markers)){s=!0,this.markers=[...e.markers];const r=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(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:_.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"> | ||
***************************************************************************** */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 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 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(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 Ke=(n,e,t,s)=>{const r=we(n.getBounds(),e,s);return t.filter(o=>r.contains(k.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 _e{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return et(e)}}class Qe extends _e{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:k.getPosition(t),markers:[t]}));class tt extends _e{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(!I(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=!I(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:k.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=!I(this.state,t);if(!I(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: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:k.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" /> | ||
@@ -35,2 +35,2 @@ <circle cx="120" cy="120" opacity=".3" r="90" /> | ||
<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text> | ||
</svg>`,c=`Cluster of ${e} markers`,i=Number(google.maps.Marker.MAX_ZINDEX)+e;if(_.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:(_.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)||_.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,$.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 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=>_.setMap(r,null)),this.onClusterClick&&s.marker.addListener("click",r=>{google.maps.event.trigger(this,$.CLUSTER_CLICK,s),this.onClusterClick(r,s,t)})),_.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(T,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=B(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(T,l.ref());return l.watch([t,()=>n.options],([r,o],[a,c])=>{var h;const i=!I(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=$e,v.CustomControl=Ue,v.CustomMarker=ht,v.GoogleMap=Se,v.HeatmapLayer=pt,v.InfoWindow=ze,v.Marker=Te,v.MarkerCluster=lt,v.Polygon=je,v.Polyline=Re,v.Rectangle=Be,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})}); | ||
</svg>`,c=`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 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:(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,$.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,$.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 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=>k.setMap(r,null)),this.onClusterClick&&s.marker.addListener("click",r=>{google.maps.event.trigger(this,$.CLUSTER_CLICK,s),this.onClusterClick(r,s,t)})),k.setMap(s.marker,t)})}}const ke=Object.values($),lt=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})}},emits:ke,setup(n,{emit:e,expose:t,slots:s}){const r=l.ref(),o=l.inject(b,l.ref()),a=l.inject(T,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})),ke.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=B(D,[],a,t);return s({customMarker:c}),{customMarkerRef:r,customMarker:c,hasSlotContent:o}}}),vt="",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(b,l.ref()),s=l.inject(T,l.ref());return l.watch([t,()=>n.options],([r,o],[a,c])=>{var h;const i=!I(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=$e,v.CustomControl=Ue,v.CustomMarker=ht,v.GoogleMap=Se,v.HeatmapLayer=pt,v.InfoWindow=ze,v.Marker=Te,v.MarkerCluster=lt,v.Polygon=je,v.Polyline=Re,v.Rectangle=Be,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})}); |
@@ -13,3 +13,2 @@ import { PropType, Ref } from "vue"; | ||
controlRef: Ref<HTMLElement | null>; | ||
showContent: Ref<boolean>; | ||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "content:loaded"[], "content:loaded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{ | ||
@@ -16,0 +15,0 @@ position: { |
@@ -87,2 +87,7 @@ /// <reference types="google.maps" /> | ||
}; | ||
isFractionalZoomEnabled: { | ||
type: BooleanConstructor; | ||
required: false; | ||
default: undefined; | ||
}; | ||
keyboardShortcuts: { | ||
@@ -283,2 +288,7 @@ type: BooleanConstructor; | ||
}; | ||
isFractionalZoomEnabled: { | ||
type: BooleanConstructor; | ||
required: false; | ||
default: undefined; | ||
}; | ||
keyboardShortcuts: { | ||
@@ -401,2 +411,3 @@ type: BooleanConstructor; | ||
fullscreenControl: boolean; | ||
isFractionalZoomEnabled: boolean; | ||
keyboardShortcuts: boolean; | ||
@@ -403,0 +414,0 @@ mapTypeControl: boolean; |
{ | ||
"name": "vue3-google-map", | ||
"version": "0.18.0", | ||
"version": "0.19.0", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
232416
4312