UNPKG

vue3-maplibre-gl

Version:

Vue 3 components and composables for MapLibre GL JS - Build interactive maps with ease

2 lines 100 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("maplibre-gl"),require("vue")):"function"==typeof define&&define.amd?define(["exports","maplibre-gl","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueMapLibreGL={},e.maplibregl,e.Vue)}(this,function(e,t,r){"use strict";var o=(e=>(e.NotSet="not-set",e.Setting="setting",e.Set="set",e.Error="error",e))(o||{});function n(e=!1){return{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}}function a(e,t={}){const{delay:o=300,leading:n=!1,trailing:a=!0,maxWait:l,debug:i=!1}=t,{log:u,logError:c}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}};let s,d,v,g,f,m=0;function p(t){const r=g;g=void 0,m=t;try{return f=e(...r),i&&u("Debounced function executed",{time:t,delay:o}),f}catch(n){throw c("Error in debounced function:",n),n}}function y(e){const t=e-(v||0);return void 0===v||t>=o||t<0||void 0!==l&&e-m>=l}function h(){const e=Date.now();if(y(e))return b(e);s=window.setTimeout(h,o-(e-(v||0)))}function b(e){return s=void 0,a&&g?p(e):(g=void 0,f)}function E(){void 0!==s&&clearTimeout(s),void 0!==d&&clearTimeout(d),m=0,v=void 0,g=void 0,s=void 0,d=void 0}function C(...e){const t=Date.now(),r=y(t);g=e,v=t,r?void 0===s?function(e){m=e,s=window.setTimeout(h,o),n&&p(e)}(v):void 0!==l&&(s=window.setTimeout(h,o),d=window.setTimeout(()=>{g&&p(Date.now())},l),n&&p(v)):void 0===s&&(s=window.setTimeout(h,o))}return r.onUnmounted(E),C.cancel=E,C.flush=function(){return void 0===s?f:b(Date.now())},C.pending=function(){return void 0!==s},C}function l(e,t,o={}){const{immediate:n,deep:l,flush:i,...u}=o,c=a(t,u),s=r.watch(e,(e,t)=>{c(e,t)},{immediate:n,deep:l,flush:i});return()=>{s(),c.cancel()}}var i=(e=>(e.NotStarted="not-started",e.Easing="easing",e.Completed="completed",e.Error="error",e))(i||{}),u=(e=>(e.NotSet="not-set",e.Setting="setting",e.Set="set",e.Error="error",e))(u||{}),c=(e=>(e.NotStarted="not-started",e.Flying="flying",e.Completed="completed",e.Error="error",e))(c||{}),s=(e=>(e.NotStarted="not-started",e.Jumping="jumping",e.Completed="completed",e.Error="error",e))(s||{});function d(e,t={}){const{deepEqual:o=!1,equalityFn:n,cacheDuration:a}=t,l=r.ref(),i=r.ref(0),u=r.ref(!1),c=n||function(e,t){return o?JSON.stringify(e)===JSON.stringify(t):Object.is(e,t)};return r.computed(()=>{const t=Date.now();if(a&&u.value&&t-i.value<a)return l.value;const r=e();return u.value&&c(r,l.value)?l.value:(l.value=r,i.value=t,u.value=!0,r)})}var v=(e=>(e.NotStarted="not-started",e.Panning="panning",e.Completed="completed",e.Error="error",e))(v||{}),g=(e=>(e.NotStarted="not-started",e.Rotating="rotating",e.Completed="completed",e.Error="error",e))(g||{}),f=(e=>(e.NotStarted="not-started",e.Zooming="zooming",e.Completed="completed",e.Error="error",e))(f||{});const m=Symbol(),p=Symbol();var y=(e=>(e.NotInitialized="not-initialized",e.Initializing="initializing",e.Loading="loading",e.Loaded="loaded",e.Error="error",e.Destroyed="destroyed",e))(y||{});const h=["error","load","idle","remove","render","resize","webglcontextlost","webglcontextrestored","dataloading","data","tiledataloading","sourcedataloading","sourcedata","styledata","styleimagemissing","dataabort","sourcedataabort","boxzoomcancel","boxzoomstart","boxzoomend","touchcancel","touchmove","touchend","touchstart","click","contextmenu","dblclick","mousemove","mouseup","mousedown","mouseout","mouseover","movestart","move","moveend","zoomstart","zoom","zoomend","rotatestart","rotate","rotateend","dragstart","drag","dragend","pitchstart","pitch","pitchend","wheel","terrain"],b=["geolocate","error","outofmaxbounds","trackuserlocationstart","trackuserlocationend"],E=["click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","touchstart","touchend","touchcancel"];function C(e,o,n={}){const{register:a,onLoad:l,onError:i,...u}=n,{log:c,logError:s,logWarn:d}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),v=r.shallowRef(null),g=r.ref(y.NotInitialized),f=r.ref(u),m=r.ref(0),p=r.ref(null),h=r.computed(()=>v.value),b=r.computed(()=>g.value),E=r.computed(()=>g.value===y.Loaded),C=r.computed(()=>g.value===y.Loading),w=r.computed(()=>g.value===y.Error);function z(){return!!v.value}function S(){const n=r.unref(e),a=r.unref(o);if(n)if(a){g.value=y.Initializing;try{const e=r.unref(f);v.value=new t.Map({...e,style:a,container:n}),p.value=a,g.value=y.Loading,v.value.on("load",P),v.value.on("error",L),v.value.on("styledata",I)}catch(l){g.value=y.Error,s("Error creating map instance:",l),i&&i(l)}}else g.value=y.Error;else g.value=y.Error}function x(){const e=v.value;if(e)try{e.off("load",P),e.off("error",L),e.off("styledata",I),e.remove()}catch(t){s("Error removing map instance:",t)}finally{v.value=null,g.value=y.Destroyed,p.value=null}}function P(){g.value=y.Loaded,m.value=0,l&&v.value&&l(v.value)}function L(e){g.value=y.Error,i&&i(e)}function I(e){c("Map style data updated",e)}function M(){x(),g.value=y.Destroyed}const k=r.watchEffect(()=>{x(),!r.unref(v)&&r.unref(e)&&(S(),k())});r.onUnmounted(()=>{M()});const B={mapInstance:h,setRenderWorldCopies:function(e=!0){if(z())try{v.value.setRenderWorldCopies(e),f.value.renderWorldCopies=e}catch(t){s("Error setting map render world copies:",t,{renderWorldCopies:e})}},setMinZoom:function(e=0){if(z()){(e<0||e>24)&&d("Warning: Min zoom should be between 0 and 24",{zoom:e});try{v.value.setMinZoom(e),f.value.minZoom=e}catch(t){s("Error setting map min zoom:",t,{zoom:e})}}},setMinPitch:function(e=0){if(z()){(e<0||e>60)&&d("Warning: Min pitch should be between 0 and 60 degrees",{pitch:e});try{v.value.setMinPitch(e),f.value.minPitch=e}catch(t){s("Error setting map min pitch:",t,{pitch:e})}}},setMaxZoom:function(e=24){if(z()){(e<0||e>24)&&d("Warning: Max zoom should be between 0 and 24",{zoom:e});try{v.value.setMaxZoom(e),f.value.maxZoom=e}catch(t){s("Error setting map max zoom:",t,{zoom:e})}}},setMaxPitch:function(e=60){if(z()){(e<0||e>60)&&d("Warning: Max pitch should be between 0 and 60 degrees",{pitch:e});try{v.value.setMaxPitch(e),f.value.maxPitch=e}catch(t){s("Error setting map max pitch:",t,{pitch:e})}}},setMaxBounds:function(e){if(z())try{v.value.setMaxBounds(e),f.value.maxBounds=e}catch(t){s("Error setting map max bounds:",t,{bounds:e})}},setStyle:function(e,t){if(z())try{v.value.setStyle(e,t),p.value=e}catch(r){s("Error setting map style:",r,{style:e})}},setPitch:function(e){if(z()){(e<0||e>60)&&d("Warning: Pitch should be between 0 and 60 degrees",{pitch:e});try{v.value.setPitch(e),f.value.pitch=e}catch(t){s("Error setting map pitch:",t,{pitch:e})}}},setZoom:function(e){if(z()){(e<0||e>24)&&d("Warning: Zoom level should be between 0 and 24",{zoom:e});try{v.value.setZoom(e),f.value.zoom=e}catch(t){s("Error setting map zoom:",t,{zoom:e})}}},setBearing:function(e=0){if(z()){(e<-180||e>180)&&d("Warning: Bearing should be between -180 and 180 degrees",{bearing:e});try{v.value.setBearing(e),f.value.bearing=e}catch(t){s("Error setting map bearing:",t,{bearing:e})}}},setCenter:function(e){if(z())try{v.value.setCenter(e),f.value.center=e}catch(t){s("Error setting map center:",t,{center:e})}},getCurrentCamera:function(){if(!z())return null;const e=v.value;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return s("Error getting current camera state:",t),null}},mapCreationStatus:b.value,isMapReady:E.value,isMapLoading:C.value,hasMapError:w.value,getCurrentStyle:function(){if(!z())return null;try{return v.value.getStyle()}catch(e){return s("Error getting current style:",e),p.value}}};return null==a||a(B),{initMap:S,removeMap:x,checkInitMap:function(){const e=r.unref(f);e.center||e.bounds?S():c("Map initialization skipped: no center or bounds provided")},destroyMap:M,...B}}function w(e){return e||((e=21)=>{let t="",r=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&r[e]];return t})()}function z(){return parseInt(t.getVersion().split(".")[0],10)}function S(e,t){return!!e.style&&!!e.getSource(t)}function x(e,t){return!!e.style&&!!e.getLayer(t)}function P(e){if(e){if(Array.isArray(e))return e.length>=2&&void 0!==e[0]&&void 0!==e[1];if("object"==typeof e&&"lat"in e&&("lng"in e||"lon"in e)){const{lat:t}=e,r="lng"in e?e.lng:void 0,o="lon"in e?e.lon:void 0;return(void 0!==r||void 0!==o)&&void 0!==t}}return!1}function L(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>t.includes(e)))}var I=(e=>(e.NotRegistered="not-registered",e.Registering="registering",e.Registered="registered",e.Error="error",e.Disposed="disposed",e))(I||{}),M=(e=>(e.NotCreated="not-created",e.Loading="loading",e.Created="created",e.Updated="updated",e.Error="error",e))(M||{});function k(e){const{logError:t}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),o=r.ref("not-created"),n=r.computed(()=>r.unref(e.map)),a=r.computed(()=>"created"===o.value||"updated"===o.value);let l,i;const u=new Promise((e,t)=>{l=e,i=t});function c(){return!!n.value}function s(e){try{return e instanceof HTMLImageElement?{width:e.naturalWidth||e.width,height:e.naturalHeight||e.height}:e instanceof ImageBitmap||e instanceof ImageData||"object"==typeof e&&"width"in e&&"height"in e?{width:e.width,height:e.height}:null}catch(r){return t("Error getting image dimensions:",r),null}}function d(){const r=n.value;if(!r)return!1;try{return r.hasImage(e.id)}catch(o){return t("Error checking if image exists:",o,{imageId:e.id}),!1}}async function v(r){if(!c())throw new Error("Map instance not available");const o=n.value;try{return(await o.loadImage(r)).data}catch(a){throw t("Error loading image from URL:",a,{imageId:e.id,imageUrl:r}),new Error(`Failed to load image from URL: ${r}`)}}async function g(r){var a,u;if(!c())throw new Error("Map instance not available");const g=n.value;o.value="loading";try{let n;if(n="string"==typeof r?await v(r):r,d())if(e.forceRecreateOnDimensionChange??1){const r=s(n);try{g.removeImage(e.id),g.addImage(e.id,n,e.options),o.value="updated"}catch(f){throw t("Error recreating image:",f,{imageId:e.id,newDimensions:r}),f}}else try{g.updateImage(e.id,n),o.value="updated"}catch(m){if(!(null==(a=null==m?void 0:m.message)?void 0:a.includes("width and height"))&&!(null==(u=null==m?void 0:m.message)?void 0:u.includes("same as the previous version")))throw m;{const r=s(n);t("Image dimensions changed, removing and re-adding image:",m,{imageId:e.id,newDimensions:r}),g.removeImage(e.id),g.addImage(e.id,n,e.options),o.value="created"}}else g.addImage(e.id,n,e.options),o.value="created";l()}catch(p){throw o.value="error",t("Error updating/creating image:",p,{imageId:e.id}),i(p),p}}function f(){const r=n.value;if(r)try{d()&&(r.removeImage(e.id),o.value="not-created")}catch(a){t("Error removing image:",a,{imageId:e.id}),o.value="error"}finally{i(new Error("Image removed"))}}return r.watchEffect(()=>{n.value&&"not-created"===o.value&&g(e.image).catch(e=>{t("Error in watchEffect updateImage:",e)})}),r.onUnmounted(()=>{f()}),{remove:f,loadImage:v,updateImage:g,refreshImage:async function(){await g(e.image)},hasImage:d,imageStatus:o.value,isImageReady:a.value,loadPromise:u}}var B=(e=>(e.NotRegistered="not-registered",e.Registered="registered",e.Error="error",e))(B||{}),T=(e=>(e.NotCreated="not-created",e.Creating="creating",e.Created="created",e.Open="open",e.Closed="closed",e.Error="error",e.Removed="removed",e))(T||{});function O({map:e,lnglat:o,html:n,el:a,show:l=!0,withMap:i=!0,options:u={},on:c={},debug:s=!1,autoCreate:d=!0,closeOnClick:v=!0,closeButton:g=!0}){const{logError:f}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},m=r.shallowRef(null),p=r.ref("not-created"),y=r.computed(()=>r.unref(e)),h=r.computed(()=>r.unref(o)),b=r.computed(()=>r.unref(n)),E=r.computed(()=>"created"===p.value||"open"===p.value||"closed"===p.value),C=r.computed(()=>"open"===p.value),w=()=>{var e;try{m.value&&(p.value="open",null==(e=c.open)||e.call(c,m.value))}catch(t){f("Error in popup open handler:",t)}},z=()=>{var e;try{m.value&&(p.value="closed",null==(e=c.close)||e.call(c,m.value))}catch(t){f("Error in popup close handler:",t)}};function S(){if(y.value&&!m.value&&((null==a?void 0:a.value)||b.value))try{p.value="creating",m.value=new t.Popup({closeOnClick:v,closeButton:g,...u}),(null==a?void 0:a.value)?m.value.setDOMContent(a.value):b.value&&m.value.setHTML(b.value);const e=h.value;e&&P(e)&&m.value.setLngLat(e),m.value.on("open",w),m.value.on("close",z),p.value="created",l&&i?L():i&&M()}catch(e){p.value="error",f("Error creating popup:",e),m.value=null}}function x(e){if(m.value)try{m.value.setLngLat(e)}catch(t){f("Error setting popup position:",t,{lnglat:e})}}function L(){const e=y.value;if(e&&m.value)try{m.value.isOpen()||m.value.addTo(e)}catch(t){f("Error showing popup:",t)}}function I(){if(m.value)try{m.value.isOpen()&&m.value.remove()}catch(e){f("Error hiding popup:",e)}}function M(){const e=y.value;if(e&&m.value)try{m.value.addTo(e)}catch(t){f("Error adding popup to map:",t)}}function k(e){if(!m.value)return;const t=e||b.value;if(t)try{m.value.setHTML(t)}catch(r){f("Error setting popup HTML content:",r,{content:t})}}function B(){if(m.value)try{m.value.off("open",w),m.value.off("close",z),m.value.isOpen()&&m.value.remove(),p.value="removed"}catch(e){f("Error removing popup:",e)}finally{m.value=null,p.value="not-created"}}return r.watchEffect(e=>{const t=y.value;t&&"not-created"===p.value&&d?S():!t&&E.value&&B(),e(B)}),r.watch(b,e=>{m.value&&e&&k(e)}),r.watch(h,e=>{m.value&&e&&P(e)&&x(e)}),r.onUnmounted(function(){B()}),{popup:m.value,popupStatus:p.value,isPopupCreated:E.value,isPopupOpen:C.value,setLngLat:x,setOffset:function(e){if(m.value)try{m.value.setOffset(e)}catch(t){f("Error setting popup offset:",t,{offset:e})}},addClassName:function(e){if(m.value)try{m.value.addClassName(e)}catch(t){f("Error adding popup class:",t,{className:e})}},removeClassName:function(e){if(m.value)try{m.value.removeClassName(e)}catch(t){f("Error removing popup class:",t,{className:e})}},setMaxWidth:function(e){if(m.value)try{m.value.setMaxWidth(e)}catch(t){f("Error setting popup max width:",t,{width:e})}},show:L,hide:I,toggle:function(){if(m.value)try{m.value.isOpen()?I():L()}catch(e){f("Error toggling popup:",e)}},addToMap:M,setHTMLContent:k,setDOMContent:function(e){if(m.value)try{m.value.setDOMContent(e)}catch(t){f("Error setting popup DOM content:",t,{element:e})}},setText:function(e){if(m.value)try{m.value.setText(e)}catch(t){f("Error setting popup text content:",t,{text:e})}},removePopup:B,createPopup:S,getLngLat:function(){if(!m.value)return null;try{return m.value.getLngLat()}catch(e){return f("Error getting popup position:",e),null}},getElement:function(){if(!m.value)return null;try{return m.value.getElement()}catch(e){return f("Error getting popup element:",e),null}}}}var W=(e=>(e.NotCreated="not-created",e.Creating="creating",e.Created="created",e.Error="error",e.Removed="removed",e))(W||{});function R({map:e,lnglat:o,popup:n,el:a,options:l={},on:i={},debug:u=!1,autoAdd:c=!0}){const{logError:s}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},d=r.shallowRef(null),v=r.ref("not-created"),g=r.computed(()=>r.unref(e)),f=r.computed(()=>r.unref(o)),m=r.computed(()=>r.unref(n)),p=r.computed(()=>"created"===v.value),y=e=>{var t;try{null==(t=i.dragstart)||t.call(i,e)}catch(r){s("Error in marker dragstart handler:",r)}},h=e=>{var t;try{null==(t=i.drag)||t.call(i,e)}catch(r){s("Error in marker drag handler:",r)}},b=e=>{var t;try{null==(t=i.dragend)||t.call(i,e)}catch(r){s("Error in marker dragend handler:",r)}};function E(e){if(d.value)try{d.value.setLngLat(e)}catch(t){s("Error setting marker position:",t,{lnglat:e})}}function C(e){if(d.value)try{e?d.value.setPopup(e):d.value.setPopup(void 0)}catch(t){s("Error setting marker popup:",t)}}function w(){if(d.value)try{d.value.off("dragstart",y),d.value.off("drag",h),d.value.off("dragend",b),d.value.remove(),v.value="removed"}catch(e){s("Error removing marker:",e)}finally{d.value=null,v.value="not-created"}}return r.watchEffect(e=>{const r=g.value;r&&"not-created"===v.value?function(){const e=g.value;if(e&&!d.value)try{v.value="creating",d.value=new t.Marker({...l,element:null==a?void 0:a.value});const r=f.value;r&&P(r)&&d.value.setLngLat(r);const o=m.value;o&&d.value.setPopup(o),d.value.on("dragstart",y),d.value.on("drag",h),d.value.on("dragend",b),c&&d.value.addTo(e),v.value="created"}catch(r){v.value="error",s("Error creating marker:",r),d.value=null}}():r||"created"!==v.value||w(),e(w)}),r.watch(m,e=>{d.value&&void 0!==e&&C(e)}),r.watch(f,e=>{d.value&&e&&P(e)&&E(e)}),r.onUnmounted(function(){w()}),{marker:d.value,markerStatus:v.value,isMarkerCreated:p.value,setLngLat:E,setPopup:C,setOffset:function(e){if(d.value)try{d.value.setOffset(e)}catch(t){s("Error setting marker offset:",t,{offset:e})}},setDraggable:function(e){if(d.value)try{d.value.setDraggable(e)}catch(t){s("Error setting marker draggable state:",t,{draggable:e})}},togglePopup:function(){if(d.value)try{d.value.togglePopup()}catch(e){s("Error toggling marker popup:",e)}},getElement:function(){if(!d.value)return null;try{return d.value.getElement()}catch(e){return s("Error getting marker element:",e),null}},setRotation:function(e){if(d.value)try{d.value.setRotation(e)}catch(t){s("Error setting marker rotation:",t,{rotation:e})}},setRotationAlignment:function(e){if(d.value)try{d.value.setRotationAlignment(e)}catch(t){s("Error setting marker rotation alignment:",t,{alignment:e})}},setPitchAlignment:function(e){if(d.value)try{d.value.setPitchAlignment(e)}catch(t){s("Error setting marker pitch alignment:",t,{alignment:e})}},setOpacity:function(e,t){if(d.value)try{d.value.setOpacity(e,t)}catch(r){s("Error setting marker opacity:",r,{opacity:e,opacityWhenCovered:t})}},removeMarker:w,addMarker:function(){const e=g.value;if(e&&d.value)try{d.value.addTo(e)}catch(t){s("Error adding marker to map:",t)}},getLngLat:function(){if(!d.value)return null;try{return d.value.getLngLat()}catch(e){return s("Error getting marker position:",e),null}},getPopup:function(){if(!d.value)return null;try{return d.value.getPopup()}catch(e){return s("Error getting marker popup:",e),null}},getOffset:function(){if(!d.value)return[0,0];try{return d.value.getOffset()}catch(e){return s("Error getting marker offset:",e),[0,0]}},getDraggable:function(){if(!d.value)return!1;try{return d.value.isDraggable()}catch(e){return s("Error getting marker draggable state:",e),!1}},getRotation:function(){if(!d.value)return 0;try{return d.value.getRotation()}catch(e){return s("Error getting marker rotation:",e),0}}}}var j=(e=>(e.NotAttached="not-attached",e.Attached="attached",e.Error="error",e))(j||{});function N(e){const{logError:t}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),o=r.ref("not-attached"),n=r.computed(()=>r.unref(e.map)),a=r.computed(()=>"attached"===o.value),l=r=>{try{e.on&&e.on(r),e.once&&u()}catch(n){t("Error in map event handler:",n,{event:e.event}),o.value="error"}};function i(){const r=n.value;if(r&&"attached"!==o.value)try{r.on(e.event,l),o.value="attached"}catch(a){o.value="error",t("Error attaching map event listener:",a,{event:e.event})}}function u(){const r=n.value;if(r&&"not-attached"!==o.value)try{r.off(e.event,l),o.value="not-attached"}catch(a){t("Error removing map event listener:",a,{event:e.event}),o.value="not-attached"}}let c=null;const s=r.watchEffect(e=>{const t=n.value;t!==c&&(c=t,t&&"not-attached"===o.value?i():t||"attached"!==o.value||u(),e(u))});return r.onUnmounted(function(){s(),u()}),{removeListener:u,attachListener:i,isListenerAttached:a.value,listenerStatus:o.value}}var Z=(e=>(e.NotAttached="not-attached",e.Attached="attached",e.Error="error",e))(Z||{});function A(e){const{logWarn:t,logError:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.ref("not-attached"),a=r.computed(()=>r.unref(e.geolocate)),l=r.computed(()=>"attached"===n.value),i=t=>{try{e.on&&e.on(t),e.once&&c()}catch(r){o("Error in geolocate event handler:",r,{event:e.event}),n.value="error"}};function u(){const r=a.value;if(r)if("attached"!==n.value)try{r.on(e.event,i),n.value="attached"}catch(l){n.value="error",o("Error attaching geolocate event listener:",l,{event:e.event})}else t("Event listener already attached",{event:e.event})}function c(){const t=a.value;if(t&&"not-attached"!==n.value)try{t.off(e.event,i),n.value="not-attached"}catch(r){o("Error removing geolocate event listener:",r,{event:e.event}),n.value="not-attached"}}const s=r.watchEffect(e=>{const t=a.value;t&&"not-attached"===n.value?u():t||"attached"!==n.value||c(),e(c)});return r.onUnmounted(function(){s(),c()}),{removeListener:c,attachListener:u,isListenerAttached:l.value,listenerStatus:n.value}}var F=(e=>(e.NotLoaded="not-loaded",e.Loading="loading",e.Loaded="loaded",e.Error="error",e))(F||{});function D(e,t){const o=void 0!==t,n=o?{map:e,callbacks:{onLoad:t.onLoad,onUnload:t.unLoad},debug:!1,autoTriggerOnMount:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref("not-loaded"),i=r.computed(()=>r.unref(n.map)),u=r.computed(()=>"loaded"===l.value),c=i.value;function s(){const e=i.value;if("not-loaded"!==l.value)try{l.value="not-loaded",n.callbacks.onUnload&&e&&n.callbacks.onUnload(e)}catch(t){l.value="error",a("Error in map unload handler:",t),n.callbacks.onError&&n.callbacks.onError(t)}}function d(e=!1){const t=i.value;if(t&&("loaded"!==l.value||e))try{l.value="loaded",n.callbacks.onLoad(t)}catch(r){l.value="error",a("Error in map load handler:",r),n.callbacks.onError&&n.callbacks.onError(r)}}function v(){d(!0)}function g(){const e=i.value;if(e)try{e.off("styledata",d),e.off("styledataloading",s),e.off("load",d)}catch(t){a("Error clearing map reload event listeners:",t)}}(null==c?void 0:c._loaded)&&(l.value="loaded",!1!==n.autoTriggerOnMount&&setTimeout(()=>v(),0));const f=r.watchEffect(e=>{const t=i.value;if(t){try{"not-loaded"!==l.value||t._loaded?t._loaded&&"loaded"!==l.value&&d():t.on("load",d),t.on("styledata",d),t.on("styledataloading",s)}catch(r){l.value="error",a("Error setting up map reload event listeners:",r),n.callbacks.onError&&n.callbacks.onError(r)}e(g)}});return r.onUnmounted(function(){s(),f(),g()}),o?{clear:g}:{clear:g,forceLoad:v,forceUnload:function(){s()},isMapLoaded:u.value,loadStatus:l.value}}var U=(e=>(e.NotAttached="not-attached",e.Attached="attached",e.Error="error",e))(U||{});function G(e){const{logError:t}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),o=r.ref("not-attached"),n=r.computed(()=>r.unref(e.map)),a=r.computed(()=>r.unref(e.layer)),l=r.computed(()=>{const e=a.value;return e?"string"==typeof e?e:e.id:null}),i=r.computed(()=>"attached"===o.value),u=r=>{try{e.on&&e.on(r),e.once&&s()}catch(n){t("Error in layer event handler:",n,{event:e.event,layerId:l.value}),o.value="error"}};function c(){if(!function(){const e=n.value,t=l.value;return!!e&&!!t&&!!x(e,t)}())return;const r=n.value,a=l.value;if("attached"!==o.value)try{r.on(e.event,a,u),o.value="attached"}catch(i){o.value="error",t("Error attaching layer event listener:",i,{event:e.event,layerId:a})}}function s(){const r=n.value,a=l.value;if(r&&a&&"not-attached"!==o.value)try{r.off(e.event,a,u),o.value="not-attached"}catch(i){t("Error removing layer event listener:",i,{event:e.event,layerId:a}),o.value="not-attached"}}let d=null,v=null;const g=r.watchEffect(e=>{const t=n.value,r=a.value;t===d&&r===v||(d=t,v=r,t&&r&&"not-attached"===o.value?c():t&&r||"attached"!==o.value||s(),e(s))});return r.onUnmounted(function(){g(),s()}),{removeListener:s,attachListener:c,isListenerAttached:i.value,listenerStatus:o.value,layerId:l.value}}function J({map:e,position:o="bottom-right",options:n={},debug:a=!1}){const{logError:l}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},i=r.shallowRef(null),u=r.shallowRef(!1),c=r.computed(()=>r.unref(e));function s(){const e=c.value;if(e&&(!i.value||!u.value))try{i.value||(i.value=new t.GeolocateControl(n)),e.addControl(i.value,o),u.value=!0}catch(r){l("Error adding geolocate control to map:",r),i.value=null,u.value=!1}}function d(){const e=c.value;if(e&&i.value&&u.value)try{e.removeControl(i.value),u.value=!1}catch(t){l("Error removing geolocate control from map:",t),u.value=!1}finally{i.value=null}}const v=r.watchEffect(()=>{const e=c.value;e&&!u.value?s():!e&&u.value&&d()});return r.onUnmounted(function(){v(),d()}),{geolocateControl:i,isControlAdded:u,removeControl:d,addControl:s,trigger:function(){if(i.value)try{i.value.trigger()}catch(e){l("Error triggering geolocate:",e)}}}}var _=(e=>(e.NotCreated="not-created",e.Creating="creating",e.Created="created",e.Error="error",e))(_||{});const V={type:"FeatureCollection",features:[]};function H({map:e,id:t,data:o=V,options:n={},debug:a=!1,register:l}){const{logError:i}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},u=w(t),c=r.shallowRef(null),s=r.ref("not-created"),d=r.computed(()=>c.value),v=r.computed(()=>r.unref(e)),g=r.computed(()=>"created"===s.value&&!!c.value&&!!v.value&&S(v.value,u));function f(e){try{const t=v.value;if(!t)return;let r=e.isSourceLoaded;z()>0&&(r=!0),!c.value&&e.sourceId===u&&r&&(c.value=t.getSource(u),s.value="created",null==l||l({sourceId:u,getSource:d,setData:p,removeSource:y,refreshSource:h,sourceStatus:s.value,isSourceReady:g.value},t),t.off("sourcedata",f))}catch(t){s.value="error",i("Error in source data event handler:",t)}}function m(){const e=v.value;if(e&&!c.value&&!S(e,u)&&o){s.value="creating";try{const t={...n,type:"geojson",data:o};e.addSource(u,t),e.on("sourcedata",f)}catch(t){s.value="error",i("Error creating GeoJSON source:",t,{sourceId:u})}}}function p(e){const t=v.value;if(t&&c.value&&S(t,u)&&e)try{c.value.setData(e)}catch(r){i("Error setting GeoJSON source data:",r,{sourceId:u})}}function y(){const e=v.value;if(e)try{S(e,u)&&(e.removeSource(u),e.off("sourcedata",f))}catch(t){i("Error removing GeoJSON source:",t,{sourceId:u})}finally{c.value=null,s.value="not-created"}}function h(){y(),m()}return D({map:e,callbacks:{onUnload:y,onLoad:m},debug:a}),r.onMounted(async()=>{await r.nextTick(),m()}),r.onUnmounted(()=>{y()}),{sourceId:u,getSource:d,setData:p,removeSource:y,refreshSource:h,sourceStatus:s.value,isSourceReady:g.value}}var q=(e=>(e.NotCreated="not-created",e.Creating="creating",e.Created="created",e.Error="error",e))(q||{});function $(e){const{map:t,id:o,source:n,type:a,beforeId:l,filter:i=["all"],layout:u={},paint:c={},maxzoom:s=24,minzoom:d=0,metadata:v,sourceLayer:g="",debug:f=!1,register:m}=e,{logWarn:p,logError:y}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},h=w(o),b=r.shallowRef(null),E=r.ref("not-created"),C=r.computed(()=>b.value),z=r.computed(()=>r.unref(t)),S=r.computed(()=>r.unref(n)),P=r.computed(()=>"created"===E.value&&!!b.value&&!!z.value&&x(z.value,h));function L(){const e=z.value;return!!(e&&b.value&&x(e,h))}function I(e){if(L())try{z.value.moveLayer(h,e)}catch(t){y("Error setting layer position:",t)}}function M(e=["all"]){if(L())try{z.value.setFilter(h,e)}catch(t){y("Error setting layer filter:",t)}}function k(e=0,t=24){if(L()&&!(e<0||t>24||e>=t))try{z.value.setLayerZoomRange(h,e,t)}catch(r){y("Error setting layer zoom range:",r)}}function B(e,t,r={validate:!0}){if(L())try{z.value.setPaintProperty(h,e,t,r)}catch(o){y("Error setting paint property:",o,{property:e,value:t})}}function T(e,t,r={validate:!0}){if(L())try{z.value.setLayoutProperty(h,e,t,r)}catch(o){y("Error setting layout property:",o,{property:e,value:t})}}function O(){const e=z.value,t=S.value;if(e&&t&&!b.value&&!x(e,h)){E.value="creating";try{const r=function(e){if("string"==typeof e)return e;if("object"==typeof e&&null!==e){if("id"in e&&"string"==typeof e.id)return e.id;if("type"in e)return p("Warning: Source specification provided, ensure source is added to map first"),e.id||""}return null}(t);if(!r)return void(E.value="error");const o={id:h,type:a,source:r,layout:u||{},paint:c||{},"source-layer":g,minzoom:d,maxzoom:s,metadata:v,filter:i};e.addLayer(o,l),b.value=e.getLayer(h),E.value="created",null==m||m({layerId:h,getLayer:C,removeLayer:W,setBeforeId:I,setFilter:M,setZoomRange:k,setPaintProperty:B,setLayoutProperty:T},e)}catch(r){if(E.value="error",y("Error creating layer:",r,{layerId:h,type:a}),x(e,h))try{e.removeLayer(h)}catch(o){y("Error during layer cleanup:",o)}b.value=null}}}function W(){const e=z.value;if(e)try{x(e,h)&&e.removeLayer(h)}catch(t){y("Error removing layer:",t,{layerId:h})}finally{b.value=null,E.value="not-created"}}return r.watch(S,e=>{e?O():W()},{immediate:!1}),D({map:t,callbacks:{onUnload:W,onLoad:O},debug:f}),{layerId:h,getLayer:C,removeLayer:W,setBeforeId:I,setFilter:M,setZoomRange:k,setPaintProperty:B,setLayoutProperty:T,layerStatus:E.value,isLayerReady:P.value,refreshLayer:function(){W(),O()},updateLayer:function(e){if(L())try{void 0!==e.filter&&M(e.filter),void 0===e.minzoom&&void 0===e.maxzoom||k(e.minzoom,e.maxzoom),e.paint&&Object.entries(e.paint).forEach(([e,t])=>{B(e,t)}),e.layout&&Object.entries(e.layout).forEach(([e,t])=>{T(e,t)})}catch(t){y("Error updating layer:",t,{layerId:h,updates:e})}}}}const K=["fill-antialias","fill-opacity","fill-color","fill-outline-color","fill-translate","fill-translate-anchor","fill-pattern"],X=["fill-sort-key","visibility"];function Q(e){const{logWarn:t,logError:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.computed(()=>{const t=e.style||{};return{paint:L(t,K),layout:L(t,X)}}),{setLayoutProperty:a,setPaintProperty:l,...i}=$({map:e.map,source:e.source,type:"fill",id:e.id,beforeId:e.beforeId,filter:e.filter,layout:n.value.layout,paint:n.value.paint,maxzoom:e.maxzoom,minzoom:e.minzoom,metadata:e.metadata,sourceLayer:e.sourceLayer,debug:e.debug,register:(t,r)=>{var o;null==(o=e.register)||o.call(e,{...t,setStyle:u,setOpacity:c,setColor:s,setOutlineColor:d,setPattern:v,setAntialias:g,setVisibility:f,setSortKey:m},r)}});function u(e={}){try{Object.keys(e).forEach(t=>{const r=t,o=e[r];void 0!==o&&(K.includes(r)?l(t,o,{validate:!1}):X.includes(r)&&a(t,o,{validate:!1}))})}catch(t){o("Error updating fill layer style:",t)}}function c(e,r={validate:!0}){try{(e<0||e>1)&&t("Warning: Fill opacity should be between 0 and 1",{opacity:e}),l("fill-opacity",e,r)}catch(n){o("Error setting fill opacity:",n)}}function s(e,t={validate:!0}){try{l("fill-color",e,t)}catch(r){o("Error setting fill color:",r)}}function d(e,t={validate:!0}){try{l("fill-outline-color",e,t)}catch(r){o("Error setting fill outline color:",r)}}function v(e,t={validate:!0}){try{l("fill-pattern",e,t)}catch(r){o("Error setting fill pattern:",r)}}function g(e,t={validate:!0}){try{l("fill-antialias",e,t)}catch(r){o("Error setting fill antialias:",r)}}function f(e,t={validate:!0}){try{a("visibility",e,t)}catch(r){o("Error setting fill layer visibility:",r)}}function m(e,t={validate:!0}){try{a("fill-sort-key",e,t)}catch(r){o("Error setting fill sort key:",r)}}return{...i,setStyle:u,setLayoutProperty:a,setPaintProperty:l,setOpacity:c,setColor:s,setOutlineColor:d,setPattern:v,setAntialias:g,setVisibility:f,setSortKey:m}}const Y=["circle-radius","circle-color","circle-blur","circle-opacity","circle-translate","circle-translate-anchor","circle-pitch-scale","circle-pitch-alignment","circle-stroke-width","circle-stroke-color","circle-stroke-opacity"],ee=["circle-sort-key","visibility"];function te(e){const{logError:t,logWarn:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.computed(()=>{const t=e.style||{};return{paint:L(t,Y),layout:L(t,ee)}}),{setLayoutProperty:a,setPaintProperty:l,...i}=$({map:e.map,source:e.source,type:"circle",id:e.id,beforeId:e.beforeId,filter:e.filter,layout:n.value.layout,paint:n.value.paint,maxzoom:e.maxzoom,minzoom:e.minzoom,metadata:e.metadata,sourceLayer:e.sourceLayer,register:(t,r)=>{var o;null==(o=e.register)||o.call(e,{...t,setStyle:u,setRadius:c,setColor:s,setOpacity:d,setStrokeWidth:v,setStrokeColor:g,setStrokeOpacity:f,setVisibility:m},r)}});function u(e={}){if(e&&"object"==typeof e)try{Object.keys(e).forEach(t=>{const r=t,o=e[r];void 0!==o&&(Y.includes(r)?l(t,o,{validate:!1}):ee.includes(r)&&a(t,o,{validate:!1}))})}catch(r){t("Error updating circle layer style:",r)}}function c(e,r={validate:!0}){try{l("circle-radius",e,r)}catch(o){t("Error setting circle radius:",o)}}function s(e,r={validate:!0}){try{l("circle-color",e,r)}catch(o){t("Error setting circle color:",o)}}function d(e,r={validate:!0}){try{(e<0||e>1)&&o("Warning: Circle opacity should be between 0 and 1",{opacity:e}),l("circle-opacity",e,r)}catch(n){t("Error setting circle opacity:",n)}}function v(e,r={validate:!0}){try{l("circle-stroke-width",e,r)}catch(o){t("Error setting circle stroke width:",o)}}function g(e,r={validate:!0}){try{l("circle-stroke-color",e,r)}catch(o){t("Error setting circle stroke color:",o)}}function f(e,r={validate:!0}){try{(e<0||e>1)&&o("Warning: Circle stroke opacity should be between 0 and 1",{opacity:e}),l("circle-stroke-opacity",e,r)}catch(n){t("Error setting circle stroke opacity:",n)}}function m(e,r={validate:!0}){try{a("visibility",e,r)}catch(o){t("Error setting circle layer visibility:",o)}}return{...i,setStyle:u,setLayoutProperty:a,setPaintProperty:l,setRadius:c,setColor:s,setOpacity:d,setStrokeWidth:v,setStrokeColor:g,setStrokeOpacity:f,setVisibility:m}}const re=["line-opacity","line-color","line-translate","line-translate-anchor","line-width","line-gap-width","line-offset","line-blur","line-dasharray","line-pattern","line-gradient"],oe=["line-cap","line-join","line-miter-limit","line-round-limit","line-sort-key","visibility"];function ne(e){const{logError:t,logWarn:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.computed(()=>{const t=e.style||{};return{paint:L(t,re),layout:L(t,oe)}}),{setLayoutProperty:a,setPaintProperty:l,...i}=$({map:e.map,source:e.source,type:"line",id:e.id,beforeId:e.beforeId,filter:e.filter,layout:n.value.layout,paint:n.value.paint,maxzoom:e.maxzoom,minzoom:e.minzoom,metadata:e.metadata,sourceLayer:e.sourceLayer,debug:e.debug,register:(t,r)=>{var o;null==(o=e.register)||o.call(e,{...t,setStyle:u,setOpacity:c,setColor:s,setWidth:d,setGapWidth:v,setOffset:g,setBlur:f,setDashArray:m,setPattern:p,setGradient:y,setCap:h,setJoin:b,setVisibility:E,setSortKey:C},r)}});function u(e={}){if(e&&"object"==typeof e)try{Object.keys(e).forEach(t=>{const r=t,o=e[r];void 0!==o&&(re.includes(r)?l(t,o,{validate:!1}):oe.includes(r)&&a(t,o,{validate:!1}))})}catch(r){t("Error updating line layer style:",r)}}function c(e,r={validate:!0}){try{(e<0||e>1)&&o("Warning: Line opacity should be between 0 and 1",{opacity:e}),l("line-opacity",e,r)}catch(n){t("Error setting line opacity:",n)}}function s(e,r={validate:!0}){try{l("line-color",e,r)}catch(o){t("Error setting line color:",o)}}function d(e,r={validate:!0}){try{l("line-width",e,r)}catch(o){t("Error setting line width:",o)}}function v(e,r={validate:!0}){try{l("line-gap-width",e,r)}catch(o){t("Error setting line gap width:",o)}}function g(e,r={validate:!0}){try{l("line-offset",e,r)}catch(o){t("Error setting line offset:",o)}}function f(e,r={validate:!0}){try{l("line-blur",e,r)}catch(o){t("Error setting line blur:",o)}}function m(e,r={validate:!0}){try{Array.isArray(e)||o("Warning: Dash array should be an array of numbers",{dashArray:e}),l("line-dasharray",e,r)}catch(n){t("Error setting line dash array:",n)}}function p(e,r={validate:!0}){try{l("line-pattern",e,r)}catch(o){t("Error setting line pattern:",o)}}function y(e,r={validate:!0}){try{l("line-gradient",e,r)}catch(o){t("Error setting line gradient:",o)}}function h(e,r={validate:!0}){try{a("line-cap",e,r)}catch(o){t("Error setting line cap:",o)}}function b(e,r={validate:!0}){try{a("line-join",e,r)}catch(o){t("Error setting line join:",o)}}function E(e,r={validate:!0}){try{a("visibility",e,r)}catch(o){t("Error setting line layer visibility:",o)}}function C(e,r={validate:!0}){try{a("line-sort-key",e,r)}catch(o){t("Error setting line sort key:",o)}}return{...i,setStyle:u,setLayoutProperty:a,setPaintProperty:l,setOpacity:c,setColor:s,setWidth:d,setGapWidth:v,setOffset:g,setBlur:f,setDashArray:m,setPattern:p,setGradient:y,setCap:h,setJoin:b,setVisibility:E,setSortKey:C}}const ae=["icon-opacity","icon-color","icon-halo-color","icon-halo-width","icon-halo-blur","icon-translate","icon-translate-anchor","text-opacity","text-color","text-halo-color","text-halo-width","text-halo-blur","text-translate","text-translate-anchor"],le=["symbol-placement","symbol-spacing","symbol-avoid-edges","symbol-sort-key","symbol-z-order","icon-allow-overlap","icon-overlap","icon-ignore-placement","icon-optional","icon-rotation-alignment","icon-size","icon-text-fit","icon-text-fit-padding","icon-image","icon-rotate","icon-padding","icon-keep-upright","icon-offset","icon-anchor","icon-pitch-alignment","text-pitch-alignment","text-rotation-alignment","text-field","text-font","text-size","text-max-width","text-line-height","text-letter-spacing","text-justify","text-radial-offset","text-variable-anchor","text-variable-anchor-offset","text-anchor","text-max-angle","text-writing-mode","text-rotate","text-padding","text-keep-upright","text-transform","text-offset","text-allow-overlap","text-overlap","text-ignore-placement","text-optional","visibility"];function ie(e){const{log:t,logWarn:o,logError:n}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),a=r.computed(()=>{const t=e.style||{};return{paint:L(t,ae),layout:L(t,le)}}),{setLayoutProperty:l,setPaintProperty:i,...u}=$({map:e.map,source:e.source,type:"symbol",id:e.id,beforeId:e.beforeId,filter:e.filter,layout:a.value.layout,paint:a.value.paint,maxzoom:e.maxzoom,minzoom:e.minzoom,metadata:e.metadata,sourceLayer:e.sourceLayer,debug:e.debug,register:(t,r)=>{var o;null==(o=e.register)||o.call(e,{...t,setStyle:c,setIconOpacity:s,setIconColor:d,setIconHaloColor:v,setIconHaloWidth:g,setIconHaloBlur:f,setIconImage:m,setIconSize:p,setIconRotate:y,setIconOffset:h,setIconAnchor:b,setTextOpacity:E,setTextColor:C,setTextHaloColor:w,setTextHaloWidth:z,setTextHaloBlur:S,setTextField:x,setTextFont:P,setTextSize:I,setTextRotate:M,setTextOffset:k,setTextAnchor:B,setVisibility:T,setSortKey:O},r)}});function c(e={}){if(e&&"object"==typeof e)try{Object.keys(e).forEach(t=>{const r=t,o=e[r];void 0!==o&&(ae.includes(r)?i(t,o,{validate:!1}):le.includes(r)&&l(t,o,{validate:!1}))})}catch(t){n("Error updating symbol layer style:",t)}}function s(e,t={validate:!0}){try{(e<0||e>1)&&o("Warning: Icon opacity should be between 0 and 1",{opacity:e}),i("icon-opacity",e,t)}catch(r){n("Error setting icon opacity:",r)}}function d(e,t={validate:!0}){try{i("icon-color",e,t)}catch(r){n("Error setting icon color:",r)}}function v(e,t={validate:!0}){try{i("icon-halo-color",e,t)}catch(r){n("Error setting icon halo color:",r)}}function g(e,t={validate:!0}){try{i("icon-halo-width",e,t)}catch(r){n("Error setting icon halo width:",r)}}function f(e,t={validate:!0}){try{i("icon-halo-blur",e,t)}catch(r){n("Error setting icon halo blur:",r)}}function m(e,t={validate:!0}){try{l("icon-image",e,t)}catch(r){n("Error setting icon image:",r)}}function p(e,t={validate:!0}){try{l("icon-size",e,t)}catch(r){n("Error setting icon size:",r)}}function y(e,t={validate:!0}){try{l("icon-rotate",e,t)}catch(r){n("Error setting icon rotation:",r)}}function h(e,r={validate:!0}){try{Array.isArray(e)&&2===e.length||o("Warning: Icon offset should be an array of two numbers [x, y]",{offset:e}),l("icon-offset",e,r),t("Icon offset updated",{offset:e})}catch(a){n("Error setting icon offset:",a)}}function b(e,t={validate:!0}){try{l("icon-anchor",e,t)}catch(r){n("Error setting icon anchor:",r)}}function E(e,t={validate:!0}){try{(e<0||e>1)&&o("Warning: Text opacity should be between 0 and 1",{opacity:e}),i("text-opacity",e,t)}catch(r){n("Error setting text opacity:",r)}}function C(e,t={validate:!0}){try{i("text-color",e,t)}catch(r){n("Error setting text color:",r)}}function w(e,t={validate:!0}){try{i("text-halo-color",e,t)}catch(r){n("Error setting text halo color:",r)}}function z(e,t={validate:!0}){try{i("text-halo-width",e,t)}catch(r){n("Error setting text halo width:",r)}}function S(e,t={validate:!0}){try{i("text-halo-blur",e,t)}catch(r){n("Error setting text halo blur:",r)}}function x(e,t={validate:!0}){try{l("text-field",e,t)}catch(r){n("Error setting text field:",r)}}function P(e,t={validate:!0}){try{Array.isArray(e)||o("Warning: Text font should be an array of font names",{font:e}),l("text-font",e,t)}catch(r){n("Error setting text font:",r)}}function I(e,t={validate:!0}){try{l("text-size",e,t)}catch(r){n("Error setting text size:",r)}}function M(e,t={validate:!0}){try{l("text-rotate",e,t)}catch(r){n("Error setting text rotation:",r)}}function k(e,t={validate:!0}){try{Array.isArray(e)&&2===e.length||o("Warning: Text offset should be an array of two numbers [x, y]",{offset:e}),l("text-offset",e,t)}catch(r){n("Error setting text offset:",r)}}function B(e,t={validate:!0}){try{l("text-anchor",e,t)}catch(r){n("Error setting text anchor:",r)}}function T(e,t={validate:!0}){try{l("visibility",e,t)}catch(r){n("Error setting symbol layer visibility:",r)}}function O(e,t={validate:!0}){try{l("symbol-sort-key",e,t)}catch(r){n("Error setting symbol sort key:",r)}}return{...u,setStyle:c,setLayoutProperty:l,setPaintProperty:i,setIconOpacity:s,setIconColor:d,setIconHaloColor:v,setIconHaloWidth:g,setIconHaloBlur:f,setIconImage:m,setIconSize:p,setIconRotate:y,setIconOffset:h,setIconAnchor:b,setTextOpacity:E,setTextColor:C,setTextHaloColor:w,setTextHaloWidth:z,setTextHaloBlur:S,setTextField:x,setTextFont:P,setTextSize:I,setTextRotate:M,setTextOffset:k,setTextAnchor:B,setVisibility:T,setSortKey:O}}const ue={id:"maplibre_container"},ce={key:0},se={key:1},de=r.defineComponent({__name:"Mapbox",props:{options:{default:()=>({style:"https://demotiles.maplibre.org/style.json",center:[0,0],zoom:1,pitch:0,bearing:0,antialias:!0,optimizeForTerrain:!0,preserveDrawingBuffer:!1,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:!1,transformRequest:void 0,collectResourceTiming:!1,fadeDuration:300,crossSourceCollisions:!0})},register:{},debug:{type:Boolean,default:!1},autoCleanup:{type:Boolean,default:!0},containerId:{default:()=>`maplibre-${Math.random().toString(36).substring(2,11)}`},containerClass:{default:""},onError:{},onLoad:{}},emits:["register","error","load","idle","remove","render","resize","webglcontextlost","webglcontextrestored","dataloading","data","tiledataloading","dataabort","sourcedataloading","sourcedata","sourcedataabort","styledata","styleimagemissing","boxzoomcancel","boxzoomstart","boxzoomend","touchcancel","touchmove","touchend","touchstart","click","contextmenu","dblclick","mousemove","mouseup","mousedown","mouseout","mouseover","movestart","move","moveend","zoomstart","zoom","zoomend","rotatestart","rotate","rotateend","dragstart","drag","dragend","pitchstart","pitch","pitchend","wheel","terrain"],setup(e,{emit:t}){const o=e,n=t,{logError:a}=(o.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(),i=r.ref(),u=r.ref(o.options.style),c=r.ref(!1),s=r.ref(y.NotInitialized),v=d(()=>{const e={...{...o.options},...l.value};return e.container||(e.container=o.containerId),e},{deepEqual:!0}),g=r.computed(()=>s.value===y.Loaded),f=r.computed(()=>s.value===y.Loading),p=r.computed(()=>s.value===y.Error);function b(e){try{l.value={...r.unref(v)||{},...e}}catch(t){a("Error setting map options:",t,{options:e})}}const{mapInstance:E,setCenter:w,setBearing:z,setZoom:S,setPitch:x,setStyle:P,setMaxBounds:L,setMaxPitch:I,setMaxZoom:M,setMinPitch:k,setMinZoom:B,setRenderWorldCopies:T}=C(i,u,{...r.unref(v),register:e=>{var t,r;try{const r={...e,setMapOptions:b,isMapReady:g.value,isMapLoading:f.value,hasMapError:p.value};null==(t=o.register)||t.call(o,r),n("register",r)}catch(l){a("Error during map registration:",l),null==(r=o.onError)||r.call(o,l)}},onLoad:e=>{var t,r;try{s.value=y.Loaded,null==(t=o.onLoad)||t.call(o,e)}catch(n){a("Error in map load handler:",n),null==(r=o.onError)||r.call(o,n)}},onError:e=>{var t;try{s.value=y.Error,a("Map creation error:",e),null==(t=o.onError)||t.call(o,e)}catch(r){a("Error in error handler:",r)}},debug:o.debug});r.provide(m,E),h.map(e=>N({map:E,event:e,on:t=>{try{n(e,t)}catch(r){a(`Error in ${e} event handler:`,r,{data:t})}},debug:o.debug}));const O=[r.watch(()=>r.unref(v).center,e=>e&&w(e),{flush:"post"}),r.watch(()=>r.unref(v).bearing,e=>void 0!==e&&z(e),{flush:"post"}),r.watch(()=>r.unref(v).zoom,e=>void 0!==e&&S(e),{flush:"post"}),r.watch(()=>r.unref(v).pitch,e=>void 0!==e&&x(e),{flush:"post"}),r.watch(()=>r.unref(v).style,e=>e&&P(e),{flush:"post"}),r.watch(()=>r.unref(v).maxBounds,e=>e&&L(e),{flush:"post"}),r.watch(()=>r.unref(v).maxPitch,e=>null!=e&&I(e),{flush:"post"}),r.watch(()=>r.unref(v).maxZoom,e=>null!=e&&M(e),{flush:"post"}),r.watch(()=>r.unref(v).minPitch,e=>null!=e&&k(e),{flush:"post"}),r.watch(()=>r.unref(v).minZoom,e=>null!=e&&B(e),{flush:"post"}),r.watch(()=>r.unref(v).renderWorldCopies,e=>void 0!==e&&T(e),{flush:"post"})];function W(){var e;try{O.forEach(e=>null==e?void 0:e()),null==(e=i.value)||e.remove(),c.value=!1,s.value=y.Destroyed}catch(t){a("Error during cleanup:",t)}}return r.watchEffect(async()=>{var e;try{await r.nextTick();const e=function(){try{const e=document.getElementById("maplibre_container");if(!e)return a("Map container wrapper not found"),null;const t=document.getElementById(o.containerId);t&&t.remove();const r=document.createElement("div");return r.id=o.containerId,r.className=o.containerClass,r.style.width="100%",r.style.height="100%",e.appendChild(r),r}catch(e){return a("Error creating map container:",e),null}}();e?(i.value=e,c.value=!0,s.value=y.Initializing):(a("Failed to create map container"),s.value=y.Error)}catch(t){a("Error in container creation watchEffect:",t),s.value=y.Error,null==(e=o.onError)||e.call(o,t)}}),r.onBeforeMount(()=>{o.autoCleanup&&W()}),r.onUnmounted(()=>{o.autoCleanup&&W()}),(e,t)=>(r.openBlock(),r.createElementBlock("div",ue,[f.value?(r.openBlock(),r.createElementBlock("div",ce,[r.renderSlot(e.$slots,"loading")])):r.createCommentVNode("",!0),p.value?(r.openBlock(),r.createElementBlock("div",se,[r.renderSlot(e.$slots,"error")])):r.createCommentVNode("",!0),g.value||!f.value&&!p.value?r.renderSlot(e.$slots,"default",{key:2}):r.createCommentVNode("",!0)]))}}),ve={key:0},ge=r.defineComponent({__name:"GeolocateControls",props:{position:{default:"bottom-right"},options:{default:()=>({})},debug:{type:Boolean,default:!1},autoCleanup:{type:Boolean,default:!0},onError:{},onGeolocate:{},onTrackingStart:{},onTrackingEnd:{},onOutOfMaxBounds:{}},emits:["register","geolocate","error","outofmaxbounds","trackuserlocationstart","trackuserlocationend"],setup(e,{expose:t,emit:o}){const n=e,a=o,{logError:l}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),i=r.inject(m,r.ref(null)),u=r.ref(!1),c=r.ref(null),s=r.computed(()=>!!c.value),{geolocateControl:d,isControlAdded:v,removeControl:g,addControl:f,trigger:p}=J({map:i,position:n.position,options:n.options,debug:n.debug});function y(){try{n.autoCleanup&&(u.value=!1,c.value=null,v.value&&g())}catch(e){l("Error during geolocate control cleanup:",e)}}return r.watchEffect(()=>{var e;try{d.value&&!u.value&&(a("register",d.value),u.value=!0,c.value=null)}catch(t){l("Error registering geolocate control:",t),c.value=t,null==(e=n.onError)||e.call(n,t)}}),b.map(e=>A({geolocate:d,event:e,on:t=>function(e,t){var r,o,i,u,s,d;try{switch(a(e,t),e){case"geolocate":null==(r=n.onGeolocate)||r.call(n,t);break;case"error":c.value=t,null==(o=n.onError)||o.call(n,t);break;case"trackuserlocationstart":null==(i=n.onTrackingStart)||i.call(n,t);break;case"trackuserlocationend":null==(u=n.onTrackingEnd)||u.call(n,t);break;case"outofmaxbounds":null==(s=n.onOutOfMaxBounds)||s.call(n,t)}}catch(v){l(`Error handling ${e} event:`,v,{data:t}),c.value=v,null==(d=n.onError)||d.call(n,v)}}(e,t),debug:n.debug})),r.onUnmounted(y),t({geolocateControl:d,isControlAdded:v,isControlRegistered:u,hasControlError:s,controlError:c,addControl:f,removeControl:g,trigger:p,cleanup:y}),(e,t)=>s.value?(r.openBlock(),r.createElementBlock("div",ve,[r.renderSlot(e.$slots,"error")])):r.createCommentVNode("",!0)}}),fe=r.defineComponent({__name:"GeoJsonSource",props:{id:{},data:{default:()=>({type:"FeatureCollection",features:[]})},options:{default:()=>({})},register:{},debug:{type:Boolean,default:!1},autoCleanup:{type:Boolean,default:!0},onError:{},onLoad:{},onDataUpdate:{},debounceDelay:{default:100}},emits:["register","error","load","data-update"],setup(e,{expose:t,emit:o}){const n=e,a=o,{logError:i}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),u=r.inject(m,r.ref(null)),c=r.ref(!1),s=r.ref(),d=r.computed(()=>{const e=n.data;if(!e)return!1;if("object"==typeof e&&"type"in e)return"FeatureCollection"===e.type||"Feature"===e.type;if("string"==typeof e)try{return new URL(e),!0}catch{return!1}return!1});function v(e){var t,r;try{if(!e)return;if("object"==typeof e&&"type"in e&&!["FeatureCollection","Feature"].includes(e.type))return void i("Invalid GeoJSON type:",e.type);y(e),s.value=e,a("data-update",e),null==(t=n.onDataUpdate)||t.call(n,e)}catch(o){i("Error setting GeoJSON source data:",o),a("error",o),null==(r=n.onError)||r.call(n,o)}}const{sourceId:g,getSource:f,setData:y,removeSource:h,refreshSource:b,sourceStatus:E,isSourceReady:C}=H({map:u,id:n.id,data:n.data,options:n.options,debug:n.debug,register:e=>{var t,r,o;try{const o={...e,isSourceRegistered:c.value,lastDataUpdate:s.value,isDataValid:d.value};null==(t=n.register)||t.call(n,o),a("register",o),c.value=!0,e.getSource.value&&(a("load",e.getSource.value),null==(r=n.onLoad)||r.call(n,e.getSource.value))}catch(l){i("Error registering GeoJSON source:",l),a("error",l),null==(o=n.onError)||o.call(n,l)}}});r.provide(p,f);const w=l(()=>n.data,(e,t)=>{var r,o;if(e!==t)try{if(e&&d.value)v(e);else if(e&&!d.value){const t=new Error("Invalid GeoJSON data format");i("Invalid GeoJSON data provided:",e),a("error",t),null==(r=n.onError)||r.call(n,t)}}catch(l){i("Error in data watcher:",l),a("error",l),null==(o=n.onError)||o.call(n,l)}},{delay:n.debounceDelay,deep:!0,immediate:!0,flush:"post",debug:n.debug});function z(){try{n.autoCleanup&&(w(),c.value=!1,s.value=void 0,C&&h())}catch(e){i("Error during GeoJSON source cleanup:",e)}}return r.onUnmounted(z),t({sourceId:g,getSource:f,setData:v,removeSource:h,refreshSource:b,sourceStatus:E,isSourceReady:C,isSourceRegistered:c,isDataValid:d,lastDataUpdate:s,cleanup:z}),(e,t)=>r.renderSlot(e.$slots,"default")}}),me=r.defineComponent({__name:"FillLayer",props:{id:{},filter:{type:[Boolean,Array]},style:{},maxzoom:{},minzoom:{},metadata:{},source:{},sourceLayer:{},beforeId:{},visible:{type:Boolean,default:!0},register:{}},emits:["register","click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","touchstart","touchend","touchcancel"],setup(e,{emit:t}){const o=e,n=t,a=r.inject(p,r.ref(null)),l=r.inject(m,r.ref(null)),i=r.computed(()=>o.source||a.value),u=r.computed(()=>({visibility:o.visible?"visible":"none"})),c=r.computed(()=>({...o.style,...u.value})),{getLayer:s,setBeforeId:d,setFilter:v,setStyle:g,setZoomRange:f,setLayoutProperty:y}=Q({map:l,source:i,style:c.value,filter:o.filter||["all"],id:o.id,maxzoom:o.maxzoom,minzoom:o.minzoom,metadata:o.metadata,sourceLayer:o.sourceLayer,register:(e,t)=>{n("register",e,t)}});E.forEach(e=>{G({map:l,layer:s,event:e,on:t=>{n(e,t)}})});const h=r.watch(()=>({filter:o.filter,style:o.style,maxzoom:o.maxzoom,minzoom:o.minzoom,beforeId:o.beforeId,visible:o.visible}),(e,t)=>{e.filter!==(null==t?void 0:t.filter)&&v(e.filter),e.style!==(null==t?void 0:t.style)&&g(e.style),e.maxzoom===(null==t?void 0:t.maxzoom)&&e.minzoom===(null==t?void 0:t.minzoom)||f(e.minzoom,e.maxzoom),e.beforeId!==(null==t?void 0:t.beforeId)&&d(e.beforeId),e.visible!==(null==t?void 0:t.visible)&&y("visibility",e.visible?"visible":"none")},{deep:!0,flush:"post"});return r.onUnmounted(()=>{h()}),(e,t)=>null}}),pe=r.defineComponent({__name:"CircleLayer",props:{id:{},filter:{type:[Boolean,Array],default:()=>["all"]},style:{default:()=>({})},maxzoom:{},minzoom:{},metadata:{},source:{},sourceLayer:{},beforeId:{},visible:{type:Boolean,default:!0},debug:{type:Boolean,default:!1},register:{}},emits:["register","click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","touchstart","touchend","touchcancel"],setup(e,{emit:t}){const o=e,n=t,a=r.inject(p,r.ref(null)),l=r.inject(m,r.ref(null)),i=r.computed(()=>o.source||a.value),u=r.computed(()=>({visibility:o.visible?"visible":"none"})),c=r.computed(()=>({...o.style,...u.value})),{getLayer:s,setBeforeId:d,setFilter:v,setStyle:g,setZoomRange:f,setLayoutProperty:y}=te({map:l,source:i,style:c.value,filter:o.filter||["all"],id:o.id,maxzoom:o.maxzoom,minzoom:o.minzoom,metadata:o.metadata,sourceLayer:o.sourceLayer,register:(e,t)=>{var r;null==(r=o.register)||r.call(o,e,t),n("register",e,t)}});E.forEach(e=>{G({map:l,layer:s,event:e,on:t=>{n(e,t)}})});const h=r.watch(()=>({filter:o.filter,style:o.style,maxzoom:o.maxzoom,minzoom:o.minzoom,beforeId:o.beforeId,visible:o.visible}),(e,t)=>{e.filter!==(null==t?void 0:t.filter)&&v(e.filter),e.style!==(null==t?void 0:t.style)&&g(e.style),e.maxzoom===(null==t?void 0:t.maxzoom)&&e.minzoom===(null==t?void 0:t.minzoom)||f(e.minzoom,e.maxzoom),e.beforeId!==(null==t?void 0:t.beforeId)&&d(e.beforeId),e.visible!==(null==t?void 0:t.visible)&&y("visibility",e.visible?"visible":"none")},{deep:!0,flush:"post"});return r.onUnmounted(()=>{h()}),(e,t)=>null}}),ye=r.defineComponent({__name:"LineLayer",props:{id:{},filter:{type:[Boolean,Array]},style:{},maxzoom:{},minzoom:{},metadata:{},source:{},sourceLayer:{},beforeId:{},visible:{type:Boolean,default:!0},register:{}},emits:["register","click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","touchstart","touchend","touchcancel"],setup(e,{emit:t}){const o=e,n=t,a=r.inject(p,r.ref(null)),l=r.inject(m,r.ref(null)),i=r.computed(()=>o.source||a.value),u=r.computed(()=>({visibility:o.visible?"visible":"none"})),c=r.computed(()=>({...o.style,...u.value})),{getLayer:s,setBeforeId:d,setFilter:v,setStyle:g,setZoomRange:f,setLayoutProperty:y}=ne({map:l,source:i,style:c.value,filter:o.filter||["all"],id:o.id,maxzoom:o.maxzoom,minzoom:o.minzoom,metadata:o.metadata,sourceLayer:o.sourceLayer,register:(e,t)=>{var r;null==(r=o.register)||r.call(o,e,t),n("register",e,t)}});E.forEach(e=>{G({map:l,layer:s,event:e,on:t=>{n(e,t)}})});const h=r.watch(()=>({filter:o.filter,style:o.style,maxzoom:o.maxzoom,minzoom:o.minzoom,beforeId:o.beforeId,visible:o.visible}),(e,t)=>{e.filter!==(null==t?void 0:t.filter)&&v(e.filter),e.style!==(null==t?void 0:t.style)&&g(e.style),e.maxzoom===(null==t?void 0:t.maxzoom)&&e.minzoom===(null==t?void 0:t.minzoom)||f(e.minzoom,e.maxzoom),e.beforeId!==(null==t?void 0:t.beforeId)&&d(e.beforeId),e.visible!==(null==t?void 0:t.visible)&&y("visibility",e.visible?"visible":"none")},{deep:!0,flush:"post"});return r.onUnmounted(()=>{h()}),(e,t)=>null}}),he=r.defineComponent({__name:"SymbolLayer",props:{id:{},filter:{type:[Boolean,Array]},style:{},maxzoom:{},minzoom:{},metadata:{},source:{},sourceLayer:{},beforeId:{},visible:{type:Boolean,default:!0},register:{}},emits:["register","click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","touchstart","touchend","touchcancel"],setup(e,{emit:t}){const o=e,n=t,a=r.inject(p,r.ref(null)),l=r.inject(m,r.ref(null)),i=r.computed(()=>o.source||a.value),u=r.computed(()=>({visibility:o.visible?"visible":"none"})),c=r.computed(()=>({...o.style,...u.value})),{getLayer:s,setBeforeId:d,setFilter:v,setStyle:g,setZoomRange:f,setLayoutProperty:y}=ie({map:l,source:i,style:c.value,filter:o.filter||["all"],id:o.id,maxzoom:o.maxzoom,minzoom:o.minzoom,metadata:o.metadata,sourceLayer:o.sourceLayer,register:(e,t)=>{var r;null==(r=o.register)||r.call(o,e,t),n("register",e,t)}});E.forEach(e=>{G({map:l,layer:s,event:e,on:t=>{n(e,t)}})});const h=r.watch(()=>({filter:o.filter,style:o.style,maxzoom:o.maxzoom,minzoom:o.minzoom,beforeId:o.beforeId,visible:o.visible}),(e,t)=>{e.filter!==(null==t?void 0:t.filter)&&v(e.filter),e.style!==(null==t?void 0:t.style)&&g(e.style),e.maxzoom===(null==t?void 0:t.maxzoom)&&e.minzoom===(null==t?void 0:t.minzoom)||f(e.minzoom,e.maxzoom),e.beforeId!==(null==t?void 0:t.beforeId)&&d(e.beforeId),e.visible!==(null==t?void 0:t.visible)&&y("visibility",e.visible?"visible":"none")},{deep:!0,flush:"post"});return r.onUnmounted(()=>{h()}),(e,t)=>null}}),be=r.defineComponent({__name:"Image",props:{images:{default:()=>[]},options:{},showLoading:{type:Boolean,default:!0},debug:{type:Boolean},forceRecreateOnDimensionChange:{type:Boolean,default:!0}},setup(e){const t=e,{logError:o}=(t.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.ref(!0),a=r.inject(m,r.ref(null)),l=r.computed(()=>t.images.length>0);async function i(e){if(e.length){n.value=!0;try{const r=e.map(async e=>{try{const r=k({map:a,id:e.id,image:e.image,options:e.options||t.options,debug:t.debug,forceRecreateOnDimensionChange:t.forceRecreateOnDimensionChange});await r.loadPromise}catch(r){const t=`Failed to load image ${e.id}: ${r}`;o(t)}});await Promise.allSettled(r)}catch(r){o("Error loading images:",r)}finally{n.value=!1}}else n.value=!1}return r.watch(()=>t.images,e=>{e.length>0&&i(e)},{deep:!0,immediate:!1}),r.onMounted(()=>{l.value?i(t.images):n.value=!1}),(e,t)=>n.value?r.createCommentVNode("",!0):r.renderSlot(e.$slots,"default",{key:0})}}),Ee=r.defineComponent({__name:"PopUp",props:{className:{},lnglat:{},show:{type:Boolean,default:!0},withMap:{type:Boolean,default:!0},options:{},html:{},maxWidth:{},closeButton:{type:Boolean,default:!0},closeOnClick:{type:Boolean,default:!0},closeOnEscape:{type:Boolean,default:!0}},emits:["close","open","update:show"],setup(e,{emit:t}){const o=e,n=t,a=r.inject(m,r.ref(null)),l=r.ref(),i=r.computed(()=>({...o.options,className:o.className,maxWidth:o.maxWidth,closeButton:o.closeButton,closeOnClick:o.closeOnClick,closeOnEscape:o.closeOnEscape})),u={open:()=>{n("open"),n("update:show",!0)},close:()=>{n("close"),n("update:show",!1)}},{setLngLat:c,show:s,hide:d}=O({map:a,el:l,lnglat:o.lnglat,html:o.html,show:o.show,withMap:o.withMap,options:i.value,on:u});return r.watch(()=>o.show,e=>{e?s():d()}),r.watch(()=>o.lnglat,e=>{e&&c(e)},{deep:!0}),(e,t)=>(r.openBlock(),r.createElementBlock("div",{ref_key:"popupElRef",ref:l,class:"mapboxgl-popup-content-inner"},[r.renderSlot(e.$slots,"default")],512))}}),Ce=r.defineComponent({__name:"Marker",props:{lnglat:{},popup:{},options:{default:()=>({})},draggable:{type:Boolean},element:{},offset:{},anchor:{},color:{},clickTolerance:{},rotation:{},rotationAlignment:{},pitchAlignment:{},scale:{},occludedOpacity:{}},emits:["dragstart","drag","dragend"],setup(e,{emit:t}){const o=e,n=t,a=r.useSlots(),l=r.inject(m,r.ref(null)),i=r.ref(),u=r.computed(()=>{var e;return Boolean(null==(e=a.default)?void 0:e.call(a))}),c=r.computed(()=>({...o.options,...void 0!==o.draggable&&{draggable:o.draggable},...void 0!==o.offset&&{offset:o.offset},...void 0!==o.anchor&&{anchor:o.anchor},...void 0!==o.color&&{color:o.color},...void 0!==o.clickTolerance&&{clickTolerance:o.clickTolerance},...void 0!==o.rotation&&{rotation:o.rotation},...void 0!==o.rotationAlignment&&{rotationAlignment:o.rotationAlignment},...void 0!==o.pitchAlignment&&{pitchAlignment:o.pitchAlignment},...void 0!==o.scale&&{scale:o.scale},...void 0!==o.occludedOpacity&&{occludedOpacity:o.occludedOpacity}})),s={dragstart:e=>{n("dragstart",e)},drag:e=>{n("drag",e)},dragend:e=>{n("dragend",e)}},{setDraggable:d,setLngLat:v}=R({map:l,el:u.value?i:void 0,lnglat:o.lnglat,popup:o.popup,options:c.value,on:s});return r.watch(()=>o.lnglat,e=>{e&&v(e)},{deep:!0}),r.watch(()=>o.draggable,e=>{void 0!==e&&d(e)}),(e,t)=>(r.openBlock(),r.createElementBlock("div",{ref_key:"markerElRef",ref:i},[r.renderSlot(e.$slots,"default")],512))}});Object.defineProperty(e,"AJAXError",{enumerable:!0,get:()=>t.AJAXError}),Object.defineProperty(e,"AttributionControl",{enumerable:!0,get:()=>t.AttributionControl}),Object.defineProperty(e,"CanvasSource",{enumerable:!0,get:()=>t.CanvasSource}),Object.defineProperty(e,"Color",{enumerable:!0,get:()=>t.Color}),Object.defineProperty(e,"EdgeInsets",{enumerable:!0,get:()=>t.EdgeInsets}),Object.defineProperty(e,"ErrorEvent",{enumerable:!0,get:()=>t.ErrorEvent}),Object.defineProperty(e,"Event",{enumerable:!0,get:()=>t.Event}),Object.defineProperty(e,"Formatted",{enumerable:!0,get:()=>t.Formatted}),Object.defineProperty(e,"FormattedSection",{enumerable:!0,get:()=>t.FormattedSection}),Object.defineProperty(e,"FullscreenControl",{enumerable:!0,get:()=>t.FullscreenControl}),Object.defineProperty(e,"GeoJSONSource",{enumerable:!0,get:()=>t.GeoJSONSource}),Object.defineProperty(e,"GeolocateControl",{enumerable:!0,get:()=>t.GeolocateControl}),Object.defineProperty(e,"ImageSource",{enumerable:!0,get:()=>t.ImageSource}),Object.defineProperty(e,"LngLat",{enumerable:!0,get:()=>t.LngLat}),Object.defineProperty(e,"LngLatBounds",{enumerable:!0,get:()=>t.LngLatBounds}),Object.defineProperty(e,"Map",{enumerable:!0,get:()=>t.Map}),Object.defineProperty(e,"MapMouseEvent",{enumerable:!0,get:()=>t.MapMouseEvent}),Object.defineProperty(e,"MapTouchEvent",{enumerable:!0,get:()=>t.MapTouchEvent}),Object.defineProperty(e,"MapWheelEvent",{enumerable:!0,get:()=>t.MapWheelEvent}),Object.defineProperty(e,"MercatorCoordinate",{enumerable:!0,get:()=>t.MercatorCoordinate}),Object.defineProperty(e,"NavigationControl",{enumerable:!0,get:()=>t.NavigationControl}),Object.defineProperty(e,"Point",{enumerable:!0,get:()=>t.Point}),Object.defineProperty(e,"RasterDEMTileSource",{enumerable:!0,get:()=>t.RasterDEMTileSource}),Object.defineProperty(e,"RasterTileSource",{enumerable:!0,get:()=>t.RasterTileSource}),Object.defineProperty(e,"ScaleControl",{enumerable:!0,get:()=>t.ScaleControl}),Object.defineProperty(e,"VectorTileSource",{enumerable:!0,get:()=>t.VectorTileSource}),Object.defineProperty(e,"VideoSource",{enumerable:!0,get:()=>t.VideoSource}),e.BoundsStatus=o,e.CircleLayer=pe,e.EaseStatus=i,e.EventListenerStatus=j,e.FillLayer=me,e.FitScreenCoordinatesStatus=u,e.FlyStatus=c,e.GeoJsonSource=fe,e.GeoJsonSourceStatus=B,e.GeolocateControls=ge,e.GeolocateEventListenerStatus=Z,e.GeolocateEvents=b,e.Image=be,e.ImageStatus=M,e.JumpStatus=s,e.LayerEventListenerStatus=U,e.LayerManagementStatus=I,e.LayerStatus=q,e.LineLayer=ye,e.MapCreationStatus=y,e.MapProvideKey=m,e.MapReloadEventStatus=F,e.Mapbox=de,e.MapboxEvents=h,e.MapboxLayerEvents=E,e.Marker=Ce,e.MarkerStatus=W,e.PanStatus=v,e.PopUp=Ee,e.PopupStatus=T,e.RotationStatus=g,e.SourceProvideKey=p,e.SourceStatus=_,e.SymbolLayer=he,e.ZoomStatus=f,e.filterStylePropertiesByKeys=L,e.getMainVersion=z,e.getNanoid=w,e.hasLayer=x,e.hasSource=S,e.lngLatLikeHasValue=P,e.useBatchedComputed=function(e,t=5,o=16){const n=r.ref([]),a=r.ref(),l=r.ref();function i(){if(n.value.length>0){const e=n.value[n.value.length-1];a.value=e,n.value=[]}}return r.computed(()=>{const r=e();return n.value.push(r),n.value.length>=t?(i(),a.value):(l.value&&clearTimeout(l.value),l.value=window.setTimeout(i,o),void 0!==a.value?a.value:r)})},e.useCameraForBounds=function(e){var t;const{log:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.ref(null==(t=e.options)?void 0:t.bounds),a=r.ref(e.options),l=r.ref("not-set"),i=r.computed(()=>r.unref(e.map)),u=r.computed(()=>"set"===l.value);function c(e,t){if(!i.value&&(o("Cannot perform camera operation: map instance not available"),1))return void(l.value="error");if(!e)return o("Invalid bounds for camera: bounds value is null or undefined"),void(l.value="error");const r=i.value;l.value="setting";try{n.value=e,t&&(a.value=t),o("Setting camera for bounds",{bounds:e,options:t}),r.cameraForBounds(e,a.value),l.value="set",o("Camera for bounds set successfully")}catch(u){l.value="error",o("Error setting camera for bounds:",u,{bounds:e})}}return r.watchEffect(()=>{i.value&&n.value&&"setting"!==l.value&&c(n.value,a.value)}),{cameraForBounds:c,clearCamera:function(){n.value=void 0,l.value="not-set",o("Camera bounds cleared")},getCurrentBounds:function(){const e=i.value;if(!e)return o("Cannot get current bounds: map instance not available"),null;try{return e.getBounds()}catch(t){return o("Error getting current bounds:",t),null}},bbox:n.value,cameraStatus:l.value,isCameraSet:u.value}},e.useComputedWithCleanup=function(e,t){const o=r.ref();return r.computed(()=>{const r=e();if(void 0!==o.value&&o.value!==r)try{t(o.value)}catch(n){}return o.value=r,r})},e.useCreateCircleLayer=te,e.useCreateFillLayer=Q,e.useCreateGeoJsonSource=H,e.useCreateImage=k,e.useCreateLayer=$,e.useCreateLineLayer=ne,e.useCreateMapbox=C,e.useCreateMarker=R,e.useCreatePopup=O,e.useCreateSymbolLayer=ie,e.useDebounce=a,e.useDebouncedRef=function(e,t=300){const o=r.ref(e),n=r.ref(e),l=a(e=>{n.value=e},{delay:t});return r.watch(o,e=>{l(e)},{immediate:!1}),[n,o,l.flush,l.cancel]},e.useDebouncedWatch=l,e.useEaseTo=function(e){const{logError:t,logWarn:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.ref(e.options),a=r.ref("not-started"),l=r.computed(()=>r.unref(e.map)),i=r.computed(()=>"easing"===a.value);function u(e){return new Promise((r,i)=>{if(!l.value)return void i(new Error("Map instance not available"));const u=e||n.value;if(!u)return void i(new Error("No ease options provided"));if(!function(e){return!(!e||"object"!=typeof e||(void 0!==e.zoom&&(e.zoom<0||e.zoom>24)&&o("Warning: Zoom level should be between 0 and 24",{zoom:e.zoom}),void 0!==e.bearing&&(e.bearing<-180||e.bearing>180)&&o("Warning: Bearing should be between -180 and 180 degrees",{bearing:e.bearing}),void 0!==e.pitch&&(e.pitch<0||e.pitch>60)&&o("Warning: Pitch should be between 0 and 60 degrees",{pitch:e.pitch}),0))}(u))return a.value="error",void i(new Error("Invalid ease options"));const c=l.value;a.value="easing";try{e&&(n.value=e);const t=()=>{c.off("moveend",t),c.off("error",o),a.value="completed",r()},o=e=>{c.off("moveend",t),c.off("error",o),a.value="error",i(e)};c.once("moveend",t),c.once("error",o),c.easeTo(u)}catch(s){a.value="error",t("Error starting ease-to animation:",s),i(s)}})}return r.watchEffect(()=>{l.value&&n.value&&"not-started"===a.value&&u(n.value).catch(e=>{t("Error in watchEffect easeTo:",e)})}),{easeTo:u,easeToCenter:function(e,t){return u({...t,center:e})},easeToZoom:function(e,t){return u({...t,zoom:e})},easeToBearing:function(e,t){return u({...t,bearing:e})},easeToPitch:function(e,t){return u({...t,pitch:e})},stopEasing:function(){const e=l.value;if(e)try{e.stop(),a.value="completed"}catch(r){t("Error stopping easing animation:",r)}},getCurrentCamera:function(){const e=l.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(r){return t("Error getting current camera state:",r),null}},easeStatus:a.value,isEasing:i.value}},e.useFitBounds=function(e){const{logError:t}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),o=r.ref(),n=r.ref(e.options),a=r.ref("not-set"),l=r.computed(()=>r.unref(e.map)),i=r.computed(()=>"set"===a.value);function u(e,r){if(!l.value||!function(e){return!(!e||Array.isArray(e)&&4!==e.length&&2!==e.length)}(e))return void(a.value="error");const i=l.value;a.value="setting";try{o.value=e,r&&(n.value=r),i.fitBounds(e,n.value),a.value="set"}catch(u){a.value="error",t("Error setting map bounds:",u,{bounds:e})}}return r.watchEffect(()=>{l.value&&o.value&&"setting"!==a.value&&u(o.value,n.value)}),{setFitBounds:u,clearBounds:function(){o.value=void 0,a.value="not-set"},getCurrentBounds:function(){const e=l.value;if(!e)return null;try{return e.getBounds()}catch(r){return t("Error getting current bounds:",r),null}},bounds:o.value,boundsStatus:a.value,isBoundsSet:i.value}},e.useFitScreenCoordinates=function(e){const t="map"in e||"object"==typeof e&&null!==e&&!("value"in e)?e:{map:e},{debug:o=!1,autoCleanup:n=!0,defaultOptions:a,defaultBearing:l}=t,{logError:i,logWarn:u}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},c=r.ref(),s=r.ref(),d=r.ref(a),v=r.ref(l),g=r.ref("not-set"),f=r.computed(()=>r.unref(t.map)),m=r.computed(()=>!(!c.value||!s.value)),p=r.computed(()=>"setting"===g.value),y=r.computed(()=>"error"===g.value);function h(){const e=f.value;if(!e)return null;try{return e.getBearing()}catch(t){return i("Error getting current bearing:",t),null}}function b(e,t,r,o){if(!function(){const e=f.value;return e?!!e.isStyleLoaded()||(u("Map style not loaded, deferring screen coordinates operation"),!1):(u("Map instance not available for screen coordinates operation"),!1)}()||!function(e,t){if(!e||!t)return i("Invalid screen coordinates: both p0 and p1 are required"),!1;const r=e=>Array.isArray(e)?2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1]:"object"==typeof e&&null!==e&&"x"in e&&"y"in e&&"number"==typeof e.x&&"number"==typeof e.y;return!(!r(e)||!r(t))||(i("Invalid point format: points must be [x, y] arrays or {x, y} objects"),!1)}(e,t))return void(g.value="error");const n=f.value;g.value="setting";try{c.value=e,s.value=t,void 0!==r&&(d.value=r),void 0!==o&&(v.value=o);const a=v.value??h()??0;n.fitScreenCoordinates(e,t,a,d.value),g.value="set"}catch(a){g.value="error",i("Error fitting screen coordinates:",a,{p0:e,p1:t,bearing:o,options:r})}}function E(){c.value=void 0,s.value=void 0,d.value=a,v.value=l,g.value="not-set"}return r.watchEffect(()=>{const e=f.value;if(e&&c.value&&s.value&&"setting"!==g.value)try{if(!e.isStyleLoaded()){const t=()=>{e.off("styledata",t),b(c.value,s.value,d.value,v.value)};return void e.on("styledata",t)}const t=v.value??h()??0;e.fitScreenCoordinates(c.value,s.value,t,d.value),g.value="set"}catch(t){g.value="error",i("Error in watchEffect for screen coordinates:",t)}}),r.onUnmounted(function(){n&&E()}),{fitScreenCoordinates:b,clearCoordinates:E,status:g.value,isCoordinatesSet:m.value,isFitting:p.value,hasError:y.value}},e.useFlyTo=function(e){const{logWarn:t,logError:o}=(e.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),n=r.ref(e.options),a=r.ref("not-started"),l=r.computed(()=>r.unref(e.map)),i=r.computed(()=>"flying"===a.value);function u(e){return new Promise((r,i)=>{if(!l.value)return void i(new Error("Map instance not available"));const u=e||n.value;if(!u)return void i(new Error("No fly options provided"));if(!function(e){return!(!e||"object"!=typeof e||(void 0!==e.zoom&&(e.zoom<0||e.zoom>24)&&t("Warning: Zoom level should be between 0 and 24",{zoom:e.zoom}),void 0!==e.bearing&&(e.bearing<-180||e.bearing>180)&&t("Warning: Bearing should be between -180 and 180 degrees",{bearing:e.bearing}),void 0!==e.pitch&&(e.pitch<0||e.pitch>60)&&t("Warning: Pitch should be between 0 and 60 degrees",{pitch:e.pitch}),void 0!==e.speed&&e.speed<=0&&t("Warning: Speed should be greater than 0",{speed:e.speed}),void 0!==e.curve&&e.curve<0&&t("Warning: Curve should be non-negative",{curve:e.curve}),0))}(u))return a.value="error",void i(new Error("Invalid fly options"));const c=l.value;a.value="flying";try{e&&(n.value=e);const t=()=>{c.off("moveend",t),c.off("error",o),a.value="completed",r()},o=e=>{c.off("moveend",t),c.off("error",o),a.value="error",i(e)};c.once("moveend",t),c.once("error",o),c.flyTo(u)}catch(s){a.value="error",o("Error starting fly-to animation:",s),i(s)}})}function c(){const e=l.value;if(e)try{e.stop(),a.value="completed"}catch(t){o("Error stopping flying animation:",t)}}const s=r.watchEffect(()=>{l.value&&n.value&&"not-started"===a.value&&u(n.value).catch(e=>{o("Error in watchEffect flyTo:",e)})});function d(){try{c(),s(),n.value=void 0,a.value="not-started"}catch(e){o("Error during useFlyTo cleanup:",e)}}return r.onUnmounted(d),{flyTo:u,flyToCenter:function(e,t){return u({...t,center:e})},flyToZoom:function(e,t){return u({...t,zoom:e})},flyToBearing:function(e,t){return u({...t,bearing:e})},flyToPitch:function(e,t){return u({...t,pitch:e})},stopFlying:c,getCurrentCamera:function(){const e=l.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return o("Error getting current camera state:",t),null}},flyStatus:a.value,isFlying:i.value,cleanup:d}},e.useGeoJsonSource=function(e={}){const{debug:t=!1,autoRefresh:o=!0}=e,{logError:n}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},a=r.ref(),l=r.shallowRef(null),i=r.ref(),u=r.ref("not-registered");let c;const s=r.computed(()=>"registered"===u.value&&!!l.value&&!!i.value);function d(e){try{if("registered"===u.value&&e===r.unref(a))return;v(),a.value=e,u.value="registered",function(e){c=r.effectScope(),c.run(()=>{r.watch(()=>e.getSource.value,(t,r)=>{try{t!==r&&(l.value=t,i.value=e.sourceId)}catch(o){u.value="error",n("Error in source watcher:",o)}},{immediate:!0})})}(e)}catch(t){u.value="error",n("Error registering GeoJSON source instance:",t)}}function v(){try{null==c||c.stop(),c=void 0}catch(e){n("Error cleaning up watch scope:",e)}}r.onScopeDispose(()=>{v()});const g={sourceId:r.computed(()=>i.value),getSource:r.computed(()=>l.value),setData:function(e){try{if(!a.value)return;if(!a.value.setData)return;a.value.setData(e)}catch(t){n("Error setting GeoJSON source data:",t)}},refreshSource:function(){try{if(!o)return;const e=a.value;e&&d(e)}catch(e){n("Error refreshing GeoJSON source:",e)}},isSourceReady:s,sourceStatus:r.computed(()=>u.value)};return{register:d,...g}},e.useGeolocateControl=J,e.useGeolocateEventListener=A,e.useJumpTo=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1,autoJump:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"jumping"===i.value);function s(e){if(!e)return!1;if(e.center&&Array.isArray(e.center)){if(2!==e.center.length)return!1;const[t,r]=e.center;if("number"!=typeof t||"number"!=typeof r)return!1;if(t<-180||t>180||r<-90||r>90)return!1}return!(void 0!==e.zoom&&("number"!=typeof e.zoom||e.zoom<0||e.zoom>24)||void 0!==e.bearing&&"number"!=typeof e.bearing||void 0!==e.pitch&&("number"!=typeof e.pitch||e.pitch<0||e.pitch>60))}function d(e){if(!u.value)return;const t=e||l.value;if(!t)return;if(!s(t))return void(i.value="error");const r=u.value;i.value="jumping";try{e&&(l.value=e),r.jumpTo(t),i.value="completed"}catch(o){i.value="error",a("Error performing jump-to operation:",o)}}return r.watchEffect(()=>{u.value&&l.value&&!1!==n.autoJump&&"not-started"===i.value&&d(l.value)}),r.onUnmounted(function(){i.value="completed"}),o?{jumpTo:d}:{jumpTo:d,jumpToCenter:function(e,t){d({...t,center:e})},jumpToZoom:function(e,t){d({...t,zoom:e})},jumpToBearing:function(e,t){d({...t,bearing:e})},jumpToPitch:function(e,t){d({...t,pitch:e})},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},validateJumpOptions:s,jumpStatus:i.value,isJumping:c.value}},e.useLayer=function(e={}){const{debug:t=!1,autoCleanup:o=!0}=e,{logError:n}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},a=r.ref(),l=r.ref("not-registered"),i=r.shallowRef(null),u=r.shallowRef(null),c=r.ref();let s;const d=r.computed(()=>"registered"===l.value),v=r.computed(()=>{const e=i.value,t=c.value;return d.value&&!!e&&!!t&&x(e,t)});function g(){const e=i.value,t=c.value;return!!(e&&t&&x(e,t))}function f(e,t){try{if(r.unref(a)===e&&"registered"===l.value)return;l.value="registering",a.value=e,i.value=t,null==s||s.stop(),s=r.effectScope(),s.run(()=>{r.watch(()=>e.getLayer.value,e=>{try{u.value=e,c.value=null==e?void 0:e.id,l.value=e?"registered":"not-registered"}catch(t){l.value="error",n("Error in layer watch handler:",t)}},{immediate:!0})})}catch(o){l.value="error",n("Error registering layer instance:",o)}}function m(){const e=r.unref(a);if(e)return e}function p(){try{null==s||s.stop(),a.value=void 0,i.value=null,u.value=null,c.value=void 0,l.value="disposed"}catch(e){n("Error disposing layer management:",e)}}return r.onUnmounted(function(){o&&p()}),{register:f,layerId:r.computed(()=>c.value),layer:r.computed(()=>u.value),layerStatus:r.computed(()=>l.value),isLayerRegistered:d,isLayerReady:v,getFilter:function(){if(g())try{const e=i.value,t=c.value;return e.getFilter(t)}catch(e){n("Error getting layer filter:",e,{layerId:c.value})}},getLayoutProperty:function(e){if(g())try{const t=i.value,r=c.value;return t.getLayoutProperty(r,e)}catch(t){n("Error getting layout property:",t,{layerId:c.value,property:e})}},getPaintProperty:function(e){if(g())try{const t=i.value,r=c.value;return t.getPaintProperty(r,e)}catch(t){n("Error getting paint property:",t,{layerId:c.value,property:e})}},setBeforeId:function(e){const t=m();if(t)try{t.setBeforeId(e)}catch(r){n("Error setting before ID:",r,{beforeId:e})}},setFilter:function(e){const t=m();if(t)try{t.setFilter(e)}catch(r){n("Error setting filter:",r,{filter:e})}},setPaintProperty:function(e,t,r){const o=m();if(o)try{o.setPaintProperty(e,t,r)}catch(a){n("Error setting paint property:",a,{property:e,value:t})}},setLayoutProperty:function(e,t,r){const o=m();if(o)try{o.setLayoutProperty(e,t,r)}catch(a){n("Error setting layout property:",a,{property:e,value:t})}},setZoomRange:function(e,t){const r=m();if(r)try{r.setZoomRange(e,t)}catch(o){n("Error setting zoom range:",o,{minzoom:e,maxzoom:t})}},removeLayer:function(){const e=m();if(e)try{e.removeLayer()}catch(t){n("Error removing layer:",t,{layerId:c.value})}},setStyle:function(e){const t=m();if(t)try{t.setStyle(e)}catch(r){n("Error setting layer style:",r,{style:e})}},dispose:p,refresh:function(){const e=m(),t=i.value;e&&t&&f(e,t)}}},e.useLayerEventListener=G,e.useLogger=n,e.useMapEventListener=N,e.useMapReloadEvent=D,e.useMapbox=function(e={}){const{debug:t=!1,autoCleanup:o=!0}=e,{logError:n}={log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}},a=r.ref(),l=r.ref(y.NotInitialized),i=r.shallowRef(null);let u;const c=r.computed(()=>l.value===y.Loaded),s=r.computed(()=>l.value===y.Loading),d=r.computed(()=>l.value===y.Error),v=r.computed(()=>c.value&&null!==i.value),g=()=>i.value,f=()=>a.value,m={getContainer:()=>{var e;return null==(e=g())?void 0:e.getContainer()},getCanvasContainer:()=>{var e;return null==(e=g())?void 0:e.getCanvasContainer()},getCanvas:()=>{var e;return null==(e=g())?void 0:e.getCanvas()},getStyle:()=>{var e;return null==(e=g())?void 0:e.getStyle()},getBounds:()=>{var e;return null==(e=g())?void 0:e.getBounds()},getCenter:()=>{var e;return null==(e=g())?void 0:e.getCenter()},getZoom:()=>{var e;return null==(e=g())?void 0:e.getZoom()},getBearing:()=>{var e;return null==(e=g())?void 0:e.getBearing()},getPadding:()=>{var e;return null==(e=g())?void 0:e.getPadding()},getPitch:()=>{var e;return null==(e=g())?void 0:e.getPitch()},getMinZoom:()=>{var e;return null==(e=g())?void 0:e.getMinZoom()},getMaxZoom:()=>{var e;return null==(e=g())?void 0:e.getMaxZoom()},getMinPitch:()=>{var e;return null==(e=g())?void 0:e.getMinPitch()},getMaxPitch:()=>{var e;return null==(e=g())?void 0:e.getMaxPitch()},getFilter:e=>{var t;return null==(t=g())?void 0:t.getFilter(e)},getLayer:e=>{var t;return null==(t=g())?void 0:t.getLayer(e)},getLayoutProperty:(e,t)=>{var r;return null==(r=g())?void 0:r.getLayoutProperty(e,t)},getPaintProperty:(e,t)=>{var r;return null==(r=g())?void 0:r.getPaintProperty(e,t)},getSource:e=>{var t;return null==(t=g())?void 0:t.getSource(e)},project:e=>{var t;return null==(t=g())?void 0:t.project(e)},unproject:e=>{var t;return null==(t=g())?void 0:t.unproject(e)},queryRenderedFeatures:(e,t)=>{var r;return null==(r=g())?void 0:r.queryRenderedFeatures(e,t)},querySourceFeatures:(e,t)=>{var r;return null==(r=g())?void 0:r.querySourceFeatures(e,t)},queryTerrainElevation:e=>{var t;return null==(t=g())?void 0:t.queryTerrainElevation(e)},isStyleLoaded:()=>{var e;return null==(e=g())?void 0:e.isStyleLoaded()},isMoving:()=>{var e;return null==(e=g())?void 0:e.isMoving()},isZooming:()=>{var e;return null==(e=g())?void 0:e.isZooming()},isRotating:()=>{var e;return null==(e=g())?void 0:e.isRotating()},isEasing:()=>{var e;return null==(e=g())?void 0:e.isEasing()},resize:()=>{var e;return null==(e=g())?void 0:e.resize()},remove:()=>{var e;return null==(e=g())?void 0:e.remove()},triggerRepaint:()=>{var e;return null==(e=g())?void 0:e.triggerRepaint()},setFeatureState:(e,t)=>{var r;return null==(r=g())?void 0:r.setFeatureState(e,t)},removeFeatureState:(e,t)=>{var r;return null==(r=g())?void 0:r.removeFeatureState(e,t)},getFeatureState:e=>{var t;return null==(t=g())?void 0:t.getFeatureState(e)},setPadding:e=>{var t;return e&&(null==(t=g())?void 0:t.setPadding(e))},setRenderWorldCopies:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setRenderWorldCopies)?void 0:r.call(t,e)},setMinZoom:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setMinZoom)?void 0:r.call(t,e)},setMinPitch:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setMinPitch)?void 0:r.call(t,e)},setMaxZoom:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setMaxZoom)?void 0:r.call(t,e)},setMaxPitch:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setMaxPitch)?void 0:r.call(t,e)},setMaxBounds:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setMaxBounds)?void 0:r.call(t,e)},setStyle:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setStyle)?void 0:r.call(t,e)},setPitch:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setPitch)?void 0:r.call(t,e)},setZoom:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setZoom)?void 0:r.call(t,e)},setBearing:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setBearing)?void 0:r.call(t,e)},setCenter:e=>{var t,r;return null==(r=null==(t=f())?void 0:t.setCenter)?void 0:r.call(t,e)}};return r.onUnmounted(()=>{o&&(null==u||u.stop(),a.value=void 0,i.value=null,l.value=y.NotInitialized)}),{...m,mapInstance:r.computed(()=>i.value),mapStatus:r.computed(()=>l.value),isMapReady:c,isMapLoading:s,hasMapError:d,isRegistered:v,register:async function(e){try{if(!e)throw new Error("Cannot register: instance is null or undefined");if(!e.mapInstance)throw new Error("Cannot register: instance missing mapInstance property");if(e===r.unref(a))return;a.value=e,null==u||u.stop(),u=r.effectScope(),u.run(()=>{r.watch(()=>e.mapInstance.value,e=>{try{i.value=e}catch(t){l.value=y.Error,n("Error updating map instance:",t)}},{immediate:!0}),l.value=e.mapCreationStatus,r.watch(()=>e.mapInstance.value,t=>{try{if(t)if(t.loaded())l.value=y.Loaded;else{l.value=y.Loading;const e=()=>{l.value=y.Loaded,t.off("load",e)};t.on("load",e)}else e.hasMapError?l.value=y.Error:e.isMapLoading?l.value=y.Loading:l.value=y.NotInitialized}catch(r){l.value=y.Error,n("Error updating map status:",r)}},{immediate:!0})})}catch(t){throw l.value=y.Error,n("Error registering MapLibre instance:",t),t}},setMapOptions:e=>{const t=f();(null==t?void 0:t.setMapOptions)?t.setMapOptions(e):n("Cannot set map options: no registered instance")}}},e.useMemoized=function(e,t=(...e)=>JSON.stringify(e),r=100){const o=new Map;return(...n)=>{const a=t(...n),l=o.get(a);if(l)return l.value;const i=e(...n);if(o.size>=r){const e=o.keys().next().value;void 0!==e&&o.delete(e)}return o.set(a,{value:i,timestamp:Date.now()}),i}},e.useOptimizedComputed=d,e.usePanBy=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,offset:null==t?void 0:t.offset,options:t,debug:!1,autoPan:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.offset),i=r.ref(n.options),u=r.ref("not-started"),c=r.computed(()=>r.unref(n.map)),s=r.computed(()=>"panning"===u.value);function d(e){if(!e)return!1;if(Array.isArray(e)){if(2!==e.length)return!1;const[t,r]=e;if("number"!=typeof t||"number"!=typeof r)return!1}else{if("object"!=typeof e)return!1;if("number"!=typeof e.x||"number"!=typeof e.y)return!1}return!0}function v(e,t){return new Promise((r,o)=>{if(!c.value)return void o(new Error("Map instance not available"));if(!d(e))return u.value="error",void o(new Error("Invalid pan offset"));const n=c.value,s=t||i.value;u.value="panning";try{if(l.value=e,t&&(i.value=t),s){const t=()=>{n.off("moveend",t),n.off("error",a),u.value="completed",r()},a=e=>{n.off("moveend",t),n.off("error",a),u.value="error",o(e)};n.once("moveend",t),n.once("error",a),n.panBy(e,s)}else n.panBy(e),u.value="completed",r()}catch(v){u.value="error",a("Error performing pan-by operation:",v),o(v)}})}return r.watchEffect(()=>{c.value&&l.value&&!1!==n.autoPan&&"not-started"===u.value&&v(l.value,i.value).catch(e=>{a("Error in watchEffect panBy:",e)})}),r.onUnmounted(function(){u.value="completed"}),o?{panBy:function(e,t){v(e,t).catch(e=>{a("Error in legacy panBy:",e)})}}:{panBy:v,stopPanning:function(){const e=c.value;if(e)try{e.stop(),u.value="completed"}catch(t){a("Error stopping panning animation:",t)}},getCurrentCamera:function(){const e=c.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},validatePanOffset:d,panStatus:u.value,isPanning:s.value}},e.usePanTo=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,lnglat:null==t?void 0:t.lnglat,options:t,debug:!1,autoPan:!0}:e,{log:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.lnglat),i=r.ref(n.options),u=r.ref("not-started"),c=r.ref(0),s=r.computed(()=>r.unref(n.map)),d=r.computed(()=>"panning"===u.value);function v(e){if(!e)return a("Invalid pan target: coordinates are null or undefined"),!1;if(Array.isArray(e)){if(2!==e.length)return a("Invalid pan target: array must have exactly 2 elements",{lnglat:e}),!1;const[t,r]=e;if("number"!=typeof t||"number"!=typeof r)return a("Invalid pan target: coordinates must be numbers",{lnglat:e}),!1;if(t<-180||t>180||r<-90||r>90)return a("Invalid pan target: coordinates out of valid range",{lnglat:e}),!1}else{if("object"!=typeof e)return a("Invalid pan target: must be array or object with lng,lat properties",{lnglat:e}),!1;{const t="lon"in e&&"lat"in e;if("lng"in e&&"lat"in e){const t=e;if("number"!=typeof t.lng||"number"!=typeof t.lat)return a("Invalid pan target: lng and lat must be numbers",{lnglat:e}),!1;if(t.lng<-180||t.lng>180||t.lat<-90||t.lat>90)return a("Invalid pan target: coordinates out of valid range",{lnglat:e}),!1}else{if(!t)return a("Invalid pan target: object must have lng,lat or lon,lat properties",{lnglat:e}),!1;{const t=e;if("number"!=typeof t.lon||"number"!=typeof t.lat)return a("Invalid pan target: lon and lat must be numbers",{lnglat:e}),!1;if(t.lon<-180||t.lon>180||t.lat<-90||t.lat>90)return a("Invalid pan target: coordinates out of valid range",{lnglat:e}),!1}}}}return!0}function g(e,t){return new Promise((r,o)=>{if(!s.value&&(a("Cannot perform pan operation: map instance not available"),1))return void o(new Error("Map instance not available"));if(!v(e))return u.value="error",void o(new Error("Invalid pan target coordinates"));const n=s.value,d=t||i.value;u.value="panning";try{if(l.value=e,t&&(i.value=t),c.value++,a("Performing pan-to operation",{lnglat:e,options:d,panCount:c.value}),d){const t=()=>{n.off("moveend",t),n.off("error",l),u.value="completed",a("Pan-to animation completed successfully"),r()},l=e=>{n.off("moveend",t),n.off("error",l),u.value="error",a("Error during pan-to animation:",e),o(e)};n.once("moveend",t),n.once("error",l),n.panTo(e,d)}else n.panTo(e),u.value="completed",a("Pan-to operation completed immediately"),r()}catch(g){u.value="error",a("Error performing pan-to operation:",g),o(g)}})}return r.watchEffect(()=>{s.value&&l.value&&!1!==n.autoPan&&"not-started"===u.value&&g(l.value,i.value).catch(e=>{a("Error in watchEffect panTo:",e)})}),r.onUnmounted(function(){a("Cleaning up pan-to composable"),u.value="completed"}),o?{panTo:function(e,t){g(e,t).catch(e=>{a("Error in legacy panTo:",e)})}}:{panTo:g,stopPanning:function(){const e=s.value;if(e)try{e.stop(),u.value="completed",a("Panning animation stopped")}catch(t){a("Error stopping panning animation:",t)}else a("Cannot stop panning: map instance not available")},getCurrentCamera:function(){const e=s.value;if(!e)return a("Cannot get camera: map instance not available"),null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},validatePanTarget:v,panStatus:u.value,isPanning:d.value}},e.useResetNorth=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1,autoReset:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"rotating"===i.value);function s(e){return new Promise((t,r)=>{if(!u.value)return void r(new Error("Map instance not available"));const o=u.value,n=e||l.value;i.value="rotating";try{if(e&&(l.value=e),n){const e=()=>{o.off("rotateend",e),o.off("error",a),i.value="completed",t()},a=t=>{o.off("rotateend",e),o.off("error",a),i.value="error",r(t)};o.once("rotateend",e),o.once("error",a),o.resetNorth(n)}else o.resetNorth(),i.value="completed",t()}catch(c){i.value="error",a("Error performing reset-north operation:",c),r(c)}})}return r.watchEffect(()=>{u.value&&!1!==n.autoReset&&"not-started"===i.value&&s(l.value).catch(e=>{a("Error in watchEffect resetNorth:",e)})}),r.onUnmounted(function(){i.value="completed"}),o?{resetNorth:function(e){s(e).catch(e=>{a("Error in legacy resetNorth:",e)})}}:{resetNorth:s,stopRotating:function(){const e=u.value;if(e)try{e.stop(),i.value="completed"}catch(t){a("Error stopping rotation animation:",t)}},getCurrentBearing:function(){const e=u.value;if(!e)return null;try{return e.getBearing()}catch(t){return a("Error getting current bearing:",t),null}},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},rotationStatus:i.value,isRotating:c.value}},e.useResetNorthPitch=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"rotating"===i.value);function s(e){return new Promise((t,r)=>{const o=u.value;if(o)try{i.value="rotating";const r=e||l.value;if(r){const e=()=>{i.value="completed",t()};o.once("moveend",e),o.resetNorthPitch(r)}else o.resetNorthPitch(),i.value="completed",t()}catch(n){i.value="error",a("Error performing reset-north-pitch operation:",n),r(n)}else r(new Error("Map instance not available"))})}return r.onUnmounted(()=>{i.value="completed"}),o?{resetNorthPitch:e=>{s(e).catch(()=>{a("Error in legacy resetNorthPitch")})}}:{resetNorthPitch:s,stopRotating:function(){var e;try{null==(e=u.value)||e.stop(),i.value="completed"}catch{a("Error stopping rotation animation")}},getCurrentBearing:function(){var e;try{return(null==(e=u.value)?void 0:e.getBearing())??null}catch{return a("Error getting current bearing"),null}},getCurrentPitch:function(){var e;try{return(null==(e=u.value)?void 0:e.getPitch())??null}catch{return a("Error getting current pitch"),null}},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch{return a("Error getting current camera"),null}},rotationStatus:i.value,isRotating:c.value}},e.useRotateTo=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,bearing:null==t?void 0:t.bearing,options:t,debug:!1,autoRotate:!0}:e,{logError:a,logWarn:l}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),i=r.ref(n.bearing),u=r.ref(n.options),c=r.ref("not-started"),s=r.computed(()=>r.unref(n.map)),d=r.computed(()=>"rotating"===c.value);function v(e){if("number"!=typeof e||isNaN(e))return!1;const t=(e%360+360)%360;return t!==e&&e<0&&l("Warning: Negative bearing will be normalized",{original:e,normalized:t}),!0}function g(e,t){return new Promise((r,o)=>{if(!s.value)return void o(new Error("Map instance not available"));if(!v(e))return c.value="error",void o(new Error("Invalid bearing value"));const n=s.value,l=t||u.value;c.value="rotating";try{if(i.value=e,t&&(u.value=t),l){const t=()=>{n.off("rotateend",t),n.off("error",a),c.value="completed",r()},a=e=>{n.off("rotateend",t),n.off("error",a),c.value="error",o(e)};n.once("rotateend",t),n.once("error",a),n.rotateTo(e,l)}else n.rotateTo(e),c.value="completed",r()}catch(d){c.value="error",a("Error performing rotate-to operation:",d),o(d)}})}return r.watchEffect(()=>{s.value&&void 0!==i.value&&!1!==n.autoRotate&&"not-started"===c.value&&g(i.value,u.value).catch(e=>{a("Error in watchEffect rotateTo:",e)})}),r.onUnmounted(function(){c.value="completed"}),o?{rotateTo:function(e,t){g(e,t).catch(e=>{a("Error in legacy rotateTo:",e)})}}:{rotateTo:g,stopRotating:function(){const e=s.value;if(e)try{e.stop(),c.value="completed"}catch(t){a("Error stopping rotation animation:",t)}},getCurrentBearing:function(){const e=s.value;if(!e)return null;try{return e.getBearing()}catch(t){return a("Error getting current bearing:",t),null}},getCurrentCamera:function(){const e=s.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},validateBearing:v,rotationStatus:c.value,isRotating:d.value}},e.useSnapToNorth=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"rotating"===i.value);function s(e){return new Promise((t,r)=>{const o=u.value;if(o)try{i.value="rotating";const r=e||l.value;if(r){const e=()=>{i.value="completed",t()};o.once("moveend",e),o.snapToNorth(r)}else o.snapToNorth(),i.value="completed",t()}catch(n){i.value="error",a("Error performing snap-to-north operation:",n),r(n)}else r(new Error("Map instance not available"))})}return r.onUnmounted(()=>{i.value="completed"}),o?{snapToNorth:e=>{s(e).catch(()=>{a("Error in legacy snapToNorth")})}}:{snapToNorth:s,stopRotating:function(){var e;try{null==(e=u.value)||e.stop(),i.value="completed"}catch{a("Error stopping rotation animation")}},getCurrentBearing:function(){var e;try{return(null==(e=u.value)?void 0:e.getBearing())??null}catch{return a("Error getting current bearing"),null}},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch{return a("Error getting current camera"),null}},rotationStatus:i.value,isRotating:c.value}},e.useThrottledComputed=function(e,t=.01,o=100){const n=r.ref(),a=r.ref();return r.computed(()=>{const r=e();return void 0!==n.value&&Math.abs(r-n.value)<t?n.value:(a.value&&clearTimeout(a.value),a.value=window.setTimeout(()=>{n.value=r},o),r)})},e.useZoomIn=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1,autoZoom:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"zooming"===i.value);function s(e){return new Promise((t,r)=>{if(!u.value)return void r(new Error("Map instance not available"));const o=u.value,n=e||l.value;i.value="zooming";try{if(e&&(l.value=e),n){const e=()=>{o.off("zoomend",e),o.off("error",a),i.value="completed",t()},a=t=>{o.off("zoomend",e),o.off("error",a),i.value="error",r(t)};o.once("zoomend",e),o.once("error",a),o.zoomIn(n)}else o.zoomIn(),i.value="completed",t()}catch(c){i.value="error",a("Error performing zoom-in operation:",c),r(c)}})}return r.watchEffect(()=>{u.value&&!1!==n.autoZoom&&"not-started"===i.value&&s(l.value).catch(e=>{a("Error in watchEffect zoomIn:",e)})}),r.onUnmounted(function(){i.value="completed"}),o?{zoomIn:function(e){s(e).catch(e=>{a("Error in legacy zoomIn:",e)})}}:{zoomIn:s,stopZooming:function(){const e=u.value;if(e)try{e.stop(),i.value="completed"}catch(t){a("Error stopping zoom animation:",t)}},getCurrentZoom:function(){const e=u.value;if(!e)return null;try{return e.getZoom()}catch(t){return a("Error getting current zoom:",t),null}},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},zoomStatus:i.value,isZooming:c.value}},e.useZoomOut=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,options:t,debug:!1,autoZoom:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.options),i=r.ref("not-started"),u=r.computed(()=>r.unref(n.map)),c=r.computed(()=>"zooming"===i.value);function s(e){return new Promise((t,r)=>{if(!u.value)return void r(new Error("Map instance not available"));const o=u.value,n=e||l.value;i.value="zooming";try{if(e&&(l.value=e),n){const e=()=>{o.off("zoomend",e),o.off("error",a),i.value="completed",t()},a=t=>{o.off("zoomend",e),o.off("error",a),i.value="error",r(t)};o.once("zoomend",e),o.once("error",a),o.zoomOut(n)}else o.zoomOut(),i.value="completed",t()}catch(c){i.value="error",a("Error performing zoom-out operation:",c),r(c)}})}return r.watchEffect(()=>{u.value&&!1!==n.autoZoom&&"not-started"===i.value&&s(l.value).catch(e=>{a("Error in watchEffect zoomOut:",e)})}),r.onUnmounted(function(){i.value="completed"}),o?{zoomOut:function(e){s(e).catch(e=>{a("Error in legacy zoomOut:",e)})}}:{zoomOut:s,stopZooming:function(){const e=u.value;if(e)try{e.stop(),i.value="completed"}catch(t){a("Error stopping zoom animation:",t)}},getCurrentZoom:function(){const e=u.value;if(!e)return null;try{return e.getZoom()}catch(t){return a("Error getting current zoom:",t),null}},getCurrentCamera:function(){const e=u.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},zoomStatus:i.value,isZooming:c.value}},e.useZoomTo=function(e,t){const o=void 0!==t||!("map"in e),n=o?{map:e,zoom:null==t?void 0:t.zoom,options:t,debug:!1,autoZoom:!0}:e,{logError:a}=(n.debug,{log:(...e)=>{},logWarn:(...e)=>{},logError:(...e)=>{}}),l=r.ref(n.zoom),i=r.ref(n.options),u=r.ref("not-started"),c=r.computed(()=>r.unref(n.map)),s=r.computed(()=>"zooming"===u.value);function d(e){return"number"==typeof e&&!isNaN(e)&&!(e<0||e>24)}function v(e,t){return new Promise((r,o)=>{if(!c.value)return void o(new Error("Map instance not available"));if(!d(e))return u.value="error",void o(new Error("Invalid zoom level"));const n=c.value,s=t||i.value;u.value="zooming";try{if(l.value=e,t&&(i.value=t),s){const t=()=>{n.off("zoomend",t),n.off("error",a),u.value="completed",r()},a=e=>{n.off("zoomend",t),n.off("error",a),u.value="error",o(e)};n.once("zoomend",t),n.once("error",a),n.zoomTo(e,s)}else n.zoomTo(e),u.value="completed",r()}catch(v){u.value="error",a("Error performing zoom-to operation:",v),o(v)}})}return r.watchEffect(()=>{c.value&&void 0!==l.value&&!1!==n.autoZoom&&"not-started"===u.value&&v(l.value,i.value).catch(e=>{a("Error in watchEffect zoomTo:",e)})}),r.onUnmounted(function(){u.value="completed"}),o?{zoomTo:function(e,t){v(e,t).catch(e=>{a("Error in legacy zoomTo:",e)})}}:{zoomTo:v,stopZooming:function(){const e=c.value;if(e)try{e.stop(),u.value="completed"}catch(t){a("Error stopping zoom animation:",t)}},getCurrentZoom:function(){const e=c.value;if(!e)return null;try{return e.getZoom()}catch(t){return a("Error getting current zoom:",t),null}},getCurrentCamera:function(){const e=c.value;if(!e)return null;try{return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}}catch(t){return a("Error getting current camera:",t),null}},validateZoomLevel:d,zoomStatus:u.value,isZooming:s.value}},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});//# sourceMappingURL=index.umd.cjs.map