@geoql/v-maplibre 1.10.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -15
- package/dist/arc-B_fAMcpz.js +2 -0
- package/dist/arc-B_fAMcpz.js.map +1 -0
- package/dist/{arrow-4ecDVUFv.js → arrow-B87Hvf8z.js} +1 -1
- package/dist/{arrow-4ecDVUFv.js.map → arrow-B87Hvf8z.js.map} +1 -1
- package/dist/bitmap-C_yi2tt7.js +2 -0
- package/dist/bitmap-C_yi2tt7.js.map +1 -0
- package/dist/cog-Cksxp4kb.js +2 -0
- package/dist/cog-Cksxp4kb.js.map +1 -0
- package/dist/column-CN436hkx.js +2 -0
- package/dist/column-CN436hkx.js.map +1 -0
- package/dist/contour-DJbs8Kf4.js +2 -0
- package/dist/contour-DJbs8Kf4.js.map +1 -0
- package/dist/deckgl.d.ts +47 -0
- package/dist/deckgl.js +2 -0
- package/dist/deckgl.js.map +1 -0
- package/dist/generic-B-YSsfL2.js +2 -0
- package/dist/generic-B-YSsfL2.js.map +1 -0
- package/dist/geoarrow-path-4ompjoL_.js +2 -0
- package/dist/{geoarrow-path-CV0aOugP.js.map → geoarrow-path-4ompjoL_.js.map} +1 -1
- package/dist/geoarrow-polygon-DUlcZwlA.js +2 -0
- package/dist/{geoarrow-polygon-BjfqZpaf.js.map → geoarrow-polygon-DUlcZwlA.js.map} +1 -1
- package/dist/geoarrow-scatterplot-Cd2DK-iz.js +2 -0
- package/dist/{geoarrow-scatterplot-DxkqOIWR.js.map → geoarrow-scatterplot-Cd2DK-iz.js.map} +1 -1
- package/dist/geoarrow-solid-polygon-q14Ff9j9.js +2 -0
- package/dist/{geoarrow-solid-polygon-LGavbdMg.js.map → geoarrow-solid-polygon-q14Ff9j9.js.map} +1 -1
- package/dist/geoarrow-text-DHvTakUd.js +2 -0
- package/dist/{geoarrow-text-8HY70yYe.js.map → geoarrow-text-DHvTakUd.js.map} +1 -1
- package/dist/geoarrow-trips-CwRSQdMU.js +2 -0
- package/dist/{geoarrow-trips-Bqc-_N6F.js.map → geoarrow-trips-CwRSQdMU.js.map} +1 -1
- package/dist/geohash-DfnNENva.js +2 -0
- package/dist/geohash-DfnNENva.js.map +1 -0
- package/dist/geojson-BRWVICwI.js +2 -0
- package/dist/geojson-BRWVICwI.js.map +1 -0
- package/dist/geotiff.d.ts +50 -0
- package/dist/geotiff.js +2 -0
- package/dist/geotiff.js.map +1 -0
- package/dist/great-circle-Da5XIa2p.js +2 -0
- package/dist/great-circle-Da5XIa2p.js.map +1 -0
- package/dist/grid-DKP8clpW.js +2 -0
- package/dist/grid-DKP8clpW.js.map +1 -0
- package/dist/grid-cell-CZ41kY8K.js +2 -0
- package/dist/grid-cell-CZ41kY8K.js.map +1 -0
- package/dist/h3-cluster-Cco_QCbU.js +2 -0
- package/dist/h3-cluster-Cco_QCbU.js.map +1 -0
- package/dist/h3-hexagon-BqvZfU5b.js +2 -0
- package/dist/h3-hexagon-BqvZfU5b.js.map +1 -0
- package/dist/heatmap-Bq7-L0jp.js +2 -0
- package/dist/heatmap-Bq7-L0jp.js.map +1 -0
- package/dist/hexagon-T0vesB_G.js +2 -0
- package/dist/hexagon-T0vesB_G.js.map +1 -0
- package/dist/icon-Bwm2m8b4.js +2 -0
- package/dist/icon-Bwm2m8b4.js.map +1 -0
- package/dist/index-2D1oVTKr.d.ts +37 -0
- package/dist/index.d.ts +121 -491
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lidar.d.ts +232 -0
- package/dist/lidar.js +2 -0
- package/dist/lidar.js.map +1 -0
- package/dist/line-2EN6ukkf.js +2 -0
- package/dist/line-2EN6ukkf.js.map +1 -0
- package/dist/mosaic-DUwBxfGg.js +43 -0
- package/dist/mosaic-DUwBxfGg.js.map +1 -0
- package/dist/multi-cog-B2kVLX90.js +2 -0
- package/dist/multi-cog-B2kVLX90.js.map +1 -0
- package/dist/mvt-q6iXzmEF.js +2 -0
- package/dist/mvt-q6iXzmEF.js.map +1 -0
- package/dist/path-CKCx5_Gi.js +2 -0
- package/dist/path-CKCx5_Gi.js.map +1 -0
- package/dist/point-cloud-C9zJxZDT.js +2 -0
- package/dist/point-cloud-C9zJxZDT.js.map +1 -0
- package/dist/polygon-DRpsvg1W.js +2 -0
- package/dist/polygon-DRpsvg1W.js.map +1 -0
- package/dist/quadkey-DfoG2hLL.js +2 -0
- package/dist/quadkey-DfoG2hLL.js.map +1 -0
- package/dist/s2-DlEDAkpJ.js +2 -0
- package/dist/s2-DlEDAkpJ.js.map +1 -0
- package/dist/scatterplot-B9zXE6Jf.js +2 -0
- package/dist/scatterplot-B9zXE6Jf.js.map +1 -0
- package/dist/scenegraph-BVXLw8Cw.js +2 -0
- package/dist/scenegraph-BVXLw8Cw.js.map +1 -0
- package/dist/screen-grid-Dgj0QdEI.js +2 -0
- package/dist/screen-grid-Dgj0QdEI.js.map +1 -0
- package/dist/simple-mesh-ypHRymUD.js +2 -0
- package/dist/simple-mesh-ypHRymUD.js.map +1 -0
- package/dist/solid-polygon-DyWHVxEO.js +2 -0
- package/dist/solid-polygon-DyWHVxEO.js.map +1 -0
- package/dist/starfield-Djc5vy6K.js +2 -0
- package/dist/starfield-Djc5vy6K.js.map +1 -0
- package/dist/starfield.d.ts +7 -0
- package/dist/starfield.js +2 -0
- package/dist/starfield.js.map +1 -0
- package/dist/symbols-DXKzIgbY.js +2 -0
- package/dist/symbols-DXKzIgbY.js.map +1 -0
- package/dist/terrain-D3LKaDfn.js +2 -0
- package/dist/terrain-D3LKaDfn.js.map +1 -0
- package/dist/text-C6lF4GFS.js +2 -0
- package/dist/text-C6lF4GFS.js.map +1 -0
- package/dist/tile-3d-DHzr5_s2.js +2 -0
- package/dist/tile-3d-DHzr5_s2.js.map +1 -0
- package/dist/tile-DqpbfgRL.js +2 -0
- package/dist/tile-DqpbfgRL.js.map +1 -0
- package/dist/trips-CchyX_8N.js +2 -0
- package/dist/trips-CchyX_8N.js.map +1 -0
- package/dist/useDeckOverlay-GlkH_rvP.js +2 -0
- package/dist/useDeckOverlay-GlkH_rvP.js.map +1 -0
- package/dist/useDeckOverlay-JoRzVQ7g.d.ts +43 -0
- package/dist/v-maplibre.css +2 -2
- package/dist/wind-particle-Rs67QBQ9.js +2 -0
- package/dist/wind-particle-Rs67QBQ9.js.map +1 -0
- package/dist/wind.d.ts +9 -0
- package/dist/wind.js +2 -0
- package/dist/wind.js.map +1 -0
- package/dist/wms-KlHzzqd3.js +2 -0
- package/dist/wms-KlHzzqd3.js.map +1 -0
- package/dist/zarr-Czf44Tqd.js +2 -0
- package/dist/zarr-Czf44Tqd.js.map +1 -0
- package/package.json +36 -16
- package/dist/arc-sQuzag_9.js +0 -2
- package/dist/arc-sQuzag_9.js.map +0 -1
- package/dist/bitmap-C9wTsmdA.js +0 -2
- package/dist/bitmap-C9wTsmdA.js.map +0 -1
- package/dist/cog-BC2mhbA-.js +0 -2
- package/dist/cog-BC2mhbA-.js.map +0 -1
- package/dist/column-Dai69vdE.js +0 -2
- package/dist/column-Dai69vdE.js.map +0 -1
- package/dist/contour-BVSFeMXQ.js +0 -2
- package/dist/contour-BVSFeMXQ.js.map +0 -1
- package/dist/generic-DLtJwFOg.js +0 -2
- package/dist/generic-DLtJwFOg.js.map +0 -1
- package/dist/geoarrow-path-CV0aOugP.js +0 -2
- package/dist/geoarrow-polygon-BjfqZpaf.js +0 -2
- package/dist/geoarrow-scatterplot-DxkqOIWR.js +0 -2
- package/dist/geoarrow-solid-polygon-LGavbdMg.js +0 -2
- package/dist/geoarrow-text-8HY70yYe.js +0 -2
- package/dist/geoarrow-trips-Bqc-_N6F.js +0 -2
- package/dist/geohash-Bq6Va31-.js +0 -2
- package/dist/geohash-Bq6Va31-.js.map +0 -1
- package/dist/geojson-DmmblQfq.js +0 -2
- package/dist/geojson-DmmblQfq.js.map +0 -1
- package/dist/great-circle-B3wrKr2V.js +0 -2
- package/dist/great-circle-B3wrKr2V.js.map +0 -1
- package/dist/grid-cell-CTiUtStS.js +0 -2
- package/dist/grid-cell-CTiUtStS.js.map +0 -1
- package/dist/grid-d5GMfgA7.js +0 -2
- package/dist/grid-d5GMfgA7.js.map +0 -1
- package/dist/h3-cluster-BqU_KkMN.js +0 -2
- package/dist/h3-cluster-BqU_KkMN.js.map +0 -1
- package/dist/h3-hexagon-E-7rMATA.js +0 -2
- package/dist/h3-hexagon-E-7rMATA.js.map +0 -1
- package/dist/heatmap-CToABGhe.js +0 -2
- package/dist/heatmap-CToABGhe.js.map +0 -1
- package/dist/hexagon-B7QFHPOG.js +0 -2
- package/dist/hexagon-B7QFHPOG.js.map +0 -1
- package/dist/icon-dGkYJha7.js +0 -2
- package/dist/icon-dGkYJha7.js.map +0 -1
- package/dist/line-BqRkZ9qg.js +0 -2
- package/dist/line-BqRkZ9qg.js.map +0 -1
- package/dist/mosaic-BdOpB_UM.js +0 -43
- package/dist/mosaic-BdOpB_UM.js.map +0 -1
- package/dist/multi-cog-RzUpiduc.js +0 -2
- package/dist/multi-cog-RzUpiduc.js.map +0 -1
- package/dist/mvt-DKjRIMv0.js +0 -2
- package/dist/mvt-DKjRIMv0.js.map +0 -1
- package/dist/path-QpGANcDO.js +0 -2
- package/dist/path-QpGANcDO.js.map +0 -1
- package/dist/point-cloud-CwNI1kj4.js +0 -2
- package/dist/point-cloud-CwNI1kj4.js.map +0 -1
- package/dist/polygon-CnEkEdCz.js +0 -2
- package/dist/polygon-CnEkEdCz.js.map +0 -1
- package/dist/quadkey-DqvKjWw3.js +0 -2
- package/dist/quadkey-DqvKjWw3.js.map +0 -1
- package/dist/s2-BHisRsYi.js +0 -2
- package/dist/s2-BHisRsYi.js.map +0 -1
- package/dist/scatterplot-DtFjVt95.js +0 -2
- package/dist/scatterplot-DtFjVt95.js.map +0 -1
- package/dist/scenegraph-DfsmFuLy.js +0 -2
- package/dist/scenegraph-DfsmFuLy.js.map +0 -1
- package/dist/screen-grid-C-Ge9TH9.js +0 -2
- package/dist/screen-grid-C-Ge9TH9.js.map +0 -1
- package/dist/simple-mesh-CwDv4_8p.js +0 -2
- package/dist/simple-mesh-CwDv4_8p.js.map +0 -1
- package/dist/solid-polygon-DS3vtguq.js +0 -2
- package/dist/solid-polygon-DS3vtguq.js.map +0 -1
- package/dist/starfield-DnXurhKv.js +0 -2
- package/dist/starfield-DnXurhKv.js.map +0 -1
- package/dist/symbols-CVfar3bo.js +0 -2
- package/dist/symbols-CVfar3bo.js.map +0 -1
- package/dist/terrain-Vnqb4j1R.js +0 -2
- package/dist/terrain-Vnqb4j1R.js.map +0 -1
- package/dist/text-BuHw5Jdf.js +0 -2
- package/dist/text-BuHw5Jdf.js.map +0 -1
- package/dist/tile-3d-CAbU8BnN.js +0 -2
- package/dist/tile-3d-CAbU8BnN.js.map +0 -1
- package/dist/tile-B03s67tw.js +0 -2
- package/dist/tile-B03s67tw.js.map +0 -1
- package/dist/trips-Cy2yQXp7.js +0 -2
- package/dist/trips-Cy2yQXp7.js.map +0 -1
- package/dist/wind-particle-C1OQmbu7.js +0 -2
- package/dist/wind-particle-C1OQmbu7.js.map +0 -1
- package/dist/wms-toc-Os2F.js +0 -2
- package/dist/wms-toc-Os2F.js.map +0 -1
- package/dist/zarr-CGUO8nTA.js +0 -2
- package/dist/zarr-CGUO8nTA.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./symbols-CVfar3bo.js";import{Fragment as c,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,defineAsyncComponent as m,defineComponent as h,inject as g,nextTick as _,normalizeClass as v,normalizeStyle as y,onBeforeUnmount as b,onMounted as x,onUnmounted as S,onUpdated as C,openBlock as w,provide as T,ref as E,renderList as D,renderSlot as O,shallowRef as k,toDisplayString as A,useSlots as j,watch as M,withCtx as N}from"vue";import P,{AttributionControl as F,FullscreenControl as ee,GeolocateControl as I,Map as L,Marker as R,NavigationControl as z,Popup as B,ScaleControl as V}from"maplibre-gl";import{PMTiles as H,Protocol as U}from"pmtiles";const W=h({__name:`VControlAttribution`,props:{options:{default:void 0},position:{default:`bottom-right`}},setup(e){let n={compact:!1,customAttribution:void 0},r=e,i=j(),a=t(s);x(()=>{o()});let o=()=>{let e=n;r.options&&(e={...r.options}),i&&i.default?.()&&(e.customAttribution=i.default()[0].children);let t=new F(e);a.value.addControl(t,r.position)};return(e,t)=>O(e.$slots,`default`)}}),te=h({__name:`VControlFullscreen`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let n={container:void 0},r=e,i=t(s);x(()=>{a()});let a=()=>{let e=new ee(r.options||n);i.value.addControl(e,r.position)};return()=>{}}}),G=[`geolocate`,`error`,`outofmaxbounds`,`trackuserlocationstart`,`trackuserlocationend`],ne=h({__name:`VControlGeolocate`,props:{options:{default:void 0},position:{default:`top-left`}},emits:G,setup(e,{emit:n}){let r={fitBoundsOptions:{linear:!1,offset:[0,0],maxZoom:22},positionOptions:{enableHighAccuracy:!0,maximumAge:0,timeout:6e3},trackUserLocation:!0,showAccuracyCircle:!0,showUserLocation:!0},i=e,a=n,o=t(s);x(()=>{c()});let c=()=>{let e=new I(i.options||r);o.value.addControl(e,i.position),G.forEach(t=>{e.on(t,()=>{a(t)})})};return()=>{}}}),re=h({__name:`VControlNavigation`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let t={showCompass:!0,showZoom:!0,visualizePitch:!0},n=e,r=g(s);x(()=>{i()});let i=()=>{let e=new z(n.options||t);r.value.addControl(e,n.position)};return()=>{}}}),ie=h({__name:`VControlScale`,props:{options:{default:void 0},position:{default:`bottom-left`}},setup(e){let t={maxWidth:100,unit:`metric`},n=e,r=g(s);x(()=>{i()});let i=()=>{let e=new V(n.options||t);r?.value.addControl(e,n.position)};return(e,t)=>O(e.$slots,`default`)}}),K=[`load`,`loadstart`,`loaderror`,`unload`,`statechange`,`stylechange`,`collapse`,`expand`,`streamingstart`,`streamingstop`,`streamingprogress`,`budgetreached`],ae=h({__name:`VControlLidar`,props:{options:{default:void 0},position:{default:`top-right`},defaultUrl:{default:void 0}},emits:K,setup(e,{expose:n,emit:r}){let i={collapsed:!0,pointSize:2,colorScheme:`elevation`,pickable:!1,autoZoom:!0},a=e,c=r,l=t(s),u=E(null);x(async()=>{await d()}),S(()=>{u.value&&l.value&&(l.value.removeControl(u.value),u.value=null)});let d=async()=>{let{LidarControl:e}=await o(`maplibre-gl-lidar`,()=>import(`maplibre-gl-lidar`));u.value=new e(a.options||i),l.value.addControl(u.value,a.position),K.forEach(e=>{u.value.on(e,t=>{c(e,t)})}),a.defaultUrl&&u.value.loadPointCloud(a.defaultUrl)};return n({loadPointCloud:(e,t)=>u.value?.loadPointCloud(e,t),loadPointCloudStreaming:(e,t)=>u.value?.loadPointCloudStreaming(e,t),loadPointCloudEptStreaming:(e,t)=>u.value?.loadPointCloudEptStreaming(e,t),unloadPointCloud:e=>u.value?.unloadPointCloud(e),flyToPointCloud:e=>u.value?.flyToPointCloud(e),setPointSize:e=>u.value?.setPointSize(e),setColorScheme:e=>u.value?.setColorScheme(e),setColormap:e=>u.value?.setColormap(e),getColormap:()=>u.value?.getColormap(),setColorRange:e=>u.value?.setColorRange(e),getColorRange:()=>u.value?.getColorRange(),setOpacity:e=>u.value?.setOpacity(e),setPickable:e=>u.value?.setPickable(e),setUsePercentile:e=>u.value?.setUsePercentile(e),getUsePercentile:()=>u.value?.getUsePercentile(),setElevationRange:(e,t)=>u.value?.setElevationRange(e,t),clearElevationRange:()=>u.value?.clearElevationRange(),setPointBudget:e=>u.value?.setPointBudget(e),setZOffset:e=>u.value?.setZOffset(e),setZOffsetEnabled:e=>u.value?.setZOffsetEnabled(e),getZOffset:()=>u.value?.getZOffset(),setTerrain:e=>u.value?.setTerrain(e),getTerrain:()=>u.value?.getTerrain(),setPickInfoFields:e=>u.value?.setPickInfoFields(e),getPickInfoFields:()=>u.value?.getPickInfoFields(),setClassificationVisibility:(e,t)=>u.value?.setClassificationVisibility(e,t),showAllClassifications:()=>u.value?.showAllClassifications(),hideAllClassifications:()=>u.value?.hideAllClassifications(),getHiddenClassifications:()=>u.value?.getHiddenClassifications(),getAvailableClassifications:()=>u.value?.getAvailableClassifications(),toggle:()=>u.value?.toggle(),expand:()=>u.value?.expand(),collapse:()=>u.value?.collapse(),getState:()=>u.value?.getState(),getPointClouds:()=>u.value?.getPointClouds(),stopStreaming:e=>u.value?.stopStreaming(e),isStreaming:e=>u.value?.isStreaming(e),getStreamingProgress:()=>u.value?.getStreamingProgress(),getMap:()=>u.value?.getMap(),getPanelElement:()=>u.value?.getPanelElement(),getControl:()=>u.value}),()=>{}}});function q(e,t,n){let r=null,i=!1,a=()=>{i&&t.value&&!t.value.classList.contains(`maplibregl-ctrl`)&&t.value.classList.add(`maplibregl-ctrl`)};x(()=>{!e.value||!t.value||(r={onAdd:()=>(t.value?.classList.add(`maplibregl-ctrl`),t.value),onRemove:()=>{}},e.value.addControl(r,n),i=!0)}),C(()=>{a()}),S(()=>{if(e.value&&r)try{e.value.removeControl(r)}catch{}})}const oe={class:`v-layer-control-header`},se={class:`v-layer-control-title`},ce=[`aria-pressed`,`title`],le={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},ue={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},de={class:`v-layer-control-slider-row`},fe=[`value`,`disabled`],pe={class:`v-layer-control-value`},me=h({__name:`VControlLayer`,props:{layerId:{},position:{default:`top-right`},visible:{type:Boolean,default:!0},opacity:{default:1},title:{default:`Layer Control`},layerType:{default:void 0}},emits:[`visibility-change`,`opacity-change`,`update:visible`,`update:opacity`],setup(e,{emit:n}){let r=e,i=n,o=t(s),c=g(a,null),l=E(null),u=E(r.visible),d=E(r.opacity);q(o,l,r.position);let m=()=>r.layerType?r.layerType:o.value?o.value.getLayer(r.layerId)?`maplibre`:c&&c.getLayers().find(e=>e.id===r.layerId)?`deckgl`:null:null,h=()=>{if(!o.value||m()!==`maplibre`)return null;let e=o.value.getLayer(r.layerId);if(!e)return null;switch(e.type){case`fill`:return`fill-opacity`;case`line`:return`line-opacity`;case`circle`:return`circle-opacity`;case`symbol`:return`icon-opacity`;default:return null}},_=e=>{let t=m();if(t===`maplibre`){if(!o.value)return;if(!o.value.getLayer(r.layerId)){console.warn(`MapLibre layer not found: ${r.layerId}`);return}o.value.setLayoutProperty(r.layerId,`visibility`,e?`visible`:`none`)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${r.layerId}`);return}let t=c.getLayers().find(e=>e.id===r.layerId);if(!t){console.warn(`deck.gl layer not found: ${r.layerId}`);return}if(typeof t.clone==`function`){let n=t.clone({visible:e});c.updateLayer(r.layerId,n)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${r.layerId}`);return}i(`visibility-change`,e),i(`update:visible`,e)},y=e=>{let t=m();if(t===`maplibre`){let t=h();if(!o.value||!t)return;if(!o.value.getLayer(r.layerId)){console.warn(`MapLibre layer not found: ${r.layerId}`);return}o.value.setPaintProperty(r.layerId,t,e)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${r.layerId}`);return}let t=c.getLayers().find(e=>e.id===r.layerId);if(!t){console.warn(`deck.gl layer not found: ${r.layerId}`);return}if(typeof t.clone==`function`){let n=t.clone({opacity:e});c.updateLayer(r.layerId,n)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${r.layerId}`);return}i(`opacity-change`,e),i(`update:opacity`,e)},b=()=>{u.value=!u.value},S=e=>{let t=e.target;d.value=Number(t.value)/100};return M(u,e=>{_(e)}),M(d,e=>{y(e)}),M(()=>r.visible,e=>{u.value=e}),M(()=>r.opacity,e=>{d.value=e}),x(()=>{let e=!1,t=()=>e?!0:m()?(e=!0,_(u.value),y(d.value),!0):!1;if(t())return;let n=[100,200,300,500,500,1e3,1e3,1e3,2e3,3e3],r=0,i=()=>{t()||r>=n.length||setTimeout(()=>{r++,i()},n[r])};i()}),(t,n)=>(w(),f(`div`,{ref_key:`containerRef`,ref:l,class:`v-layer-control`},[p(`div`,oe,[p(`span`,se,A(e.title),1),p(`button`,{type:`button`,class:v([`v-layer-control-toggle`,{"is-hidden":!u.value}]),"aria-pressed":u.value,title:u.value?`Hide layer`:`Show layer`,onClick:b},[u.value?(w(),f(`svg`,le,[...n[0]||(n[0]=[p(`path`,{d:`M8 3C4.5 3 1.5 5.5 0.5 8C1.5 10.5 4.5 13 8 13C11.5 13 14.5 10.5 15.5 8C14.5 5.5 11.5 3 8 3Z`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1),p(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(w(),f(`svg`,ue,[...n[1]||(n[1]=[p(`path`,{d:`M2 2L14 14M6.5 6.5C5.9 7.1 5.5 7.9 5.5 8.8C5.5 10.4 6.9 11.5 8 11.5C8.9 11.5 9.7 11.1 10.3 10.5M8 3C4.5 3 1.5 5.5 0.5 8C1 9.2 1.8 10.3 2.8 11.2M13.2 11.2C14.2 10.3 15 9.2 15.5 8C14.5 5.5 11.5 3 8 3`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])]))],10,ce)]),p(`div`,de,[p(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(d.value*100),class:`v-layer-control-slider`,disabled:!u.value,onInput:S},null,40,fe),p(`span`,pe,A(Math.round(d.value*100))+`%`,1)]),O(t.$slots,`default`)],512))}}),he={class:`v-layer-group-title`},ge={key:1,class:`v-layer-group-header is-static`},_e={class:`v-layer-group-title`},ve={key:2,class:`v-layer-group-content`},ye={class:`v-layer-group-item-header`},be={class:`v-layer-group-item-title`},xe=[`aria-pressed`,`title`,`onClick`],Se={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},Ce={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},we={class:`v-layer-group-slider-row`},Te=[`value`,`disabled`,`onInput`],Ee={class:`v-layer-group-value`},De=h({__name:`VControlLayerGroup`,props:{layers:{},position:{default:`top-right`},title:{default:`Layers`},collapsible:{type:Boolean,default:!0},collapsed:{type:Boolean,default:!1}},emits:[`visibility-change`,`opacity-change`,`update:layers`],setup(e,{emit:n}){let r=e,i=n,o=t(s),l=g(a,null),u=E(null),m=E(r.collapsed),h=E(new Map);q(o,u,r.position);let _=()=>{for(let e of r.layers)h.value.set(e.id,{visible:e.visible??!0,opacity:e.opacity??1})},y=(e,t)=>t||(o.value?o.value.getLayer(e)?`maplibre`:l&&l.getLayers().find(t=>t.id===e)?`deckgl`:null:null),b=e=>{if(!o.value)return null;let t=o.value.getLayer(e);if(!t)return null;switch(t.type){case`fill`:return`fill-opacity`;case`line`:return`line-opacity`;case`circle`:return`circle-opacity`;case`symbol`:return`icon-opacity`;case`raster`:return`raster-opacity`;default:return null}},S=(e,t,n)=>{let r=y(e,n);if(r===`maplibre`){if(!o.value)return;if(!o.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}o.value.setLayoutProperty(e,`visibility`,t?`visible`:`none`)}else if(r===`deckgl`){if(!l){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=l.getLayers().find(t=>t.id===e);if(!n){console.warn(`[VControlLayerGroup] deck.gl layer not found: ${e}`);return}if(typeof n.clone==`function`){let r=n.clone({visible:t});l.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}i(`visibility-change`,{layerId:e,visible:t})},C=(e,t,n)=>{let r=y(e,n);if(r===`maplibre`){let n=b(e);if(!o.value||!n)return;if(!o.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}o.value.setPaintProperty(e,n,t)}else if(r===`deckgl`){if(!l){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=l.getLayers().find(t=>t.id===e);if(!n){console.warn(`[VControlLayerGroup] deck.gl layer not found: ${e}`);return}if(typeof n.clone==`function`){let r=n.clone({opacity:t});l.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}i(`opacity-change`,{layerId:e,opacity:t})},T=e=>{let t=h.value.get(e.id);if(!t)return;let n=!t.visible;t.visible=n,S(e.id,n,e.type)},k=(e,t)=>{let n=t.target,r=Number(n.value)/100,i=h.value.get(e.id);i&&(i.opacity=r,C(e.id,r,e.type))},j=e=>h.value.get(e)??{visible:!0,opacity:1},N=()=>{r.collapsible&&(m.value=!m.value)};return M(()=>r.layers,()=>{_()},{deep:!0}),M(()=>r.collapsed,e=>{m.value=e}),x(()=>{_();for(let e of r.layers){let t=j(e.id);S(e.id,t.visible,e.type),C(e.id,t.opacity,e.type)}}),(t,n)=>(w(),f(`div`,{ref_key:`containerRef`,ref:u,class:v([`v-layer-group maplibregl-ctrl`,{"is-collapsed":m.value}])},[e.collapsible?(w(),f(`button`,{key:0,type:`button`,class:`v-layer-group-header`,onClick:N},[p(`span`,he,A(e.title),1),(w(),f(`svg`,{class:v([`v-layer-group-chevron`,{"is-collapsed":m.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...n[0]||(n[0]=[p(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))])):(w(),f(`div`,ge,[p(`span`,_e,A(e.title),1)])),m.value?d(`v-if`,!0):(w(),f(`div`,ve,[(w(!0),f(c,null,D(e.layers,e=>(w(),f(`div`,{key:e.id,class:`v-layer-group-item`},[p(`div`,ye,[p(`span`,be,A(e.title),1),p(`button`,{type:`button`,class:v([`v-layer-group-toggle`,{"is-hidden":!j(e.id).visible}]),"aria-pressed":j(e.id).visible,title:j(e.id).visible?`Hide layer`:`Show layer`,onClick:t=>T(e)},[j(e.id).visible?(w(),f(`svg`,Se,[...n[1]||(n[1]=[p(`path`,{d:`M8 3C4.5 3 1.5 5.5 0.5 8C1.5 10.5 4.5 13 8 13C11.5 13 14.5 10.5 15.5 8C14.5 5.5 11.5 3 8 3Z`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1),p(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(w(),f(`svg`,Ce,[...n[2]||(n[2]=[p(`path`,{d:`M2 2L14 14M6.5 6.5C5.9 7.1 5.5 7.9 5.5 8.8C5.5 10.4 6.9 11.5 8 11.5C8.9 11.5 9.7 11.1 10.3 10.5M8 3C4.5 3 1.5 5.5 0.5 8C1 9.2 1.8 10.3 2.8 11.2M13.2 11.2C14.2 10.3 15 9.2 15.5 8C14.5 5.5 11.5 3 8 3`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])]))],10,xe)]),p(`div`,we,[p(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(j(e.id).opacity*100),class:`v-layer-group-slider`,disabled:!j(e.id).visible,onInput:t=>k(e,t)},null,40,Te),p(`span`,Ee,A(Math.round(j(e.id).opacity*100))+`%`,1)])]))),128))])),O(t.$slots,`default`)],2))}}),Oe={class:`v-legend-control-title`},ke={key:0,class:`v-legend-control-content`},Ae=[`disabled`,`onClick`],je={class:`v-legend-control-label`},Me={key:0,class:`v-legend-control-count`},Ne={class:`v-legend-control-gradient-labels`},Pe={class:`v-legend-control-size-circle-wrap`},Fe={class:`v-legend-control-label`},Ie={key:3,class:`v-legend-control-table`},Le=[`title`],Re={class:`v-legend-control-table-label`},ze={class:`v-legend-control-table-value`},Be=h({__name:`VControlLegend`,props:{layerIds:{},type:{default:`category`},items:{},position:{default:`top-right`},property:{},autoGenerate:{type:Boolean,default:!1},title:{default:`Legend`},collapsed:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0}},emits:[`item-click`,`filter-change`,`update:filter`],setup(e,{emit:n}){let r=e,i=n,o=t(s),u=g(a,null),m=E(null),h=E(r.collapsed),_=E(new Map),b=E([]);q(o,m,r.position);let S=e=>{let t=[],n=e[e.length-1];for(let n=2;n<e.length-1;n+=2){let r=e[n],i=e[n+1];if(Array.isArray(r))for(let e of r)t.push({value:e,label:String(e),color:i,visible:!0});else t.push({value:r,label:String(r),color:i,visible:!0})}return t.length>0&&n&&typeof n==`string`&&t.push({value:`__default__`,label:`Other`,color:n,visible:!0}),t},C=e=>{let t=[],n=[],r=e[2];t.push(r);for(let r=3;r<e.length;r+=2){let i=e[r],a=e[r+1];n.push(i),t.push(a)}return n.length===0?null:{min:n[0],max:n[n.length-1],colors:t,stops:n}},T=e=>{let t=[],n=[];e[1]&&Array.isArray(e[1]);for(let r=3;r<e.length;r+=2){let i=e[r],a=e[r+1];n.push(i),t.push(a)}return n.length<2?null:{min:n[0],max:n[n.length-1],colors:t,stops:n}},k=()=>{if(!r.autoGenerate||!r.property||!o.value)return[];let e=r.layerIds[0];if(!e)return[];if(!o.value.getLayer(e))return console.warn(`[VControlLegend] Layer not found: ${e}`),[];let t=o.value.getPaintProperty(e,r.property);if(!t||!Array.isArray(t))return console.warn(`[VControlLegend] Paint property "${r.property}" not found or not an expression`),[];let n=t[0];if(n===`match`)return S(t);if(n===`step`){let e=C(t);return e?[e]:[]}if(n===`interpolate`||n===`interpolate-hcl`||n===`interpolate-lab`){let e=T(t);return e?[e]:[]}return console.warn(`[VControlLegend] Unsupported expression type: ${n}`),[]},j=l(()=>r.items&&r.items.length>0?r.items:b.value),N=l(()=>r.type===`category`?j.value.filter(e=>`value`in e&&`color`in e&&`label`in e):[]),P=l(()=>{if(r.type!==`gradient`)return null;let e=j.value;if(e.length===0)return null;let t=e[0];return`min`in t&&`max`in t&&`colors`in t?t:null}),F=l(()=>r.type===`size`?j.value.filter(e=>`size`in e&&`value`in e):[]),ee=l(()=>r.type===`table`?j.value.filter(e=>`label`in e&&`color`in e&&`value`in e&&!(`size`in e)&&!(`visible`in e)).sort((e,t)=>t.value-e.value):[]),I=e=>e.formattedValue?e.formattedValue:`${e.value}${e.unit??``}`,L=l(()=>({visibleValues:Array.from(_.value.entries()).filter(([,e])=>e).map(([e])=>e)})),R=l(()=>P.value?`linear-gradient(to right, ${P.value.colors.join(`, `)})`:``),z=()=>{if(r.type===`category`)for(let e of N.value)_.value.set(e.value,e.visible??!0)},B=()=>{if(!o.value||!r.property||r.type!==`category`)return;let e=L.value.visibleValues.filter(e=>e!==`__default__`),t=N.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length;for(let t of r.layerIds)if(o.value.getLayer(t))if(n)o.value.setFilter(t,null);else if(e.length===0)o.value.setFilter(t,[`==`,[`get`,`_never_match_`],!0]);else{let n=o.value.getPaintProperty(t,r.property);if(!n||!Array.isArray(n))continue;let i=n[1],a=null;Array.isArray(i)&&i[0]===`get`&&(a=i[1]),a&&o.value.setFilter(t,[`in`,[`get`,a],[`literal`,e]])}},V=()=>{if(!u||r.type!==`category`)return;let e=L.value.visibleValues.filter(e=>e!==`__default__`),t=N.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length,i=u.getLayers();for(let t of r.layerIds){if(o.value?.getLayer(t))continue;let r=i.find(e=>e.id===t);if(r){if(!r.props?.extensions?.some(e=>e?.constructor?.name===`DataFilterExtension`)){console.warn(`[VControlLegend] deck.gl layer "${t}" requires DataFilterExtension for filtering. Add DataFilterExtension to layer extensions and configure getFilterValue accessor.`);continue}if(typeof r.clone==`function`)if(n){let e=r.clone({filterRange:[-1/0,1/0]});u.updateLayer(t,e)}else if(e.length===0){let e=r.clone({filterRange:[1/0,1/0]});u.updateLayer(t,e)}else{let n=e.map(e=>N.value.findIndex(t=>t.value===e)).filter(e=>e>=0);if(n.length>0){let e=Math.min(...n),i=Math.max(...n),a=r.clone({filterRange:[e-.5,i+.5]});u.updateLayer(t,a)}}}}},H=(e,t)=>{if(!r.interactive)return;let n=!(_.value.get(e.value)??!0);_.value.set(e.value,n),B(),V(),i(`item-click`,{item:e,index:t,visible:n}),i(`filter-change`,{filter:L.value,layerIds:r.layerIds}),i(`update:filter`,L.value)},U=e=>_.value.get(e.value)??!0,W=()=>{h.value=!h.value};return M(()=>r.items,()=>{z()},{deep:!0}),M(()=>r.collapsed,e=>{h.value=e}),x(()=>{r.autoGenerate&&(b.value=k()),z()}),(t,n)=>(w(),f(`div`,{ref_key:`containerRef`,ref:m,class:v([`v-legend-control`,{"is-collapsed":h.value}])},[p(`button`,{type:`button`,class:`v-legend-control-header`,onClick:W},[p(`span`,Oe,A(e.title),1),(w(),f(`svg`,{class:v([`v-legend-control-chevron`,{"is-collapsed":h.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...n[0]||(n[0]=[p(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))]),h.value?d(`v-if`,!0):(w(),f(`div`,ke,[e.type===`category`?(w(!0),f(c,{key:0},D(N.value,(t,n)=>(w(),f(`button`,{key:t.value,type:`button`,class:v([`v-legend-control-item`,{"is-interactive":e.interactive,"is-hidden":!U(t)}]),disabled:!e.interactive,onClick:e=>H(t,n)},[p(`span`,{class:`v-legend-control-swatch`,style:y({backgroundColor:t.color})},null,4),p(`span`,je,A(t.label),1),t.count===void 0?d(`v-if`,!0):(w(),f(`span`,Me,A(t.count),1))],10,Ae))),128)):e.type===`gradient`&&P.value?(w(),f(c,{key:1},[p(`div`,{class:`v-legend-control-gradient`,style:y({background:R.value})},null,4),p(`div`,Ne,[p(`span`,null,A(P.value.minLabel??P.value.min),1),p(`span`,null,A(P.value.maxLabel??P.value.max),1)])],64)):e.type===`size`?(w(!0),f(c,{key:2},D(F.value,e=>(w(),f(`div`,{key:e.value,class:`v-legend-control-size-item`},[p(`div`,Pe,[p(`div`,{class:`v-legend-control-size-circle`,style:y({width:`${Math.min(e.size,20)}px`,height:`${Math.min(e.size,20)}px`})},null,4)]),p(`span`,Fe,A(e.label),1)]))),128)):e.type===`table`?(w(),f(`div`,Ie,[(w(!0),f(c,null,D(ee.value,e=>(w(),f(`div`,{key:e.label,class:`v-legend-control-table-row`,title:e.description},[p(`span`,{class:`v-legend-control-swatch`,style:y({backgroundColor:e.color})},null,4),p(`span`,Re,A(e.label),1),p(`span`,ze,A(I(e)),1)],8,Le))),128))])):d(`v-if`,!0)])),O(t.$slots,`default`)],2))}}),Ve=h({__name:`VLayerMaplibreCanvas`,props:{source:{},layer:{},sourceId:{default:`maplibre.gl-canvas-source`},layerId:{default:`maplibre.gl-canvas-layer`},before:{default:``}},setup(e){let n=e,r=t(s),i=E(!1),a=()=>r.value||null,o=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?i.value=!0:(i.value=!1,setTimeout(t,200))};t()})},c=()=>{let e=a();if(e)try{if(e.getSource(n.sourceId)||e.addSource(n.sourceId,n.source),!e.getLayer(n.layerId)){let t={...n.layer,id:n.layerId,source:n.sourceId};e.addLayer(t,n.before)}}catch(e){console.error(`Error adding Canvas layer:`,e)}};return M(()=>n.source,()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId),e.addSource(n.sourceId,n.source);let t={...n.layer,id:n.layerId,source:n.sourceId};e.addLayer(t,n.before)}catch(e){console.error(`Error updating Canvas source:`,e)}},{deep:!0}),M(()=>n.layer,()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&(Object.entries(n.layer.paint||{}).forEach(([t,r])=>{e.setPaintProperty(n.layerId,t,r)}),Object.entries(n.layer.layout||{}).forEach(([t,r])=>{e.setLayoutProperty(n.layerId,t,r)}))}catch(e){console.error(`Error updating Canvas layer:`,e)}},{deep:!0}),M(r,e=>{e&&o(e)},{immediate:!0}),M(i,e=>{e&&c()}),x(()=>{a()?.isStyleLoaded()&&c()}),b(()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId)}catch(e){console.error(`Error cleaning up Canvas layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),He=h({__name:`VLayerMaplibreGeojson`,props:{sourceId:{default:`maplibre-gl-geojson-source`},layerId:{default:`maplibre-gl-geojson-layer`},source:{},layer:{},before:{default:``}},emits:[`on-click`],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=E(!1),c=e=>!e||typeof e==`string`?!1:e&&typeof e==`object`&&`type`in e?e.type===`FeatureCollection`&&`features`in e?e.features.length>0:e.type===`Feature`||e.type===`Point`||e.type===`LineString`||e.type===`Polygon`||e.type===`MultiPoint`||e.type===`MultiLineString`||e.type===`MultiPolygon`:!1,l=()=>a.value||null,u=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},d=()=>{let e=l();if(!(!e||!e.isStyleLoaded())){if(!c(r.source.data)){console.log(`[${r.layerId}] Waiting for valid data before adding layer`);return}try{if(e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),!e.getLayer(r.layerId)){let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}}catch(e){console.error(`Error adding GeoJSON layer:`,e)}}},f=()=>{let e=l();if(e)try{let t=e.getSource(r.sourceId);if(t&&`setData`in t){let n=e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===r.sourceId);(n.length===0||n[0]?.id===r.layerId)&&t.setData(r.source.data)}else t||d()}catch(e){console.error(`Error updating GeoJSON source:`,e)}},p=()=>{let e=l();if(e)try{e.getLayer(r.layerId)?(Object.entries(r.layer.paint||{}).forEach(([t,n])=>{e.setPaintProperty(r.layerId,t,n)}),Object.entries(r.layer.layout||{}).forEach(([t,n])=>{e.setLayoutProperty(r.layerId,t,n)})):d()}catch(e){console.error(`Error updating GeoJSON layer:`,e)}},m=e=>{if(e)try{e.on(`click`,r.layerId,e=>{e.features&&e.features.length>0&&i(`on-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`mouseenter`,r.layerId,()=>{e.getCanvas().style.cursor=`pointer`}),e.on(`mouseleave`,r.layerId,()=>{e.getCanvas().style.cursor=``})}catch(e){console.error(`Error in setupLayerEvents:`,e)}},h=E(!1),g=async()=>{if(h.value)return;let e=l();!e||!e.isStyleLoaded()||c(r.source.data)&&(await _(),!h.value&&e.isStyleLoaded()&&(d(),m(e),h.value=!0))};return M(o,e=>{e&&g()}),M(a,e=>{e&&(u(e),e.isStyleLoaded()&&(o.value=!0,g()))},{immediate:!0}),M(()=>r.source,(e,t)=>{if(c(e?.data)&&JSON.stringify(e.data)!==JSON.stringify(t?.data)){let e=l();e?.isStyleLoaded()&&(e.getSource(r.sourceId)?f():(d(),h.value||(m(e),h.value=!0)))}},{deep:!0}),M(()=>r.layer,p,{deep:!0}),M(()=>r.layer.layout?.visibility,e=>{let t=l();if(!t||!t.isStyleLoaded())return;let n=t.getLayer(r.layerId);if(!n&&e===`visible`)c(r.source.data)&&d();else if(n)try{t.setLayoutProperty(r.layerId,`visibility`,e)}catch(e){console.error(`Error updating visibility for ${r.layerId}:`,e)}},{immediate:!0}),x(()=>{_(()=>{g()})}),b(()=>{let e=l();if(e)try{e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===r.sourceId).length===0&&e.getSource(r.sourceId)&&e.removeSource(r.sourceId)}catch(e){console.error(`Error cleaning up GeoJSON layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Ue=h({__name:`VLayerMaplibreImage`,props:{sourceId:{type:String,default:`maplibre.gl-image-source`,required:!0},layerId:{type:String,default:`maplibre.gl-image-layer`,required:!0},source:{type:Object,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(e){let n=e,r=t(s),i=E(!1),a=()=>r.value||null,o=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?i.value=!0:(i.value=!1,setTimeout(t,200))};t()})},c=()=>{let e=a();if(e)try{if(e.getSource(n.sourceId)||e.addSource(n.sourceId,n.source),!e.getLayer(n.layerId)){let t={...n.layer,id:n.layerId,source:n.sourceId};e.addLayer(t,n.before)}}catch(e){console.error(`Error adding Image layer:`,e)}};return M(()=>n.source,()=>{let e=a();if(e)try{let t=e.getSource(n.sourceId);if(t)if(t.updateImage)t.updateImage({url:n.source.url,coordinates:n.source.coordinates});else{e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId),e.addSource(n.sourceId,n.source);let t={...n.layer,id:n.layerId,source:n.sourceId};e.addLayer(t,n.before)}}catch(e){console.error(`Error updating Image source:`,e)}},{deep:!0}),M(()=>n.layer,()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&(Object.entries(n.layer.paint||{}).forEach(([t,r])=>{e.setPaintProperty(n.layerId,t,r)}),Object.entries(n.layer.layout||{}).forEach(([t,r])=>{e.setLayoutProperty(n.layerId,t,r)}))}catch(e){console.error(`Error updating Image layer:`,e)}},{deep:!0}),M(r,e=>{e&&o(e)},{immediate:!0}),M(i,e=>{e&&c()}),x(()=>{a()?.isStyleLoaded()&&c()}),b(()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId)}catch(e){console.error(`Error cleaning up Image layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),J=h({__name:`VLayerMaplibreRaster`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},setup(e){let n=e,r=t(s),i=E(!1),a=()=>r.value||null,o=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?i.value=!0:(i.value=!1,setTimeout(t,200))};t()})},c=()=>{let e=a();if(e)try{e.getSource(n.sourceId)||e.addSource(n.sourceId,n.source),e.getLayer(n.layerId)||(e.addLayer(n.layer,n.before),n.layer.layout?.visibility&&e.setLayoutProperty(n.layerId,`visibility`,n.layer.layout.visibility))}catch(e){console.error(`[${n.layerId}] Error setting up layer:`,e)}},l=()=>{let e=a();if(e)try{let t=n.before;e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.removeSource(n.sourceId),e.addSource(n.sourceId,n.source);let r={...n.layer,id:n.layerId,type:`raster`,source:n.sourceId};t&&e.getLayer(t)?e.addLayer(r,t):e.addLayer(r)}catch(e){console.error(`Error updating Raster source:`,e)}};return M(()=>n.source.tiles?.[0],(e,t)=>{e!==t&&l()}),M(()=>n.layer,()=>{let e=a();if(e)try{if(e.getLayer(n.layerId)){let t=n.layer.paint||{};Object.entries(t).forEach(([t,r])=>{e.setPaintProperty(n.layerId,t,r)});let r=n.layer.layout||{};Object.entries(r).forEach(([t,r])=>{e.setLayoutProperty(n.layerId,t,r)})}}catch(e){console.error(`Error updating Raster layer:`,e)}},{deep:!0}),M(r,e=>{e&&o(e)},{immediate:!0}),M(i,e=>{e&&c()}),M(()=>n.layer.layout?.visibility,e=>{let t=a();if(t)if(t.getLayer(n.layerId))try{t.setLayoutProperty(n.layerId,`visibility`,e),e===`visible`&&n.before&&t.moveLayer(n.layerId,n.before)}catch(e){console.error(`[${n.layerId}] Error updating visibility:`,e)}else try{t.addLayer(n.layer,n.before)}catch(e){console.error(`[${n.layerId}] Error adding layer:`,e)}},{immediate:!0}),M(()=>n.before,e=>{let t=a();if(!(!t||!t.getLayer(n.layerId))&&n.layer.layout?.visibility===`visible`)try{console.log(`[${n.layerId}] Moving layer before:`,e),t.moveLayer(n.layerId,e)}catch(e){console.error(`[${n.layerId}] Error moving layer:`,e)}}),x(()=>{if(a())try{c()}catch(e){console.error(`[${n.layerId}] Error setting up layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Y=[`click`,`dblclick`,`mousedown`,`mouseup`,`mousemove`,`mouseenter`,`mouseleave`,`mouseover`,`mouseout`,`contextmenu`,`touchstart`,`touchend`,`touchcancel`],X=`error.load.idle.remove.render.resize.webglcontextlost.webglcontextrestored.dataloading.data.tiledataloading.sourcedataloading.styledataloading.sourcedata.styledata.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`.split(`.`),Z=[`dragstart`,`drag`,`dragend`],Q=[`click`,`mouseenter`,`mouseleave`],$=[`open`,`close`],We=h({__name:`VLayerMaplibreVector`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},emits:[...Y],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=E(!1),c=()=>a.value||null,l=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},u=()=>{let e=c();if(e)try{e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),e.getLayer(r.layerId)||(r.layer.layout?.visibility===`visible`?e.addLayer(r.layer,r.before):e.addLayer(r.layer))}catch(e){console.error(`[${r.layerId}] Error setting up layer:`,e)}},d=()=>{let e=c();if(e)try{let t=e.getSource(r.sourceId);if(t&&JSON.stringify(t.serialize())!==JSON.stringify(r.source)){e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.removeSource(r.sourceId),e.addSource(r.sourceId,r.source);let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}}catch(e){console.error(`Error updating vector source:`,e)}},f=()=>{let e=c();if(e)try{if(e.getLayer(r.layerId)){let t=e.getLayer(r.layerId),n=t?.paint||{},i=t?.layout||{};Object.entries(r.layer.paint||{}).forEach(([t,i])=>{JSON.stringify(n[t])!==JSON.stringify(i)&&e.setPaintProperty(r.layerId,t,i)}),Object.entries(r.layer.layout||{}).forEach(([t,n])=>{JSON.stringify(i[t])!==JSON.stringify(n)&&e.setLayoutProperty(r.layerId,t,n)})}}catch(e){console.error(`Error updating vector layer:`,e)}},p=e=>{if(e)try{Y.forEach(t=>{e.on(t,r.layerId,n=>{t===`mousemove`&&(e.getCanvas().style.cursor=`pointer`),t===`mouseleave`&&(e.getCanvas().style.cursor=``),i(t,n)})})}catch(e){console.error(`Error setting up layer events:`,e)}};return M(a,(e,t)=>{e&&e!==t&&l(e)},{immediate:!0}),M(o,e=>{if(e){let e=c();if(!e)return;u(),p(e)}}),M(()=>JSON.stringify(r.source.tiles),(e,t)=>{e!==t&&d()}),M(()=>({paint:r.layer.paint,layout:r.layer.layout?{...r.layer.layout,visibility:void 0}:void 0}),(e,t)=>{JSON.stringify(e)!==JSON.stringify(t)&&f()},{deep:!0}),M(()=>r.layer.layout?.visibility,e=>{let t=c();if(t)if(t.getLayer(r.layerId))try{t.setLayoutProperty(r.layerId,`visibility`,e),e===`visible`&&r.before&&setTimeout(()=>{t.moveLayer(r.layerId,r.before)},0)}catch(e){console.error(`[${r.layerId}] Error updating visibility:`,e)}else try{t.getSource(r.sourceId)||t.addSource(r.sourceId,r.source),t.addLayer(r.layer,r.before)}catch(e){console.error(`[${r.layerId}] Error adding layer:`,e)}},{immediate:!0}),M(()=>r.before,e=>{let t=c();if(!(!t||!t.getLayer(r.layerId))&&r.layer.layout?.visibility===`visible`)try{t.moveLayer(r.layerId,e)}catch(e){console.error(`Error reordering vector layer ${r.layerId}:`,e)}}),M(()=>r.layer.layout?.visibility,e=>{let t=c();if(t)if(t.getLayer(r.layerId))try{t.setLayoutProperty(r.layerId,`visibility`,e)}catch(e){console.error(`[${r.layerId}] Error updating visibility:`,e)}else try{t.getSource(r.sourceId)||t.addSource(r.sourceId,r.source),t.addLayer(r.layer,r.before)}catch(e){console.error(`[${r.layerId}] Error adding layer:`,e)}},{immediate:!0}),x(()=>{if(c())try{u()}catch(e){console.error(`[${r.layerId}] Error setting up layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Ge=h({__name:`VLayerMaplibreVideo`,props:{sourceId:{type:String,default:`maplibre.gl-video-source`,required:!0},layerId:{type:String,default:`maplibre.gl-video-layer`,required:!0},source:{type:Object,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(e){let n=e,r=t(s),i=E(!1),a=()=>r.value||null,o=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?i.value=!0:(i.value=!1,setTimeout(t,200))};t()})},c=()=>{let e=a();if(e)try{if(e.getSource(n.sourceId)||e.addSource(n.sourceId,n.source),!e.getLayer(n.layerId)){let t={...n.layer,id:n.layerId,source:n.sourceId};e.addLayer(t,n.before)}}catch(e){console.error(`Error adding Video layer:`,e)}};return M(()=>n.source,()=>{let e=a();if(e)try{let t=e.getSource(n.sourceId);if(t){e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId),e.addSource(n.sourceId,n.source);let r={...n.layer,id:n.layerId,source:n.sourceId};if(e.addLayer(r,n.before),t.getVideo){let e=t.getVideo();e&&e.play().catch(e=>{console.error(`Error playing video:`,e)})}}}catch(e){console.error(`Error updating Video source:`,e)}},{deep:!0}),M(()=>n.layer,()=>{let e=a();if(e)try{e.getLayer(n.layerId)&&(Object.entries(n.layer.paint||{}).forEach(([t,r])=>{e.setPaintProperty(n.layerId,t,r)}),Object.entries(n.layer.layout||{}).forEach(([t,r])=>{e.setLayoutProperty(n.layerId,t,r)}))}catch(e){console.error(`Error updating Video layer:`,e)}},{deep:!0}),M(r,e=>{e&&o(e)},{immediate:!0}),M(i,e=>{e&&c()}),x(()=>{a()?.isStyleLoaded()&&c()}),b(()=>{let e=a();if(e)try{let t=e.getSource(n.sourceId);if(t?.getVideo){let e=t.getVideo();e&&(e.pause(),e.remove())}e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getSource(n.sourceId)&&e.removeSource(n.sourceId)}catch(e){console.error(`Error cleaning up Video layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Ke=h({__name:`VLayerMaplibrePmtile`,props:{sourceId:{type:String,default:`maplibre.gl-pmtile-source`,required:!0},layerId:{type:String,default:`maplibre.gl-pmtile-layer`,required:!0},url:{type:String,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(e){let t=e,n=g(r);if(!n)throw Error(`Protocol not provided`);let i=E({type:`raster`,url:`pmtiles://${t.url}`,tileSize:512,volatile:!0});return x(async()=>{let e=new H(t.url);n.add(e)}),(t,n)=>(w(),u(J,{"source-id":e.sourceId,"layer-id":e.layerId,source:i.value,layer:{...e.layer,type:`raster`},before:e.before},null,8,[`source-id`,`layer-id`,`source`,`layer`,`before`]))}}),qe=h({__name:`VLayerMaplibreCluster`,props:{sourceId:{default:`cluster-source`},baseLayerId:{default:`cluster`},source:{},visibility:{type:Boolean,default:!0},clusterPaint:{default:()=>({colors:[`#51bbd6`,`#f1f075`,`#f28cb1`],radii:[20,30,40],breakpoints:[100,750]})},unclusteredPaint:{default:()=>({color:`#51bbd6`,radius:6})},textPaint:{default:()=>({color:`#ffffff`,font:[`DIN Offc Pro Medium`,`Arial Unicode MS Bold`],size:12})}},emits:[`cluster-click`,`point-click`],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=E(!1),c=l(()=>`${r.baseLayerId}-clusters`),u=l(()=>`${r.baseLayerId}-cluster-count`),d=l(()=>`${r.baseLayerId}-unclustered-point`),f=()=>a.value||null,p=e=>typeof e==`string`?!1:e&&typeof e==`object`&&`type`in e&&e.type===`FeatureCollection`&&`features`in e?e.features.length>0:!1,m=()=>{let e=f();if(!(!e||!e.isStyleLoaded()))try{if(!e.getSource(r.sourceId))console.log(`Adding clustered source: ${r.sourceId}`),e.addSource(r.sourceId,{...r.source,cluster:!0,clusterMaxZoom:14,clusterRadius:50});else{let t=e.getSource(r.sourceId);t&&`setData`in t&&t.setData(r.source.data)}e.getLayer(c.value)||(console.log(`Adding clusters layer: ${c.value}`),e.addLayer({id:c.value,type:`circle`,source:r.sourceId,filter:[`has`,`point_count`],paint:{"circle-color":[`step`,[`get`,`point_count`],r.clusterPaint.colors[0],r.clusterPaint.breakpoints[0],r.clusterPaint.colors[1],r.clusterPaint.breakpoints[1],r.clusterPaint.colors[2]],"circle-radius":[`step`,[`get`,`point_count`],r.clusterPaint.radii[0],r.clusterPaint.breakpoints[0],r.clusterPaint.radii[1],r.clusterPaint.breakpoints[1],r.clusterPaint.radii[2]],"circle-stroke-width":2,"circle-stroke-color":`#ffffff`,"circle-opacity":.9},layout:{visibility:r.visibility?`visible`:`none`}})),e.getLayer(u.value)||(console.log(`Adding cluster count layer: ${u.value}`),e.addLayer({id:u.value,type:`symbol`,source:r.sourceId,filter:[`has`,`point_count`],layout:{"text-field":`{point_count_abbreviated}`,"text-font":r.textPaint.font,"text-size":r.textPaint.size,visibility:r.visibility?`visible`:`none`},paint:{"text-color":r.textPaint.color}})),e.getLayer(d.value)||(console.log(`Adding unclustered points layer: ${d.value}`),e.addLayer({id:d.value,type:`circle`,source:r.sourceId,filter:[`!`,[`has`,`point_count`]],paint:{"circle-color":r.unclusteredPaint.color,"circle-radius":r.unclusteredPaint.radius,"circle-stroke-width":2,"circle-stroke-color":`#ffffff`,"circle-opacity":.95},layout:{visibility:r.visibility?`visible`:`none`}})),console.log(`All cluster layers added for ${r.baseLayerId}`),_(e)}catch(e){console.error(`Error adding cluster layers:`,e)}},h=()=>{let e=f();if(e)try{let t=e.getSource(r.sourceId);t&&`setData`in t?(console.log(`Updating source ${r.sourceId} with data`),t.setData(r.source.data),setTimeout(()=>{m()},100)):t||m()}catch(e){console.error(`Error updating source:`,e)}},g=e=>{let t=f();if(!t)return;let n=e?`visible`:`none`;[c.value,u.value,d.value].forEach(e=>{t.getLayer(e)&&t.setLayoutProperty(e,`visibility`,n)})},_=e=>{if(e)try{e.on(`click`,c.value,e=>{e.features&&e.features.length>0&&i(`cluster-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`click`,d.value,e=>{e.features&&e.features.length>0&&i(`point-click`,{features:e.features,coordinates:e.lngLat})}),[c.value,d.value].forEach(t=>{e.on(`mouseenter`,t,()=>{e.getCanvas().style.cursor=`pointer`}),e.on(`mouseleave`,t,()=>{e.getCanvas().style.cursor=``})})}catch(e){console.error(`Error setting up layer events:`,e)}},v=e=>{e&&(e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?(o.value=!0,p(r.source.data)&&m()):(o.value=!1,setTimeout(t,200))};t()}),e.isStyleLoaded()&&(o.value=!0,p(r.source.data)&&m()))};return M(()=>r.source.data,e=>{if(p(e)){let e=f();e?.isStyleLoaded()&&(e.getSource(r.sourceId)?h():m())}},{deep:!0,immediate:!0}),M(()=>r.visibility,g),M(a,e=>{e&&v(e)},{immediate:!0}),x(()=>{f()?.isStyleLoaded()&&p(r.source.data)&&m()}),b(()=>{let e=f();if(e)try{[c.value,d.value].forEach(t=>{e.off(`click`,t,()=>{}),e.off(`mouseenter`,t,()=>{}),e.off(`mouseleave`,t,()=>{})}),[c.value,u.value,d.value].forEach(t=>{e.getLayer(t)&&e.removeLayer(t)}),e.getSource(r.sourceId)&&e.removeSource(r.sourceId)}catch(e){console.error(`Error cleaning up cluster layers:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Je=h({__name:`VLayerMaplibreRoute`,props:{id:{default:()=>`route-${Math.random().toString(36).slice(2,9)}`},coordinates:{},color:{default:`#4285F4`},width:{default:4},opacity:{default:1},lineCap:{default:`round`},lineJoin:{default:`round`},visible:{type:Boolean,default:!0},interactive:{type:Boolean,default:!0},before:{default:``},dashArray:{},blur:{default:0}},emits:[`click`,`mouseenter`,`mouseleave`],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=E(!1),c=l(()=>`${r.id}-source`),u=l(()=>`${r.id}-layer`),d=l(()=>({type:`FeatureCollection`,features:r.coordinates.length>=2?[{type:`Feature`,properties:{},geometry:{type:`LineString`,coordinates:r.coordinates}}]:[]})),f=()=>a.value||null,p=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},m=()=>{let e=f();if(!(!e||!e.isStyleLoaded())&&!(r.coordinates.length<2))try{if(e.getSource(c.value)||e.addSource(c.value,{type:`geojson`,data:d.value}),!e.getLayer(u.value)){let t={id:u.value,type:`line`,source:c.value,layout:{"line-cap":r.lineCap,"line-join":r.lineJoin,visibility:r.visible?`visible`:`none`},paint:{"line-color":r.color,"line-width":r.width,"line-opacity":r.opacity,...r.blur>0&&{"line-blur":r.blur},...r.dashArray&&{"line-dasharray":r.dashArray}}};e.addLayer(t,r.before||void 0)}}catch(e){console.error(`Error adding route layer:`,e)}},h=()=>{let e=f();if(e)try{let t=e.getSource(c.value);t&&`setData`in t?t.setData(d.value):!t&&r.coordinates.length>=2&&m()}catch(e){console.error(`Error updating route source:`,e)}},g=()=>{let e=f();if(!(!e||!e.getLayer(u.value)))try{e.setPaintProperty(u.value,`line-color`,r.color),e.setPaintProperty(u.value,`line-width`,r.width),e.setPaintProperty(u.value,`line-opacity`,r.opacity),r.blur>0&&e.setPaintProperty(u.value,`line-blur`,r.blur),r.dashArray&&e.setPaintProperty(u.value,`line-dasharray`,r.dashArray),e.setLayoutProperty(u.value,`line-cap`,r.lineCap),e.setLayoutProperty(u.value,`line-join`,r.lineJoin),e.setLayoutProperty(u.value,`visibility`,r.visible?`visible`:`none`)}catch(e){console.error(`Error updating route layer style:`,e)}},_=e=>{if(!(!e||!r.interactive))try{e.on(`click`,u.value,e=>{i(`click`,{coordinates:e.lngLat})}),e.on(`mouseenter`,u.value,()=>{e.getCanvas().style.cursor=`pointer`,i(`mouseenter`)}),e.on(`mouseleave`,u.value,()=>{e.getCanvas().style.cursor=``,i(`mouseleave`)})}catch(e){console.error(`Error setting up route layer events:`,e)}};return M(()=>r.coordinates,()=>{let e=f();e?.isStyleLoaded()&&(e.getSource(c.value)?h():m())},{deep:!0}),M(()=>[r.color,r.width,r.opacity,r.lineCap,r.lineJoin,r.visible,r.blur,r.dashArray],()=>g(),{deep:!0}),M(a,e=>{e&&(p(e),e.isStyleLoaded()&&(o.value=!0))},{immediate:!0}),M(o,e=>{if(e&&r.coordinates.length>=2){let e=f();e&&(m(),_(e))}}),x(()=>{try{let e=f();e?.isStyleLoaded()&&r.coordinates.length>=2&&(m(),_(e))}catch(e){console.error(`Error mounting route layer:`,e)}}),b(()=>{let e=f();if(e)try{e.getLayer(u.value)&&e.removeLayer(u.value),e.getSource(c.value)&&e.removeSource(c.value)}catch(e){console.error(`Error cleaning up route layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Ye=h({__name:`VLayerMaplibreIsochrone`,props:{id:{default:()=>`isochrone-${Math.random().toString(36).slice(2,9)}`},data:{},fillOpacity:{default:.4},lineWidth:{default:2},lineOpacity:{default:.8},visible:{type:Boolean,default:!0},interactive:{type:Boolean,default:!0},before:{default:``},reverseOrder:{type:Boolean,default:!0}},emits:[`click`,`mouseenter`,`mouseleave`],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=E(!1),c=E(!1),u=l(()=>`${r.id}-source`),d=l(()=>`${r.id}-fill`),f=l(()=>`${r.id}-line`),p=l(()=>!r.data||!r.data.features||r.data.features.length===0?null:{type:`FeatureCollection`,features:(r.reverseOrder?[...r.data.features].reverse():r.data.features).map(e=>({...e,properties:{...e.properties,fillColor:e.properties.color.startsWith(`#`)?e.properties.color:`#${e.properties.color}`}}))}),m=()=>a.value||null,h=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},g=()=>{let e=m();if(!e||!e.isStyleLoaded())return;let t=p.value;if(t)try{if(e.getSource(u.value)||e.addSource(u.value,{type:`geojson`,data:t}),!e.getLayer(d.value)){let t={id:d.value,type:`fill`,source:u.value,layout:{visibility:r.visible?`visible`:`none`},paint:{"fill-color":[`get`,`fillColor`],"fill-opacity":r.fillOpacity}};e.addLayer(t,r.before||void 0)}if(!e.getLayer(f.value)){let t={id:f.value,type:`line`,source:u.value,layout:{visibility:r.visible?`visible`:`none`},paint:{"line-color":[`get`,`fillColor`],"line-width":r.lineWidth,"line-opacity":r.lineOpacity}};e.addLayer(t,r.before||void 0)}}catch(e){console.error(`Error adding isochrone layers:`,e)}},v=()=>{let e=m();if(e)try{let t=e.getSource(u.value),n=p.value;t&&`setData`in t?n&&t.setData(n):!t&&n&&g()}catch(e){console.error(`Error updating isochrone source:`,e)}},y=()=>{let e=m();if(e)try{e.getLayer(d.value)&&(e.setPaintProperty(d.value,`fill-opacity`,r.fillOpacity),e.setLayoutProperty(d.value,`visibility`,r.visible?`visible`:`none`)),e.getLayer(f.value)&&(e.setPaintProperty(f.value,`line-width`,r.lineWidth),e.setPaintProperty(f.value,`line-opacity`,r.lineOpacity),e.setLayoutProperty(f.value,`visibility`,r.visible?`visible`:`none`))}catch(e){console.error(`Error updating isochrone layer style:`,e)}},S=e=>{if(!(!e||!r.interactive))try{e.on(`click`,d.value,e=>{e.features&&e.features.length>0&&i(`click`,{feature:e.features[0],coordinates:e.lngLat})}),e.on(`mouseenter`,d.value,t=>{e.getCanvas().style.cursor=`pointer`,t.features&&t.features.length>0&&i(`mouseenter`,t.features[0])}),e.on(`mouseleave`,d.value,()=>{e.getCanvas().style.cursor=``,i(`mouseleave`)})}catch(e){console.error(`Error setting up isochrone layer events:`,e)}},C=async()=>{if(c.value)return;let e=m();!e||!e.isStyleLoaded()||p.value&&(await _(),!c.value&&(g(),S(e),c.value=!0))};return M(()=>r.data,()=>{let e=m();e?.isStyleLoaded()&&(e.getSource(u.value)?v():g())},{deep:!0}),M(()=>[r.fillOpacity,r.lineWidth,r.lineOpacity,r.visible],()=>y(),{deep:!0}),M(o,e=>{e&&C()}),M(a,e=>{e&&(h(e),e.isStyleLoaded()&&(o.value=!0,C()))},{immediate:!0}),x(()=>{_(()=>{C()})}),b(()=>{let e=m();if(e)try{e.getLayer(f.value)&&e.removeLayer(f.value),e.getLayer(d.value)&&e.removeLayer(d.value),e.getSource(u.value)&&e.removeSource(u.value)}catch(e){console.error(`Error cleaning up isochrone layer:`,e)}}),(e,t)=>O(e.$slots,`default`)}}),Xe=m(()=>import(`./generic-DLtJwFOg.js`).then(e=>e.VLayerDeckgl)),Ze=m(()=>import(`./scatterplot-DtFjVt95.js`).then(e=>e.VLayerDeckglScatterplot)),Qe=m(()=>import(`./arc-sQuzag_9.js`).then(e=>e.VLayerDeckglArc)),$e=m(()=>import(`./geojson-DmmblQfq.js`).then(e=>e.VLayerDeckglGeojson)),et=m(()=>import(`./path-QpGANcDO.js`).then(e=>e.VLayerDeckglPath)),tt=m(()=>import(`./line-BqRkZ9qg.js`).then(e=>e.VLayerDeckglLine)),nt=m(()=>import(`./polygon-CnEkEdCz.js`).then(e=>e.VLayerDeckglPolygon)),rt=m(()=>import(`./solid-polygon-DS3vtguq.js`).then(e=>e.VLayerDeckglSolidPolygon)),it=m(()=>import(`./icon-dGkYJha7.js`).then(e=>e.VLayerDeckglIcon)),at=m(()=>import(`./text-BuHw5Jdf.js`).then(e=>e.VLayerDeckglText)),ot=m(()=>import(`./column-Dai69vdE.js`).then(e=>e.VLayerDeckglColumn)),st=m(()=>import(`./bitmap-C9wTsmdA.js`).then(e=>e.VLayerDeckglBitmap)),ct=m(()=>import(`./grid-cell-CTiUtStS.js`).then(e=>e.VLayerDeckglGridCell)),lt=m(()=>import(`./point-cloud-CwNI1kj4.js`).then(e=>e.VLayerDeckglPointCloud)),ut=m(()=>import(`./heatmap-CToABGhe.js`).then(e=>e.VLayerDeckglHeatmap)),dt=m(()=>import(`./hexagon-B7QFHPOG.js`).then(e=>e.VLayerDeckglHexagon)),ft=m(()=>import(`./grid-d5GMfgA7.js`).then(e=>e.VLayerDeckglGrid)),pt=m(()=>import(`./contour-BVSFeMXQ.js`).then(e=>e.VLayerDeckglContour)),mt=m(()=>import(`./screen-grid-C-Ge9TH9.js`).then(e=>e.VLayerDeckglScreenGrid)),ht=m(()=>import(`./trips-Cy2yQXp7.js`).then(e=>e.VLayerDeckglTrips)),gt=m(()=>import(`./h3-hexagon-E-7rMATA.js`).then(e=>e.VLayerDeckglH3Hexagon)),_t=m(()=>import(`./h3-cluster-BqU_KkMN.js`).then(e=>e.VLayerDeckglH3Cluster)),vt=m(()=>import(`./mvt-DKjRIMv0.js`).then(e=>e.VLayerDeckglMVT)),yt=m(()=>import(`./tile-B03s67tw.js`).then(e=>e.VLayerDeckglTile)),bt=m(()=>import(`./tile-3d-CAbU8BnN.js`).then(e=>e.VLayerDeckglTile3D)),xt=m(()=>import(`./terrain-Vnqb4j1R.js`).then(e=>e.VLayerDeckglTerrain)),St=m(()=>import(`./great-circle-B3wrKr2V.js`).then(e=>e.VLayerDeckglGreatCircle)),Ct=m(()=>import(`./s2-BHisRsYi.js`).then(e=>e.VLayerDeckglS2)),wt=m(()=>import(`./geohash-Bq6Va31-.js`).then(e=>e.VLayerDeckglGeohash)),Tt=m(()=>import(`./quadkey-DqvKjWw3.js`).then(e=>e.VLayerDeckglQuadkey)),Et=m(()=>import(`./wms-toc-Os2F.js`).then(e=>e.VLayerDeckglWMS)),Dt=m(()=>import(`./simple-mesh-CwDv4_8p.js`).then(e=>e.VLayerDeckglSimpleMesh)),Ot=m(()=>import(`./scenegraph-DfsmFuLy.js`).then(e=>e.VLayerDeckglScenegraph)),kt=m(()=>import(`./cog-BC2mhbA-.js`).then(e=>e.VLayerDeckglCOG)),At=m(()=>import(`./mosaic-BdOpB_UM.js`).then(e=>e.VLayerDeckglMosaic)),jt=m(()=>import(`./multi-cog-RzUpiduc.js`).then(e=>e.VLayerDeckglMultiCOG)),Mt=m(()=>import(`./zarr-CGUO8nTA.js`).then(e=>e.VLayerDeckglZarr)),Nt=m(()=>import(`./geoarrow-scatterplot-DxkqOIWR.js`).then(e=>e.VLayerDeckglGeoArrowScatterplot)),Pt=m(()=>import(`./geoarrow-path-CV0aOugP.js`).then(e=>e.VLayerDeckglGeoArrowPath)),Ft=m(()=>import(`./geoarrow-polygon-BjfqZpaf.js`).then(e=>e.VLayerDeckglGeoArrowPolygon)),It=m(()=>import(`./geoarrow-solid-polygon-LGavbdMg.js`).then(e=>e.VLayerDeckglGeoArrowSolidPolygon)),Lt=m(()=>import(`./geoarrow-text-8HY70yYe.js`).then(e=>e.VLayerDeckglGeoArrowText)),Rt=m(()=>import(`./geoarrow-trips-Bqc-_N6F.js`).then(e=>e.VLayerDeckglGeoArrowTrips)),zt=m(()=>import(`./wind-particle-C1OQmbu7.js`).then(e=>e.VLayerDeckglWindParticle)),Bt=m(()=>import(`./starfield-DnXurhKv.js`).then(e=>e.StarfieldLayer));var Vt=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const Ht=[`id`];var Ut=Vt(h({__name:`VMap`,props:{options:{default:()=>({container:`map`})},supportPmtiles:{type:Boolean,default:!1}},emits:[`loaded`,...X],setup(e,{emit:t}){let n=e,a=t;if(n.supportPmtiles){let e=new U({metadata:!0});P.addProtocol(`pmtiles`,e.tile),T(r,e)}let o=k(null),c=E(!1),l=E(X);T(s,o),i(o),x(()=>{o.value=new L(n.options),c.value=!0,u()});let u=()=>{o.value&&l.value.forEach(e=>{o.value?.on(e,t=>{switch(e){case`load`:a(`loaded`,o.value);break;default:a(e,t);break}})})};return(t,n)=>(w(),f(`div`,{id:`${e.options?.container}`,class:`v-map-container`},[c.value?O(t.$slots,`default`,{key:0},()=>[O(t.$slots,`default`,{},void 0,!0)],!0):d(`v-if`,!0)],8,Ht))}}),[[`__scopeId`,`data-v-a543ca92`]]);const Wt=[`id`],Gt=h({__name:`VPopup`,props:{options:{default:()=>({})},coordinates:{default:()=>({})},marker:{default:()=>({})}},emits:[`added`,`removed`,`open`,`close`],setup(e,{emit:n}){let r=e,i=n,a=t(s),o=new B(r.options),c=E(!0),l=E(null),u=()=>a.value||null,d=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?c.value=!0:(c.value=!1,setTimeout(t,200))};t()})},p=()=>{try{l.value&&o.setDOMContent(l.value)}catch(e){console.error(`Error setting popup content:`,e)}},m=()=>{try{o.setLngLat(r.coordinates)}catch(e){console.error(`Error setting popup coordinates:`,e)}},h=()=>{let e=u();if(e)try{`setPopup`in r.marker?r.marker.setPopup(o):o.addTo(e),i(`added`,{popup:o})}catch(e){console.error(`Error adding popup to marker:`,e)}},g=()=>{try{o.remove(),i(`removed`)}catch(e){console.error(`Error removing popup:`,e)}},_=()=>{try{$.forEach(e=>{o.on(e,()=>{i(e)})})}catch(e){console.error(`Error setting up popup events:`,e)}},v=()=>{try{$.forEach(e=>{o.off(e,()=>{i(e)})})}catch(e){console.error(`Error removing popup events:`,e)}};return M(a,e=>{e&&d(e)},{immediate:!0}),M(()=>r.coordinates,()=>{m()},{deep:!0}),x(()=>{if(c.value)try{p(),m(),h(),_()}catch(e){console.error(`Error initializing popup:`,e)}else g(),v()}),b(()=>{g(),v()}),(e,t)=>(w(),f(`section`,{id:`popup-${Date.now()}`,ref_key:`content`,ref:l},[O(e.$slots,`default`)],8,Wt))}}),Kt=[`id`],qt=h({__name:`VMarker`,props:{coordinates:{},options:{default:()=>({})},popupOptions:{default:()=>({})},cursor:{default:`pointer`}},emits:[`added`,`update:coordinates`,`removed`,...Z,...Q],setup(e,{emit:n}){let r=j(),i=e,a=n,o=t(s),c=E(null),l=E(!0),p=E(!1),m=E(null),h=()=>o.value||null,g=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?l.value=!0:(l.value=!1,setTimeout(t,200))};t()})},_=e=>{e instanceof HTMLElement&&(m.value=e)},v=e=>{try{e.setLngLat(i.coordinates)}catch(e){console.error(`Error setting marker coordinates:`,e)}},y=e=>{try{e.getElement().style.cursor=i.cursor||`default`}catch(e){console.error(`Error setting cursor:`,e)}},S=e=>{let t=h();if(t)try{e.addTo(t),a(`added`,{marker:e})}catch(e){console.error(`Error adding marker to map:`,e)}},C=e=>{try{e.remove(),a(`removed`)}catch(e){console.error(`Error removing marker from map:`,e)}},T=e=>{try{let t;Z.forEach(n=>{e.on(n,e=>{n===`dragend`&&(t=Array.isArray(i.coordinates)?[e.target.getLngLat().lng,e.target.getLngLat().lat]:e.target.getLngLat(),a(`update:coordinates`,t)),a(n,e)})}),Q.forEach(t=>{e.getElement().addEventListener(t,e=>{a(t,e)})})}catch(e){console.error(`Error setting up marker events:`,e)}};M(c,e=>{p.value=e!==null&&`_map`in e}),M(o,e=>{e&&g(e)},{immediate:!0});let D=e=>{if(!(!l.value||c.value))try{c.value=new R({...i.options,element:e||void 0}),v(c.value),S(c.value),y(c.value),T(c.value)}catch(e){console.error(`Error initializing marker:`,e)}};return M(m,e=>{e&&!c.value&&D(e)}),x(()=>{r.markers||D()}),b(()=>{c.value&&C(c.value)}),(t,n)=>(w(),f(`section`,{id:`marker-${Date.now()}`,class:`absolute`},[O(t.$slots,`markers`,{setRef:_}),p.value&&t.$slots.default?(w(),u(Gt,{key:0,marker:c.value,options:e.popupOptions,coordinates:e.coordinates},{default:N(()=>[O(t.$slots,`default`)]),_:3},8,[`marker`,`options`,`coordinates`])):d(`v-if`,!0)],8,Kt))}});var Jt=Ut;export{a as DeckLayersKey,n as DeckOverlayKey,W as VControlAttribution,te as VControlFullscreen,ne as VControlGeolocate,me as VControlLayer,De as VControlLayerGroup,Be as VControlLegend,ae as VControlLidar,re as VControlNavigation,ie as VControlScale,Xe as VLayerDeckgl,Qe as VLayerDeckglArc,st as VLayerDeckglBitmap,kt as VLayerDeckglCOG,ot as VLayerDeckglColumn,pt as VLayerDeckglContour,Pt as VLayerDeckglGeoArrowPath,Ft as VLayerDeckglGeoArrowPolygon,Nt as VLayerDeckglGeoArrowScatterplot,It as VLayerDeckglGeoArrowSolidPolygon,Lt as VLayerDeckglGeoArrowText,Rt as VLayerDeckglGeoArrowTrips,wt as VLayerDeckglGeohash,$e as VLayerDeckglGeojson,St as VLayerDeckglGreatCircle,ft as VLayerDeckglGrid,ct as VLayerDeckglGridCell,_t as VLayerDeckglH3Cluster,gt as VLayerDeckglH3Hexagon,ut as VLayerDeckglHeatmap,dt as VLayerDeckglHexagon,it as VLayerDeckglIcon,tt as VLayerDeckglLine,vt as VLayerDeckglMVT,At as VLayerDeckglMosaic,jt as VLayerDeckglMultiCOG,et as VLayerDeckglPath,lt as VLayerDeckglPointCloud,nt as VLayerDeckglPolygon,Tt as VLayerDeckglQuadkey,Ct as VLayerDeckglS2,Ze as VLayerDeckglScatterplot,Ot as VLayerDeckglScenegraph,mt as VLayerDeckglScreenGrid,Dt as VLayerDeckglSimpleMesh,rt as VLayerDeckglSolidPolygon,xt as VLayerDeckglTerrain,at as VLayerDeckglText,yt as VLayerDeckglTile,bt as VLayerDeckglTile3D,ht as VLayerDeckglTrips,Et as VLayerDeckglWMS,zt as VLayerDeckglWindParticle,Mt as VLayerDeckglZarr,Ve as VLayerMaplibreCanvas,qe as VLayerMaplibreCluster,He as VLayerMaplibreGeojson,Ue as VLayerMaplibreImage,Ye as VLayerMaplibreIsochrone,Ke as VLayerMaplibrePmtile,J as VLayerMaplibreRaster,Je as VLayerMaplibreRoute,Bt as VLayerMaplibreStarfield,We as VLayerMaplibreVector,Ge as VLayerMaplibreVideo,Ut as VMap,qt as VMarker,Gt as VPopup,Jt as default,o as requirePeer,e as useDeckLayers,i as useDeckOverlay};
|
|
1
|
+
import{n as e,r as t,t as n}from"./symbols-DXKzIgbY.js";import{a as r,i,t as a}from"./useDeckOverlay-GlkH_rvP.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,defineComponent as f,inject as p,nextTick as m,normalizeClass as h,normalizeStyle as g,onBeforeUnmount as _,onMounted as v,onUnmounted as y,onUpdated as b,openBlock as x,provide as S,ref as C,renderList as w,renderSlot as T,shallowRef as E,toDisplayString as D,useSlots as O,watch as k,withCtx as A}from"vue";import j,{AttributionControl as M,FullscreenControl as N,GeolocateControl as P,Map as F,Marker as I,NavigationControl as L,Popup as R,ScaleControl as z}from"maplibre-gl";import{PMTiles as B,Protocol as V}from"pmtiles";const H=f({__name:`VControlAttribution`,props:{options:{default:void 0},position:{default:`bottom-right`}},setup(e){let r={compact:!1,customAttribution:void 0},i=e,a=O(),o=t(n);v(()=>{s()});let s=()=>{let e=r;i.options&&(e={...i.options}),a&&a.default?.()&&(e.customAttribution=a.default()[0].children);let t=new M(e);o.value.addControl(t,i.position)};return(e,t)=>T(e.$slots,`default`)}}),U=f({__name:`VControlFullscreen`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let r={container:void 0},i=e,a=t(n);v(()=>{o()});let o=()=>{let e=new N(i.options||r);a.value.addControl(e,i.position)};return()=>{}}}),W=[`geolocate`,`error`,`outofmaxbounds`,`trackuserlocationstart`,`trackuserlocationend`],G=f({__name:`VControlGeolocate`,props:{options:{default:void 0},position:{default:`top-left`}},emits:W,setup(e,{emit:r}){let i={fitBoundsOptions:{linear:!1,offset:[0,0],maxZoom:22},positionOptions:{enableHighAccuracy:!0,maximumAge:0,timeout:6e3},trackUserLocation:!0,showAccuracyCircle:!0,showUserLocation:!0},a=e,o=r,s=t(n);v(()=>{c()});let c=()=>{let e=new P(a.options||i);s.value.addControl(e,a.position),W.forEach(t=>{e.on(t,()=>{o(t)})})};return()=>{}}}),ee=f({__name:`VControlNavigation`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let t={showCompass:!0,showZoom:!0,visualizePitch:!0},r=e,i=p(n);v(()=>{a()});let a=()=>{let e=new L(r.options||t);i.value.addControl(e,r.position)};return()=>{}}}),te=f({__name:`VControlScale`,props:{options:{default:void 0},position:{default:`bottom-left`}},setup(e){let t={maxWidth:100,unit:`metric`},r=e,i=p(n);v(()=>{a()});let a=()=>{let e=new z(r.options||t);i?.value.addControl(e,r.position)};return(e,t)=>T(e.$slots,`default`)}});function K(e,t,n){let r=null,i=!1,a=()=>{i&&t.value&&!t.value.classList.contains(`maplibregl-ctrl`)&&t.value.classList.add(`maplibregl-ctrl`)};v(()=>{!e.value||!t.value||(r={onAdd:()=>(t.value?.classList.add(`maplibregl-ctrl`),t.value),onRemove:()=>{}},e.value.addControl(r,n),i=!0)}),b(()=>{a()}),y(()=>{if(e.value&&r)try{e.value.removeControl(r)}catch{}})}const ne={class:`v-layer-control-header`},re={class:`v-layer-control-title`},ie=[`aria-pressed`,`title`],ae={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},oe={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},se={class:`v-layer-control-slider-row`},ce=[`value`,`disabled`],le={class:`v-layer-control-value`},ue=f({__name:`VControlLayer`,props:{layerId:{},position:{default:`top-right`},visible:{type:Boolean,default:!0},opacity:{default:1},title:{default:`Layer Control`},layerType:{default:void 0}},emits:[`visibility-change`,`opacity-change`,`update:visible`,`update:opacity`],setup(e,{emit:r}){let i=e,o=r,s=t(n),c=p(a,null),l=C(null),f=C(i.visible),m=C(i.opacity);K(s,l,i.position);let g=()=>i.layerType?i.layerType:s.value?s.value.getLayer(i.layerId)?`maplibre`:c&&c.getLayers().find(e=>e.id===i.layerId)?`deckgl`:null:null,_=()=>{if(!s.value||g()!==`maplibre`)return null;let e=s.value.getLayer(i.layerId);if(!e)return null;switch(e.type){case`fill`:return`fill-opacity`;case`line`:return`line-opacity`;case`circle`:return`circle-opacity`;case`symbol`:return`icon-opacity`;default:return null}},y=e=>{let t=g();if(t===`maplibre`){if(!s.value)return;if(!s.value.getLayer(i.layerId)){console.warn(`MapLibre layer not found: ${i.layerId}`);return}s.value.setLayoutProperty(i.layerId,`visibility`,e?`visible`:`none`)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${i.layerId}`);return}let t=c.getLayers().find(e=>e.id===i.layerId);if(!t){console.warn(`deck.gl layer not found: ${i.layerId}`);return}if(typeof t.clone==`function`){let n=t.clone({visible:e});c.updateLayer(i.layerId,n)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${i.layerId}`);return}o(`visibility-change`,e),o(`update:visible`,e)},b=e=>{let t=g();if(t===`maplibre`){let t=_();if(!s.value||!t)return;if(!s.value.getLayer(i.layerId)){console.warn(`MapLibre layer not found: ${i.layerId}`);return}s.value.setPaintProperty(i.layerId,t,e)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${i.layerId}`);return}let t=c.getLayers().find(e=>e.id===i.layerId);if(!t){console.warn(`deck.gl layer not found: ${i.layerId}`);return}if(typeof t.clone==`function`){let n=t.clone({opacity:e});c.updateLayer(i.layerId,n)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${i.layerId}`);return}o(`opacity-change`,e),o(`update:opacity`,e)},S=()=>{f.value=!f.value},w=e=>{let t=e.target;m.value=Number(t.value)/100};return k(f,e=>{y(e)}),k(m,e=>{b(e)}),k(()=>i.visible,e=>{f.value=e}),k(()=>i.opacity,e=>{m.value=e}),v(()=>{let e=!1,t=()=>e?!0:g()?(e=!0,y(f.value),b(m.value),!0):!1;if(t())return;let n=[100,200,300,500,500,1e3,1e3,1e3,2e3,3e3],r=0,i=()=>{t()||r>=n.length||setTimeout(()=>{r++,i()},n[r])};i()}),(t,n)=>(x(),u(`div`,{ref_key:`containerRef`,ref:l,class:`v-layer-control`},[d(`div`,ne,[d(`span`,re,D(e.title),1),d(`button`,{type:`button`,class:h([`v-layer-control-toggle`,{"is-hidden":!f.value}]),"aria-pressed":f.value,title:f.value?`Hide layer`:`Show layer`,onClick:S},[f.value?(x(),u(`svg`,ae,[...n[0]||(n[0]=[d(`path`,{d:`M8 3C4.5 3 1.5 5.5 0.5 8C1.5 10.5 4.5 13 8 13C11.5 13 14.5 10.5 15.5 8C14.5 5.5 11.5 3 8 3Z`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1),d(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(x(),u(`svg`,oe,[...n[1]||(n[1]=[d(`path`,{d:`M2 2L14 14M6.5 6.5C5.9 7.1 5.5 7.9 5.5 8.8C5.5 10.4 6.9 11.5 8 11.5C8.9 11.5 9.7 11.1 10.3 10.5M8 3C4.5 3 1.5 5.5 0.5 8C1 9.2 1.8 10.3 2.8 11.2M13.2 11.2C14.2 10.3 15 9.2 15.5 8C14.5 5.5 11.5 3 8 3`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])]))],10,ie)]),d(`div`,se,[d(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(m.value*100),class:`v-layer-control-slider`,disabled:!f.value,onInput:w},null,40,ce),d(`span`,le,D(Math.round(m.value*100))+`%`,1)]),T(t.$slots,`default`)],512))}}),de={class:`v-layer-group-title`},fe={key:1,class:`v-layer-group-header is-static`},pe={class:`v-layer-group-title`},me={key:2,class:`v-layer-group-content`},he={class:`v-layer-group-item-header`},ge={class:`v-layer-group-item-title`},_e=[`aria-pressed`,`title`,`onClick`],ve={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},ye={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},be={class:`v-layer-group-slider-row`},xe=[`value`,`disabled`,`onInput`],Se={class:`v-layer-group-value`},Ce=f({__name:`VControlLayerGroup`,props:{layers:{},position:{default:`top-right`},title:{default:`Layers`},collapsible:{type:Boolean,default:!0},collapsed:{type:Boolean,default:!1}},emits:[`visibility-change`,`opacity-change`,`update:layers`],setup(e,{emit:r}){let i=e,s=r,c=t(n),f=p(a,null),m=C(null),g=C(i.collapsed),_=C(new Map);K(c,m,i.position);let y=()=>{for(let e of i.layers)_.value.set(e.id,{visible:e.visible??!0,opacity:e.opacity??1})},b=(e,t)=>t||(c.value?c.value.getLayer(e)?`maplibre`:f&&f.getLayers().find(t=>t.id===e)?`deckgl`:null:null),S=e=>{if(!c.value)return null;let t=c.value.getLayer(e);if(!t)return null;switch(t.type){case`fill`:return`fill-opacity`;case`line`:return`line-opacity`;case`circle`:return`circle-opacity`;case`symbol`:return`icon-opacity`;case`raster`:return`raster-opacity`;default:return null}},E=(e,t,n)=>{let r=b(e,n);if(r===`maplibre`){if(!c.value)return;if(!c.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}c.value.setLayoutProperty(e,`visibility`,t?`visible`:`none`)}else if(r===`deckgl`){if(!f){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=f.getLayers().find(t=>t.id===e);if(!n){console.warn(`[VControlLayerGroup] deck.gl layer not found: ${e}`);return}if(typeof n.clone==`function`){let r=n.clone({visible:t});f.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}s(`visibility-change`,{layerId:e,visible:t})},O=(e,t,n)=>{let r=b(e,n);if(r===`maplibre`){let n=S(e);if(!c.value||!n)return;if(!c.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}c.value.setPaintProperty(e,n,t)}else if(r===`deckgl`){if(!f){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=f.getLayers().find(t=>t.id===e);if(!n){console.warn(`[VControlLayerGroup] deck.gl layer not found: ${e}`);return}if(typeof n.clone==`function`){let r=n.clone({opacity:t});f.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}s(`opacity-change`,{layerId:e,opacity:t})},A=e=>{let t=_.value.get(e.id);if(!t)return;let n=!t.visible;t.visible=n,E(e.id,n,e.type)},j=(e,t)=>{let n=t.target,r=Number(n.value)/100,i=_.value.get(e.id);i&&(i.opacity=r,O(e.id,r,e.type))},M=e=>_.value.get(e)??{visible:!0,opacity:1},N=()=>{i.collapsible&&(g.value=!g.value)};return k(()=>i.layers,()=>{y()},{deep:!0}),k(()=>i.collapsed,e=>{g.value=e}),v(()=>{y();for(let e of i.layers){let t=M(e.id);E(e.id,t.visible,e.type),O(e.id,t.opacity,e.type)}}),(t,n)=>(x(),u(`div`,{ref_key:`containerRef`,ref:m,class:h([`v-layer-group maplibregl-ctrl`,{"is-collapsed":g.value}])},[e.collapsible?(x(),u(`button`,{key:0,type:`button`,class:`v-layer-group-header`,onClick:N},[d(`span`,de,D(e.title),1),(x(),u(`svg`,{class:h([`v-layer-group-chevron`,{"is-collapsed":g.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...n[0]||(n[0]=[d(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))])):(x(),u(`div`,fe,[d(`span`,pe,D(e.title),1)])),g.value?l(`v-if`,!0):(x(),u(`div`,me,[(x(!0),u(o,null,w(e.layers,e=>(x(),u(`div`,{key:e.id,class:`v-layer-group-item`},[d(`div`,he,[d(`span`,ge,D(e.title),1),d(`button`,{type:`button`,class:h([`v-layer-group-toggle`,{"is-hidden":!M(e.id).visible}]),"aria-pressed":M(e.id).visible,title:M(e.id).visible?`Hide layer`:`Show layer`,onClick:t=>A(e)},[M(e.id).visible?(x(),u(`svg`,ve,[...n[1]||(n[1]=[d(`path`,{d:`M8 3C4.5 3 1.5 5.5 0.5 8C1.5 10.5 4.5 13 8 13C11.5 13 14.5 10.5 15.5 8C14.5 5.5 11.5 3 8 3Z`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1),d(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(x(),u(`svg`,ye,[...n[2]||(n[2]=[d(`path`,{d:`M2 2L14 14M6.5 6.5C5.9 7.1 5.5 7.9 5.5 8.8C5.5 10.4 6.9 11.5 8 11.5C8.9 11.5 9.7 11.1 10.3 10.5M8 3C4.5 3 1.5 5.5 0.5 8C1 9.2 1.8 10.3 2.8 11.2M13.2 11.2C14.2 10.3 15 9.2 15.5 8C14.5 5.5 11.5 3 8 3`,stroke:`currentColor`,"stroke-width":`1.25`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])]))],10,_e)]),d(`div`,be,[d(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(M(e.id).opacity*100),class:`v-layer-group-slider`,disabled:!M(e.id).visible,onInput:t=>j(e,t)},null,40,xe),d(`span`,Se,D(Math.round(M(e.id).opacity*100))+`%`,1)])]))),128))])),T(t.$slots,`default`)],2))}}),we={class:`v-legend-control-title`},Te={key:0,class:`v-legend-control-content`},Ee=[`disabled`,`onClick`],De={class:`v-legend-control-label`},Oe={key:0,class:`v-legend-control-count`},ke={class:`v-legend-control-gradient-labels`},Ae={class:`v-legend-control-size-circle-wrap`},je={class:`v-legend-control-label`},Me={key:3,class:`v-legend-control-table`},Ne=[`title`],Pe={class:`v-legend-control-table-label`},Fe={class:`v-legend-control-table-value`},Ie=f({__name:`VControlLegend`,props:{layerIds:{},type:{default:`category`},items:{},position:{default:`top-right`},property:{},autoGenerate:{type:Boolean,default:!1},title:{default:`Legend`},collapsed:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0}},emits:[`item-click`,`filter-change`,`update:filter`],setup(e,{emit:r}){let i=e,c=r,f=t(n),m=p(a,null),_=C(null),y=C(i.collapsed),b=C(new Map),S=C([]);K(f,_,i.position);let E=e=>{let t=[],n=e[e.length-1];for(let n=2;n<e.length-1;n+=2){let r=e[n],i=e[n+1];if(Array.isArray(r))for(let e of r)t.push({value:e,label:String(e),color:i,visible:!0});else t.push({value:r,label:String(r),color:i,visible:!0})}return t.length>0&&n&&typeof n==`string`&&t.push({value:`__default__`,label:`Other`,color:n,visible:!0}),t},O=e=>{let t=[],n=[],r=e[2];t.push(r);for(let r=3;r<e.length;r+=2){let i=e[r],a=e[r+1];n.push(i),t.push(a)}return n.length===0?null:{min:n[0],max:n[n.length-1],colors:t,stops:n}},A=e=>{let t=[],n=[];e[1]&&Array.isArray(e[1]);for(let r=3;r<e.length;r+=2){let i=e[r],a=e[r+1];n.push(i),t.push(a)}return n.length<2?null:{min:n[0],max:n[n.length-1],colors:t,stops:n}},j=()=>{if(!i.autoGenerate||!i.property||!f.value)return[];let e=i.layerIds[0];if(!e)return[];if(!f.value.getLayer(e))return console.warn(`[VControlLegend] Layer not found: ${e}`),[];let t=f.value.getPaintProperty(e,i.property);if(!t||!Array.isArray(t))return console.warn(`[VControlLegend] Paint property "${i.property}" not found or not an expression`),[];let n=t[0];if(n===`match`)return E(t);if(n===`step`){let e=O(t);return e?[e]:[]}if(n===`interpolate`||n===`interpolate-hcl`||n===`interpolate-lab`){let e=A(t);return e?[e]:[]}return console.warn(`[VControlLegend] Unsupported expression type: ${n}`),[]},M=s(()=>i.items&&i.items.length>0?i.items:S.value),N=s(()=>i.type===`category`?M.value.filter(e=>`value`in e&&`color`in e&&`label`in e):[]),P=s(()=>{if(i.type!==`gradient`)return null;let e=M.value;if(e.length===0)return null;let t=e[0];return`min`in t&&`max`in t&&`colors`in t?t:null}),F=s(()=>i.type===`size`?M.value.filter(e=>`size`in e&&`value`in e):[]),I=s(()=>i.type===`table`?M.value.filter(e=>`label`in e&&`color`in e&&`value`in e&&!(`size`in e)&&!(`visible`in e)).sort((e,t)=>t.value-e.value):[]),L=e=>e.formattedValue?e.formattedValue:`${e.value}${e.unit??``}`,R=s(()=>({visibleValues:Array.from(b.value.entries()).filter(([,e])=>e).map(([e])=>e)})),z=s(()=>P.value?`linear-gradient(to right, ${P.value.colors.join(`, `)})`:``),B=()=>{if(i.type===`category`)for(let e of N.value)b.value.set(e.value,e.visible??!0)},V=()=>{if(!f.value||!i.property||i.type!==`category`)return;let e=R.value.visibleValues.filter(e=>e!==`__default__`),t=N.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length;for(let t of i.layerIds)if(f.value.getLayer(t))if(n)f.value.setFilter(t,null);else if(e.length===0)f.value.setFilter(t,[`==`,[`get`,`_never_match_`],!0]);else{let n=f.value.getPaintProperty(t,i.property);if(!n||!Array.isArray(n))continue;let r=n[1],a=null;Array.isArray(r)&&r[0]===`get`&&(a=r[1]),a&&f.value.setFilter(t,[`in`,[`get`,a],[`literal`,e]])}},H=()=>{if(!m||i.type!==`category`)return;let e=R.value.visibleValues.filter(e=>e!==`__default__`),t=N.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length,r=m.getLayers();for(let t of i.layerIds){if(f.value?.getLayer(t))continue;let i=r.find(e=>e.id===t);if(i){if(!i.props?.extensions?.some(e=>e?.constructor?.name===`DataFilterExtension`)){console.warn(`[VControlLegend] deck.gl layer "${t}" requires DataFilterExtension for filtering. Add DataFilterExtension to layer extensions and configure getFilterValue accessor.`);continue}if(typeof i.clone==`function`)if(n){let e=i.clone({filterRange:[-1/0,1/0]});m.updateLayer(t,e)}else if(e.length===0){let e=i.clone({filterRange:[1/0,1/0]});m.updateLayer(t,e)}else{let n=e.map(e=>N.value.findIndex(t=>t.value===e)).filter(e=>e>=0);if(n.length>0){let e=Math.min(...n),r=Math.max(...n),a=i.clone({filterRange:[e-.5,r+.5]});m.updateLayer(t,a)}}}}},U=(e,t)=>{if(!i.interactive)return;let n=!(b.value.get(e.value)??!0);b.value.set(e.value,n),V(),H(),c(`item-click`,{item:e,index:t,visible:n}),c(`filter-change`,{filter:R.value,layerIds:i.layerIds}),c(`update:filter`,R.value)},W=e=>b.value.get(e.value)??!0,G=()=>{y.value=!y.value};return k(()=>i.items,()=>{B()},{deep:!0}),k(()=>i.collapsed,e=>{y.value=e}),v(()=>{i.autoGenerate&&(S.value=j()),B()}),(t,n)=>(x(),u(`div`,{ref_key:`containerRef`,ref:_,class:h([`v-legend-control`,{"is-collapsed":y.value}])},[d(`button`,{type:`button`,class:`v-legend-control-header`,onClick:G},[d(`span`,we,D(e.title),1),(x(),u(`svg`,{class:h([`v-legend-control-chevron`,{"is-collapsed":y.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...n[0]||(n[0]=[d(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))]),y.value?l(`v-if`,!0):(x(),u(`div`,Te,[e.type===`category`?(x(!0),u(o,{key:0},w(N.value,(t,n)=>(x(),u(`button`,{key:t.value,type:`button`,class:h([`v-legend-control-item`,{"is-interactive":e.interactive,"is-hidden":!W(t)}]),disabled:!e.interactive,onClick:e=>U(t,n)},[d(`span`,{class:`v-legend-control-swatch`,style:g({backgroundColor:t.color})},null,4),d(`span`,De,D(t.label),1),t.count===void 0?l(`v-if`,!0):(x(),u(`span`,Oe,D(t.count),1))],10,Ee))),128)):e.type===`gradient`&&P.value?(x(),u(o,{key:1},[d(`div`,{class:`v-legend-control-gradient`,style:g({background:z.value})},null,4),d(`div`,ke,[d(`span`,null,D(P.value.minLabel??P.value.min),1),d(`span`,null,D(P.value.maxLabel??P.value.max),1)])],64)):e.type===`size`?(x(!0),u(o,{key:2},w(F.value,e=>(x(),u(`div`,{key:e.value,class:`v-legend-control-size-item`},[d(`div`,Ae,[d(`div`,{class:`v-legend-control-size-circle`,style:g({width:`${Math.min(e.size,20)}px`,height:`${Math.min(e.size,20)}px`})},null,4)]),d(`span`,je,D(e.label),1)]))),128)):e.type===`table`?(x(),u(`div`,Me,[(x(!0),u(o,null,w(I.value,e=>(x(),u(`div`,{key:e.label,class:`v-legend-control-table-row`,title:e.description},[d(`span`,{class:`v-legend-control-swatch`,style:g({backgroundColor:e.color})},null,4),d(`span`,Pe,D(e.label),1),d(`span`,Fe,D(L(e)),1)],8,Ne))),128))])):l(`v-if`,!0)])),T(t.$slots,`default`)],2))}}),Le=f({__name:`VLayerMaplibreCanvas`,props:{source:{},layer:{},sourceId:{default:`maplibre.gl-canvas-source`},layerId:{default:`maplibre.gl-canvas-layer`},before:{default:``}},setup(e){let r=e,i=t(n),a=()=>i.value||null,o=C(!1),s=null,c=null,l=null,u=()=>{if(o.value)return!0;let e=a();if(!e||!e.isStyleLoaded())return!1;try{if(e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),!e.getLayer(r.layerId)){let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}return o.value=!0,!0}catch(e){return console.error(`Error adding Canvas layer:`,e),!1}},d=e=>{s!==e&&(f(),s=e,c=()=>{u()},e.on(`style.load`,c),l=()=>{if(o.value){l&&s&&s.off(`idle`,l),l=null;return}u()},e.on(`idle`,l),u())},f=()=>{s&&(c&&s.off(`style.load`,c),l&&s.off(`idle`,l)),s=null,c=null,l=null};return k(()=>r.source,()=>{let e=a();if(e)try{e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId),e.addSource(r.sourceId,r.source);let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}catch(e){console.error(`Error updating Canvas source:`,e)}},{deep:!0}),k(()=>r.layer,()=>{let e=a();if(e)try{e.getLayer(r.layerId)&&(Object.entries(r.layer.paint||{}).forEach(([t,n])=>{e.setPaintProperty(r.layerId,t,n)}),Object.entries(r.layer.layout||{}).forEach(([t,n])=>{e.setLayoutProperty(r.layerId,t,n)}))}catch(e){console.error(`Error updating Canvas layer:`,e)}},{deep:!0}),k(i,e=>{e?d(e):(f(),o.value=!1)},{immediate:!0}),v(()=>{u()}),_(()=>{f();let e=a();if(e)try{e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId)}catch(e){console.error(`Error cleaning up Canvas layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),Re=f({__name:`VLayerMaplibreGeojson`,props:{sourceId:{default:`maplibre-gl-geojson-source`},layerId:{default:`maplibre-gl-geojson-layer`},source:{},layer:{},before:{default:``}},emits:[`on-click`],setup(e,{emit:r}){let i=e,a=r,o=t(n),s=e=>!e||typeof e==`string`?!1:e&&typeof e==`object`&&`type`in e?e.type===`FeatureCollection`&&`features`in e?e.features.length>0:e.type===`Feature`||e.type===`Point`||e.type===`LineString`||e.type===`Polygon`||e.type===`MultiPoint`||e.type===`MultiLineString`||e.type===`MultiPolygon`:!1,c=()=>o.value||null,l=C(!1),u=null,d=null,f=null,p=()=>{if(l.value)return!0;let e=c();if(!e||!e.isStyleLoaded()||!s(i.source.data))return!1;try{if(e.getSource(i.sourceId)||e.addSource(i.sourceId,i.source),!e.getLayer(i.layerId)){let t={...i.layer,id:i.layerId,source:i.sourceId};e.addLayer(t,i.before)}return x(e),l.value=!0,!0}catch(e){return console.error(`Error adding GeoJSON layer:`,e),!1}},h=e=>{u!==e&&(g(),u=e,d=()=>{p()},e.on(`style.load`,d),f=()=>{if(l.value){f&&u&&u.off(`idle`,f),f=null;return}p()},e.on(`idle`,f),p())},g=()=>{u&&(d&&u.off(`style.load`,d),f&&u.off(`idle`,f)),u=null,d=null,f=null},y=()=>{let e=c();if(e)try{let t=e.getSource(i.sourceId);if(t&&`setData`in t){let n=e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===i.sourceId);(n.length===0||n[0]?.id===i.layerId)&&t.setData(i.source.data)}else t||p()}catch(e){console.error(`Error updating GeoJSON source:`,e)}},b=()=>{let e=c();if(e)try{e.getLayer(i.layerId)?(Object.entries(i.layer.paint||{}).forEach(([t,n])=>{e.setPaintProperty(i.layerId,t,n)}),Object.entries(i.layer.layout||{}).forEach(([t,n])=>{e.setLayoutProperty(i.layerId,t,n)})):p()}catch(e){console.error(`Error updating GeoJSON layer:`,e)}},x=e=>{if(e)try{e.on(`click`,i.layerId,e=>{e.features&&e.features.length>0&&a(`on-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`mouseenter`,i.layerId,()=>{e.getCanvas().style.cursor=`pointer`}),e.on(`mouseleave`,i.layerId,()=>{e.getCanvas().style.cursor=``})}catch(e){console.error(`Error in setupLayerEvents:`,e)}};return k(o,e=>{e?h(e):(g(),l.value=!1)},{immediate:!0}),k(()=>i.source.data,(e,t)=>{if(s(e)){if(!l.value){let e=c();e&&!u?h(e):p();return}JSON.stringify(e)!==JSON.stringify(t)&&y()}}),k(()=>i.layer,b,{deep:!0}),k(()=>i.layer.layout?.visibility,e=>{let t=c();if(!t||!t.isStyleLoaded())return;let n=t.getLayer(i.layerId);if(!n&&e===`visible`)s(i.source.data)&&p();else if(n)try{t.setLayoutProperty(i.layerId,`visibility`,e)}catch(e){console.error(`Error updating visibility for ${i.layerId}:`,e)}},{immediate:!0}),v(()=>{m(()=>{p()})}),_(()=>{g();let e=c();if(e)try{e.getLayer(i.layerId)&&e.removeLayer(i.layerId),e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===i.sourceId).length===0&&e.getSource(i.sourceId)&&e.removeSource(i.sourceId)}catch(e){console.error(`Error cleaning up GeoJSON layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),ze=f({__name:`VLayerMaplibreImage`,props:{sourceId:{type:String,default:`maplibre.gl-image-source`,required:!0},layerId:{type:String,default:`maplibre.gl-image-layer`,required:!0},source:{type:Object,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(e){let r=e,i=t(n),a=()=>i.value||null,o=C(!1),s=null,c=null,l=null,u=()=>{if(o.value)return!0;let e=a();if(!e||!e.isStyleLoaded())return!1;try{if(e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),!e.getLayer(r.layerId)){let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}return o.value=!0,!0}catch(e){return console.error(`Error adding Image layer:`,e),!1}},d=e=>{s!==e&&(f(),s=e,c=()=>{u()},e.on(`style.load`,c),l=()=>{if(o.value){l&&s&&s.off(`idle`,l),l=null;return}u()},e.on(`idle`,l),u())},f=()=>{s&&(c&&s.off(`style.load`,c),l&&s.off(`idle`,l)),s=null,c=null,l=null};return k(()=>r.source,()=>{let e=a();if(e)try{let t=e.getSource(r.sourceId);if(t)if(t.updateImage)t.updateImage({url:r.source.url,coordinates:r.source.coordinates});else{e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId),e.addSource(r.sourceId,r.source);let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}}catch(e){console.error(`Error updating Image source:`,e)}},{deep:!0}),k(()=>r.layer,()=>{let e=a();if(e)try{e.getLayer(r.layerId)&&(Object.entries(r.layer.paint||{}).forEach(([t,n])=>{e.setPaintProperty(r.layerId,t,n)}),Object.entries(r.layer.layout||{}).forEach(([t,n])=>{e.setLayoutProperty(r.layerId,t,n)}))}catch(e){console.error(`Error updating Image layer:`,e)}},{deep:!0}),k(i,e=>{e?d(e):(f(),o.value=!1)},{immediate:!0}),v(()=>{u()}),_(()=>{f();let e=a();if(e)try{e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId)}catch(e){console.error(`Error cleaning up Image layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),q=f({__name:`VLayerMaplibreRaster`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},setup(e){let r=e,i=t(n),a=()=>i.value||null,o=C(!1),s=null,c=null,l=null,u=()=>{if(o.value)return!0;let e=a();if(!e||!e.isStyleLoaded())return!1;try{return e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),e.getLayer(r.layerId)||(e.addLayer(r.layer,r.before),r.layer.layout?.visibility&&e.setLayoutProperty(r.layerId,`visibility`,r.layer.layout.visibility)),o.value=!0,!0}catch(e){return console.error(`[${r.layerId}] Error setting up layer:`,e),!1}},d=e=>{s!==e&&(f(),s=e,c=()=>{u()},e.on(`style.load`,c),l=()=>{if(o.value){l&&s&&s.off(`idle`,l),l=null;return}u()},e.on(`idle`,l),u())},f=()=>{s&&(c&&s.off(`style.load`,c),l&&s.off(`idle`,l)),s=null,c=null,l=null},p=()=>{let e=a();if(e)try{let t=r.before;e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.removeSource(r.sourceId),e.addSource(r.sourceId,r.source);let n={...r.layer,id:r.layerId,type:`raster`,source:r.sourceId};t&&e.getLayer(t)?e.addLayer(n,t):e.addLayer(n)}catch(e){console.error(`Error updating Raster source:`,e)}};return k(()=>r.source.tiles?.[0],(e,t)=>{e!==t&&p()}),k(()=>r.layer,()=>{let e=a();if(e)try{if(e.getLayer(r.layerId)){let t=r.layer.paint||{};Object.entries(t).forEach(([t,n])=>{e.setPaintProperty(r.layerId,t,n)});let n=r.layer.layout||{};Object.entries(n).forEach(([t,n])=>{e.setLayoutProperty(r.layerId,t,n)})}}catch(e){console.error(`Error updating Raster layer:`,e)}},{deep:!0}),k(i,e=>{e?d(e):(f(),o.value=!1)},{immediate:!0}),k(()=>r.layer.layout?.visibility,e=>{let t=a();if(t)if(t.getLayer(r.layerId))try{t.setLayoutProperty(r.layerId,`visibility`,e),e===`visible`&&r.before&&t.moveLayer(r.layerId,r.before)}catch(e){console.error(`[${r.layerId}] Error updating visibility:`,e)}else try{t.addLayer(r.layer,r.before)}catch(e){console.error(`[${r.layerId}] Error adding layer:`,e)}},{immediate:!0}),k(()=>r.before,e=>{let t=a();if(!(!t||!t.getLayer(r.layerId))&&r.layer.layout?.visibility===`visible`)try{console.log(`[${r.layerId}] Moving layer before:`,e),t.moveLayer(r.layerId,e)}catch(e){console.error(`[${r.layerId}] Error moving layer:`,e)}}),v(()=>{u()}),_(()=>{f()}),(e,t)=>T(e.$slots,`default`)}}),J=[`click`,`dblclick`,`mousedown`,`mouseup`,`mousemove`,`mouseenter`,`mouseleave`,`mouseover`,`mouseout`,`contextmenu`,`touchstart`,`touchend`,`touchcancel`],Y=`error.load.idle.remove.render.resize.webglcontextlost.webglcontextrestored.dataloading.data.tiledataloading.sourcedataloading.styledataloading.sourcedata.styledata.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`.split(`.`),X=[`dragstart`,`drag`,`dragend`],Z=[`click`,`mouseenter`,`mouseleave`],Q=[`open`,`close`],Be=f({__name:`VLayerMaplibreVector`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},emits:[...J],setup(e,{emit:r}){let i=e,a=r,o=t(n),s=()=>o.value||null,c=C(!1),l=null,u=null,d=null,f=()=>{if(c.value)return!0;let e=s();if(!e||!e.isStyleLoaded())return!1;try{return e.getSource(i.sourceId)||e.addSource(i.sourceId,i.source),e.getLayer(i.layerId)||(i.layer.layout?.visibility===`visible`?e.addLayer(i.layer,i.before):e.addLayer(i.layer)),y(e),c.value=!0,!0}catch(e){return console.error(`[${i.layerId}] Error setting up layer:`,e),!1}},p=e=>{l!==e&&(m(),l=e,u=()=>{f()},e.on(`style.load`,u),d=()=>{if(c.value){d&&l&&l.off(`idle`,d),d=null;return}f()},e.on(`idle`,d),f())},m=()=>{l&&(u&&l.off(`style.load`,u),d&&l.off(`idle`,d)),l=null,u=null,d=null},h=()=>{let e=s();if(e)try{let t=e.getSource(i.sourceId);if(t&&JSON.stringify(t.serialize())!==JSON.stringify(i.source)){e.getLayer(i.layerId)&&e.removeLayer(i.layerId),e.removeSource(i.sourceId),e.addSource(i.sourceId,i.source);let t={...i.layer,id:i.layerId,source:i.sourceId};e.addLayer(t,i.before)}}catch(e){console.error(`Error updating vector source:`,e)}},g=()=>{let e=s();if(e)try{if(e.getLayer(i.layerId)){let t=e.getLayer(i.layerId),n=t?.paint||{},r=t?.layout||{};Object.entries(i.layer.paint||{}).forEach(([t,r])=>{JSON.stringify(n[t])!==JSON.stringify(r)&&e.setPaintProperty(i.layerId,t,r)}),Object.entries(i.layer.layout||{}).forEach(([t,n])=>{JSON.stringify(r[t])!==JSON.stringify(n)&&e.setLayoutProperty(i.layerId,t,n)})}}catch(e){console.error(`Error updating vector layer:`,e)}},y=e=>{if(e)try{J.forEach(t=>{e.on(t,i.layerId,n=>{t===`mousemove`&&(e.getCanvas().style.cursor=`pointer`),t===`mouseleave`&&(e.getCanvas().style.cursor=``),a(t,n)})})}catch(e){console.error(`Error setting up layer events:`,e)}};return k(o,e=>{e?p(e):(m(),c.value=!1)},{immediate:!0}),k(()=>JSON.stringify(i.source.tiles),(e,t)=>{e!==t&&h()}),k(()=>({paint:i.layer.paint,layout:i.layer.layout?{...i.layer.layout,visibility:void 0}:void 0}),(e,t)=>{JSON.stringify(e)!==JSON.stringify(t)&&g()},{deep:!0}),k(()=>i.layer.layout?.visibility,e=>{let t=s();if(t)if(t.getLayer(i.layerId))try{t.setLayoutProperty(i.layerId,`visibility`,e),e===`visible`&&i.before&&setTimeout(()=>{t.moveLayer(i.layerId,i.before)},0)}catch(e){console.error(`[${i.layerId}] Error updating visibility:`,e)}else try{t.getSource(i.sourceId)||t.addSource(i.sourceId,i.source),t.addLayer(i.layer,i.before)}catch(e){console.error(`[${i.layerId}] Error adding layer:`,e)}},{immediate:!0}),k(()=>i.before,e=>{let t=s();if(!(!t||!t.getLayer(i.layerId))&&i.layer.layout?.visibility===`visible`)try{t.moveLayer(i.layerId,e)}catch(e){console.error(`Error reordering vector layer ${i.layerId}:`,e)}}),k(()=>i.layer.layout?.visibility,e=>{let t=s();if(t)if(t.getLayer(i.layerId))try{t.setLayoutProperty(i.layerId,`visibility`,e)}catch(e){console.error(`[${i.layerId}] Error updating visibility:`,e)}else try{t.getSource(i.sourceId)||t.addSource(i.sourceId,i.source),t.addLayer(i.layer,i.before)}catch(e){console.error(`[${i.layerId}] Error adding layer:`,e)}},{immediate:!0}),v(()=>{f()}),_(()=>{m()}),(e,t)=>T(e.$slots,`default`)}}),Ve=f({__name:`VLayerMaplibreVideo`,props:{sourceId:{type:String,default:`maplibre.gl-video-source`,required:!0},layerId:{type:String,default:`maplibre.gl-video-layer`,required:!0},source:{type:Object,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(e){let r=e,i=t(n),a=()=>i.value||null,o=C(!1),s=null,c=null,l=null,u=()=>{if(o.value)return!0;let e=a();if(!e||!e.isStyleLoaded())return!1;try{if(e.getSource(r.sourceId)||e.addSource(r.sourceId,r.source),!e.getLayer(r.layerId)){let t={...r.layer,id:r.layerId,source:r.sourceId};e.addLayer(t,r.before)}return o.value=!0,!0}catch(e){return console.error(`Error adding Video layer:`,e),!1}},d=e=>{s!==e&&(f(),s=e,c=()=>{u()},e.on(`style.load`,c),l=()=>{if(o.value){l&&s&&s.off(`idle`,l),l=null;return}u()},e.on(`idle`,l),u())},f=()=>{s&&(c&&s.off(`style.load`,c),l&&s.off(`idle`,l)),s=null,c=null,l=null};return k(()=>r.source,()=>{let e=a();if(e)try{let t=e.getSource(r.sourceId);if(t){e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId),e.addSource(r.sourceId,r.source);let n={...r.layer,id:r.layerId,source:r.sourceId};if(e.addLayer(n,r.before),t.getVideo){let e=t.getVideo();e&&e.play().catch(e=>{console.error(`Error playing video:`,e)})}}}catch(e){console.error(`Error updating Video source:`,e)}},{deep:!0}),k(()=>r.layer,()=>{let e=a();if(e)try{e.getLayer(r.layerId)&&(Object.entries(r.layer.paint||{}).forEach(([t,n])=>{e.setPaintProperty(r.layerId,t,n)}),Object.entries(r.layer.layout||{}).forEach(([t,n])=>{e.setLayoutProperty(r.layerId,t,n)}))}catch(e){console.error(`Error updating Video layer:`,e)}},{deep:!0}),k(i,e=>{e?d(e):(f(),o.value=!1)},{immediate:!0}),v(()=>{u()}),_(()=>{f();let e=a();if(e)try{let t=e.getSource(r.sourceId);if(t?.getVideo){let e=t.getVideo();e&&(e.pause(),e.remove())}e.getLayer(r.layerId)&&e.removeLayer(r.layerId),e.getSource(r.sourceId)&&e.removeSource(r.sourceId)}catch(e){console.error(`Error cleaning up Video layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),He=f({__name:`VLayerMaplibrePmtile`,props:{sourceId:{type:String,default:`maplibre.gl-pmtile-source`,required:!0},layerId:{type:String,default:`maplibre.gl-pmtile-layer`,required:!0},url:{type:String,required:!0},layer:{type:Object,default:()=>({}),required:!0},before:{type:String,default:``,required:!1}},setup(t){let n=t,r=p(e);if(!r)throw Error(`Protocol not provided`);let i=C({type:`raster`,url:`pmtiles://${n.url}`,tileSize:512,volatile:!0});return v(async()=>{let e=new B(n.url);r.add(e)}),(e,n)=>(x(),c(q,{"source-id":t.sourceId,"layer-id":t.layerId,source:i.value,layer:{...t.layer,type:`raster`},before:t.before},null,8,[`source-id`,`layer-id`,`source`,`layer`,`before`]))}}),Ue=f({__name:`VLayerMaplibreCluster`,props:{sourceId:{default:`cluster-source`},baseLayerId:{default:`cluster`},source:{},visibility:{type:Boolean,default:!0},clusterPaint:{default:()=>({colors:[`#51bbd6`,`#f1f075`,`#f28cb1`],radii:[20,30,40],breakpoints:[100,750]})},unclusteredPaint:{default:()=>({color:`#51bbd6`,radius:6})},textPaint:{default:()=>({color:`#ffffff`,font:[`DIN Offc Pro Medium`,`Arial Unicode MS Bold`],size:12})}},emits:[`cluster-click`,`point-click`],setup(e,{emit:r}){let i=e,a=r,o=t(n),c=C(!1),l=s(()=>`${i.baseLayerId}-clusters`),u=s(()=>`${i.baseLayerId}-cluster-count`),d=s(()=>`${i.baseLayerId}-unclustered-point`),f=()=>o.value||null,p=e=>typeof e==`string`?!1:e&&typeof e==`object`&&`type`in e&&e.type===`FeatureCollection`&&`features`in e?e.features.length>0:!1,m=()=>{let e=f();if(!(!e||!e.isStyleLoaded()))try{if(!e.getSource(i.sourceId))console.log(`Adding clustered source: ${i.sourceId}`),e.addSource(i.sourceId,{...i.source,cluster:!0,clusterMaxZoom:14,clusterRadius:50});else{let t=e.getSource(i.sourceId);t&&`setData`in t&&t.setData(i.source.data)}e.getLayer(l.value)||(console.log(`Adding clusters layer: ${l.value}`),e.addLayer({id:l.value,type:`circle`,source:i.sourceId,filter:[`has`,`point_count`],paint:{"circle-color":[`step`,[`get`,`point_count`],i.clusterPaint.colors[0],i.clusterPaint.breakpoints[0],i.clusterPaint.colors[1],i.clusterPaint.breakpoints[1],i.clusterPaint.colors[2]],"circle-radius":[`step`,[`get`,`point_count`],i.clusterPaint.radii[0],i.clusterPaint.breakpoints[0],i.clusterPaint.radii[1],i.clusterPaint.breakpoints[1],i.clusterPaint.radii[2]],"circle-stroke-width":2,"circle-stroke-color":`#ffffff`,"circle-opacity":.9},layout:{visibility:i.visibility?`visible`:`none`}})),e.getLayer(u.value)||(console.log(`Adding cluster count layer: ${u.value}`),e.addLayer({id:u.value,type:`symbol`,source:i.sourceId,filter:[`has`,`point_count`],layout:{"text-field":`{point_count_abbreviated}`,"text-font":i.textPaint.font,"text-size":i.textPaint.size,visibility:i.visibility?`visible`:`none`},paint:{"text-color":i.textPaint.color}})),e.getLayer(d.value)||(console.log(`Adding unclustered points layer: ${d.value}`),e.addLayer({id:d.value,type:`circle`,source:i.sourceId,filter:[`!`,[`has`,`point_count`]],paint:{"circle-color":i.unclusteredPaint.color,"circle-radius":i.unclusteredPaint.radius,"circle-stroke-width":2,"circle-stroke-color":`#ffffff`,"circle-opacity":.95},layout:{visibility:i.visibility?`visible`:`none`}})),console.log(`All cluster layers added for ${i.baseLayerId}`),y(e)}catch(e){console.error(`Error adding cluster layers:`,e)}},h=()=>{let e=f();if(e)try{let t=e.getSource(i.sourceId);t&&`setData`in t?(console.log(`Updating source ${i.sourceId} with data`),t.setData(i.source.data),setTimeout(()=>{m()},100)):t||m()}catch(e){console.error(`Error updating source:`,e)}},g=e=>{let t=f();if(!t)return;let n=e?`visible`:`none`;[l.value,u.value,d.value].forEach(e=>{t.getLayer(e)&&t.setLayoutProperty(e,`visibility`,n)})},y=e=>{if(e)try{e.on(`click`,l.value,e=>{e.features&&e.features.length>0&&a(`cluster-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`click`,d.value,e=>{e.features&&e.features.length>0&&a(`point-click`,{features:e.features,coordinates:e.lngLat})}),[l.value,d.value].forEach(t=>{e.on(`mouseenter`,t,()=>{e.getCanvas().style.cursor=`pointer`}),e.on(`mouseleave`,t,()=>{e.getCanvas().style.cursor=``})})}catch(e){console.error(`Error setting up layer events:`,e)}},b=e=>{e&&(e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?(c.value=!0,p(i.source.data)&&m()):(c.value=!1,setTimeout(t,200))};t()}),e.isStyleLoaded()&&(c.value=!0,p(i.source.data)&&m()))};return k(()=>i.source.data,e=>{if(p(e)){let e=f();e?.isStyleLoaded()&&(e.getSource(i.sourceId)?h():m())}},{deep:!0,immediate:!0}),k(()=>i.visibility,g),k(o,e=>{e&&b(e)},{immediate:!0}),v(()=>{f()?.isStyleLoaded()&&p(i.source.data)&&m()}),_(()=>{let e=f();if(e)try{[l.value,d.value].forEach(t=>{e.off(`click`,t,()=>{}),e.off(`mouseenter`,t,()=>{}),e.off(`mouseleave`,t,()=>{})}),[l.value,u.value,d.value].forEach(t=>{e.getLayer(t)&&e.removeLayer(t)}),e.getSource(i.sourceId)&&e.removeSource(i.sourceId)}catch(e){console.error(`Error cleaning up cluster layers:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),We=f({__name:`VLayerMaplibreRoute`,props:{id:{default:()=>`route-${Math.random().toString(36).slice(2,9)}`},coordinates:{},color:{default:`#4285F4`},width:{default:4},opacity:{default:1},lineCap:{default:`round`},lineJoin:{default:`round`},visible:{type:Boolean,default:!0},interactive:{type:Boolean,default:!0},before:{default:``},dashArray:{},blur:{default:0}},emits:[`click`,`mouseenter`,`mouseleave`],setup(e,{emit:r}){let i=e,a=r,o=t(n),c=C(!1),l=s(()=>`${i.id}-source`),u=s(()=>`${i.id}-layer`),d=s(()=>({type:`FeatureCollection`,features:i.coordinates.length>=2?[{type:`Feature`,properties:{},geometry:{type:`LineString`,coordinates:i.coordinates}}]:[]})),f=()=>o.value||null,p=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?c.value=!0:(c.value=!1,setTimeout(t,200))};t()})},m=()=>{let e=f();if(!(!e||!e.isStyleLoaded())&&!(i.coordinates.length<2))try{if(e.getSource(l.value)||e.addSource(l.value,{type:`geojson`,data:d.value}),!e.getLayer(u.value)){let t={id:u.value,type:`line`,source:l.value,layout:{"line-cap":i.lineCap,"line-join":i.lineJoin,visibility:i.visible?`visible`:`none`},paint:{"line-color":i.color,"line-width":i.width,"line-opacity":i.opacity,...i.blur>0&&{"line-blur":i.blur},...i.dashArray&&{"line-dasharray":i.dashArray}}};e.addLayer(t,i.before||void 0)}}catch(e){console.error(`Error adding route layer:`,e)}},h=()=>{let e=f();if(e)try{let t=e.getSource(l.value);t&&`setData`in t?t.setData(d.value):!t&&i.coordinates.length>=2&&m()}catch(e){console.error(`Error updating route source:`,e)}},g=()=>{let e=f();if(!(!e||!e.getLayer(u.value)))try{e.setPaintProperty(u.value,`line-color`,i.color),e.setPaintProperty(u.value,`line-width`,i.width),e.setPaintProperty(u.value,`line-opacity`,i.opacity),i.blur>0&&e.setPaintProperty(u.value,`line-blur`,i.blur),i.dashArray&&e.setPaintProperty(u.value,`line-dasharray`,i.dashArray),e.setLayoutProperty(u.value,`line-cap`,i.lineCap),e.setLayoutProperty(u.value,`line-join`,i.lineJoin),e.setLayoutProperty(u.value,`visibility`,i.visible?`visible`:`none`)}catch(e){console.error(`Error updating route layer style:`,e)}},y=e=>{if(!(!e||!i.interactive))try{e.on(`click`,u.value,e=>{a(`click`,{coordinates:e.lngLat})}),e.on(`mouseenter`,u.value,()=>{e.getCanvas().style.cursor=`pointer`,a(`mouseenter`)}),e.on(`mouseleave`,u.value,()=>{e.getCanvas().style.cursor=``,a(`mouseleave`)})}catch(e){console.error(`Error setting up route layer events:`,e)}};return k(()=>i.coordinates,()=>{let e=f();e?.isStyleLoaded()&&(e.getSource(l.value)?h():m())},{deep:!0}),k(()=>[i.color,i.width,i.opacity,i.lineCap,i.lineJoin,i.visible,i.blur,i.dashArray],()=>g(),{deep:!0}),k(o,e=>{e&&(p(e),e.isStyleLoaded()&&(c.value=!0))},{immediate:!0}),k(c,e=>{if(e&&i.coordinates.length>=2){let e=f();e&&(m(),y(e))}}),v(()=>{try{let e=f();e?.isStyleLoaded()&&i.coordinates.length>=2&&(m(),y(e))}catch(e){console.error(`Error mounting route layer:`,e)}}),_(()=>{let e=f();if(e)try{e.getLayer(u.value)&&e.removeLayer(u.value),e.getSource(l.value)&&e.removeSource(l.value)}catch(e){console.error(`Error cleaning up route layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}}),Ge=f({__name:`VLayerMaplibreIsochrone`,props:{id:{default:()=>`isochrone-${Math.random().toString(36).slice(2,9)}`},data:{},fillOpacity:{default:.4},lineWidth:{default:2},lineOpacity:{default:.8},visible:{type:Boolean,default:!0},interactive:{type:Boolean,default:!0},before:{default:``},reverseOrder:{type:Boolean,default:!0}},emits:[`click`,`mouseenter`,`mouseleave`],setup(e,{emit:r}){let i=e,a=r,o=t(n),c=C(!1),l=C(!1),u=s(()=>`${i.id}-source`),d=s(()=>`${i.id}-fill`),f=s(()=>`${i.id}-line`),p=s(()=>!i.data||!i.data.features||i.data.features.length===0?null:{type:`FeatureCollection`,features:(i.reverseOrder?[...i.data.features].reverse():i.data.features).map(e=>({...e,properties:{...e.properties,fillColor:e.properties.color.startsWith(`#`)?e.properties.color:`#${e.properties.color}`}}))}),h=()=>o.value||null,g=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?c.value=!0:(c.value=!1,setTimeout(t,200))};t()})},y=()=>{let e=h();if(!e||!e.isStyleLoaded())return;let t=p.value;if(t)try{if(e.getSource(u.value)||e.addSource(u.value,{type:`geojson`,data:t}),!e.getLayer(d.value)){let t={id:d.value,type:`fill`,source:u.value,layout:{visibility:i.visible?`visible`:`none`},paint:{"fill-color":[`get`,`fillColor`],"fill-opacity":i.fillOpacity}};e.addLayer(t,i.before||void 0)}if(!e.getLayer(f.value)){let t={id:f.value,type:`line`,source:u.value,layout:{visibility:i.visible?`visible`:`none`},paint:{"line-color":[`get`,`fillColor`],"line-width":i.lineWidth,"line-opacity":i.lineOpacity}};e.addLayer(t,i.before||void 0)}}catch(e){console.error(`Error adding isochrone layers:`,e)}},b=()=>{let e=h();if(e)try{let t=e.getSource(u.value),n=p.value;t&&`setData`in t?n&&t.setData(n):!t&&n&&y()}catch(e){console.error(`Error updating isochrone source:`,e)}},x=()=>{let e=h();if(e)try{e.getLayer(d.value)&&(e.setPaintProperty(d.value,`fill-opacity`,i.fillOpacity),e.setLayoutProperty(d.value,`visibility`,i.visible?`visible`:`none`)),e.getLayer(f.value)&&(e.setPaintProperty(f.value,`line-width`,i.lineWidth),e.setPaintProperty(f.value,`line-opacity`,i.lineOpacity),e.setLayoutProperty(f.value,`visibility`,i.visible?`visible`:`none`))}catch(e){console.error(`Error updating isochrone layer style:`,e)}},S=e=>{if(!(!e||!i.interactive))try{e.on(`click`,d.value,e=>{e.features&&e.features.length>0&&a(`click`,{feature:e.features[0],coordinates:e.lngLat})}),e.on(`mouseenter`,d.value,t=>{e.getCanvas().style.cursor=`pointer`,t.features&&t.features.length>0&&a(`mouseenter`,t.features[0])}),e.on(`mouseleave`,d.value,()=>{e.getCanvas().style.cursor=``,a(`mouseleave`)})}catch(e){console.error(`Error setting up isochrone layer events:`,e)}},w=async()=>{if(l.value)return;let e=h();!e||!e.isStyleLoaded()||p.value&&(await m(),!l.value&&(y(),S(e),l.value=!0))};return k(()=>i.data,()=>{let e=h();e?.isStyleLoaded()&&(e.getSource(u.value)?b():y())},{deep:!0}),k(()=>[i.fillOpacity,i.lineWidth,i.lineOpacity,i.visible],()=>x(),{deep:!0}),k(c,e=>{e&&w()}),k(o,e=>{e&&(g(e),e.isStyleLoaded()&&(c.value=!0,w()))},{immediate:!0}),v(()=>{m(()=>{w()})}),_(()=>{let e=h();if(e)try{e.getLayer(f.value)&&e.removeLayer(f.value),e.getLayer(d.value)&&e.removeLayer(d.value),e.getSource(u.value)&&e.removeSource(u.value)}catch(e){console.error(`Error cleaning up isochrone layer:`,e)}}),(e,t)=>T(e.$slots,`default`)}});var Ke=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const qe=[`id`];var $=Ke(f({__name:`VMap`,props:{options:{default:()=>({container:`map`})},supportPmtiles:{type:Boolean,default:!1},projection:{default:`mercator`}},emits:[`loaded`,...Y],setup(t,{emit:r}){let a=t,o=r;if(a.supportPmtiles){let t=new V({metadata:!0});j.addProtocol(`pmtiles`,t.tile),S(e,t)}let s=E(null),c=C(!1),d=C(Y);S(n,s),i(s,{globe:a.projection===`globe`}),v(()=>{s.value=new F(a.options),c.value=!0,f()});let f=()=>{s.value&&d.value.forEach(e=>{s.value?.on(e,t=>{switch(e){case`load`:o(`loaded`,s.value);break;default:o(e,t);break}})})};return(e,n)=>(x(),u(`div`,{id:`${t.options?.container}`,class:`v-map-container`},[c.value?T(e.$slots,`default`,{key:0},()=>[T(e.$slots,`default`,{},void 0,!0)],!0):l(`v-if`,!0)],8,qe))}}),[[`__scopeId`,`data-v-2632eb0f`]]);const Je=[`id`],Ye=f({__name:`VPopup`,props:{options:{default:()=>({})},coordinates:{default:()=>({})},marker:{default:()=>({})}},emits:[`added`,`removed`,`open`,`close`],setup(e,{emit:r}){let i=e,a=r,o=t(n),s=new R(i.options),c=C(!0),l=C(null),d=()=>o.value||null,f=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?c.value=!0:(c.value=!1,setTimeout(t,200))};t()})},p=()=>{try{l.value&&s.setDOMContent(l.value)}catch(e){console.error(`Error setting popup content:`,e)}},m=()=>{try{s.setLngLat(i.coordinates)}catch(e){console.error(`Error setting popup coordinates:`,e)}},h=()=>{let e=d();if(e)try{`setPopup`in i.marker?i.marker.setPopup(s):s.addTo(e),a(`added`,{popup:s})}catch(e){console.error(`Error adding popup to marker:`,e)}},g=()=>{try{s.remove(),a(`removed`)}catch(e){console.error(`Error removing popup:`,e)}},y=()=>{try{Q.forEach(e=>{s.on(e,()=>{a(e)})})}catch(e){console.error(`Error setting up popup events:`,e)}},b=()=>{try{Q.forEach(e=>{s.off(e,()=>{a(e)})})}catch(e){console.error(`Error removing popup events:`,e)}};return k(o,e=>{e&&f(e)},{immediate:!0}),k(()=>i.coordinates,()=>{m()},{deep:!0}),v(()=>{if(c.value)try{p(),m(),h(),y()}catch(e){console.error(`Error initializing popup:`,e)}else g(),b()}),_(()=>{g(),b()}),(e,t)=>(x(),u(`section`,{id:`popup-${Date.now()}`,ref_key:`content`,ref:l},[T(e.$slots,`default`)],8,Je))}}),Xe=[`id`],Ze=f({__name:`VMarker`,props:{coordinates:{},options:{default:()=>({})},popupOptions:{default:()=>({})},cursor:{default:`pointer`}},emits:[`added`,`update:coordinates`,`removed`,...X,...Z],setup(e,{emit:r}){let i=O(),a=e,o=r,s=t(n),d=C(null),f=C(!0),p=C(!1),m=C(null),h=()=>s.value||null,g=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?f.value=!0:(f.value=!1,setTimeout(t,200))};t()})},y=e=>{e instanceof HTMLElement&&(m.value=e)},b=e=>{try{e.setLngLat(a.coordinates)}catch(e){console.error(`Error setting marker coordinates:`,e)}},S=e=>{try{e.getElement().style.cursor=a.cursor||`default`}catch(e){console.error(`Error setting cursor:`,e)}},w=e=>{let t=h();if(t)try{e.addTo(t),o(`added`,{marker:e})}catch(e){console.error(`Error adding marker to map:`,e)}},E=e=>{try{e.remove(),o(`removed`)}catch(e){console.error(`Error removing marker from map:`,e)}},D=e=>{try{let t;X.forEach(n=>{e.on(n,e=>{n===`dragend`&&(t=Array.isArray(a.coordinates)?[e.target.getLngLat().lng,e.target.getLngLat().lat]:e.target.getLngLat(),o(`update:coordinates`,t)),o(n,e)})}),Z.forEach(t=>{e.getElement().addEventListener(t,e=>{o(t,e)})})}catch(e){console.error(`Error setting up marker events:`,e)}};k(d,e=>{p.value=e!==null&&`_map`in e}),k(s,e=>{e&&g(e)},{immediate:!0});let j=e=>{if(!(!f.value||d.value))try{d.value=new I({...a.options,element:e||void 0}),b(d.value),w(d.value),S(d.value),D(d.value)}catch(e){console.error(`Error initializing marker:`,e)}};return k(m,e=>{e&&!d.value&&j(e)}),v(()=>{i.markers||j()}),_(()=>{d.value&&E(d.value)}),(t,n)=>(x(),u(`section`,{id:`marker-${Date.now()}`,class:`absolute`},[T(t.$slots,`markers`,{setRef:y}),p.value&&t.$slots.default?(x(),c(Ye,{key:0,marker:d.value,options:e.popupOptions,coordinates:e.coordinates},{default:A(()=>[T(t.$slots,`default`)]),_:3},8,[`marker`,`options`,`coordinates`])):l(`v-if`,!0)],8,Xe))}});var Qe=$;export{H as VControlAttribution,U as VControlFullscreen,G as VControlGeolocate,ue as VControlLayer,Ce as VControlLayerGroup,Ie as VControlLegend,ee as VControlNavigation,te as VControlScale,Le as VLayerMaplibreCanvas,Ue as VLayerMaplibreCluster,Re as VLayerMaplibreGeojson,ze as VLayerMaplibreImage,Ge as VLayerMaplibreIsochrone,He as VLayerMaplibrePmtile,q as VLayerMaplibreRaster,We as VLayerMaplibreRoute,Be as VLayerMaplibreVector,Ve as VLayerMaplibreVideo,$ as VMap,Ze as VMarker,Ye as VPopup,Qe as default,r as requirePeer};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|