vue3-google-map 0.25.1 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +891 -728
- package/dist/index.umd.js +4 -4
- package/dist/types/@types/index.d.ts +8 -0
- package/dist/types/components/CustomMarker.vue.d.ts +6 -3
- package/dist/types/components/DebouncedMarkerClusterer.d.ts +20 -0
- package/dist/types/components/InfoWindow.vue.d.ts +8 -3
- package/dist/types/components/MarkerCluster.d.ts +12 -2
- package/dist/types/components/SafeSuperClusterViewportAlgorithm.d.ts +16 -0
- package/dist/types/components/index.d.ts +5 -5
- package/dist/types/index.d.ts +1 -0
- package/dist/types/shims-google-maps.d.ts +2 -7
- package/package.json +5 -2
package/dist/index.umd.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var
|
|
2
|
-
(function(_,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],i):(_=typeof globalThis<"u"?globalThis:_||self,i(_.Vue3GoogleMap={},_.Vue))})(this,function(_,i){"use strict";var Or=Object.defineProperty;var Pr=(_,i,M)=>i in _?Or(_,i,{enumerable:!0,configurable:!0,writable:!0,value:M}):_[i]=M;var pe=(_,i,M)=>(Pr(_,typeof i!="symbol"?i+"":i,M),M);const M=Symbol("map"),b=Symbol("api"),X=Symbol("marker"),Q=Symbol("markerCluster"),z=Symbol("CustomMarker"),ee=Symbol("mapTilesLoaded"),B=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];function Ue(n,e){n.src=e}const Ze=n=>{var e,t,r,o="The Google Maps JavaScript API",s="google",l="importLibrary",c="__ib__",a=document,d=window,f=d[s]||(d[s]={}),u=f.maps||(f.maps={}),m=new Set,h=new URLSearchParams,g=()=>e||(e=new Promise(async(p,y)=>{var v;await(t=a.createElement("script")),h.set("libraries",[...m]+"");for(r in n)h.set(r.replace(/[A-Z]/g,w=>"_"+w[0].toLowerCase()),n[r]);h.set("callback",s+".maps."+c),Ue(t,"https://maps.googleapis.com/maps/api/js?"+h),u[c]=p,t.onerror=()=>e=y(Error(o+" could not load.")),t.nonce=((v=a.querySelector("script[nonce]"))==null?void 0:v.nonce)||"",a.head.append(t)}));u[l]?console.warn(o+" only loads once. Ignoring:",n):u[l]=(p,...y)=>m.add(p)&&g().then(()=>u[l](p,...y))},Ge=n=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(n)}) will be ignored.`,Fe=n=>`The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(n)}) will be ignored.`,ze="No options were set before calling importLibrary. Make sure to configure the loader using setOptions().",We="There already is a script loading the Google Maps JavaScript API, and no google.maps.importLibrary function is defined. @googlemaps/js-api-loader will proceed to bootstrap the API with the specified options, but the existing script might cause problems using the API. Make sure to remove the script loading the API.",te=process.env.NODE_ENV!=="production"?n=>{console.warn(`[@googlemaps/js-api-loader] ${n}`)}:()=>{},He=process.env.NODE_ENV!=="production"?n=>{console.info(`[@googlemaps/js-api-loader] ${n}`)}:()=>{};let re=!1;function Ke(n){if(re){te(Ge(n));return}Je(n),re=!0}async function Ye(n){var e,t;if(re||te(ze),!((t=(e=window==null?void 0:window.google)==null?void 0:e.maps)!=null&&t.importLibrary))throw new Error("google.maps.importLibrary is not installed.");return await google.maps.importLibrary(n)}function Je(n){var t,r;const e=!!((r=(t=window.google)==null?void 0:t.maps)!=null&&r.importLibrary);e?He(Fe(n)):process.env.NODE_ENV!=="production"&&document.querySelector('script[src*="maps.googleapis.com/maps/api/js"]')&&te(We),e||Ze(n)}function Xe(n){return class extends n.OverlayView{constructor(r){super();pe(this,"element");pe(this,"opts");const{element:o,...s}=r;this.element=o,this.opts=s,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(),o=r==null?void 0:r.fromLatLngToDivPixel(this.getPosition());if(o){this.element.style.position="absolute";let s,l;switch(this.opts.anchorPoint){case"TOP_CENTER":s="-50%",l="-100%";break;case"BOTTOM_CENTER":s="-50%",l="0";break;case"LEFT_CENTER":s="-100%",l="-50%";break;case"RIGHT_CENTER":s="0",l="-50%";break;case"TOP_LEFT":s="-100%",l="-100%";break;case"TOP_RIGHT":s="0",l="-100%";break;case"BOTTOM_LEFT":s="-100%",l="0";break;case"BOTTOM_RIGHT":s="0",l="0";break;default:s="-50%",l="-50%"}const c=o.x+(this.opts.offsetX||0)+"px",a=o.y+(this.opts.offsetY||0)+"px";this.element.style.transform=`translateX(${s}) translateX(${c}) translateY(${l}) translateY(${a})`,this.opts.zIndex&&(this.element.style.zIndex=this.opts.zIndex.toString())}}onRemove(){this.element&&this.element.remove()}setOptions(r){const{element:o,...s}=r;this.element=o,this.opts=s,this.draw()}}}let fe=!1;const me=["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"],Qe=i.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places","marker"]},region:{type:String,required:!1},language:{type:String,required:!1},backgroundColor:{type:String,required:!1},center:{type:Object,default:()=>({lat:0,lng:0})},clickableIcons:{type:Boolean,required:!1,default:void 0},colorScheme:{type:String,required:!1},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},cameraControl:{type:Boolean,required:!1,default:void 0},cameraControlPosition:{type:String,required:!1}},emits:me,setup(n,{emit:e}){const t=i.ref(),r=i.ref(!1),o=i.ref(),s=i.ref(),l=i.ref(!1);i.provide(M,o),i.provide(b,s),i.provide(ee,l);const c=()=>{const u={...n};Object.keys(u).forEach(p=>{u[p]===void 0&&delete u[p]});const h=p=>{var y;return p?{position:(y=s.value)==null?void 0:y.ControlPosition[p]}:{}},g={scaleControlOptions:n.scaleControlStyle?{style:n.scaleControlStyle}:{},panControlOptions:h(n.panControlPosition),zoomControlOptions:h(n.zoomControlPosition),rotateControlOptions:h(n.rotateControlPosition),streetViewControlOptions:h(n.streetViewControlPosition),fullscreenControlOptions:h(n.fullscreenControlPosition),cameraControlOptions:h(n.cameraControlPosition),disableDefaultUI:n.disableDefaultUi};return{...u,...g}},a=i.watch([s,o],([u,m])=>{const h=u,g=m;h&&g&&(h.event.addListenerOnce(g,"tilesloaded",()=>{l.value=!0}),setTimeout(a,0))},{immediate:!0}),d=()=>{const{apiKey:u,region:m,version:h,language:g,libraries:p}=n;Ke({key:u,region:m,v:h,language:g,libraries:p})},f=u=>{const m=u?u.maps:google.maps;s.value=i.markRaw(m),o.value=i.markRaw(new m.Map(t.value,c()));const h=Xe(s.value);s.value[z]=h,me.forEach(p=>{var y;(y=o.value)==null||y.addListener(p,v=>e(p,v))}),r.value=!0;const g=Object.keys(n).filter(p=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(p)).map(p=>i.toRef(n,p));i.watch([()=>n.center,()=>n.zoom,...g],([p,y],[v,w])=>{var C,j,F;const{center:E,zoom:R,...O}=c();(C=o.value)==null||C.setOptions(O),y!==void 0&&y!==w&&((j=o.value)==null||j.setZoom(y));const S=!v||p.lng!==v.lng||p.lat!==v.lat;p&&S&&((F=o.value)==null||F.panTo(p))})};return i.onMounted(()=>{if(n.apiPromise&&n.apiPromise instanceof Promise)n.apiPromise.then(f);else{fe||(d(),fe=!0);const u=n.libraries&&n.libraries.length>0?n.libraries:["maps","marker"];Promise.all(u.map(m=>Ye(m))).then(()=>f())}}),i.onBeforeUnmount(()=>{var u;l.value=!1,o.value&&((u=s.value)==null||u.event.clearInstanceListeners(o.value))}),{mapRef:t,ready:r,map:o,api:s,mapTilesLoaded:l}}}),Sr="",$=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},et={ref:"mapRef",class:"mapdiv"};function tt(n,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div",null,[i.createElementVNode("div",et,null,512),i.renderSlot(n.$slots,"default",i.normalizeProps(i.guardReactiveProps({ready:n.ready,map:n.map,api:n.api,mapTilesLoaded:n.mapTilesLoaded})),void 0,!0)])}const rt=$(Qe,[["render",tt],["__scopeId","data-v-c6aa3e71"]]);function nt(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var ot=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,o,s;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(o=r;o--!==0;)if(!n(e[o],t[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(s=Object.keys(e),r=s.length,r!==Object.keys(t).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[o]))return!1;for(o=r;o--!==0;){var l=s[o];if(!n(e[l],t[l]))return!1}return!0}return e!==e&&t!==t};const D=nt(ot),he=["click","drag","dragend","dragstart","gmp-click"],st=i.defineComponent({name:"AdvancedMarker",props:{options:{type:Object,required:!0},pinOptions:{type:Object,required:!1}},emits:he,setup(n,{emit:e,expose:t,slots:r}){const o=i.ref(),s=i.computed(()=>{var h;return(h=r.content)==null?void 0:h.call(r).some(g=>g.type!==i.Comment)}),l=i.toRef(n,"options"),c=i.toRef(n,"pinOptions"),a=i.ref(),d=i.inject(M,i.ref()),f=i.inject(b,i.ref()),u=i.inject(Q,i.ref()),m=i.computed(()=>!!(u.value&&f.value&&a.value instanceof google.maps.marker.AdvancedMarkerElement));return i.watch([d,l,c,o],async(h,[g,p,y,v])=>{var C,j,F;const w=!D(l.value,p)||!D(c.value,y),E=o.value!==v,R=w||E||d.value!==g;if(!d.value||!f.value||!R||s.value&&!o.value)return;const{AdvancedMarkerElement:O,PinElement:S}=f.value.marker;if(a.value){const{map:ue,content:J,...de}=l.value;Object.assign(a.value,{content:s.value?o.value:c.value?new S(c.value).element:J,...de}),m.value&&((C=u.value)==null||C.removeMarker(a.value),(j=u.value)==null||j.addMarker(a.value))}else s.value?l.value.content=o.value:c.value&&(l.value.content=new S(c.value).element),a.value=i.markRaw(new O(l.value)),m.value?(F=u.value)==null||F.addMarker(a.value):a.value.map=d.value,he.forEach(ue=>{var J;(J=a.value)==null||J.addListener(ue,de=>e(ue,de))})},{immediate:!0,flush:"post"}),i.onBeforeUnmount(()=>{var h,g;a.value&&((h=f.value)==null||h.event.clearInstanceListeners(a.value),m.value?(g=u.value)==null||g.removeMarker(a.value):a.value.map=null)}),i.provide(X,a),t({marker:a}),{hasCustomSlotContent:s,markerRef:o}}}),br="",at={key:0,class:"advanced-marker-wrapper"};function it(n,e,t,r,o,s){return i.openBlock(),i.createElementBlock(i.Fragment,null,[n.hasCustomSlotContent?(i.openBlock(),i.createElementBlock("div",at,[i.createElementVNode("div",i.mergeProps({ref:"markerRef"},n.$attrs),[i.renderSlot(n.$slots,"content")],16)])):i.createCommentVNode("v-if",!0),i.renderSlot(n.$slots,"default")],64)}const lt=$(st,[["render",it]]),ge=n=>n==="Marker",ye=n=>n===z,N=(n,e,t,r)=>{const o=i.ref(),s=i.inject(M,i.ref()),l=i.inject(b,i.ref()),c=i.inject(Q,i.ref()),a=i.computed(()=>!!(c.value&&l.value&&(o.value instanceof l.value.Marker||o.value instanceof l.value[z])));return i.watch([s,t],(d,[f,u])=>{var h,g,p;const m=!D(t.value,u)||s.value!==f;if(!(!s.value||!l.value||!m))if(o.value)o.value.setOptions(t.value),a.value&&((h=c.value)==null||h.removeMarker(o.value),(g=c.value)==null||g.addMarker(o.value));else{if(ge(n))o.value=i.markRaw(new l.value[n](t.value));else if(ye(n)){const y=t.value;y.element&&(o.value=i.markRaw(new l.value[n](y)))}else o.value=i.markRaw(new l.value[n]({...t.value,map:s.value}));o.value&&(a.value?(p=c.value)==null||p.addMarker(o.value):(ge(n)||ye(n))&&o.value.setMap(s.value)),e.forEach(y=>{var v;(v=o.value)==null||v.addListener(y,w=>r(y,w))})}},{immediate:!0,flush:"post"}),i.onBeforeUnmount(()=>{var d,f;o.value&&((d=l.value)==null||d.event.clearInstanceListeners(o.value),a.value?(f=c.value)==null||f.removeMarker(o.value):o.value.setMap(null))}),o},ve=["animation_changed","click","dblclick","rightclick","dragstart","dragend","drag","mouseover","mousedown","mouseout","mouseup","draggable_changed","clickable_changed","contextmenu","cursor_changed","flat_changed","zindex_changed","icon_changed","position_changed","shape_changed","title_changed","visible_changed"],ct=i.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:ve,setup(n,{emit:e,expose:t,slots:r}){const o=i.toRef(n,"options"),s=N("Marker",ve,o,e);return i.provide(X,s),t({marker:s}),()=>{var l;return(l=r.default)==null?void 0:l.call(r)}}}),ut=i.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:B,setup(n,{emit:e}){const t=i.toRef(n,"options");return{polyline:N("Polyline",B,t,e)}},render:()=>null}),dt=i.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:B,setup(n,{emit:e}){const t=i.toRef(n,"options");return{polygon:N("Polygon",B,t,e)}},render:()=>null}),we=B.concat(["bounds_changed"]),pt=i.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:we,setup(n,{emit:e}){const t=i.toRef(n,"options");return{rectangle:N("Rectangle",we,t,e)}},render:()=>null}),_e=B.concat(["center_changed","radius_changed"]),ft=i.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:_e,setup(n,{emit:e}){const t=i.toRef(n,"options");return{circle:N("Circle",_e,t,e)}},render:()=>null}),mt=i.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(n,{emit:e}){const t=i.ref(null),r=i.inject(M,i.ref()),o=i.inject(b,i.ref()),s=i.inject(ee,i.ref(!1)),l=i.watch([s,o,t],([d,f,u])=>{f&&d&&u&&(c(n.position),e("content:loaded"),setTimeout(l,0))},{immediate:!0}),c=d=>{if(r.value&&o.value&&t.value){const f=o.value.ControlPosition[d];t.value.index=n.index,r.value.controls[f].push(t.value)}},a=d=>{if(r.value&&o.value){let f=null;const u=o.value.ControlPosition[d];r.value.controls[u].forEach((m,h)=>{m===t.value&&(f=h)}),f!==null&&r.value.controls[u].removeAt(f)}};return i.onBeforeUnmount(()=>a(n.position)),i.watch(()=>n.position,(d,f)=>{a(f),c(d)}),i.watch(()=>n.index,d=>{t.value&&(t.value.index=d)}),{controlRef:t}}}),Ar="",ht={ref:"controlRef",class:"custom-control-wrapper"};function gt(n,e,t,r,o,s){return i.openBlock(),i.createElementBlock(i.Fragment,null,[i.createCommentVNode(`
|
|
1
|
+
(function(){var a;"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.nonce=(a=document.head.querySelector("meta[property=csp-nonce]"))==null?void 0:a.content,e.appendChild(document.createTextNode(".mapdiv[data-v-c6aa3e71]{width:100%;height:100%}.advanced-marker-wrapper{display:none}.mapdiv .advanced-marker-wrapper{display:inline-block}.custom-control-wrapper[data-v-ae91c15f]{display:none}.mapdiv .custom-control-wrapper[data-v-ae91c15f]{display:inline-block}.info-window-wrapper[data-v-5660e752]{display:none}.mapdiv .info-window-wrapper[data-v-5660e752]{display:inline-block}.custom-marker-wrapper[data-v-90fe8380]{display:none}.mapdiv .custom-marker-wrapper[data-v-90fe8380]{display:inline-block}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
|
+
(function(k,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(k=typeof globalThis<"u"?globalThis:k||self,l(k.Vue3GoogleMap={},k.Vue))})(this,function(k,l){"use strict";var pn=Object.defineProperty;var mn=(k,l,M)=>l in k?pn(k,l,{enumerable:!0,configurable:!0,writable:!0,value:M}):k[l]=M;var ee=(k,l,M)=>(mn(k,typeof l!="symbol"?l+"":l,M),M);const M=Symbol("map"),A=Symbol("api"),te=Symbol("marker"),re=Symbol("markerCluster"),W=Symbol("CustomMarker"),ne=Symbol("mapTilesLoaded"),B=["click","dblclick","drag","dragend","dragstart","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"];function Ye(t,e){t.src=e}const Je=t=>{var e,r,n,o="The Google Maps JavaScript API",s="google",i="importLibrary",c="__ib__",a=document,d=window,p=d[s]||(d[s]={}),u=p.maps||(p.maps={}),m=new Set,h=new URLSearchParams,g=()=>e||(e=new Promise(async(f,y)=>{var v;await(r=a.createElement("script")),h.set("libraries",[...m]+"");for(n in t)h.set(n.replace(/[A-Z]/g,w=>"_"+w[0].toLowerCase()),t[n]);h.set("callback",s+".maps."+c),Ye(r,"https://maps.googleapis.com/maps/api/js?"+h),u[c]=f,r.onerror=()=>e=y(Error(o+" could not load.")),r.nonce=((v=a.querySelector("script[nonce]"))==null?void 0:v.nonce)||"",a.head.append(r)}));u[i]?console.warn(o+" only loads once. Ignoring:",t):u[i]=(f,...y)=>m.add(f)&&g().then(()=>u[i](f,...y))},Qe=t=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(t)}) will be ignored.`,et=t=>`The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(t)}) will be ignored.`,tt="No options were set before calling importLibrary. Make sure to configure the loader using setOptions().",rt="There already is a script loading the Google Maps JavaScript API, and no google.maps.importLibrary function is defined. @googlemaps/js-api-loader will proceed to bootstrap the API with the specified options, but the existing script might cause problems using the API. Make sure to remove the script loading the API.",oe=process.env.NODE_ENV!=="production"?t=>{console.warn(`[@googlemaps/js-api-loader] ${t}`)}:()=>{},nt=process.env.NODE_ENV!=="production"?t=>{console.info(`[@googlemaps/js-api-loader] ${t}`)}:()=>{};let se=!1;function ot(t){if(se){oe(Qe(t));return}at(t),se=!0}async function st(t){var e,r;if(se||oe(tt),!((r=(e=window==null?void 0:window.google)==null?void 0:e.maps)!=null&&r.importLibrary))throw new Error("google.maps.importLibrary is not installed.");return await google.maps.importLibrary(t)}function at(t){var r,n;const e=!!((n=(r=window.google)==null?void 0:r.maps)!=null&&n.importLibrary);e?nt(et(t)):process.env.NODE_ENV!=="production"&&document.querySelector('script[src*="maps.googleapis.com/maps/api/js"]')&&oe(rt),e||Je(t)}function it(t){return class extends t.OverlayView{constructor(n){super();ee(this,"element");ee(this,"opts");const{element:o,...s}=n;this.element=o,this.opts=s,this.opts.map&&this.setMap(this.opts.map)}getPosition(){return this.opts.position?this.opts.position instanceof t.LatLng?this.opts.position:new t.LatLng(this.opts.position):null}getVisible(){if(!this.element)return!1;const n=this.element;return n.style.display!=="none"&&n.style.visibility!=="hidden"&&(n.style.opacity===""||Number(n.style.opacity)>.01)}onAdd(){if(!this.element)return;const n=this.getPanes();n&&n.overlayMouseTarget.appendChild(this.element)}draw(){if(!this.element)return;const n=this.getProjection(),o=n==null?void 0:n.fromLatLngToDivPixel(this.getPosition());if(o){this.element.style.position="absolute";let s,i;switch(this.opts.anchorPoint){case"TOP_CENTER":s="-50%",i="-100%";break;case"BOTTOM_CENTER":s="-50%",i="0";break;case"LEFT_CENTER":s="-100%",i="-50%";break;case"RIGHT_CENTER":s="0",i="-50%";break;case"TOP_LEFT":s="-100%",i="-100%";break;case"TOP_RIGHT":s="0",i="-100%";break;case"BOTTOM_LEFT":s="-100%",i="0";break;case"BOTTOM_RIGHT":s="0",i="0";break;default:s="-50%",i="-50%"}const c=o.x+(this.opts.offsetX||0)+"px",a=o.y+(this.opts.offsetY||0)+"px";this.element.style.transform=`translateX(${s}) translateX(${c}) translateY(${i}) translateY(${a})`,this.opts.zIndex&&(this.element.style.zIndex=this.opts.zIndex.toString())}}onRemove(){this.element&&this.element.remove()}setOptions(n){const{element:o,...s}=n;this.element=o,this.opts=s,this.draw()}}}let ye=!1;const ve=["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"],lt=l.defineComponent({props:{apiPromise:{type:Promise},apiKey:{type:String,default:""},version:{type:String,default:"weekly"},libraries:{type:Array,default:()=>["places","marker"]},region:{type:String,required:!1},language:{type:String,required:!1},backgroundColor:{type:String,required:!1},center:{type:Object,default:()=>({lat:0,lng:0})},clickableIcons:{type:Boolean,required:!1,default:void 0},colorScheme:{type:String,required:!1},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},cameraControl:{type:Boolean,required:!1,default:void 0},cameraControlPosition:{type:String,required:!1}},emits:ve,setup(t,{emit:e}){const r=l.ref(),n=l.ref(!1),o=l.ref(),s=l.ref(),i=l.ref(!1);l.provide(M,o),l.provide(A,s),l.provide(ne,i);const c=()=>{const u={...t};Object.keys(u).forEach(f=>{u[f]===void 0&&delete u[f]});const h=f=>{var y;return f?{position:(y=s.value)==null?void 0:y.ControlPosition[f]}:{}},g={scaleControlOptions:t.scaleControlStyle?{style:t.scaleControlStyle}:{},panControlOptions:h(t.panControlPosition),zoomControlOptions:h(t.zoomControlPosition),rotateControlOptions:h(t.rotateControlPosition),streetViewControlOptions:h(t.streetViewControlPosition),fullscreenControlOptions:h(t.fullscreenControlPosition),cameraControlOptions:h(t.cameraControlPosition),disableDefaultUI:t.disableDefaultUi};return{...u,...g}},a=l.watch([s,o],([u,m])=>{const h=u,g=m;h&&g&&(h.event.addListenerOnce(g,"tilesloaded",()=>{i.value=!0}),setTimeout(a,0))},{immediate:!0}),d=()=>{const{apiKey:u,region:m,version:h,language:g,libraries:f}=t;ot({key:u,region:m,v:h,language:g,libraries:f})},p=u=>{const m=u?u.maps:google.maps;s.value=l.markRaw(m),o.value=l.markRaw(new m.Map(r.value,c()));const h=it(s.value);s.value[W]=h,ve.forEach(f=>{var y;(y=o.value)==null||y.addListener(f,v=>e(f,v))}),n.value=!0;const g=Object.keys(t).filter(f=>!["apiPromise","apiKey","version","libraries","region","language","center","zoom"].includes(f)).map(f=>l.toRef(t,f));l.watch([()=>t.center,()=>t.zoom,...g],([f,y],[v,w])=>{var C,S,x;const{center:_,zoom:T,...O}=c();(C=o.value)==null||C.setOptions(O),y!==void 0&&y!==w&&((S=o.value)==null||S.setZoom(y));const E=!v||f.lng!==v.lng||f.lat!==v.lat;f&&E&&((x=o.value)==null||x.panTo(f))})};return l.onMounted(()=>{if(t.apiPromise&&t.apiPromise instanceof Promise)t.apiPromise.then(p);else{ye||(d(),ye=!0);const u=t.libraries&&t.libraries.length>0?t.libraries:["maps","marker"];Promise.all(u.map(m=>st(m))).then(()=>p())}}),l.onBeforeUnmount(()=>{var u;i.value=!1,o.value&&((u=s.value)==null||u.event.clearInstanceListeners(o.value))}),{mapRef:r,ready:n,map:o,api:s,mapTilesLoaded:i}}}),hn="",D=(t,e)=>{const r=t.__vccOpts||t;for(const[n,o]of e)r[n]=o;return r},ct={ref:"mapRef",class:"mapdiv"};function ut(t,e,r,n,o,s){return l.openBlock(),l.createElementBlock("div",null,[l.createElementVNode("div",ct,null,512),l.renderSlot(t.$slots,"default",l.normalizeProps(l.guardReactiveProps({ready:t.ready,map:t.map,api:t.api,mapTilesLoaded:t.mapTilesLoaded})),void 0,!0)])}const dt=D(lt,[["render",ut],["__scopeId","data-v-c6aa3e71"]]);function ft(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pt=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,s;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[o]))return!1;for(o=n;o--!==0;){var i=s[o];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r};const V=ft(pt),we=["click","drag","dragend","dragstart","gmp-click"],mt=l.defineComponent({name:"AdvancedMarker",props:{options:{type:Object,required:!0},pinOptions:{type:Object,required:!1}},emits:we,setup(t,{emit:e,expose:r,slots:n}){const o=l.ref(),s=l.computed(()=>{var h;return(h=n.content)==null?void 0:h.call(n).some(g=>g.type!==l.Comment)}),i=l.toRef(t,"options"),c=l.toRef(t,"pinOptions"),a=l.ref(),d=l.inject(M,l.ref()),p=l.inject(A,l.ref()),u=l.inject(re,l.ref()),m=l.computed(()=>!!(u.value&&p.value&&a.value instanceof google.maps.marker.AdvancedMarkerElement));return l.watch([d,i,c,o],async(h,[g,f,y,v])=>{var C,S,x;const w=!V(i.value,f)||!V(c.value,y),_=o.value!==v,T=w||_||d.value!==g;if(!d.value||!p.value||!T||s.value&&!o.value)return;const{AdvancedMarkerElement:O,PinElement:E}=p.value.marker;if(a.value){const{map:he,content:Q,...ge}=i.value;Object.assign(a.value,{content:s.value?o.value:c.value?new E(c.value).element:Q,...ge}),m.value&&((C=u.value)==null||C.removeMarker(a.value),(S=u.value)==null||S.addMarker(a.value))}else s.value?i.value.content=o.value:c.value&&(i.value.content=new E(c.value).element),a.value=l.markRaw(new O(i.value)),m.value?(x=u.value)==null||x.addMarker(a.value):a.value.map=d.value,we.forEach(he=>{var Q;(Q=a.value)==null||Q.addListener(he,ge=>e(he,ge))})},{immediate:!0,flush:"post"}),l.onBeforeUnmount(()=>{var h,g;a.value&&((h=p.value)==null||h.event.clearInstanceListeners(a.value),m.value?(g=u.value)==null||g.removeMarker(a.value):a.value.map=null)}),l.provide(te,a),r({marker:a}),{hasCustomSlotContent:s,markerRef:o}}}),gn="",ht={key:0,class:"advanced-marker-wrapper"};function gt(t,e,r,n,o,s){return l.openBlock(),l.createElementBlock(l.Fragment,null,[t.hasCustomSlotContent?(l.openBlock(),l.createElementBlock("div",ht,[l.createElementVNode("div",l.mergeProps({ref:"markerRef"},t.$attrs),[l.renderSlot(t.$slots,"content")],16)])):l.createCommentVNode("v-if",!0),l.renderSlot(t.$slots,"default")],64)}const yt=D(mt,[["render",gt]]),Ee=t=>t==="Marker",ke=t=>t===W,$=(t,e,r,n)=>{const o=l.ref(),s=l.inject(M,l.ref()),i=l.inject(A,l.ref()),c=l.inject(re,l.ref()),a=l.computed(()=>!!(c.value&&i.value&&(o.value instanceof i.value.Marker||o.value instanceof i.value[W])));return l.watch([s,r],(d,[p,u])=>{var h,g,f;const m=!V(r.value,u)||s.value!==p;if(!(!s.value||!i.value||!m))if(o.value)o.value.setOptions(r.value),a.value&&((h=c.value)==null||h.removeMarker(o.value),(g=c.value)==null||g.addMarker(o.value));else{if(Ee(t))o.value=l.markRaw(new i.value[t](r.value));else if(ke(t)){const y=r.value;y.element&&(o.value=l.markRaw(new i.value[t](y)))}else o.value=l.markRaw(new i.value[t]({...r.value,map:s.value}));o.value&&(a.value?(f=c.value)==null||f.addMarker(o.value):(Ee(t)||ke(t))&&o.value.setMap(s.value)),e.forEach(y=>{var v;(v=o.value)==null||v.addListener(y,w=>n(y,w))})}},{immediate:!0,flush:"post"}),l.onBeforeUnmount(()=>{var d,p;o.value&&((d=i.value)==null||d.event.clearInstanceListeners(o.value),a.value?(p=c.value)==null||p.removeMarker(o.value):o.value.setMap(null))}),o},_e=["animation_changed","click","dblclick","rightclick","dragstart","dragend","drag","mouseover","mousedown","mouseout","mouseup","draggable_changed","clickable_changed","contextmenu","cursor_changed","flat_changed","zindex_changed","icon_changed","position_changed","shape_changed","title_changed","visible_changed"],vt=l.defineComponent({name:"Marker",props:{options:{type:Object,required:!0}},emits:_e,setup(t,{emit:e,expose:r,slots:n}){const o=l.toRef(t,"options"),s=$("Marker",_e,o,e);return l.provide(te,s),r({marker:s}),()=>{var i;return(i=n.default)==null?void 0:i.call(n)}}}),wt=l.defineComponent({name:"Polyline",props:{options:{type:Object,required:!0}},emits:B,setup(t,{emit:e}){const r=l.toRef(t,"options");return{polyline:$("Polyline",B,r,e)}},render:()=>null}),Et=l.defineComponent({name:"Polygon",props:{options:{type:Object,required:!0}},emits:B,setup(t,{emit:e}){const r=l.toRef(t,"options");return{polygon:$("Polygon",B,r,e)}},render:()=>null}),Ce=B.concat(["bounds_changed"]),kt=l.defineComponent({name:"Rectangle",props:{options:{type:Object,required:!0}},emits:Ce,setup(t,{emit:e}){const r=l.toRef(t,"options");return{rectangle:$("Rectangle",Ce,r,e)}},render:()=>null}),be=B.concat(["center_changed","radius_changed"]),_t=l.defineComponent({name:"Circle",props:{options:{type:Object,required:!0}},emits:be,setup(t,{emit:e}){const r=l.toRef(t,"options");return{circle:$("Circle",be,r,e)}},render:()=>null}),Ct=l.defineComponent({props:{position:{type:String,required:!0},index:{type:Number,default:1}},emits:["content:loaded"],setup(t,{emit:e}){const r=l.ref(null),n=l.inject(M,l.ref()),o=l.inject(A,l.ref()),s=l.inject(ne,l.ref(!1)),i=l.watch([s,o,r],([d,p,u])=>{p&&d&&u&&(c(t.position),e("content:loaded"),setTimeout(i,0))},{immediate:!0}),c=d=>{if(n.value&&o.value&&r.value){const p=o.value.ControlPosition[d];r.value.index=t.index,n.value.controls[p].push(r.value)}},a=d=>{if(n.value&&o.value){let p=null;const u=o.value.ControlPosition[d];n.value.controls[u].forEach((m,h)=>{m===r.value&&(p=h)}),p!==null&&n.value.controls[u].removeAt(p)}};return l.onBeforeUnmount(()=>a(t.position)),l.watch(()=>t.position,(d,p)=>{a(p),c(d)}),l.watch(()=>t.index,d=>{r.value&&(r.value.index=d)}),{controlRef:r}}}),yn="",bt={ref:"controlRef",class:"custom-control-wrapper"};function Mt(t,e,r,n,o,s){return l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createCommentVNode(`
|
|
3
3
|
v-show must be used instead of v-if otherwise there
|
|
4
4
|
would be no rendered content pushed to the map controls
|
|
5
|
-
`),i.createElementVNode("div",ht,[i.renderSlot(n.$slots,"default",{},void 0,!0)],512)],2112)}const yt=$(mt,[["render",gt],["__scopeId","data-v-ae91c15f"]]),Ee=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],vt=i.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...Ee,"update:modelValue"],setup(n,{slots:e,emit:t,expose:r}){const o=i.ref(),s=i.ref(),l=i.inject(M,i.ref()),c=i.inject(b,i.ref()),a=i.inject(X,i.ref());let d,f=n.modelValue;const u=i.computed(()=>{var p;return(p=e.default)==null?void 0:p.call(e).some(y=>y.type!==i.Comment)}),m=p=>{f=p,t("update:modelValue",p)},h=p=>{o.value&&(o.value.open({map:l.value,anchor:a.value,...p}),m(!0))},g=()=>{o.value&&(o.value.close(),m(!1))};return i.onMounted(()=>{i.watch([l,()=>n.options],([p,y],[v,w])=>{var R;const E=!D(y,w)||l.value!==v;l.value&&c.value&&E&&(o.value?(o.value.setOptions({...y,content:u.value?s.value:y.content}),a.value||h()):(o.value=i.markRaw(new c.value.InfoWindow({...y,content:u.value?s.value:y.content})),a.value&&(d=a.value.addListener("click",()=>h())),(!a.value||f)&&h(),Ee.forEach(O=>{var S;(S=o.value)==null||S.addListener(O,C=>t(O,C))}),(R=o.value)==null||R.addListener("closeclick",()=>m(!1))))},{immediate:!0,flush:"post"}),i.watch(a,(p,y)=>{!o.value||p===y||(d&&(d.remove(),d=void 0),p&&(d=p.addListener("click",()=>h())))},{flush:"post"}),i.watch(()=>n.modelValue,p=>{p!==f&&(p?h():g())})}),i.onBeforeUnmount(()=>{var p;d&&d.remove(),o.value&&((p=c.value)==null||p.event.clearInstanceListeners(o.value),g())}),r({infoWindow:o,open:h,close:g}),{infoWindow:o,infoWindowRef:s,hasSlotContent:u,open:h,close:g}}}),qr="",wt={key:0,class:"info-window-wrapper"};function _t(n,e,t,r,o,s){return n.hasSlotContent?(i.openBlock(),i.createElementBlock("div",wt,[i.createElementVNode("div",i.mergeProps({ref:"infoWindowRef"},n.$attrs),[i.renderSlot(n.$slots,"default",{},void 0,!0)],16)])):i.createCommentVNode("v-if",!0)}const Et=$(vt,[["render",_t],["__scopeId","data-v-cd53e37a"]]);var kt=Object.getOwnPropertyNames,Ct=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty;function ke(n,e){return function(r,o,s){return n(r,o,s)&&e(r,o,s)}}function W(n){return function(t,r,o){if(!t||!r||typeof t!="object"||typeof r!="object")return n(t,r,o);var s=o.cache,l=s.get(t),c=s.get(r);if(l&&c)return l===r&&c===t;s.set(t,r),s.set(r,t);var a=n(t,r,o);return s.delete(t),s.delete(r),a}}function Ce(n){return kt(n).concat(Ct(n))}var Ot=Object.hasOwn||function(n,e){return Mt.call(n,e)};function x(n,e){return n===e||!n&&!e&&n!==n&&e!==e}var Pt="__v",St="__o",bt="_owner",Me=Object.getOwnPropertyDescriptor,Oe=Object.keys;function At(n,e,t){var r=n.length;if(e.length!==r)return!1;for(;r-- >0;)if(!t.equals(n[r],e[r],r,r,n,e,t))return!1;return!0}function qt(n,e){return x(n.getTime(),e.getTime())}function Tt(n,e){return n.name===e.name&&n.message===e.message&&n.cause===e.cause&&n.stack===e.stack}function Lt(n,e){return n===e}function Pe(n,e,t){var r=n.size;if(r!==e.size)return!1;if(!r)return!0;for(var o=new Array(r),s=n.entries(),l,c,a=0;(l=s.next())&&!l.done;){for(var d=e.entries(),f=!1,u=0;(c=d.next())&&!c.done;){if(o[u]){u++;continue}var m=l.value,h=c.value;if(t.equals(m[0],h[0],a,u,n,e,t)&&t.equals(m[1],h[1],m[0],h[0],n,e,t)){f=o[u]=!0;break}u++}if(!f)return!1;a++}return!0}var Rt=x;function jt(n,e,t){var r=Oe(n),o=r.length;if(Oe(e).length!==o)return!1;for(;o-- >0;)if(!be(n,e,t,r[o]))return!1;return!0}function V(n,e,t){var r=Ce(n),o=r.length;if(Ce(e).length!==o)return!1;for(var s,l,c;o-- >0;)if(s=r[o],!be(n,e,t,s)||(l=Me(n,s),c=Me(e,s),(l||c)&&(!l||!c||l.configurable!==c.configurable||l.enumerable!==c.enumerable||l.writable!==c.writable)))return!1;return!0}function xt(n,e){return x(n.valueOf(),e.valueOf())}function It(n,e){return n.source===e.source&&n.flags===e.flags}function Se(n,e,t){var r=n.size;if(r!==e.size)return!1;if(!r)return!0;for(var o=new Array(r),s=n.values(),l,c;(l=s.next())&&!l.done;){for(var a=e.values(),d=!1,f=0;(c=a.next())&&!c.done;){if(!o[f]&&t.equals(l.value,c.value,l.value,c.value,n,e,t)){d=o[f]=!0;break}f++}if(!d)return!1}return!0}function Bt(n,e){var t=n.length;if(e.length!==t)return!1;for(;t-- >0;)if(n[t]!==e[t])return!1;return!0}function Nt(n,e){return n.hostname===e.hostname&&n.pathname===e.pathname&&n.protocol===e.protocol&&n.port===e.port&&n.hash===e.hash&&n.username===e.username&&n.password===e.password}function be(n,e,t,r){return(r===bt||r===St||r===Pt)&&(n.$$typeof||e.$$typeof)?!0:Ot(e,r)&&t.equals(n[r],e[r],r,r,n,e,t)}var $t="[object Arguments]",Dt="[object Boolean]",Vt="[object Date]",Ut="[object Error]",Zt="[object Map]",Gt="[object Number]",Ft="[object Object]",zt="[object RegExp]",Wt="[object Set]",Ht="[object String]",Kt="[object URL]",Yt=Array.isArray,Ae=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,qe=Object.assign,Jt=Object.prototype.toString.call.bind(Object.prototype.toString);function Xt(n){var e=n.areArraysEqual,t=n.areDatesEqual,r=n.areErrorsEqual,o=n.areFunctionsEqual,s=n.areMapsEqual,l=n.areNumbersEqual,c=n.areObjectsEqual,a=n.arePrimitiveWrappersEqual,d=n.areRegExpsEqual,f=n.areSetsEqual,u=n.areTypedArraysEqual,m=n.areUrlsEqual;return function(g,p,y){if(g===p)return!0;if(g==null||p==null)return!1;var v=typeof g;if(v!==typeof p)return!1;if(v!=="object")return v==="number"?l(g,p,y):v==="function"?o(g,p,y):!1;var w=g.constructor;if(w!==p.constructor)return!1;if(w===Object)return c(g,p,y);if(Yt(g))return e(g,p,y);if(Ae!=null&&Ae(g))return u(g,p,y);if(w===Date)return t(g,p,y);if(w===RegExp)return d(g,p,y);if(w===Map)return s(g,p,y);if(w===Set)return f(g,p,y);var E=Jt(g);return E===Vt?t(g,p,y):E===zt?d(g,p,y):E===Zt?s(g,p,y):E===Wt?f(g,p,y):E===Ft?typeof g.then!="function"&&typeof p.then!="function"&&c(g,p,y):E===Kt?m(g,p,y):E===Ut?r(g,p,y):E===$t?c(g,p,y):E===Dt||E===Gt||E===Ht?a(g,p,y):!1}}function Qt(n){var e=n.circular,t=n.createCustomConfig,r=n.strict,o={areArraysEqual:r?V:At,areDatesEqual:qt,areErrorsEqual:Tt,areFunctionsEqual:Lt,areMapsEqual:r?ke(Pe,V):Pe,areNumbersEqual:Rt,areObjectsEqual:r?V:jt,arePrimitiveWrappersEqual:xt,areRegExpsEqual:It,areSetsEqual:r?ke(Se,V):Se,areTypedArraysEqual:r?V:Bt,areUrlsEqual:Nt};if(t&&(o=qe({},o,t(o))),e){var s=W(o.areArraysEqual),l=W(o.areMapsEqual),c=W(o.areObjectsEqual),a=W(o.areSetsEqual);o=qe({},o,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:c,areSetsEqual:a})}return o}function er(n){return function(e,t,r,o,s,l,c){return n(e,t,c)}}function tr(n){var e=n.circular,t=n.comparator,r=n.createState,o=n.equals,s=n.strict;if(r)return function(a,d){var f=r(),u=f.cache,m=u===void 0?e?new WeakMap:void 0:u,h=f.meta;return t(a,d,{cache:m,equals:o,meta:h,strict:s})};if(e)return function(a,d){return t(a,d,{cache:new WeakMap,equals:o,meta:void 0,strict:s})};var l={cache:void 0,equals:o,meta:void 0,strict:s};return function(a,d){return t(a,d,l)}}var H=A();A({strict:!0}),A({circular:!0}),A({circular:!0,strict:!0}),A({createInternalComparator:function(){return x}}),A({strict:!0,createInternalComparator:function(){return x}}),A({circular:!0,createInternalComparator:function(){return x}}),A({circular:!0,createInternalComparator:function(){return x},strict:!0});function A(n){n===void 0&&(n={});var e=n.circular,t=e===void 0?!1:e,r=n.createInternalComparator,o=n.createState,s=n.strict,l=s===void 0?!1:s,c=Qt(n),a=Xt(c),d=r?r(a):er(a);return tr({circular:t,comparator:a,createState:o,equals:d,strict:l})}const Te=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],ne=1,U=8;class oe{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 o=r>>4;if(o!==ne)throw new Error(`Got v${o} data when expected v${ne}.`);const s=Te[r&15];if(!s)throw new Error("Unrecognized array type.");const[l]=new Uint16Array(e,2,1),[c]=new Uint32Array(e,4,1);return new oe(c,l,s,e)}constructor(e,t=64,r=Float64Array,o){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 s=Te.indexOf(this.ArrayType),l=e*2*this.ArrayType.BYTES_PER_ELEMENT,c=e*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-c%8)%8;if(s<0)throw new Error(`Unexpected typed array class: ${r}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,U,e),this.coords=new this.ArrayType(this.data,U+c+a,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(U+l+c+a),this.ids=new this.IndexArrayType(this.data,U,e),this.coords=new this.ArrayType(this.data,U+c+a,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(ne<<4)+s]),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 se(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,r,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:l,nodeSize:c}=this,a=[0,s.length-1,0],d=[];for(;a.length;){const f=a.pop()||0,u=a.pop()||0,m=a.pop()||0;if(u-m<=c){for(let y=m;y<=u;y++){const v=l[2*y],w=l[2*y+1];v>=e&&v<=r&&w>=t&&w<=o&&d.push(s[y])}continue}const h=m+u>>1,g=l[2*h],p=l[2*h+1];g>=e&&g<=r&&p>=t&&p<=o&&d.push(s[h]),(f===0?e<=g:t<=p)&&(a.push(m),a.push(h-1),a.push(1-f)),(f===0?r>=g:o>=p)&&(a.push(h+1),a.push(u),a.push(1-f))}return d}within(e,t,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:s,nodeSize:l}=this,c=[0,o.length-1,0],a=[],d=r*r;for(;c.length;){const f=c.pop()||0,u=c.pop()||0,m=c.pop()||0;if(u-m<=l){for(let y=m;y<=u;y++)Re(s[2*y],s[2*y+1],e,t)<=d&&a.push(o[y]);continue}const h=m+u>>1,g=s[2*h],p=s[2*h+1];Re(g,p,e,t)<=d&&a.push(o[h]),(f===0?e-r<=g:t-r<=p)&&(c.push(m),c.push(h-1),c.push(1-f)),(f===0?e+r>=g:t+r>=p)&&(c.push(h+1),c.push(u),c.push(1-f))}return a}}function se(n,e,t,r,o,s){if(o-r<=t)return;const l=r+o>>1;Le(n,e,l,r,o,s),se(n,e,t,r,l-1,1-s),se(n,e,t,l+1,o,1-s)}function Le(n,e,t,r,o,s){for(;o>r;){if(o-r>600){const d=o-r+1,f=t-r+1,u=Math.log(d),m=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*m*(d-m)/d)*(f-d/2<0?-1:1),g=Math.max(r,Math.floor(t-f*m/d+h)),p=Math.min(o,Math.floor(t+(d-f)*m/d+h));Le(n,e,t,g,p,s)}const l=e[2*t+s];let c=r,a=o;for(Z(n,e,r,t),e[2*o+s]>l&&Z(n,e,r,o);c<a;){for(Z(n,e,c,a),c++,a--;e[2*c+s]<l;)c++;for(;e[2*a+s]>l;)a--}e[2*r+s]===l?Z(n,e,r,a):(a++,Z(n,e,a,o)),a<=t&&(r=a+1),t<=a&&(o=a-1)}}function Z(n,e,t,r){ae(n,t,r),ae(e,2*t,2*r),ae(e,2*t+1,2*r+1)}function ae(n,e,t){const r=n[e];n[e]=n[t],n[t]=r}function Re(n,e,t,r){const o=n-t,s=e-r;return o*o+s*s}const rr={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:n=>n},je=Math.fround||(n=>e=>(n[0]=+e,n[0]))(new Float32Array(1)),I=2,q=3,ie=4,T=5,xe=6;class Ie{constructor(e){this.options=Object.assign(Object.create(rr),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:o}=this.options;t&&console.time("total time");const s=`prepare ${e.length} points`;t&&console.time(s),this.points=e;const l=[];for(let a=0;a<e.length;a++){const d=e[a];if(!d.geometry)continue;const[f,u]=d.geometry.coordinates,m=je(K(f)),h=je(Y(u));l.push(m,h,1/0,a,-1,1),this.options.reduce&&l.push(0)}let c=this.trees[o+1]=this._createTree(l);t&&console.timeEnd(s);for(let a=o;a>=r;a--){const d=+Date.now();c=this.trees[a]=this._createTree(this._cluster(c,a)),t&&console.log("z%d: %d clusters in %dms",a,c.numItems,+Date.now()-d)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let r=((e[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[1]));let s=e[2]===180?180:((e[2]+180)%360+360)%360-180;const l=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,s=180;else if(r>s){const u=this.getClusters([r,o,180,l],t),m=this.getClusters([-180,o,s,l],t);return u.concat(m)}const c=this.trees[this._limitZoom(t)],a=c.range(K(r),Y(l),K(s),Y(o)),d=c.data,f=[];for(const u of a){const m=this.stride*u;f.push(d[m+T]>1?Be(d,m,this.clusterProps):this.points[d[m+q]])}return f}getChildren(e){const t=this._getOriginId(e),r=this._getOriginZoom(e),o="No cluster with the specified id.",s=this.trees[r];if(!s)throw new Error(o);const l=s.data;if(t*this.stride>=l.length)throw new Error(o);const c=this.options.radius/(this.options.extent*Math.pow(2,r-1)),a=l[t*this.stride],d=l[t*this.stride+1],f=s.within(a,d,c),u=[];for(const m of f){const h=m*this.stride;l[h+ie]===e&&u.push(l[h+T]>1?Be(l,h,this.clusterProps):this.points[l[h+q]])}if(u.length===0)throw new Error(o);return u}getLeaves(e,t,r){t=t||10,r=r||0;const o=[];return this._appendLeaves(o,e,t,r,0),o}getTile(e,t,r){const o=this.trees[this._limitZoom(e)],s=Math.pow(2,e),{extent:l,radius:c}=this.options,a=c/l,d=(r-a)/s,f=(r+1+a)/s,u={features:[]};return this._addTileFeatures(o.range((t-a)/s,d,(t+1+a)/s,f),o.data,t,r,s,u),t===0&&this._addTileFeatures(o.range(1-a/s,d,1,f),o.data,s,r,s,u),t===s-1&&this._addTileFeatures(o.range(0,d,a/s,f),o.data,-1,r,s,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,o,s){const l=this.getChildren(t);for(const c of l){const a=c.properties;if(a&&a.cluster?s+a.point_count<=o?s+=a.point_count:s=this._appendLeaves(e,a.cluster_id,r,o,s):s<o?s++:e.push(c),e.length===r)break}return s}_createTree(e){const t=new oe(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,o,s,l){for(const c of e){const a=c*this.stride,d=t[a+T]>1;let f,u,m;if(d)f=Ne(t,a,this.clusterProps),u=t[a],m=t[a+1];else{const p=this.points[t[a+q]];f=p.properties;const[y,v]=p.geometry.coordinates;u=K(y),m=Y(v)}const h={type:1,geometry:[[Math.round(this.options.extent*(u*s-r)),Math.round(this.options.extent*(m*s-o))]],tags:f};let g;d||this.options.generateId?g=t[a+q]:g=this.points[t[a+q]].id,g!==void 0&&(h.id=g),l.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:r,extent:o,reduce:s,minPoints:l}=this.options,c=r/(o*Math.pow(2,t)),a=e.data,d=[],f=this.stride;for(let u=0;u<a.length;u+=f){if(a[u+I]<=t)continue;a[u+I]=t;const m=a[u],h=a[u+1],g=e.within(a[u],a[u+1],c),p=a[u+T];let y=p;for(const v of g){const w=v*f;a[w+I]>t&&(y+=a[w+T])}if(y>p&&y>=l){let v=m*p,w=h*p,E,R=-1;const O=((u/f|0)<<5)+(t+1)+this.points.length;for(const S of g){const C=S*f;if(a[C+I]<=t)continue;a[C+I]=t;const j=a[C+T];v+=a[C]*j,w+=a[C+1]*j,a[C+ie]=O,s&&(E||(E=this._map(a,u,!0),R=this.clusterProps.length,this.clusterProps.push(E)),s(E,this._map(a,C)))}a[u+ie]=O,d.push(v/y,w/y,1/0,O,-1,y),s&&d.push(R)}else{for(let v=0;v<f;v++)d.push(a[u+v]);if(y>1)for(const v of g){const w=v*f;if(!(a[w+I]<=t)){a[w+I]=t;for(let E=0;E<f;E++)d.push(a[w+E])}}}}return d}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,r){if(e[t+T]>1){const l=this.clusterProps[e[t+xe]];return r?Object.assign({},l):l}const o=this.points[e[t+q]].properties,s=this.options.map(o);return r&&s===o?Object.assign({},s):s}}function Be(n,e,t){return{type:"Feature",id:n[e+q],properties:Ne(n,e,t),geometry:{type:"Point",coordinates:[nr(n[e]),or(n[e+1])]}}}function Ne(n,e,t){const r=n[e+T],o=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?`${Math.round(r/100)/10}k`:r,s=n[e+xe],l=s===-1?{}:Object.assign({},t[s]);return Object.assign(l,{cluster:!0,cluster_id:n[e+q],point_count:r,point_count_abbreviated:o})}function K(n){return n/360+.5}function Y(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 nr(n){return(n-.5)*360}function or(n){const e=(180-n*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function le(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 o=0,r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]]);return t}typeof SuppressedError=="function"&&SuppressedError;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(Number.isFinite(e.position.lat)&&Number.isFinite(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 G{constructor({markers:e,position:t}){this.markers=[],e&&(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}}function P(n,e="assertion failed"){if(n==null)throw Error(e)}const sr=(n,e,t,r)=>{const o=n.getBounds();P(o);const s=$e(o,e,r);return t.filter(l=>s.contains(k.getPosition(l)))},$e=(n,e,t)=>{const{northEast:r,southWest:o}=ir(n,e),s=lr({northEast:r,southWest:o},t);return cr(s,e)},ar=(n,e,t)=>{const r=$e(n,e,t),o=r.getNorthEast(),s=r.getSouthWest();return[s.lng(),s.lat(),o.lng(),o.lat()]},ir=(n,e)=>{const t=e.fromLatLngToDivPixel(n.getNorthEast()),r=e.fromLatLngToDivPixel(n.getSouthWest());return P(t),P(r),{northEast:t,southWest:r}},lr=({northEast:n,southWest:e},t)=>(n.x+=t,n.y-=t,e.x-=t,e.y+=t,{northEast:n,southWest:e}),cr=({northEast:n,southWest:e},t)=>{const r=t.fromDivPixelToLatLng(e),o=t.fromDivPixelToLatLng(n);return new google.maps.LatLngBounds(r,o)};class De{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return dr(e)}}class ur extends De{constructor(e){var{viewportPadding:t=60}=e,r=le(e,["viewportPadding"]);super(r),this.viewportPadding=60,this.viewportPadding=t}calculate({markers:e,map:t,mapCanvasProjection:r}){const o=t.getZoom();return P(o),o>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:sr(t,r,e,this.viewportPadding),map:t,mapCanvasProjection:r})}}}const dr=n=>n.map(t=>new G({position:k.getPosition(t),markers:[t]}));class pr extends De{constructor(e){var{maxZoom:t,radius:r=60}=e,o=le(e,["maxZoom","radius"]);super({maxZoom:t}),this.markers=[],this.clusters=[],this.state={zoom:-1},this.superCluster=new Ie(Object.assign({maxZoom:this.maxZoom,radius:r},o))}calculate(e){let t=!1,r=e.map.getZoom();P(r),r=Math.round(r);const o={zoom:r};if(!H(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const s=this.markers.map(l=>{const c=k.getPosition(l);return{type:"Feature",geometry:{type:"Point",coordinates:[c.lng(),c.lat()]},properties:{marker:l}}});this.superCluster.load(s)}return t||(this.state.zoom<=this.maxZoom||o.zoom<=this.maxZoom)&&(t=!H(this.state,o)),this.state=o,e.markers.length===0?(this.clusters=[],{clusters:this.clusters,changed:t}):(t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t})}cluster({map:e}){const t=e.getZoom();return P(t),this.superCluster.getClusters([-180,-90,180,90],Math.round(t)).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:r}){if(r.cluster)return new G({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:t,lng:e}});const o=r.marker;return new G({markers:[o],position:k.getPosition(o)})}}class fr extends ur{constructor(e){var{maxZoom:t,radius:r=60,viewportPadding:o=60}=e,s=le(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:t,viewportPadding:o}),this.markers=[],this.clusters=[],this.superCluster=new Ie(Object.assign({maxZoom:this.maxZoom,radius:r},s)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const t=this.getViewportState(e);let r=!H(this.state,t);if(!H(e.markers,this.markers)){r=!0,this.markers=[...e.markers];const o=this.markers.map(s=>{const l=k.getPosition(s);return{type:"Feature",geometry:{type:"Point",coordinates:[l.lng(),l.lat()]},properties:{marker:s}}});this.superCluster.load(o)}return r&&(this.clusters=this.cluster(e),this.state=t),{clusters:this.clusters,changed:r}}cluster(e){const t=this.getViewportState(e);return this.superCluster.getClusters(t.view,t.zoom).map(r=>this.transformCluster(r))}transformCluster({geometry:{coordinates:[e,t]},properties:r}){if(r.cluster)return new G({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:t,lng:e}});const o=r.marker;return new G({markers:[o],position:k.getPosition(o)})}getViewportState(e){const t=e.map.getZoom(),r=e.map.getBounds();return P(t),P(r),{zoom:Math.round(t),view:ar(r,e.mapCanvasProjection,this.viewportPadding)}}}class mr{constructor(e,t){this.markers={sum:e.length};const r=t.map(s=>s.count),o=r.reduce((s,l)=>s+l,0);this.clusters={count:t.length,markers:{mean:o/t.length,sum:o,min:Math.min(...r),max:Math.max(...r)}}}}class hr{render({count:e,position:t},r,o){const l=`<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">
|
|
5
|
+
`),l.createElementVNode("div",bt,[l.renderSlot(t.$slots,"default",{},void 0,!0)],512)],2112)}const Ot=D(Ct,[["render",Mt],["__scopeId","data-v-ae91c15f"]]),Me=["closeclick","content_changed","domready","position_changed","visible","zindex_changed"],St=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,default:()=>({})},modelValue:{type:Boolean}},emits:[...Me,"update:modelValue"],setup(t,{slots:e,emit:r,expose:n}){const o=l.ref(),s=l.ref(),i=l.inject(M,l.ref()),c=l.inject(A,l.ref()),a=l.inject(te,l.ref());let d,p=t.modelValue;const u=l.computed(()=>{var f;return(f=e.default)==null?void 0:f.call(e).some(y=>y.type!==l.Comment)}),m=f=>{p=f,r("update:modelValue",f)},h=f=>{o.value&&(o.value.open({map:i.value,anchor:a.value,...f}),m(!0))},g=()=>{o.value&&(o.value.close(),m(!1))};return l.onMounted(()=>{l.watch([i,()=>t.options],([f,y],[v,w])=>{var T;const _=!V(y,w)||i.value!==v;i.value&&c.value&&_&&(o.value?(o.value.setOptions({...y,content:u.value?s.value:y.content}),a.value||h()):(o.value=l.markRaw(new c.value.InfoWindow({...y,content:u.value?s.value:y.content})),a.value&&(d=a.value.addListener("click",()=>h())),(!a.value||p)&&h(),Me.forEach(O=>{var E;(E=o.value)==null||E.addListener(O,C=>r(O,C))}),(T=o.value)==null||T.addListener("closeclick",()=>m(!1))))},{immediate:!0,flush:"post"}),l.watch(a,(f,y)=>{!o.value||f===y||(d&&(d.remove(),d=void 0),f&&(d=f.addListener("click",()=>h())))},{flush:"post"}),l.watch(()=>t.modelValue,f=>{f!==p&&(f?h():g())})}),l.onBeforeUnmount(()=>{var f;d&&d.remove(),o.value&&((f=c.value)==null||f.event.clearInstanceListeners(o.value),g())}),n({infoWindow:o,open:h,close:g}),{infoWindow:o,infoWindowRef:s,hasSlotContent:u,open:h,close:g}}}),vn="",Tt={key:0,class:"info-window-wrapper"};function Pt(t,e,r,n,o,s){return t.hasSlotContent?(l.openBlock(),l.createElementBlock("div",Tt,[l.createElementVNode("div",l.mergeProps({ref:"infoWindowRef"},t.$attrs),[l.renderSlot(t.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("v-if",!0)}const At=D(St,[["render",Pt],["__scopeId","data-v-5660e752"]]);var qt=Object.getOwnPropertyNames,Lt=Object.getOwnPropertySymbols,jt=Object.prototype.hasOwnProperty;function Oe(t,e){return function(n,o,s){return t(n,o,s)&&e(n,o,s)}}function H(t){return function(r,n,o){if(!r||!n||typeof r!="object"||typeof n!="object")return t(r,n,o);var s=o.cache,i=s.get(r),c=s.get(n);if(i&&c)return i===n&&c===r;s.set(r,n),s.set(n,r);var a=t(r,n,o);return s.delete(r),s.delete(n),a}}function Se(t){return qt(t).concat(Lt(t))}var Rt=Object.hasOwn||function(t,e){return jt.call(t,e)};function I(t,e){return t===e||!t&&!e&&t!==t&&e!==e}var xt="__v",It="__o",Nt="_owner",Te=Object.getOwnPropertyDescriptor,Pe=Object.keys;function Bt(t,e,r){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(!r.equals(t[n],e[n],n,n,t,e,r))return!1;return!0}function $t(t,e){return I(t.getTime(),e.getTime())}function Dt(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function Vt(t,e){return t===e}function Ae(t,e,r){var n=t.size;if(n!==e.size)return!1;if(!n)return!0;for(var o=new Array(n),s=t.entries(),i,c,a=0;(i=s.next())&&!i.done;){for(var d=e.entries(),p=!1,u=0;(c=d.next())&&!c.done;){if(o[u]){u++;continue}var m=i.value,h=c.value;if(r.equals(m[0],h[0],a,u,t,e,r)&&r.equals(m[1],h[1],m[0],h[0],t,e,r)){p=o[u]=!0;break}u++}if(!p)return!1;a++}return!0}var Ut=I;function Zt(t,e,r){var n=Pe(t),o=n.length;if(Pe(e).length!==o)return!1;for(;o-- >0;)if(!Le(t,e,r,n[o]))return!1;return!0}function U(t,e,r){var n=Se(t),o=n.length;if(Se(e).length!==o)return!1;for(var s,i,c;o-- >0;)if(s=n[o],!Le(t,e,r,s)||(i=Te(t,s),c=Te(e,s),(i||c)&&(!i||!c||i.configurable!==c.configurable||i.enumerable!==c.enumerable||i.writable!==c.writable)))return!1;return!0}function Gt(t,e){return I(t.valueOf(),e.valueOf())}function Ft(t,e){return t.source===e.source&&t.flags===e.flags}function qe(t,e,r){var n=t.size;if(n!==e.size)return!1;if(!n)return!0;for(var o=new Array(n),s=t.values(),i,c;(i=s.next())&&!i.done;){for(var a=e.values(),d=!1,p=0;(c=a.next())&&!c.done;){if(!o[p]&&r.equals(i.value,c.value,i.value,c.value,t,e,r)){d=o[p]=!0;break}p++}if(!d)return!1}return!0}function zt(t,e){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(t[r]!==e[r])return!1;return!0}function Wt(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function Le(t,e,r,n){return(n===Nt||n===It||n===xt)&&(t.$$typeof||e.$$typeof)?!0:Rt(e,n)&&r.equals(t[n],e[n],n,n,t,e,r)}var Ht="[object Arguments]",Kt="[object Boolean]",Xt="[object Date]",Yt="[object Error]",Jt="[object Map]",Qt="[object Number]",er="[object Object]",tr="[object RegExp]",rr="[object Set]",nr="[object String]",or="[object URL]",sr=Array.isArray,je=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,Re=Object.assign,ar=Object.prototype.toString.call.bind(Object.prototype.toString);function ir(t){var e=t.areArraysEqual,r=t.areDatesEqual,n=t.areErrorsEqual,o=t.areFunctionsEqual,s=t.areMapsEqual,i=t.areNumbersEqual,c=t.areObjectsEqual,a=t.arePrimitiveWrappersEqual,d=t.areRegExpsEqual,p=t.areSetsEqual,u=t.areTypedArraysEqual,m=t.areUrlsEqual;return function(g,f,y){if(g===f)return!0;if(g==null||f==null)return!1;var v=typeof g;if(v!==typeof f)return!1;if(v!=="object")return v==="number"?i(g,f,y):v==="function"?o(g,f,y):!1;var w=g.constructor;if(w!==f.constructor)return!1;if(w===Object)return c(g,f,y);if(sr(g))return e(g,f,y);if(je!=null&&je(g))return u(g,f,y);if(w===Date)return r(g,f,y);if(w===RegExp)return d(g,f,y);if(w===Map)return s(g,f,y);if(w===Set)return p(g,f,y);var _=ar(g);return _===Xt?r(g,f,y):_===tr?d(g,f,y):_===Jt?s(g,f,y):_===rr?p(g,f,y):_===er?typeof g.then!="function"&&typeof f.then!="function"&&c(g,f,y):_===or?m(g,f,y):_===Yt?n(g,f,y):_===Ht?c(g,f,y):_===Kt||_===Qt||_===nr?a(g,f,y):!1}}function lr(t){var e=t.circular,r=t.createCustomConfig,n=t.strict,o={areArraysEqual:n?U:Bt,areDatesEqual:$t,areErrorsEqual:Dt,areFunctionsEqual:Vt,areMapsEqual:n?Oe(Ae,U):Ae,areNumbersEqual:Ut,areObjectsEqual:n?U:Zt,arePrimitiveWrappersEqual:Gt,areRegExpsEqual:Ft,areSetsEqual:n?Oe(qe,U):qe,areTypedArraysEqual:n?U:zt,areUrlsEqual:Wt};if(r&&(o=Re({},o,r(o))),e){var s=H(o.areArraysEqual),i=H(o.areMapsEqual),c=H(o.areObjectsEqual),a=H(o.areSetsEqual);o=Re({},o,{areArraysEqual:s,areMapsEqual:i,areObjectsEqual:c,areSetsEqual:a})}return o}function cr(t){return function(e,r,n,o,s,i,c){return t(e,r,c)}}function ur(t){var e=t.circular,r=t.comparator,n=t.createState,o=t.equals,s=t.strict;if(n)return function(a,d){var p=n(),u=p.cache,m=u===void 0?e?new WeakMap:void 0:u,h=p.meta;return r(a,d,{cache:m,equals:o,meta:h,strict:s})};if(e)return function(a,d){return r(a,d,{cache:new WeakMap,equals:o,meta:void 0,strict:s})};var i={cache:void 0,equals:o,meta:void 0,strict:s};return function(a,d){return r(a,d,i)}}var K=q();q({strict:!0}),q({circular:!0}),q({circular:!0,strict:!0}),q({createInternalComparator:function(){return I}}),q({strict:!0,createInternalComparator:function(){return I}}),q({circular:!0,createInternalComparator:function(){return I}}),q({circular:!0,createInternalComparator:function(){return I},strict:!0});function q(t){t===void 0&&(t={});var e=t.circular,r=e===void 0?!1:e,n=t.createInternalComparator,o=t.createState,s=t.strict,i=s===void 0?!1:s,c=lr(t),a=ir(c),d=n?n(a):cr(a);return ur({circular:r,comparator:a,createState:o,equals:d,strict:i})}const xe=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],ae=1,Z=8;class ie{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[r,n]=new Uint8Array(e,0,2);if(r!==219)throw new Error("Data does not appear to be in a KDBush format.");const o=n>>4;if(o!==ae)throw new Error(`Got v${o} data when expected v${ae}.`);const s=xe[n&15];if(!s)throw new Error("Unrecognized array type.");const[i]=new Uint16Array(e,2,1),[c]=new Uint32Array(e,4,1);return new ie(c,i,s,e)}constructor(e,r=64,n=Float64Array,o){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const s=xe.indexOf(this.ArrayType),i=e*2*this.ArrayType.BYTES_PER_ELEMENT,c=e*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-c%8)%8;if(s<0)throw new Error(`Unexpected typed array class: ${n}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,Z,e),this.coords=new this.ArrayType(this.data,Z+c+a,e*2),this._pos=e*2,this._finished=!0):(this.data=new ArrayBuffer(Z+i+c+a),this.ids=new this.IndexArrayType(this.data,Z,e),this.coords=new this.ArrayType(this.data,Z+c+a,e*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(ae<<4)+s]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=e)}add(e,r){const n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=r,n}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return le(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,r,n,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:i,nodeSize:c}=this,a=[0,s.length-1,0],d=[];for(;a.length;){const p=a.pop()||0,u=a.pop()||0,m=a.pop()||0;if(u-m<=c){for(let y=m;y<=u;y++){const v=i[2*y],w=i[2*y+1];v>=e&&v<=n&&w>=r&&w<=o&&d.push(s[y])}continue}const h=m+u>>1,g=i[2*h],f=i[2*h+1];g>=e&&g<=n&&f>=r&&f<=o&&d.push(s[h]),(p===0?e<=g:r<=f)&&(a.push(m),a.push(h-1),a.push(1-p)),(p===0?n>=g:o>=f)&&(a.push(h+1),a.push(u),a.push(1-p))}return d}within(e,r,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:s,nodeSize:i}=this,c=[0,o.length-1,0],a=[],d=n*n;for(;c.length;){const p=c.pop()||0,u=c.pop()||0,m=c.pop()||0;if(u-m<=i){for(let y=m;y<=u;y++)Ne(s[2*y],s[2*y+1],e,r)<=d&&a.push(o[y]);continue}const h=m+u>>1,g=s[2*h],f=s[2*h+1];Ne(g,f,e,r)<=d&&a.push(o[h]),(p===0?e-n<=g:r-n<=f)&&(c.push(m),c.push(h-1),c.push(1-p)),(p===0?e+n>=g:r+n>=f)&&(c.push(h+1),c.push(u),c.push(1-p))}return a}}function le(t,e,r,n,o,s){if(o-n<=r)return;const i=n+o>>1;Ie(t,e,i,n,o,s),le(t,e,r,n,i-1,1-s),le(t,e,r,i+1,o,1-s)}function Ie(t,e,r,n,o,s){for(;o>n;){if(o-n>600){const d=o-n+1,p=r-n+1,u=Math.log(d),m=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*m*(d-m)/d)*(p-d/2<0?-1:1),g=Math.max(n,Math.floor(r-p*m/d+h)),f=Math.min(o,Math.floor(r+(d-p)*m/d+h));Ie(t,e,r,g,f,s)}const i=e[2*r+s];let c=n,a=o;for(G(t,e,n,r),e[2*o+s]>i&&G(t,e,n,o);c<a;){for(G(t,e,c,a),c++,a--;e[2*c+s]<i;)c++;for(;e[2*a+s]>i;)a--}e[2*n+s]===i?G(t,e,n,a):(a++,G(t,e,a,o)),a<=r&&(n=a+1),r<=a&&(o=a-1)}}function G(t,e,r,n){ce(t,r,n),ce(e,2*r,2*n),ce(e,2*r+1,2*n+1)}function ce(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function Ne(t,e,r,n){const o=t-r,s=e-n;return o*o+s*s}const dr={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:t=>t},Be=Math.fround||(t=>e=>(t[0]=+e,t[0]))(new Float32Array(1)),N=2,L=3,ue=4,j=5,$e=6;class De{constructor(e){this.options=Object.assign(Object.create(dr),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:r,minZoom:n,maxZoom:o}=this.options;r&&console.time("total time");const s=`prepare ${e.length} points`;r&&console.time(s),this.points=e;const i=[];for(let a=0;a<e.length;a++){const d=e[a];if(!d.geometry)continue;const[p,u]=d.geometry.coordinates,m=Be(X(p)),h=Be(Y(u));i.push(m,h,1/0,a,-1,1),this.options.reduce&&i.push(0)}let c=this.trees[o+1]=this._createTree(i);r&&console.timeEnd(s);for(let a=o;a>=n;a--){const d=+Date.now();c=this.trees[a]=this._createTree(this._cluster(c,a)),r&&console.log("z%d: %d clusters in %dms",a,c.numItems,+Date.now()-d)}return r&&console.timeEnd("total time"),this}getClusters(e,r){let n=((e[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[1]));let s=e[2]===180?180:((e[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)n=-180,s=180;else if(n>s){const u=this.getClusters([n,o,180,i],r),m=this.getClusters([-180,o,s,i],r);return u.concat(m)}const c=this.trees[this._limitZoom(r)],a=c.range(X(n),Y(i),X(s),Y(o)),d=c.data,p=[];for(const u of a){const m=this.stride*u;p.push(d[m+j]>1?Ve(d,m,this.clusterProps):this.points[d[m+L]])}return p}getChildren(e){const r=this._getOriginId(e),n=this._getOriginZoom(e),o="No cluster with the specified id.",s=this.trees[n];if(!s)throw new Error(o);const i=s.data;if(r*this.stride>=i.length)throw new Error(o);const c=this.options.radius/(this.options.extent*Math.pow(2,n-1)),a=i[r*this.stride],d=i[r*this.stride+1],p=s.within(a,d,c),u=[];for(const m of p){const h=m*this.stride;i[h+ue]===e&&u.push(i[h+j]>1?Ve(i,h,this.clusterProps):this.points[i[h+L]])}if(u.length===0)throw new Error(o);return u}getLeaves(e,r,n){r=r||10,n=n||0;const o=[];return this._appendLeaves(o,e,r,n,0),o}getTile(e,r,n){const o=this.trees[this._limitZoom(e)],s=Math.pow(2,e),{extent:i,radius:c}=this.options,a=c/i,d=(n-a)/s,p=(n+1+a)/s,u={features:[]};return this._addTileFeatures(o.range((r-a)/s,d,(r+1+a)/s,p),o.data,r,n,s,u),r===0&&this._addTileFeatures(o.range(1-a/s,d,1,p),o.data,s,n,s,u),r===s-1&&this._addTileFeatures(o.range(0,d,a/s,p),o.data,-1,n,s,u),u.features.length?u:null}getClusterExpansionZoom(e){let r=this._getOriginZoom(e)-1;for(;r<=this.options.maxZoom;){const n=this.getChildren(e);if(r++,n.length!==1)break;e=n[0].properties.cluster_id}return r}_appendLeaves(e,r,n,o,s){const i=this.getChildren(r);for(const c of i){const a=c.properties;if(a&&a.cluster?s+a.point_count<=o?s+=a.point_count:s=this._appendLeaves(e,a.cluster_id,n,o,s):s<o?s++:e.push(c),e.length===n)break}return s}_createTree(e){const r=new ie(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let n=0;n<e.length;n+=this.stride)r.add(e[n],e[n+1]);return r.finish(),r.data=e,r}_addTileFeatures(e,r,n,o,s,i){for(const c of e){const a=c*this.stride,d=r[a+j]>1;let p,u,m;if(d)p=Ue(r,a,this.clusterProps),u=r[a],m=r[a+1];else{const f=this.points[r[a+L]];p=f.properties;const[y,v]=f.geometry.coordinates;u=X(y),m=Y(v)}const h={type:1,geometry:[[Math.round(this.options.extent*(u*s-n)),Math.round(this.options.extent*(m*s-o))]],tags:p};let g;d||this.options.generateId?g=r[a+L]:g=this.points[r[a+L]].id,g!==void 0&&(h.id=g),i.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,r){const{radius:n,extent:o,reduce:s,minPoints:i}=this.options,c=n/(o*Math.pow(2,r)),a=e.data,d=[],p=this.stride;for(let u=0;u<a.length;u+=p){if(a[u+N]<=r)continue;a[u+N]=r;const m=a[u],h=a[u+1],g=e.within(a[u],a[u+1],c),f=a[u+j];let y=f;for(const v of g){const w=v*p;a[w+N]>r&&(y+=a[w+j])}if(y>f&&y>=i){let v=m*f,w=h*f,_,T=-1;const O=((u/p|0)<<5)+(r+1)+this.points.length;for(const E of g){const C=E*p;if(a[C+N]<=r)continue;a[C+N]=r;const S=a[C+j];v+=a[C]*S,w+=a[C+1]*S,a[C+ue]=O,s&&(_||(_=this._map(a,u,!0),T=this.clusterProps.length,this.clusterProps.push(_)),s(_,this._map(a,C)))}a[u+ue]=O,d.push(v/y,w/y,1/0,O,-1,y),s&&d.push(T)}else{for(let v=0;v<p;v++)d.push(a[u+v]);if(y>1)for(const v of g){const w=v*p;if(!(a[w+N]<=r)){a[w+N]=r;for(let _=0;_<p;_++)d.push(a[w+_])}}}}return d}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,r,n){if(e[r+j]>1){const i=this.clusterProps[e[r+$e]];return n?Object.assign({},i):i}const o=this.points[e[r+L]].properties,s=this.options.map(o);return n&&s===o?Object.assign({},s):s}}function Ve(t,e,r){return{type:"Feature",id:t[e+L],properties:Ue(t,e,r),geometry:{type:"Point",coordinates:[fr(t[e]),pr(t[e+1])]}}}function Ue(t,e,r){const n=t[e+j],o=n>=1e4?`${Math.round(n/1e3)}k`:n>=1e3?`${Math.round(n/100)/10}k`:n,s=t[e+$e],i=s===-1?{}:Object.assign({},r[s]);return Object.assign(i,{cluster:!0,cluster_id:t[e+L],point_count:n,point_count_abbreviated:o})}function X(t){return t/360+.5}function Y(t){const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function fr(t){return(t-.5)*360}function pr(t){const e=(180-t*360)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function de(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(t,n[o])&&(r[n[o]]=t[n[o]]);return r}typeof SuppressedError=="function"&&SuppressedError;class b{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,r){this.isAdvancedMarker(e)?e.map=r:e.setMap(r)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(Number.isFinite(e.position.lat)&&Number.isFinite(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 F{constructor({markers:e,position:r}){this.markers=[],e&&(this.markers=e),r&&(r instanceof google.maps.LatLng?this._position=r:this._position=new google.maps.LatLng(r))}get bounds(){if(this.markers.length===0&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const r of this.markers)e.extend(b.getPosition(r));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(e=>b.getVisible(e)).length}push(e){this.markers.push(e)}delete(){this.marker&&(b.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}function P(t,e="assertion failed"){if(t==null)throw Error(e)}const mr=(t,e,r,n)=>{const o=t.getBounds();P(o);const s=Ze(o,e,n);return r.filter(i=>s.contains(b.getPosition(i)))},Ze=(t,e,r)=>{const{northEast:n,southWest:o}=gr(t,e),s=yr({northEast:n,southWest:o},r);return vr(s,e)},hr=(t,e,r)=>{const n=Ze(t,e,r),o=n.getNorthEast(),s=n.getSouthWest();return[s.lng(),s.lat(),o.lng(),o.lat()]},gr=(t,e)=>{const r=e.fromLatLngToDivPixel(t.getNorthEast()),n=e.fromLatLngToDivPixel(t.getSouthWest());return P(r),P(n),{northEast:r,southWest:n}},yr=({northEast:t,southWest:e},r)=>(t.x+=r,t.y-=r,e.x-=r,e.y+=r,{northEast:t,southWest:e}),vr=({northEast:t,southWest:e},r)=>{const n=r.fromDivPixelToLatLng(e),o=r.fromDivPixelToLatLng(t);return new google.maps.LatLngBounds(n,o)};class Ge{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return Er(e)}}class wr extends Ge{constructor(e){var{viewportPadding:r=60}=e,n=de(e,["viewportPadding"]);super(n),this.viewportPadding=60,this.viewportPadding=r}calculate({markers:e,map:r,mapCanvasProjection:n}){const o=r.getZoom();return P(o),o>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:mr(r,n,e,this.viewportPadding),map:r,mapCanvasProjection:n})}}}const Er=t=>t.map(r=>new F({position:b.getPosition(r),markers:[r]}));class kr extends Ge{constructor(e){var{maxZoom:r,radius:n=60}=e,o=de(e,["maxZoom","radius"]);super({maxZoom:r}),this.markers=[],this.clusters=[],this.state={zoom:-1},this.superCluster=new De(Object.assign({maxZoom:this.maxZoom,radius:n},o))}calculate(e){let r=!1,n=e.map.getZoom();P(n),n=Math.round(n);const o={zoom:n};if(!K(e.markers,this.markers)){r=!0,this.markers=[...e.markers];const s=this.markers.map(i=>{const c=b.getPosition(i);return{type:"Feature",geometry:{type:"Point",coordinates:[c.lng(),c.lat()]},properties:{marker:i}}});this.superCluster.load(s)}return r||(this.state.zoom<=this.maxZoom||o.zoom<=this.maxZoom)&&(r=!K(this.state,o)),this.state=o,e.markers.length===0?(this.clusters=[],{clusters:this.clusters,changed:r}):(r&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:r})}cluster({map:e}){const r=e.getZoom();return P(r),this.superCluster.getClusters([-180,-90,180,90],Math.round(r)).map(n=>this.transformCluster(n))}transformCluster({geometry:{coordinates:[e,r]},properties:n}){if(n.cluster)return new F({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:r,lng:e}});const o=n.marker;return new F({markers:[o],position:b.getPosition(o)})}}class _r extends wr{constructor(e){var{maxZoom:r,radius:n=60,viewportPadding:o=60}=e,s=de(e,["maxZoom","radius","viewportPadding"]);super({maxZoom:r,viewportPadding:o}),this.markers=[],this.clusters=[],this.superCluster=new De(Object.assign({maxZoom:this.maxZoom,radius:n},s)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(e){const r=this.getViewportState(e);let n=!K(this.state,r);if(!K(e.markers,this.markers)){n=!0,this.markers=[...e.markers];const o=this.markers.map(s=>{const i=b.getPosition(s);return{type:"Feature",geometry:{type:"Point",coordinates:[i.lng(),i.lat()]},properties:{marker:s}}});this.superCluster.load(o)}return n&&(this.clusters=this.cluster(e),this.state=r),{clusters:this.clusters,changed:n}}cluster(e){const r=this.getViewportState(e);return this.superCluster.getClusters(r.view,r.zoom).map(n=>this.transformCluster(n))}transformCluster({geometry:{coordinates:[e,r]},properties:n}){if(n.cluster)return new F({markers:this.superCluster.getLeaves(n.cluster_id,1/0).map(s=>s.properties.marker),position:{lat:r,lng:e}});const o=n.marker;return new F({markers:[o],position:b.getPosition(o)})}getViewportState(e){const r=e.map.getZoom(),n=e.map.getBounds();return P(r),P(n),{zoom:Math.round(r),view:hr(n,e.mapCanvasProjection,this.viewportPadding)}}}class Cr{constructor(e,r){this.markers={sum:e.length};const n=r.map(s=>s.count),o=n.reduce((s,i)=>s+i,0);this.clusters={count:r.length,markers:{mean:o/r.length,sum:o,min:Math.min(...n),max:Math.max(...n)}}}}class br{render({count:e,position:r},n,o){const i=`<svg fill="${e>Math.max(10,n.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">
|
|
6
6
|
<circle cx="120" cy="120" opacity=".6" r="70" />
|
|
7
7
|
<circle cx="120" cy="120" opacity=".3" r="90" />
|
|
8
8
|
<circle cx="120" cy="120" opacity=".2" r="110" />
|
|
9
9
|
<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>
|
|
10
|
-
</svg>`,c=`Cluster of ${e} markers`,a=Number(google.maps.Marker.MAX_ZINDEX)+e;if(
|
|
10
|
+
</svg>`,c=`Cluster of ${e} markers`,a=Number(google.maps.Marker.MAX_ZINDEX)+e;if(b.isAdvancedMarkerAvailable(o)){const u=new DOMParser().parseFromString(i,"image/svg+xml").documentElement;u.setAttribute("transform","translate(0 25)");const m={map:o,position:r,zIndex:a,title:c,content:u};return new google.maps.marker.AdvancedMarkerElement(m)}const d={position:r,zIndex:a,title:c,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(d)}}function Mr(t,e){for(let r in e.prototype)t.prototype[r]=e.prototype[r]}class fe{constructor(){Mr(fe,google.maps.OverlayView)}}var R;(function(t){t.CLUSTERING_BEGIN="clusteringbegin",t.CLUSTERING_END="clusteringend",t.CLUSTER_CLICK="click",t.GMP_CLICK="gmp-click"})(R||(R={}));const Or=(t,e,r)=>{e.bounds&&r.fitBounds(e.bounds)};class Sr extends fe{constructor({map:e,markers:r=[],algorithmOptions:n={},algorithm:o=new kr(n),renderer:s=new br,onClusterClick:i=Or}){super(),this.map=null,this.idleListener=null,this.markers=[...r],this.clusters=[],this.algorithm=o,this.renderer=s,this.onClusterClick=i,e&&this.setMap(e)}addMarker(e,r){this.markers.includes(e)||(this.markers.push(e),r||this.render())}addMarkers(e,r){e.forEach(n=>{this.addMarker(n,!0)}),r||this.render()}removeMarker(e,r){const n=this.markers.indexOf(e);return n===-1?!1:(b.setMap(e,null),this.markers.splice(n,1),r||this.render(),!0)}removeMarkers(e,r){let n=!1;return e.forEach(o=>{n=this.removeMarker(o,!0)||n}),n&&!r&&this.render(),n}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,R.CLUSTERING_BEGIN,this);const{clusters:r,changed:n}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(n||n==null){const o=new Set;for(const i of r)i.markers.length==1&&o.add(i.markers[0]);const s=[];for(const i of this.clusters)i.marker!=null&&(i.markers.length==1?o.has(i.marker)||b.setMap(i.marker,null):s.push(i.marker));this.clusters=r,this.renderClusters(),requestAnimationFrame(()=>s.forEach(i=>b.setMap(i,null)))}google.maps.event.trigger(this,R.CLUSTERING_END,this)}}onAdd(){const e=this.getMap();P(e),this.idleListener=e.addListener("idle",this.render.bind(this)),this.render()}onRemove(){this.idleListener&&google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(e=>b.setMap(e,null)),this.clusters.forEach(e=>e.delete()),this.clusters=[]}renderClusters(){const e=new Cr(this.markers,this.clusters),r=this.getMap();this.clusters.forEach(n=>{if(n.markers.length===1)n.marker=n.markers[0];else if(n.marker=this.renderer.render(n,e,r),n.markers.forEach(o=>b.setMap(o,null)),this.onClusterClick){const o=b.isAdvancedMarker(n.marker)?R.GMP_CLICK:R.CLUSTER_CLICK;n.marker.addListener(o,s=>{google.maps.event.trigger(this,R.CLUSTER_CLICK,n),this.onClusterClick(s,n,r)})}b.setMap(n.marker,r)})}}function pe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Tr=typeof global=="object"&&global&&global.Object===Object&&global;const Pr=Tr;var Ar=typeof self=="object"&&self&&self.Object===Object&&self,qr=Pr||Ar||Function("return this")();const Fe=qr;var Lr=function(){return Fe.Date.now()};const me=Lr;var jr=/\s/;function Rr(t){for(var e=t.length;e--&&jr.test(t.charAt(e)););return e}var xr=/^\s+/;function Ir(t){return t&&t.slice(0,Rr(t)+1).replace(xr,"")}var Nr=Fe.Symbol;const J=Nr;var ze=Object.prototype,Br=ze.hasOwnProperty,$r=ze.toString,z=J?J.toStringTag:void 0;function Dr(t){var e=Br.call(t,z),r=t[z];try{t[z]=void 0;var n=!0}catch{}var o=$r.call(t);return n&&(e?t[z]=r:delete t[z]),o}var Vr=Object.prototype,Ur=Vr.toString;function Zr(t){return Ur.call(t)}var Gr="[object Null]",Fr="[object Undefined]",We=J?J.toStringTag:void 0;function zr(t){return t==null?t===void 0?Fr:Gr:We&&We in Object(t)?Dr(t):Zr(t)}function Wr(t){return t!=null&&typeof t=="object"}var Hr="[object Symbol]";function Kr(t){return typeof t=="symbol"||Wr(t)&&zr(t)==Hr}var He=0/0,Xr=/^[-+]0x[0-9a-f]+$/i,Yr=/^0b[01]+$/i,Jr=/^0o[0-7]+$/i,Qr=parseInt;function Ke(t){if(typeof t=="number")return t;if(Kr(t))return He;if(pe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=pe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Ir(t);var r=Yr.test(t);return r||Jr.test(t)?Qr(t.slice(2),r?2:8):Xr.test(t)?He:+t}var en="Expected a function",tn=Math.max,rn=Math.min;function nn(t,e,r){var n,o,s,i,c,a,d=0,p=!1,u=!1,m=!0;if(typeof t!="function")throw new TypeError(en);e=Ke(e)||0,pe(r)&&(p=!!r.leading,u="maxWait"in r,s=u?tn(Ke(r.maxWait)||0,e):s,m="trailing"in r?!!r.trailing:m);function h(E){var C=n,S=o;return n=o=void 0,d=E,i=t.apply(S,C),i}function g(E){return d=E,c=setTimeout(v,e),p?h(E):i}function f(E){var C=E-a,S=E-d,x=e-C;return u?rn(x,s-S):x}function y(E){var C=E-a,S=E-d;return a===void 0||C>=e||C<0||u&&S>=s}function v(){var E=me();if(y(E))return w(E);c=setTimeout(v,f(E))}function w(E){return c=void 0,m&&n?h(E):(n=o=void 0,i)}function _(){c!==void 0&&clearTimeout(c),d=0,n=a=o=c=void 0}function T(){return c===void 0?i:w(me())}function O(){var E=me(),C=y(E);if(n=arguments,o=this,a=E,C){if(c===void 0)return g(a);if(u)return clearTimeout(c),c=setTimeout(v,e),h(a)}return c===void 0&&(c=setTimeout(v,e)),i}return O.cancel=_,O.flush=T,O}class on extends Sr{constructor(r,n=10){super(r);ee(this,"debouncedRender");this.debouncedRender=nn(()=>{super.render()},n,{leading:!0,trailing:!0})}addMarker(r,n){super.addMarker(r,!0),n||this.debouncedRender()}removeMarker(r,n){const o=super.removeMarker(r,!0);return n||this.debouncedRender(),o}addMarkers(r,n){super.addMarkers(r,!0),n||this.debouncedRender()}removeMarkers(r,n){const o=super.removeMarkers(r,!0);return n||this.debouncedRender(),o}clearMarkers(r){super.clearMarkers(!0),r||this.debouncedRender()}render(){this.debouncedRender.cancel(),super.render()}destroy(){this.debouncedRender.cancel()}}class sn extends _r{calculate(e){return e.markers.length===0?{clusters:[],changed:!0}:super.calculate(e)}}const Xe=Object.values(R),an=l.defineComponent({name:"MarkerCluster",props:{options:{type:Object,default:()=>({})},renderDebounceDelay:{type:Number,default:10}},emits:Xe,setup(t,{emit:e,expose:r,slots:n}){const o=l.ref(),s=l.inject(M,l.ref()),i=l.inject(A,l.ref());return l.provide(re,o),l.watch(s,()=>{s.value&&(o.value=l.markRaw(new on({map:s.value,algorithm:new sn(t.options.algorithmOptions??{}),...t.options},t.renderDebounceDelay)),Xe.forEach(c=>{var a;(a=o.value)==null||a.addListener(c,d=>e(c,d))}))},{immediate:!0}),l.onBeforeUnmount(()=>{var c;o.value&&((c=i.value)==null||c.event.clearInstanceListeners(o.value),o.value.clearMarkers(!0),o.value.setMap(null),o.value.destroy())}),r({markerCluster:o}),()=>{var c;return(c=n.default)==null?void 0:c.call(n)}}}),ln=l.defineComponent({inheritAttrs:!1,props:{options:{type:Object,required:!0}},setup(t,{slots:e,emit:r,expose:n}){const o=l.ref(),s=l.computed(()=>{var a;return(a=e.default)==null?void 0:a.call(e).some(d=>d.type!==l.Comment)}),i=l.computed(()=>({...t.options,element:o.value})),c=$(W,[],i,r);return n({customMarker:c}),{customMarkerRef:o,customMarker:c,hasSlotContent:s}}}),wn="",cn={key:0,class:"custom-marker-wrapper"};function un(t,e,r,n,o,s){return t.hasSlotContent?(l.openBlock(),l.createElementBlock("div",cn,[l.createElementVNode("div",l.mergeProps({ref:"customMarkerRef",style:{cursor:t.$attrs.onClick?"pointer":void 0}},t.$attrs),[l.renderSlot(t.$slots,"default",{},void 0,!0)],16)])):l.createCommentVNode("v-if",!0)}const dn=D(ln,[["render",un],["__scopeId","data-v-90fe8380"]]),fn=l.defineComponent({name:"HeatmapLayer",props:{options:{type:Object,default:()=>({})}},setup(t){const e=l.ref(),r=l.inject(M,l.ref()),n=l.inject(A,l.ref());return l.watch([r,()=>t.options],([o,s],[i,c])=>{const a=!V(s,c)||r.value!==i;if(r.value&&n.value&&a){let d;if(s.data&&!(s.data instanceof n.value.MVCArray)){const p=n.value.LatLng,u=s.data.map(m=>m instanceof p||"location"in m&&(m.location instanceof p||m.location===null)?m:"location"in m?{...m,location:new p(m.location)}:new p(m));d={...s,data:u}}else d=s;e.value?e.value.setOptions(d):e.value=l.markRaw(new n.value.visualization.HeatmapLayer({...d,map:r.value}))}},{immediate:!0}),l.onBeforeUnmount(()=>{e.value&&e.value.setMap(null)}),{heatmapLayer:e}},render:()=>null});k.AdvancedMarker=yt,k.Circle=_t,k.CustomControl=Ot,k.CustomMarker=dn,k.GoogleMap=dt,k.HeatmapLayer=fn,k.InfoWindow=At,k.Marker=vt,k.MarkerCluster=an,k.Polygon=Et,k.Polyline=wt,k.Rectangle=kt,k.apiSymbol=A,k.mapSymbol=M,k.mapTilesLoadedSymbol=ne,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import * as themes from "../themes/index";
|
|
2
2
|
export type IControlPosition = keyof typeof google.maps.ControlPosition;
|
|
3
3
|
export type ITheme = keyof typeof themes;
|
|
4
|
+
export interface ICustomMarkerOptions {
|
|
5
|
+
position?: google.maps.MarkerOptions["position"];
|
|
6
|
+
map?: google.maps.Map | google.maps.StreetViewPanorama | null;
|
|
7
|
+
anchorPoint?: "CENTER" | "TOP_CENTER" | "BOTTOM_CENTER" | "LEFT_CENTER" | "RIGHT_CENTER" | "TOP_LEFT" | "TOP_RIGHT" | "BOTTOM_LEFT" | "BOTTOM_RIGHT";
|
|
8
|
+
offsetX?: number;
|
|
9
|
+
offsetY?: number;
|
|
10
|
+
zIndex?: number | null;
|
|
11
|
+
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { PropType } from "vue";
|
|
1
|
+
import { PropType, type Ref } from "vue";
|
|
2
|
+
export interface ICustomMarkerExposed {
|
|
3
|
+
customMarker: Ref<InstanceType<typeof google.maps.CustomMarker> | undefined>;
|
|
4
|
+
}
|
|
2
5
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
6
|
options: {
|
|
4
7
|
type: PropType<google.maps.CustomMarkerOptions>;
|
|
5
8
|
required: true;
|
|
6
9
|
};
|
|
7
10
|
}>, {
|
|
8
|
-
customMarkerRef:
|
|
9
|
-
customMarker:
|
|
11
|
+
customMarkerRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
12
|
+
customMarker: Ref<(google.maps.OverlayView & {
|
|
10
13
|
getPosition(): google.maps.LatLng | null;
|
|
11
14
|
getVisible(): boolean;
|
|
12
15
|
setOptions(options: google.maps.CustomMarkerOptions): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MarkerClusterer, MarkerClustererOptions } from "@googlemaps/markerclusterer";
|
|
2
|
+
/**
|
|
3
|
+
* MarkerClusterer with debounced rendering for batch operations.
|
|
4
|
+
*
|
|
5
|
+
* Uses leading+trailing debounce: renders immediately on first call,
|
|
6
|
+
* then batches subsequent calls and renders once more after the delay.
|
|
7
|
+
* This provides immediate visual feedback while still batching rapid updates.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DebouncedMarkerClusterer extends MarkerClusterer {
|
|
10
|
+
private readonly debouncedRender;
|
|
11
|
+
constructor(options: MarkerClustererOptions, debounceDelay?: number);
|
|
12
|
+
addMarker(marker: google.maps.Marker | google.maps.marker.AdvancedMarkerElement, noDraw?: boolean): void;
|
|
13
|
+
removeMarker(marker: google.maps.Marker | google.maps.marker.AdvancedMarkerElement, noDraw?: boolean): boolean;
|
|
14
|
+
addMarkers(markers: (google.maps.Marker | google.maps.marker.AdvancedMarkerElement)[], noDraw?: boolean): void;
|
|
15
|
+
removeMarkers(markers: (google.maps.Marker | google.maps.marker.AdvancedMarkerElement)[], noDraw?: boolean): boolean;
|
|
16
|
+
clearMarkers(noDraw?: boolean): void;
|
|
17
|
+
/** Renders immediately, canceling any pending debounced render. */
|
|
18
|
+
render(): void;
|
|
19
|
+
destroy(): void;
|
|
20
|
+
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { PropType } from "vue";
|
|
1
|
+
import { PropType, type Ref } from "vue";
|
|
2
|
+
export interface IInfoWindowExposed {
|
|
3
|
+
infoWindow: Ref<google.maps.InfoWindow | undefined>;
|
|
4
|
+
open: (opts?: google.maps.InfoWindowOpenOptions) => void;
|
|
5
|
+
close: () => void;
|
|
6
|
+
}
|
|
2
7
|
export declare const infoWindowEvents: string[];
|
|
3
8
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
9
|
options: {
|
|
@@ -9,8 +14,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
9
14
|
type: BooleanConstructor;
|
|
10
15
|
};
|
|
11
16
|
}>, {
|
|
12
|
-
infoWindow:
|
|
13
|
-
infoWindowRef:
|
|
17
|
+
infoWindow: Ref<google.maps.InfoWindow | undefined, google.maps.InfoWindow | undefined>;
|
|
18
|
+
infoWindowRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
14
19
|
hasSlotContent: import("vue").ComputedRef<boolean | undefined>;
|
|
15
20
|
open: (opts?: google.maps.InfoWindowOpenOptions) => void;
|
|
16
21
|
close: () => void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PropType, type Ref } from "vue";
|
|
2
|
-
import {
|
|
2
|
+
import { MarkerClustererOptions, MarkerClustererEvents } from "@googlemaps/markerclusterer";
|
|
3
|
+
import { DebouncedMarkerClusterer } from "./DebouncedMarkerClusterer";
|
|
3
4
|
export interface IMarkerClusterExposed {
|
|
4
|
-
markerCluster: Ref<
|
|
5
|
+
markerCluster: Ref<DebouncedMarkerClusterer | undefined>;
|
|
5
6
|
}
|
|
6
7
|
export declare const markerClusterEvents: MarkerClustererEvents[];
|
|
7
8
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -9,6 +10,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
9
10
|
type: PropType<MarkerClustererOptions>;
|
|
10
11
|
default: () => {};
|
|
11
12
|
};
|
|
13
|
+
renderDebounceDelay: {
|
|
14
|
+
type: NumberConstructor;
|
|
15
|
+
default: number;
|
|
16
|
+
};
|
|
12
17
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
18
|
[key: string]: any;
|
|
14
19
|
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, MarkerClustererEvents[], MarkerClustererEvents, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -16,6 +21,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
16
21
|
type: PropType<MarkerClustererOptions>;
|
|
17
22
|
default: () => {};
|
|
18
23
|
};
|
|
24
|
+
renderDebounceDelay: {
|
|
25
|
+
type: NumberConstructor;
|
|
26
|
+
default: number;
|
|
27
|
+
};
|
|
19
28
|
}>> & Readonly<{
|
|
20
29
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
21
30
|
onClusteringbegin?: ((...args: any[]) => any) | undefined;
|
|
@@ -23,5 +32,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
23
32
|
"onGmp-click"?: ((...args: any[]) => any) | undefined;
|
|
24
33
|
}>, {
|
|
25
34
|
options: MarkerClustererOptions;
|
|
35
|
+
renderDebounceDelay: number;
|
|
26
36
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
27
37
|
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SuperClusterViewportAlgorithm, type AlgorithmInput, type AlgorithmOutput } from "@googlemaps/markerclusterer";
|
|
2
|
+
/**
|
|
3
|
+
* Wrapper around SuperClusterViewportAlgorithm that handles empty marker arrays.
|
|
4
|
+
*
|
|
5
|
+
* Stopgap for upstream issue googlemaps/js-markerclusterer#1129.
|
|
6
|
+
* The fix from PR #1014 was only applied to SuperClusterAlgorithm, not
|
|
7
|
+
* SuperClusterViewportAlgorithm. This wrapper adds the same empty markers check.
|
|
8
|
+
*
|
|
9
|
+
* @see https://github.com/googlemaps/js-markerclusterer/issues/1129
|
|
10
|
+
* @see https://github.com/googlemaps/js-markerclusterer/pull/1130
|
|
11
|
+
*
|
|
12
|
+
* TODO: Remove once upstream PR #1130 is released.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SafeSuperClusterViewportAlgorithm extends SuperClusterViewportAlgorithm {
|
|
15
|
+
calculate(input: AlgorithmInput): AlgorithmOutput;
|
|
16
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export { default as GoogleMap } from "./GoogleMap.vue";
|
|
2
|
-
export { default as AdvancedMarker } from "./AdvancedMarker.vue";
|
|
3
|
-
export { default as Marker } from "./Marker";
|
|
2
|
+
export { default as AdvancedMarker, type IAdvancedMarkerExposed as AdvancedMarkerExposed } from "./AdvancedMarker.vue";
|
|
3
|
+
export { default as Marker, type IMarkerExposed as MarkerExposed } from "./Marker";
|
|
4
4
|
export { default as Polyline } from "./Polyline";
|
|
5
5
|
export { default as Polygon } from "./Polygon";
|
|
6
6
|
export { default as Rectangle } from "./Rectangle";
|
|
7
7
|
export { default as Circle } from "./Circle";
|
|
8
8
|
export { default as CustomControl } from "./CustomControl.vue";
|
|
9
|
-
export { default as InfoWindow } from "./InfoWindow.vue";
|
|
10
|
-
export { default as MarkerCluster } from "./MarkerCluster";
|
|
11
|
-
export { default as CustomMarker } from "./CustomMarker.vue";
|
|
9
|
+
export { default as InfoWindow, type IInfoWindowExposed as InfoWindowExposed } from "./InfoWindow.vue";
|
|
10
|
+
export { default as MarkerCluster, type IMarkerClusterExposed as MarkerClusterExposed } from "./MarkerCluster";
|
|
11
|
+
export { default as CustomMarker, type ICustomMarkerExposed as CustomMarkerExposed } from "./CustomMarker.vue";
|
|
12
12
|
export { default as HeatmapLayer } from "./HeatmapLayer";
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { createCustomMarkerClass } from "./utils";
|
|
2
|
+
import type { ICustomMarkerOptions } from "./@types/index";
|
|
2
3
|
declare global {
|
|
3
4
|
namespace google.maps {
|
|
4
|
-
interface CustomMarkerOptions {
|
|
5
|
-
position?: google.maps.MarkerOptions["position"];
|
|
6
|
-
map?: google.maps.Map | google.maps.StreetViewPanorama | null;
|
|
7
|
-
anchorPoint?: "CENTER" | "TOP_CENTER" | "BOTTOM_CENTER" | "LEFT_CENTER" | "RIGHT_CENTER" | "TOP_LEFT" | "TOP_RIGHT" | "BOTTOM_LEFT" | "BOTTOM_RIGHT";
|
|
8
|
-
offsetX?: number;
|
|
9
|
-
offsetY?: number;
|
|
10
|
-
zIndex?: number | null;
|
|
5
|
+
interface CustomMarkerOptions extends ICustomMarkerOptions {
|
|
11
6
|
}
|
|
12
7
|
let CustomMarker: ReturnType<typeof createCustomMarkerClass>;
|
|
13
8
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue3-google-map",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
+
"browser": "./dist/index.umd.js",
|
|
20
21
|
"import": "./dist/index.mjs",
|
|
21
22
|
"require": "./dist/index.cjs",
|
|
22
23
|
"types": "./dist/types/index.d.ts"
|
|
@@ -57,13 +58,15 @@
|
|
|
57
58
|
"dependencies": {
|
|
58
59
|
"@googlemaps/js-api-loader": "^2.0.1",
|
|
59
60
|
"@googlemaps/markerclusterer": "^2.4.0",
|
|
60
|
-
"fast-deep-equal": "^3.1.3"
|
|
61
|
+
"fast-deep-equal": "^3.1.3",
|
|
62
|
+
"lodash-es": "^4.17.21"
|
|
61
63
|
},
|
|
62
64
|
"devDependencies": {
|
|
63
65
|
"@babel/core": "^7.28.0",
|
|
64
66
|
"@googlemaps/jest-mocks": "^2.22.6",
|
|
65
67
|
"@types/google.maps": "^3.58.1",
|
|
66
68
|
"@types/jest": "^29.5.14",
|
|
69
|
+
"@types/lodash-es": "^4.17.12",
|
|
67
70
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
68
71
|
"@typescript-eslint/parser": "^4.33.0",
|
|
69
72
|
"@vitejs/plugin-vue": "^4.3.1",
|