@geoql/v-maplibre 1.9.0 → 1.10.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.
Files changed (99) hide show
  1. package/README.md +26 -0
  2. package/dist/arc-sQuzag_9.js +2 -0
  3. package/dist/arc-sQuzag_9.js.map +1 -0
  4. package/dist/arrow-4ecDVUFv.js +2 -0
  5. package/dist/arrow-4ecDVUFv.js.map +1 -0
  6. package/dist/bitmap-C9wTsmdA.js +2 -0
  7. package/dist/bitmap-C9wTsmdA.js.map +1 -0
  8. package/dist/cog-BC2mhbA-.js +2 -0
  9. package/dist/cog-BC2mhbA-.js.map +1 -0
  10. package/dist/column-Dai69vdE.js +2 -0
  11. package/dist/column-Dai69vdE.js.map +1 -0
  12. package/dist/contour-BVSFeMXQ.js +2 -0
  13. package/dist/contour-BVSFeMXQ.js.map +1 -0
  14. package/dist/generic-DLtJwFOg.js +2 -0
  15. package/dist/generic-DLtJwFOg.js.map +1 -0
  16. package/dist/geoarrow-path-CV0aOugP.js +2 -0
  17. package/dist/geoarrow-path-CV0aOugP.js.map +1 -0
  18. package/dist/geoarrow-polygon-BjfqZpaf.js +2 -0
  19. package/dist/geoarrow-polygon-BjfqZpaf.js.map +1 -0
  20. package/dist/geoarrow-scatterplot-DxkqOIWR.js +2 -0
  21. package/dist/geoarrow-scatterplot-DxkqOIWR.js.map +1 -0
  22. package/dist/geoarrow-solid-polygon-LGavbdMg.js +2 -0
  23. package/dist/geoarrow-solid-polygon-LGavbdMg.js.map +1 -0
  24. package/dist/geoarrow-text-8HY70yYe.js +2 -0
  25. package/dist/geoarrow-text-8HY70yYe.js.map +1 -0
  26. package/dist/geoarrow-trips-Bqc-_N6F.js +2 -0
  27. package/dist/geoarrow-trips-Bqc-_N6F.js.map +1 -0
  28. package/dist/geohash-Bq6Va31-.js +2 -0
  29. package/dist/geohash-Bq6Va31-.js.map +1 -0
  30. package/dist/geojson-DmmblQfq.js +2 -0
  31. package/dist/geojson-DmmblQfq.js.map +1 -0
  32. package/dist/great-circle-B3wrKr2V.js +2 -0
  33. package/dist/great-circle-B3wrKr2V.js.map +1 -0
  34. package/dist/grid-cell-CTiUtStS.js +2 -0
  35. package/dist/grid-cell-CTiUtStS.js.map +1 -0
  36. package/dist/grid-d5GMfgA7.js +2 -0
  37. package/dist/grid-d5GMfgA7.js.map +1 -0
  38. package/dist/h3-cluster-BqU_KkMN.js +2 -0
  39. package/dist/h3-cluster-BqU_KkMN.js.map +1 -0
  40. package/dist/h3-hexagon-E-7rMATA.js +2 -0
  41. package/dist/h3-hexagon-E-7rMATA.js.map +1 -0
  42. package/dist/heatmap-CToABGhe.js +2 -0
  43. package/dist/heatmap-CToABGhe.js.map +1 -0
  44. package/dist/hexagon-B7QFHPOG.js +2 -0
  45. package/dist/hexagon-B7QFHPOG.js.map +1 -0
  46. package/dist/icon-dGkYJha7.js +2 -0
  47. package/dist/icon-dGkYJha7.js.map +1 -0
  48. package/dist/index.d.ts +270 -4747
  49. package/dist/index.js +1 -42
  50. package/dist/index.js.map +1 -1
  51. package/dist/line-BqRkZ9qg.js +2 -0
  52. package/dist/line-BqRkZ9qg.js.map +1 -0
  53. package/dist/mosaic-BdOpB_UM.js +43 -0
  54. package/dist/mosaic-BdOpB_UM.js.map +1 -0
  55. package/dist/multi-cog-RzUpiduc.js +2 -0
  56. package/dist/multi-cog-RzUpiduc.js.map +1 -0
  57. package/dist/mvt-DKjRIMv0.js +2 -0
  58. package/dist/mvt-DKjRIMv0.js.map +1 -0
  59. package/dist/path-QpGANcDO.js +2 -0
  60. package/dist/path-QpGANcDO.js.map +1 -0
  61. package/dist/point-cloud-CwNI1kj4.js +2 -0
  62. package/dist/point-cloud-CwNI1kj4.js.map +1 -0
  63. package/dist/polygon-CnEkEdCz.js +2 -0
  64. package/dist/polygon-CnEkEdCz.js.map +1 -0
  65. package/dist/quadkey-DqvKjWw3.js +2 -0
  66. package/dist/quadkey-DqvKjWw3.js.map +1 -0
  67. package/dist/s2-BHisRsYi.js +2 -0
  68. package/dist/s2-BHisRsYi.js.map +1 -0
  69. package/dist/scatterplot-DtFjVt95.js +2 -0
  70. package/dist/scatterplot-DtFjVt95.js.map +1 -0
  71. package/dist/scenegraph-DfsmFuLy.js +2 -0
  72. package/dist/scenegraph-DfsmFuLy.js.map +1 -0
  73. package/dist/screen-grid-C-Ge9TH9.js +2 -0
  74. package/dist/screen-grid-C-Ge9TH9.js.map +1 -0
  75. package/dist/simple-mesh-CwDv4_8p.js +2 -0
  76. package/dist/simple-mesh-CwDv4_8p.js.map +1 -0
  77. package/dist/solid-polygon-DS3vtguq.js +2 -0
  78. package/dist/solid-polygon-DS3vtguq.js.map +1 -0
  79. package/dist/starfield-DnXurhKv.js +2 -0
  80. package/dist/starfield-DnXurhKv.js.map +1 -0
  81. package/dist/symbols-CVfar3bo.js +2 -0
  82. package/dist/symbols-CVfar3bo.js.map +1 -0
  83. package/dist/terrain-Vnqb4j1R.js +2 -0
  84. package/dist/terrain-Vnqb4j1R.js.map +1 -0
  85. package/dist/text-BuHw5Jdf.js +2 -0
  86. package/dist/text-BuHw5Jdf.js.map +1 -0
  87. package/dist/tile-3d-CAbU8BnN.js +2 -0
  88. package/dist/tile-3d-CAbU8BnN.js.map +1 -0
  89. package/dist/tile-B03s67tw.js +2 -0
  90. package/dist/tile-B03s67tw.js.map +1 -0
  91. package/dist/trips-Cy2yQXp7.js +2 -0
  92. package/dist/trips-Cy2yQXp7.js.map +1 -0
  93. package/dist/wind-particle-C1OQmbu7.js +2 -0
  94. package/dist/wind-particle-C1OQmbu7.js.map +1 -0
  95. package/dist/wms-toc-Os2F.js +2 -0
  96. package/dist/wms-toc-Os2F.js.map +1 -0
  97. package/dist/zarr-CGUO8nTA.js +2 -0
  98. package/dist/zarr-CGUO8nTA.js.map +1 -0
  99. package/package.json +13 -8
package/dist/index.js CHANGED
@@ -1,43 +1,2 @@
1
- import{Fragment as e,computed as t,createBlock as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,defineComponent as o,inject as s,markRaw as c,nextTick as l,normalizeClass as u,normalizeStyle as d,onBeforeUnmount as f,onMounted as p,onUnmounted as m,onUpdated as h,openBlock as g,provide as _,ref as v,renderList as y,renderSlot as b,shallowRef as x,toDisplayString as S,toRaw as C,useSlots as w,watch as T,withCtx as E}from"vue";import D,{AttributionControl as O,FullscreenControl as k,GeolocateControl as A,Map as j,Marker as M,NavigationControl as N,Popup as ee,ScaleControl as P}from"maplibre-gl";import{PMTiles as F,Protocol as I}from"pmtiles";import{MaplibreStarfieldLayer as L}from"@geoql/maplibre-gl-starfield";import{ArcLayer as R,BitmapLayer as z,ColumnLayer as te,GeoJsonLayer as ne,GridCellLayer as re,IconLayer as ie,LineLayer as ae,PathLayer as oe,PointCloudLayer as se,PolygonLayer as ce,ScatterplotLayer as le,SolidPolygonLayer as ue,TextLayer as de}from"@deck.gl/layers";import{ContourLayer as fe,GridLayer as pe,HeatmapLayer as me,HexagonLayer as he,ScreenGridLayer as ge}from"@deck.gl/aggregation-layers";import{GeohashLayer as _e,GreatCircleLayer as ve,H3ClusterLayer as ye,H3HexagonLayer as be,MVTLayer as xe,QuadkeyLayer as Se,S2Layer as Ce,TerrainLayer as we,Tile3DLayer as Te,TileLayer as Ee,TripsLayer as De,_WMSLayer as Oe}from"@deck.gl/geo-layers";import{ScenegraphLayer as ke,SimpleMeshLayer as Ae}from"@deck.gl/mesh-layers";import{WindParticleLayer as je,WindParticleLayer as Me,createWindDataFromOpenWeatherMap as Ne,generateWindTexture as Pe,generateWindTexture as Fe}from"maplibre-gl-wind";function B(e,t){let n=s(e,t);if(!n)throw Error(`Could not resolve ${e.description}`);return n}async function V(e,t,n){try{return await t()}catch(t){let r=n??`pnpm add ${e}`,i=t instanceof Error?t.message:String(t),a=Error(`[@geoql/v-maplibre] Missing optional peer dependency "${e}". Install it with: ${r}\nOriginal error: ${i}`);throw t instanceof Error&&t.stack&&(a.stack=`${a.message}\nCaused by: ${t.stack}`),a}}const H=Symbol(`DeckOverlay`),U=Symbol(`DeckLayers`);function W(e,t={}){let{interleaved:n=!1}=t,r=s(H,null),i=s(U,null);if(r&&i)return{overlay:r,isInitialized:v(!0),layers:v([]),initOverlay:()=>Promise.resolve(),...i};let a=x(null),o=v([]),c=v(!1),l=null,u=null;function d(e){u=e=>{if(!a.value)return;let t=a.value.pickObject({x:e.point.x,y:e.point.y,radius:5});if(!t?.layer)return;let n=t.layer.props.onClick;n&&n(t,e)},e.on(`click`,u)}function f(e){u&&e&&e.off(`click`,u),u=null}let p=()=>{let t=e.value;return!t||a.value?Promise.resolve():l||(l=V(`@deck.gl/mapbox`,()=>import(`@deck.gl/mapbox`),`pnpm add @deck.gl/core @deck.gl/mapbox`).then(({MapboxOverlay:e})=>{a.value||(a.value=new e({interleaved:n,layers:[]}),t.addControl(a.value),d(t),c.value=!0)}).catch(e=>{console.error(`[deck.gl] Error initializing overlay:`,e),l=null}),l)},h=e=>e.id,g=()=>{a.value&&a.value.setProps({layers:o.value})},y=e=>{let t=h(e),n=o.value.findIndex(e=>h(e)===t);n>=0?o.value=[...o.value.slice(0,n),e,...o.value.slice(n+1)]:o.value=[...o.value,e],a.value?g():p().then(g)},b=e=>{o.value=o.value.filter(t=>h(t)!==e),g()},S=(e,t)=>{let n=o.value.findIndex(t=>h(t)===e);n>=0?(o.value=[...o.value.slice(0,n),t,...o.value.slice(n+1)],g()):y(t)},C=()=>[...o.value];return T(e,e=>{e&&!a.value&&(e.isStyleLoaded()?p():e.once(`style.load`,()=>{p()}))},{immediate:!0}),_(H,a),_(U,{addLayer:y,removeLayer:b,updateLayer:S,getLayers:C}),m(()=>{if(f(e.value),a.value&&e.value)try{e.value.removeControl(a.value),a.value.finalize()}catch(e){console.error(`[deck.gl] Error cleaning up overlay:`,e)}a.value=null,o.value=[],c.value=!1,l=null}),{overlay:a,layers:o,isInitialized:c,initOverlay:p,addLayer:y,removeLayer:b,updateLayer:S,getLayers:C}}function Ie(){let e=s(U,null),t=s(H,null);if(!e)throw Error(`[deck.gl] useDeckLayers must be used within a component that has initialized useDeckOverlay`);return{...e,overlay:t}}const G=Symbol(`Map`),K=Symbol(`Protocol`),Le=o({__name:`VControlAttribution`,props:{options:{default:void 0},position:{default:`bottom-right`}},setup(e){let t={compact:!1,customAttribution:void 0},n=e,r=w(),i=B(G);p(()=>{a()});let a=()=>{let e=t;n.options&&(e={...n.options}),r&&r.default?.()&&(e.customAttribution=r.default()[0].children);let a=new O(e);i.value.addControl(a,n.position)};return(e,t)=>b(e.$slots,`default`)}}),Re=o({__name:`VControlFullscreen`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let t={container:void 0},n=e,r=B(G);p(()=>{i()});let i=()=>{let e=new k(n.options||t);r.value.addControl(e,n.position)};return()=>{}}}),q=[`geolocate`,`error`,`outofmaxbounds`,`trackuserlocationstart`,`trackuserlocationend`],ze=o({__name:`VControlGeolocate`,props:{options:{default:void 0},position:{default:`top-left`}},emits:q,setup(e,{emit:t}){let n={fitBoundsOptions:{linear:!1,offset:[0,0],maxZoom:22},positionOptions:{enableHighAccuracy:!0,maximumAge:0,timeout:6e3},trackUserLocation:!0,showAccuracyCircle:!0,showUserLocation:!0},r=e,i=t,a=B(G);p(()=>{o()});let o=()=>{let e=new A(r.options||n);a.value.addControl(e,r.position),q.forEach(t=>{e.on(t,()=>{i(t)})})};return()=>{}}}),Be=o({__name:`VControlNavigation`,props:{options:{default:void 0},position:{default:`top-left`}},setup(e){let t={showCompass:!0,showZoom:!0,visualizePitch:!0},n=e,r=s(G);p(()=>{i()});let i=()=>{let e=new N(n.options||t);r.value.addControl(e,n.position)};return()=>{}}}),Ve=o({__name:`VControlScale`,props:{options:{default:void 0},position:{default:`bottom-left`}},setup(e){let t={maxWidth:100,unit:`metric`},n=e,r=s(G);p(()=>{i()});let i=()=>{let e=new P(n.options||t);r?.value.addControl(e,n.position)};return(e,t)=>b(e.$slots,`default`)}}),J=[`load`,`loadstart`,`loaderror`,`unload`,`statechange`,`stylechange`,`collapse`,`expand`,`streamingstart`,`streamingstop`,`streamingprogress`,`budgetreached`],He=o({__name:`VControlLidar`,props:{options:{default:void 0},position:{default:`top-right`},defaultUrl:{default:void 0}},emits:J,setup(e,{expose:t,emit:n}){let r={collapsed:!0,pointSize:2,colorScheme:`elevation`,pickable:!1,autoZoom:!0},i=e,a=n,o=B(G),s=v(null);p(async()=>{await c()}),m(()=>{s.value&&o.value&&(o.value.removeControl(s.value),s.value=null)});let c=async()=>{let{LidarControl:e}=await V(`maplibre-gl-lidar`,()=>import(`maplibre-gl-lidar`));s.value=new e(i.options||r),o.value.addControl(s.value,i.position),J.forEach(e=>{s.value.on(e,t=>{a(e,t)})}),i.defaultUrl&&s.value.loadPointCloud(i.defaultUrl)};return t({loadPointCloud:(e,t)=>s.value?.loadPointCloud(e,t),loadPointCloudStreaming:(e,t)=>s.value?.loadPointCloudStreaming(e,t),loadPointCloudEptStreaming:(e,t)=>s.value?.loadPointCloudEptStreaming(e,t),unloadPointCloud:e=>s.value?.unloadPointCloud(e),flyToPointCloud:e=>s.value?.flyToPointCloud(e),setPointSize:e=>s.value?.setPointSize(e),setColorScheme:e=>s.value?.setColorScheme(e),setColormap:e=>s.value?.setColormap(e),getColormap:()=>s.value?.getColormap(),setColorRange:e=>s.value?.setColorRange(e),getColorRange:()=>s.value?.getColorRange(),setOpacity:e=>s.value?.setOpacity(e),setPickable:e=>s.value?.setPickable(e),setUsePercentile:e=>s.value?.setUsePercentile(e),getUsePercentile:()=>s.value?.getUsePercentile(),setElevationRange:(e,t)=>s.value?.setElevationRange(e,t),clearElevationRange:()=>s.value?.clearElevationRange(),setPointBudget:e=>s.value?.setPointBudget(e),setZOffset:e=>s.value?.setZOffset(e),setZOffsetEnabled:e=>s.value?.setZOffsetEnabled(e),getZOffset:()=>s.value?.getZOffset(),setTerrain:e=>s.value?.setTerrain(e),getTerrain:()=>s.value?.getTerrain(),setPickInfoFields:e=>s.value?.setPickInfoFields(e),getPickInfoFields:()=>s.value?.getPickInfoFields(),setClassificationVisibility:(e,t)=>s.value?.setClassificationVisibility(e,t),showAllClassifications:()=>s.value?.showAllClassifications(),hideAllClassifications:()=>s.value?.hideAllClassifications(),getHiddenClassifications:()=>s.value?.getHiddenClassifications(),getAvailableClassifications:()=>s.value?.getAvailableClassifications(),toggle:()=>s.value?.toggle(),expand:()=>s.value?.expand(),collapse:()=>s.value?.collapse(),getState:()=>s.value?.getState(),getPointClouds:()=>s.value?.getPointClouds(),stopStreaming:e=>s.value?.stopStreaming(e),isStreaming:e=>s.value?.isStreaming(e),getStreamingProgress:()=>s.value?.getStreamingProgress(),getMap:()=>s.value?.getMap(),getPanelElement:()=>s.value?.getPanelElement(),getControl:()=>s.value}),()=>{}}});function Y(e,t,n){let r=null,i=!1,a=()=>{i&&t.value&&!t.value.classList.contains(`maplibregl-ctrl`)&&t.value.classList.add(`maplibregl-ctrl`)};p(()=>{!e.value||!t.value||(r={onAdd:()=>(t.value?.classList.add(`maplibregl-ctrl`),t.value),onRemove:()=>{}},e.value.addControl(r,n),i=!0)}),h(()=>{a()}),m(()=>{if(e.value&&r)try{e.value.removeControl(r)}catch{}})}const Ue={class:`v-layer-control-header`},We={class:`v-layer-control-title`},Ge=[`aria-pressed`,`title`],Ke={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},qe={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},Je={class:`v-layer-control-slider-row`},Ye=[`value`,`disabled`],Xe={class:`v-layer-control-value`},Ze=o({__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:t}){let n=e,r=t,o=B(G),c=s(U,null),l=v(null),d=v(n.visible),f=v(n.opacity);Y(o,l,n.position);let m=()=>n.layerType?n.layerType:o.value?o.value.getLayer(n.layerId)?`maplibre`:c&&c.getLayers().find(e=>e.id===n.layerId)?`deckgl`:null:null,h=()=>{if(!o.value||m()!==`maplibre`)return null;let e=o.value.getLayer(n.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(n.layerId)){console.warn(`MapLibre layer not found: ${n.layerId}`);return}o.value.setLayoutProperty(n.layerId,`visibility`,e?`visible`:`none`)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${n.layerId}`);return}let t=c.getLayers().find(e=>e.id===n.layerId);if(!t){console.warn(`deck.gl layer not found: ${n.layerId}`);return}if(typeof t.clone==`function`){let r=t.clone({visible:e});c.updateLayer(n.layerId,r)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${n.layerId}`);return}r(`visibility-change`,e),r(`update:visible`,e)},y=e=>{let t=m();if(t===`maplibre`){let t=h();if(!o.value||!t)return;if(!o.value.getLayer(n.layerId)){console.warn(`MapLibre layer not found: ${n.layerId}`);return}o.value.setPaintProperty(n.layerId,t,e)}else if(t===`deckgl`){if(!c){console.warn(`deck.gl overlay not available for layer: ${n.layerId}`);return}let t=c.getLayers().find(e=>e.id===n.layerId);if(!t){console.warn(`deck.gl layer not found: ${n.layerId}`);return}if(typeof t.clone==`function`){let r=t.clone({opacity:e});c.updateLayer(n.layerId,r)}}else{console.warn(`Layer not found in MapLibre or deck.gl: ${n.layerId}`);return}r(`opacity-change`,e),r(`update:opacity`,e)},x=()=>{d.value=!d.value},C=e=>{let t=e.target;f.value=Number(t.value)/100};return T(d,e=>{_(e)}),T(f,e=>{y(e)}),T(()=>n.visible,e=>{d.value=e}),T(()=>n.opacity,e=>{f.value=e}),p(()=>{let e=!1,t=()=>e?!0:m()?(e=!0,_(d.value),y(f.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)=>(g(),i(`div`,{ref_key:`containerRef`,ref:l,class:`v-layer-control`},[a(`div`,Ue,[a(`span`,We,S(e.title),1),a(`button`,{type:`button`,class:u([`v-layer-control-toggle`,{"is-hidden":!d.value}]),"aria-pressed":d.value,title:d.value?`Hide layer`:`Show layer`,onClick:x},[d.value?(g(),i(`svg`,Ke,[...n[0]||(n[0]=[a(`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),a(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(g(),i(`svg`,qe,[...n[1]||(n[1]=[a(`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,Ge)]),a(`div`,Je,[a(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(f.value*100),class:`v-layer-control-slider`,disabled:!d.value,onInput:C},null,40,Ye),a(`span`,Xe,S(Math.round(f.value*100))+`%`,1)]),b(t.$slots,`default`)],512))}}),Qe={class:`v-layer-group-title`},$e={key:1,class:`v-layer-group-header is-static`},et={class:`v-layer-group-title`},tt={key:2,class:`v-layer-group-content`},nt={class:`v-layer-group-item-header`},rt={class:`v-layer-group-item-title`},it=[`aria-pressed`,`title`,`onClick`],at={key:0,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},ot={key:1,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},st={class:`v-layer-group-slider-row`},ct=[`value`,`disabled`,`onInput`],lt={class:`v-layer-group-value`},ut=o({__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(t,{emit:n}){let o=t,c=n,l=B(G),d=s(U,null),f=v(null),m=v(o.collapsed),h=v(new Map);Y(l,f,o.position);let _=()=>{for(let e of o.layers)h.value.set(e.id,{visible:e.visible??!0,opacity:e.opacity??1})},x=(e,t)=>t||(l.value?l.value.getLayer(e)?`maplibre`:d&&d.getLayers().find(t=>t.id===e)?`deckgl`:null:null),C=e=>{if(!l.value)return null;let t=l.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}},w=(e,t,n)=>{let r=x(e,n);if(r===`maplibre`){if(!l.value)return;if(!l.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}l.value.setLayoutProperty(e,`visibility`,t?`visible`:`none`)}else if(r===`deckgl`){if(!d){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=d.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});d.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}c(`visibility-change`,{layerId:e,visible:t})},E=(e,t,n)=>{let r=x(e,n);if(r===`maplibre`){let n=C(e);if(!l.value||!n)return;if(!l.value.getLayer(e)){console.warn(`[VControlLayerGroup] MapLibre layer not found: ${e}`);return}l.value.setPaintProperty(e,n,t)}else if(r===`deckgl`){if(!d){console.warn(`[VControlLayerGroup] deck.gl overlay not available for layer: ${e}`);return}let n=d.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});d.updateLayer(e,r)}}else{console.warn(`[VControlLayerGroup] Layer not found: ${e}`);return}c(`opacity-change`,{layerId:e,opacity:t})},D=e=>{let t=h.value.get(e.id);if(!t)return;let n=!t.visible;t.visible=n,w(e.id,n,e.type)},O=(e,t)=>{let n=t.target,r=Number(n.value)/100,i=h.value.get(e.id);i&&(i.opacity=r,E(e.id,r,e.type))},k=e=>h.value.get(e)??{visible:!0,opacity:1},A=()=>{o.collapsible&&(m.value=!m.value)};return T(()=>o.layers,()=>{_()},{deep:!0}),T(()=>o.collapsed,e=>{m.value=e}),p(()=>{_();for(let e of o.layers){let t=k(e.id);w(e.id,t.visible,e.type),E(e.id,t.opacity,e.type)}}),(n,o)=>(g(),i(`div`,{ref_key:`containerRef`,ref:f,class:u([`v-layer-group maplibregl-ctrl`,{"is-collapsed":m.value}])},[t.collapsible?(g(),i(`button`,{key:0,type:`button`,class:`v-layer-group-header`,onClick:A},[a(`span`,Qe,S(t.title),1),(g(),i(`svg`,{class:u([`v-layer-group-chevron`,{"is-collapsed":m.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...o[0]||(o[0]=[a(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))])):(g(),i(`div`,$e,[a(`span`,et,S(t.title),1)])),m.value?r(`v-if`,!0):(g(),i(`div`,tt,[(g(!0),i(e,null,y(t.layers,e=>(g(),i(`div`,{key:e.id,class:`v-layer-group-item`},[a(`div`,nt,[a(`span`,rt,S(e.title),1),a(`button`,{type:`button`,class:u([`v-layer-group-toggle`,{"is-hidden":!k(e.id).visible}]),"aria-pressed":k(e.id).visible,title:k(e.id).visible?`Hide layer`:`Show layer`,onClick:t=>D(e)},[k(e.id).visible?(g(),i(`svg`,at,[...o[1]||(o[1]=[a(`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),a(`circle`,{cx:`8`,cy:`8`,r:`2.5`,stroke:`currentColor`,"stroke-width":`1.25`},null,-1)])])):(g(),i(`svg`,ot,[...o[2]||(o[2]=[a(`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,it)]),a(`div`,st,[a(`input`,{type:`range`,min:`0`,max:`100`,value:Math.round(k(e.id).opacity*100),class:`v-layer-group-slider`,disabled:!k(e.id).visible,onInput:t=>O(e,t)},null,40,ct),a(`span`,lt,S(Math.round(k(e.id).opacity*100))+`%`,1)])]))),128))])),b(n.$slots,`default`)],2))}}),dt={class:`v-legend-control-title`},ft={key:0,class:`v-legend-control-content`},pt=[`disabled`,`onClick`],mt={class:`v-legend-control-label`},ht={key:0,class:`v-legend-control-count`},gt={class:`v-legend-control-gradient-labels`},_t={class:`v-legend-control-size-circle-wrap`},vt={class:`v-legend-control-label`},yt={key:3,class:`v-legend-control-table`},bt=[`title`],xt={class:`v-legend-control-table-label`},St={class:`v-legend-control-table-value`},Ct=o({__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(n,{emit:o}){let c=n,l=o,f=B(G),m=s(U,null),h=v(null),_=v(c.collapsed),x=v(new Map),C=v([]);Y(f,h,c.position);let w=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},E=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}},D=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}},O=()=>{if(!c.autoGenerate||!c.property||!f.value)return[];let e=c.layerIds[0];if(!e)return[];if(!f.value.getLayer(e))return console.warn(`[VControlLegend] Layer not found: ${e}`),[];let t=f.value.getPaintProperty(e,c.property);if(!t||!Array.isArray(t))return console.warn(`[VControlLegend] Paint property "${c.property}" not found or not an expression`),[];let n=t[0];if(n===`match`)return w(t);if(n===`step`){let e=E(t);return e?[e]:[]}if(n===`interpolate`||n===`interpolate-hcl`||n===`interpolate-lab`){let e=D(t);return e?[e]:[]}return console.warn(`[VControlLegend] Unsupported expression type: ${n}`),[]},k=t(()=>c.items&&c.items.length>0?c.items:C.value),A=t(()=>c.type===`category`?k.value.filter(e=>`value`in e&&`color`in e&&`label`in e):[]),j=t(()=>{if(c.type!==`gradient`)return null;let e=k.value;if(e.length===0)return null;let t=e[0];return`min`in t&&`max`in t&&`colors`in t?t:null}),M=t(()=>c.type===`size`?k.value.filter(e=>`size`in e&&`value`in e):[]),N=t(()=>c.type===`table`?k.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):[]),ee=e=>e.formattedValue?e.formattedValue:`${e.value}${e.unit??``}`,P=t(()=>({visibleValues:Array.from(x.value.entries()).filter(([,e])=>e).map(([e])=>e)})),F=t(()=>j.value?`linear-gradient(to right, ${j.value.colors.join(`, `)})`:``),I=()=>{if(c.type===`category`)for(let e of A.value)x.value.set(e.value,e.visible??!0)},L=()=>{if(!f.value||!c.property||c.type!==`category`)return;let e=P.value.visibleValues.filter(e=>e!==`__default__`),t=A.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length;for(let t of c.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,c.property);if(!n||!Array.isArray(n))continue;let r=n[1],i=null;Array.isArray(r)&&r[0]===`get`&&(i=r[1]),i&&f.value.setFilter(t,[`in`,[`get`,i],[`literal`,e]])}},R=()=>{if(!m||c.type!==`category`)return;let e=P.value.visibleValues.filter(e=>e!==`__default__`),t=A.value.map(e=>e.value).filter(e=>e!==`__default__`),n=e.length===t.length,r=m.getLayers();for(let t of c.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=>A.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)}}}}},z=(e,t)=>{if(!c.interactive)return;let n=!(x.value.get(e.value)??!0);x.value.set(e.value,n),L(),R(),l(`item-click`,{item:e,index:t,visible:n}),l(`filter-change`,{filter:P.value,layerIds:c.layerIds}),l(`update:filter`,P.value)},te=e=>x.value.get(e.value)??!0,ne=()=>{_.value=!_.value};return T(()=>c.items,()=>{I()},{deep:!0}),T(()=>c.collapsed,e=>{_.value=e}),p(()=>{c.autoGenerate&&(C.value=O()),I()}),(t,o)=>(g(),i(`div`,{ref_key:`containerRef`,ref:h,class:u([`v-legend-control`,{"is-collapsed":_.value}])},[a(`button`,{type:`button`,class:`v-legend-control-header`,onClick:ne},[a(`span`,dt,S(n.title),1),(g(),i(`svg`,{class:u([`v-legend-control-chevron`,{"is-collapsed":_.value}]),width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`},[...o[0]||(o[0]=[a(`path`,{d:`M3 5L7 9L11 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)])],2))]),_.value?r(`v-if`,!0):(g(),i(`div`,ft,[n.type===`category`?(g(!0),i(e,{key:0},y(A.value,(e,t)=>(g(),i(`button`,{key:e.value,type:`button`,class:u([`v-legend-control-item`,{"is-interactive":n.interactive,"is-hidden":!te(e)}]),disabled:!n.interactive,onClick:n=>z(e,t)},[a(`span`,{class:`v-legend-control-swatch`,style:d({backgroundColor:e.color})},null,4),a(`span`,mt,S(e.label),1),e.count===void 0?r(`v-if`,!0):(g(),i(`span`,ht,S(e.count),1))],10,pt))),128)):n.type===`gradient`&&j.value?(g(),i(e,{key:1},[a(`div`,{class:`v-legend-control-gradient`,style:d({background:F.value})},null,4),a(`div`,gt,[a(`span`,null,S(j.value.minLabel??j.value.min),1),a(`span`,null,S(j.value.maxLabel??j.value.max),1)])],64)):n.type===`size`?(g(!0),i(e,{key:2},y(M.value,e=>(g(),i(`div`,{key:e.value,class:`v-legend-control-size-item`},[a(`div`,_t,[a(`div`,{class:`v-legend-control-size-circle`,style:d({width:`${Math.min(e.size,20)}px`,height:`${Math.min(e.size,20)}px`})},null,4)]),a(`span`,vt,S(e.label),1)]))),128)):n.type===`table`?(g(),i(`div`,yt,[(g(!0),i(e,null,y(N.value,e=>(g(),i(`div`,{key:e.label,class:`v-legend-control-table-row`,title:e.description},[a(`span`,{class:`v-legend-control-swatch`,style:d({backgroundColor:e.color})},null,4),a(`span`,xt,S(e.label),1),a(`span`,St,S(ee(e)),1)],8,bt))),128))])):r(`v-if`,!0)])),b(t.$slots,`default`)],2))}}),wt=o({__name:`VLayerMaplibreCanvas`,props:{source:{},layer:{},sourceId:{default:`maplibre.gl-canvas-source`},layerId:{default:`maplibre.gl-canvas-layer`},before:{default:``}},setup(e){let t=e,n=B(G),r=v(!1),i=()=>n.value||null,a=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?r.value=!0:(r.value=!1,setTimeout(t,200))};t()})},o=()=>{let e=i();if(e)try{if(e.getSource(t.sourceId)||e.addSource(t.sourceId,t.source),!e.getLayer(t.layerId)){let n={...t.layer,id:t.layerId,source:t.sourceId};e.addLayer(n,t.before)}}catch(e){console.error(`Error adding Canvas layer:`,e)}};return T(()=>t.source,()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId),e.addSource(t.sourceId,t.source);let n={...t.layer,id:t.layerId,source:t.sourceId};e.addLayer(n,t.before)}catch(e){console.error(`Error updating Canvas source:`,e)}},{deep:!0}),T(()=>t.layer,()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&(Object.entries(t.layer.paint||{}).forEach(([n,r])=>{e.setPaintProperty(t.layerId,n,r)}),Object.entries(t.layer.layout||{}).forEach(([n,r])=>{e.setLayoutProperty(t.layerId,n,r)}))}catch(e){console.error(`Error updating Canvas layer:`,e)}},{deep:!0}),T(n,e=>{e&&a(e)},{immediate:!0}),T(r,e=>{e&&o()}),p(()=>{i()?.isStyleLoaded()&&o()}),f(()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId)}catch(e){console.error(`Error cleaning up Canvas layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Tt=o({__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:t}){let n=e,r=t,i=B(G),a=v(!1),o=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,s=()=>i.value||null,c=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?a.value=!0:(a.value=!1,setTimeout(t,200))};t()})},u=()=>{let e=s();if(!(!e||!e.isStyleLoaded())){if(!o(n.source.data)){console.log(`[${n.layerId}] Waiting for valid data before adding layer`);return}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 GeoJSON layer:`,e)}}},d=()=>{let e=s();if(e)try{let t=e.getSource(n.sourceId);if(t&&`setData`in t){let r=e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===n.sourceId);(r.length===0||r[0]?.id===n.layerId)&&t.setData(n.source.data)}else t||u()}catch(e){console.error(`Error updating GeoJSON source:`,e)}},m=()=>{let e=s();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)})):u()}catch(e){console.error(`Error updating GeoJSON layer:`,e)}},h=e=>{if(e)try{e.on(`click`,n.layerId,e=>{e.features&&e.features.length>0&&r(`on-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`mouseenter`,n.layerId,()=>{e.getCanvas().style.cursor=`pointer`}),e.on(`mouseleave`,n.layerId,()=>{e.getCanvas().style.cursor=``})}catch(e){console.error(`Error in setupLayerEvents:`,e)}},g=v(!1),_=async()=>{if(g.value)return;let e=s();!e||!e.isStyleLoaded()||o(n.source.data)&&(await l(),!g.value&&e.isStyleLoaded()&&(u(),h(e),g.value=!0))};return T(a,e=>{e&&_()}),T(i,e=>{e&&(c(e),e.isStyleLoaded()&&(a.value=!0,_()))},{immediate:!0}),T(()=>n.source,(e,t)=>{if(o(e?.data)&&JSON.stringify(e.data)!==JSON.stringify(t?.data)){let e=s();e?.isStyleLoaded()&&(e.getSource(n.sourceId)?d():(u(),g.value||(h(e),g.value=!0)))}},{deep:!0}),T(()=>n.layer,m,{deep:!0}),T(()=>n.layer.layout?.visibility,e=>{let t=s();if(!t||!t.isStyleLoaded())return;let r=t.getLayer(n.layerId);if(!r&&e===`visible`)o(n.source.data)&&u();else if(r)try{t.setLayoutProperty(n.layerId,`visibility`,e)}catch(e){console.error(`Error updating visibility for ${n.layerId}:`,e)}},{immediate:!0}),p(()=>{l(()=>{_()})}),f(()=>{let e=s();if(e)try{e.getLayer(n.layerId)&&e.removeLayer(n.layerId),e.getStyle().layers.filter(e=>e.type!==`background`&&`source`in e&&e.source===n.sourceId).length===0&&e.getSource(n.sourceId)&&e.removeSource(n.sourceId)}catch(e){console.error(`Error cleaning up GeoJSON layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Et=o({__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 t=e,n=B(G),r=v(!1),i=()=>n.value||null,a=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?r.value=!0:(r.value=!1,setTimeout(t,200))};t()})},o=()=>{let e=i();if(e)try{if(e.getSource(t.sourceId)||e.addSource(t.sourceId,t.source),!e.getLayer(t.layerId)){let n={...t.layer,id:t.layerId,source:t.sourceId};e.addLayer(n,t.before)}}catch(e){console.error(`Error adding Image layer:`,e)}};return T(()=>t.source,()=>{let e=i();if(e)try{let n=e.getSource(t.sourceId);if(n)if(n.updateImage)n.updateImage({url:t.source.url,coordinates:t.source.coordinates});else{e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId),e.addSource(t.sourceId,t.source);let n={...t.layer,id:t.layerId,source:t.sourceId};e.addLayer(n,t.before)}}catch(e){console.error(`Error updating Image source:`,e)}},{deep:!0}),T(()=>t.layer,()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&(Object.entries(t.layer.paint||{}).forEach(([n,r])=>{e.setPaintProperty(t.layerId,n,r)}),Object.entries(t.layer.layout||{}).forEach(([n,r])=>{e.setLayoutProperty(t.layerId,n,r)}))}catch(e){console.error(`Error updating Image layer:`,e)}},{deep:!0}),T(n,e=>{e&&a(e)},{immediate:!0}),T(r,e=>{e&&o()}),p(()=>{i()?.isStyleLoaded()&&o()}),f(()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId)}catch(e){console.error(`Error cleaning up Image layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),X=o({__name:`VLayerMaplibreRaster`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},setup(e){let t=e,n=B(G),r=v(!1),i=()=>n.value||null,a=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?r.value=!0:(r.value=!1,setTimeout(t,200))};t()})},o=()=>{let e=i();if(e)try{e.getSource(t.sourceId)||e.addSource(t.sourceId,t.source),e.getLayer(t.layerId)||(e.addLayer(t.layer,t.before),t.layer.layout?.visibility&&e.setLayoutProperty(t.layerId,`visibility`,t.layer.layout.visibility))}catch(e){console.error(`[${t.layerId}] Error setting up layer:`,e)}},s=()=>{let e=i();if(e)try{let n=t.before;e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.removeSource(t.sourceId),e.addSource(t.sourceId,t.source);let r={...t.layer,id:t.layerId,type:`raster`,source:t.sourceId};n&&e.getLayer(n)?e.addLayer(r,n):e.addLayer(r)}catch(e){console.error(`Error updating Raster source:`,e)}};return T(()=>t.source.tiles?.[0],(e,t)=>{e!==t&&s()}),T(()=>t.layer,()=>{let e=i();if(e)try{if(e.getLayer(t.layerId)){let n=t.layer.paint||{};Object.entries(n).forEach(([n,r])=>{e.setPaintProperty(t.layerId,n,r)});let r=t.layer.layout||{};Object.entries(r).forEach(([n,r])=>{e.setLayoutProperty(t.layerId,n,r)})}}catch(e){console.error(`Error updating Raster layer:`,e)}},{deep:!0}),T(n,e=>{e&&a(e)},{immediate:!0}),T(r,e=>{e&&o()}),T(()=>t.layer.layout?.visibility,e=>{let n=i();if(n)if(n.getLayer(t.layerId))try{n.setLayoutProperty(t.layerId,`visibility`,e),e===`visible`&&t.before&&n.moveLayer(t.layerId,t.before)}catch(e){console.error(`[${t.layerId}] Error updating visibility:`,e)}else try{n.addLayer(t.layer,t.before)}catch(e){console.error(`[${t.layerId}] Error adding layer:`,e)}},{immediate:!0}),T(()=>t.before,e=>{let n=i();if(!(!n||!n.getLayer(t.layerId))&&t.layer.layout?.visibility===`visible`)try{console.log(`[${t.layerId}] Moving layer before:`,e),n.moveLayer(t.layerId,e)}catch(e){console.error(`[${t.layerId}] Error moving layer:`,e)}}),p(()=>{if(i())try{o()}catch(e){console.error(`[${t.layerId}] Error setting up layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Z=[`click`,`dblclick`,`mousedown`,`mouseup`,`mousemove`,`mouseenter`,`mouseleave`,`mouseover`,`mouseout`,`contextmenu`,`touchstart`,`touchend`,`touchcancel`],Dt=`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(`.`),Ot=[`dragstart`,`drag`,`dragend`],kt=[`click`,`mouseenter`,`mouseleave`],At=[`open`,`close`],jt=o({__name:`VLayerMaplibreVector`,props:{sourceId:{},source:{},layerId:{},layer:{},before:{}},emits:[...Z],setup(e,{emit:t}){let n=e,r=t,i=B(G),a=v(!1),o=()=>i.value||null,s=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?a.value=!0:(a.value=!1,setTimeout(t,200))};t()})},c=()=>{let e=o();if(e)try{e.getSource(n.sourceId)||e.addSource(n.sourceId,n.source),e.getLayer(n.layerId)||(n.layer.layout?.visibility===`visible`?e.addLayer(n.layer,n.before):e.addLayer(n.layer))}catch(e){console.error(`[${n.layerId}] Error setting up layer:`,e)}},l=()=>{let e=o();if(e)try{let t=e.getSource(n.sourceId);if(t&&JSON.stringify(t.serialize())!==JSON.stringify(n.source)){e.getLayer(n.layerId)&&e.removeLayer(n.layerId),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 vector source:`,e)}},u=()=>{let e=o();if(e)try{if(e.getLayer(n.layerId)){let t=e.getLayer(n.layerId),r=t?.paint||{},i=t?.layout||{};Object.entries(n.layer.paint||{}).forEach(([t,i])=>{JSON.stringify(r[t])!==JSON.stringify(i)&&e.setPaintProperty(n.layerId,t,i)}),Object.entries(n.layer.layout||{}).forEach(([t,r])=>{JSON.stringify(i[t])!==JSON.stringify(r)&&e.setLayoutProperty(n.layerId,t,r)})}}catch(e){console.error(`Error updating vector layer:`,e)}},d=e=>{if(e)try{Z.forEach(t=>{e.on(t,n.layerId,n=>{t===`mousemove`&&(e.getCanvas().style.cursor=`pointer`),t===`mouseleave`&&(e.getCanvas().style.cursor=``),r(t,n)})})}catch(e){console.error(`Error setting up layer events:`,e)}};return T(i,(e,t)=>{e&&e!==t&&s(e)},{immediate:!0}),T(a,e=>{if(e){let e=o();if(!e)return;c(),d(e)}}),T(()=>JSON.stringify(n.source.tiles),(e,t)=>{e!==t&&l()}),T(()=>({paint:n.layer.paint,layout:n.layer.layout?{...n.layer.layout,visibility:void 0}:void 0}),(e,t)=>{JSON.stringify(e)!==JSON.stringify(t)&&u()},{deep:!0}),T(()=>n.layer.layout?.visibility,e=>{let t=o();if(t)if(t.getLayer(n.layerId))try{t.setLayoutProperty(n.layerId,`visibility`,e),e===`visible`&&n.before&&setTimeout(()=>{t.moveLayer(n.layerId,n.before)},0)}catch(e){console.error(`[${n.layerId}] Error updating visibility:`,e)}else try{t.getSource(n.sourceId)||t.addSource(n.sourceId,n.source),t.addLayer(n.layer,n.before)}catch(e){console.error(`[${n.layerId}] Error adding layer:`,e)}},{immediate:!0}),T(()=>n.before,e=>{let t=o();if(!(!t||!t.getLayer(n.layerId))&&n.layer.layout?.visibility===`visible`)try{t.moveLayer(n.layerId,e)}catch(e){console.error(`Error reordering vector layer ${n.layerId}:`,e)}}),T(()=>n.layer.layout?.visibility,e=>{let t=o();if(t)if(t.getLayer(n.layerId))try{t.setLayoutProperty(n.layerId,`visibility`,e)}catch(e){console.error(`[${n.layerId}] Error updating visibility:`,e)}else try{t.getSource(n.sourceId)||t.addSource(n.sourceId,n.source),t.addLayer(n.layer,n.before)}catch(e){console.error(`[${n.layerId}] Error adding layer:`,e)}},{immediate:!0}),p(()=>{if(o())try{c()}catch(e){console.error(`[${n.layerId}] Error setting up layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Mt=o({__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 t=e,n=B(G),r=v(!1),i=()=>n.value||null,a=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?r.value=!0:(r.value=!1,setTimeout(t,200))};t()})},o=()=>{let e=i();if(e)try{if(e.getSource(t.sourceId)||e.addSource(t.sourceId,t.source),!e.getLayer(t.layerId)){let n={...t.layer,id:t.layerId,source:t.sourceId};e.addLayer(n,t.before)}}catch(e){console.error(`Error adding Video layer:`,e)}};return T(()=>t.source,()=>{let e=i();if(e)try{let n=e.getSource(t.sourceId);if(n){e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId),e.addSource(t.sourceId,t.source);let r={...t.layer,id:t.layerId,source:t.sourceId};if(e.addLayer(r,t.before),n.getVideo){let e=n.getVideo();e&&e.play().catch(e=>{console.error(`Error playing video:`,e)})}}}catch(e){console.error(`Error updating Video source:`,e)}},{deep:!0}),T(()=>t.layer,()=>{let e=i();if(e)try{e.getLayer(t.layerId)&&(Object.entries(t.layer.paint||{}).forEach(([n,r])=>{e.setPaintProperty(t.layerId,n,r)}),Object.entries(t.layer.layout||{}).forEach(([n,r])=>{e.setLayoutProperty(t.layerId,n,r)}))}catch(e){console.error(`Error updating Video layer:`,e)}},{deep:!0}),T(n,e=>{e&&a(e)},{immediate:!0}),T(r,e=>{e&&o()}),p(()=>{i()?.isStyleLoaded()&&o()}),f(()=>{let e=i();if(e)try{let n=e.getSource(t.sourceId);if(n?.getVideo){let e=n.getVideo();e&&(e.pause(),e.remove())}e.getLayer(t.layerId)&&e.removeLayer(t.layerId),e.getSource(t.sourceId)&&e.removeSource(t.sourceId)}catch(e){console.error(`Error cleaning up Video layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Nt=o({__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,r=s(K);if(!r)throw Error(`Protocol not provided`);let i=v({type:`raster`,url:`pmtiles://${t.url}`,tileSize:512,volatile:!0});return p(async()=>{let e=new F(t.url);r.add(e)}),(t,r)=>(g(),n(X,{"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`]))}}),Pt=o({__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=B(G),o=v(!1),s=t(()=>`${r.baseLayerId}-clusters`),c=t(()=>`${r.baseLayerId}-cluster-count`),l=t(()=>`${r.baseLayerId}-unclustered-point`),u=()=>a.value||null,d=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=u();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(s.value)||(console.log(`Adding clusters layer: ${s.value}`),e.addLayer({id:s.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(c.value)||(console.log(`Adding cluster count layer: ${c.value}`),e.addLayer({id:c.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(l.value)||(console.log(`Adding unclustered points layer: ${l.value}`),e.addLayer({id:l.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=u();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=u();if(!t)return;let n=e?`visible`:`none`;[s.value,c.value,l.value].forEach(e=>{t.getLayer(e)&&t.setLayoutProperty(e,`visibility`,n)})},_=e=>{if(e)try{e.on(`click`,s.value,e=>{e.features&&e.features.length>0&&i(`cluster-click`,{features:e.features,coordinates:e.lngLat})}),e.on(`click`,l.value,e=>{e.features&&e.features.length>0&&i(`point-click`,{features:e.features,coordinates:e.lngLat})}),[s.value,l.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)}},y=e=>{e&&(e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?(o.value=!0,d(r.source.data)&&m()):(o.value=!1,setTimeout(t,200))};t()}),e.isStyleLoaded()&&(o.value=!0,d(r.source.data)&&m()))};return T(()=>r.source.data,e=>{if(d(e)){let e=u();e?.isStyleLoaded()&&(e.getSource(r.sourceId)?h():m())}},{deep:!0,immediate:!0}),T(()=>r.visibility,g),T(a,e=>{e&&y(e)},{immediate:!0}),p(()=>{u()?.isStyleLoaded()&&d(r.source.data)&&m()}),f(()=>{let e=u();if(e)try{[s.value,l.value].forEach(t=>{e.off(`click`,t,()=>{}),e.off(`mouseenter`,t,()=>{}),e.off(`mouseleave`,t,()=>{})}),[s.value,c.value,l.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)=>b(e.$slots,`default`)}}),Ft=o({__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=B(G),o=v(!1),s=t(()=>`${r.id}-source`),c=t(()=>`${r.id}-layer`),l=t(()=>({type:`FeatureCollection`,features:r.coordinates.length>=2?[{type:`Feature`,properties:{},geometry:{type:`LineString`,coordinates:r.coordinates}}]:[]})),u=()=>a.value||null,d=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},m=()=>{let e=u();if(!(!e||!e.isStyleLoaded())&&!(r.coordinates.length<2))try{if(e.getSource(s.value)||e.addSource(s.value,{type:`geojson`,data:l.value}),!e.getLayer(c.value)){let t={id:c.value,type:`line`,source:s.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=u();if(e)try{let t=e.getSource(s.value);t&&`setData`in t?t.setData(l.value):!t&&r.coordinates.length>=2&&m()}catch(e){console.error(`Error updating route source:`,e)}},g=()=>{let e=u();if(!(!e||!e.getLayer(c.value)))try{e.setPaintProperty(c.value,`line-color`,r.color),e.setPaintProperty(c.value,`line-width`,r.width),e.setPaintProperty(c.value,`line-opacity`,r.opacity),r.blur>0&&e.setPaintProperty(c.value,`line-blur`,r.blur),r.dashArray&&e.setPaintProperty(c.value,`line-dasharray`,r.dashArray),e.setLayoutProperty(c.value,`line-cap`,r.lineCap),e.setLayoutProperty(c.value,`line-join`,r.lineJoin),e.setLayoutProperty(c.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`,c.value,e=>{i(`click`,{coordinates:e.lngLat})}),e.on(`mouseenter`,c.value,()=>{e.getCanvas().style.cursor=`pointer`,i(`mouseenter`)}),e.on(`mouseleave`,c.value,()=>{e.getCanvas().style.cursor=``,i(`mouseleave`)})}catch(e){console.error(`Error setting up route layer events:`,e)}};return T(()=>r.coordinates,()=>{let e=u();e?.isStyleLoaded()&&(e.getSource(s.value)?h():m())},{deep:!0}),T(()=>[r.color,r.width,r.opacity,r.lineCap,r.lineJoin,r.visible,r.blur,r.dashArray],()=>g(),{deep:!0}),T(a,e=>{e&&(d(e),e.isStyleLoaded()&&(o.value=!0))},{immediate:!0}),T(o,e=>{if(e&&r.coordinates.length>=2){let e=u();e&&(m(),_(e))}}),p(()=>{try{let e=u();e?.isStyleLoaded()&&r.coordinates.length>=2&&(m(),_(e))}catch(e){console.error(`Error mounting route layer:`,e)}}),f(()=>{let e=u();if(e)try{e.getLayer(c.value)&&e.removeLayer(c.value),e.getSource(s.value)&&e.removeSource(s.value)}catch(e){console.error(`Error cleaning up route layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),It=o({__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=B(G),o=v(!1),s=v(!1),c=t(()=>`${r.id}-source`),u=t(()=>`${r.id}-fill`),d=t(()=>`${r.id}-line`),m=t(()=>!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}`}}))}),h=()=>a.value||null,g=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?o.value=!0:(o.value=!1,setTimeout(t,200))};t()})},_=()=>{let e=h();if(!e||!e.isStyleLoaded())return;let t=m.value;if(t)try{if(e.getSource(c.value)||e.addSource(c.value,{type:`geojson`,data:t}),!e.getLayer(u.value)){let t={id:u.value,type:`fill`,source:c.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(d.value)){let t={id:d.value,type:`line`,source:c.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)}},y=()=>{let e=h();if(e)try{let t=e.getSource(c.value),n=m.value;t&&`setData`in t?n&&t.setData(n):!t&&n&&_()}catch(e){console.error(`Error updating isochrone source:`,e)}},x=()=>{let e=h();if(e)try{e.getLayer(u.value)&&(e.setPaintProperty(u.value,`fill-opacity`,r.fillOpacity),e.setLayoutProperty(u.value,`visibility`,r.visible?`visible`:`none`)),e.getLayer(d.value)&&(e.setPaintProperty(d.value,`line-width`,r.lineWidth),e.setPaintProperty(d.value,`line-opacity`,r.lineOpacity),e.setLayoutProperty(d.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`,u.value,e=>{e.features&&e.features.length>0&&i(`click`,{feature:e.features[0],coordinates:e.lngLat})}),e.on(`mouseenter`,u.value,t=>{e.getCanvas().style.cursor=`pointer`,t.features&&t.features.length>0&&i(`mouseenter`,t.features[0])}),e.on(`mouseleave`,u.value,()=>{e.getCanvas().style.cursor=``,i(`mouseleave`)})}catch(e){console.error(`Error setting up isochrone layer events:`,e)}},C=async()=>{if(s.value)return;let e=h();!e||!e.isStyleLoaded()||m.value&&(await l(),!s.value&&(_(),S(e),s.value=!0))};return T(()=>r.data,()=>{let e=h();e?.isStyleLoaded()&&(e.getSource(c.value)?y():_())},{deep:!0}),T(()=>[r.fillOpacity,r.lineWidth,r.lineOpacity,r.visible],()=>x(),{deep:!0}),T(o,e=>{e&&C()}),T(a,e=>{e&&(g(e),e.isStyleLoaded()&&(o.value=!0,C()))},{immediate:!0}),p(()=>{l(()=>{C()})}),f(()=>{let e=h();if(e)try{e.getLayer(d.value)&&e.removeLayer(d.value),e.getLayer(u.value)&&e.removeLayer(u.value),e.getSource(c.value)&&e.removeSource(c.value)}catch(e){console.error(`Error cleaning up isochrone layer:`,e)}}),(e,t)=>b(e.$slots,`default`)}}),Lt=o({__name:`VLayerMaplibreStarfield`,props:{id:{default:`starfield`},starCount:{default:4e3},starSize:{default:2},starColor:{default:16777215},galaxyTextureUrl:{},galaxyBrightness:{default:.35},before:{},sunEnabled:{type:Boolean,default:!1},sunAzimuth:{default:180},sunAltitude:{default:45},sunSize:{default:100},sunColor:{default:16772778},sunIntensity:{default:1.5},autoFadeStars:{type:Boolean,default:!0},fadeAltitude:{}},setup(e){let t=e,n=B(G),r=v(!1),i=null,a=()=>n.value||null,o=()=>{let e=a();if(!(!e||!e.isStyleLoaded()))try{e.getLayer(t.id)&&e.removeLayer(t.id),i=new L({id:t.id,starCount:t.starCount,starSize:t.starSize,starColor:t.starColor,galaxyTextureUrl:t.galaxyTextureUrl,galaxyBrightness:t.galaxyBrightness,sunEnabled:t.sunEnabled,sunAzimuth:t.sunAzimuth,sunAltitude:t.sunAltitude,sunSize:t.sunSize,sunColor:t.sunColor,sunIntensity:t.sunIntensity,autoFadeStars:t.autoFadeStars,fadeAltitude:t.fadeAltitude}),e.addLayer(i,t.before||void 0)}catch(e){console.error(`Error adding starfield layer:`,e)}},s=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?r.value=!0:(r.value=!1,setTimeout(t,200))};t()})};return T(n,e=>{e&&(s(e),e.isStyleLoaded()&&(r.value=!0))},{immediate:!0}),T(r,e=>{e&&o()}),T(()=>[t.sunAzimuth,t.sunAltitude,t.fadeAltitude],([e,t,n])=>{i?.setSunPosition(e,t,n)}),T(()=>t.fadeAltitude,e=>{i?.setFadeAltitude(e)}),T(()=>t.sunEnabled,e=>{i?.setSunEnabled(e)}),T(()=>t.sunIntensity,e=>{i?.setSunIntensity(e)}),T(()=>t.sunSize,e=>{i?.setSunSize(e)}),f(()=>{let e=a();if(e){try{e.getLayer(t.id)&&e.removeLayer(t.id)}catch(e){console.error(`Error cleaning up starfield layer:`,e)}i=null}}),(e,t)=>b(e.$slots,`default`)}}),Rt=o({__name:`VLayerDeckglScatterplot`,props:{id:{},data:{},getPosition:{},getRadius:{},getFillColor:{},getLineColor:{},getLineWidth:{},radiusUnits:{default:`meters`},radiusScale:{default:1},radiusMinPixels:{default:0},radiusMaxPixels:{default:2**53-1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},stroked:{type:Boolean,default:!1},filled:{type:Boolean,default:!0},billboard:{type:Boolean,default:!1},antialiasing:{type:Boolean,default:!0},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new le({id:n.id,data:n.data,getPosition:n.getPosition,getRadius:n.getRadius??1,getFillColor:n.getFillColor??[255,140,0],getLineColor:n.getLineColor??[0,0,0],getLineWidth:n.getLineWidth??1,radiusUnits:n.radiusUnits,radiusScale:n.radiusScale,radiusMinPixels:n.radiusMinPixels,radiusMaxPixels:n.radiusMaxPixels,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,stroked:n.stroked,filled:n.filled,billboard:n.billboard,antialiasing:n.antialiasing,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getRadius,n.getFillColor,n.getLineColor,n.radiusScale,n.opacity,n.visible,n.stroked,n.filled],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),zt=o({__name:`VLayerDeckglArc`,props:{id:{},data:{},getSourcePosition:{},getTargetPosition:{},getSourceColor:{},getTargetColor:{},getWidth:{},getHeight:{},getTilt:{},greatCircle:{type:Boolean,default:!1},numSegments:{default:50},widthUnits:{default:`pixels`},widthScale:{default:1},widthMinPixels:{default:0},widthMaxPixels:{default:2**53-1},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new R({id:n.id,data:n.data,getSourcePosition:n.getSourcePosition,getTargetPosition:n.getTargetPosition,getSourceColor:n.getSourceColor??[255,140,0],getTargetColor:n.getTargetColor??[0,200,255],getWidth:n.getWidth??1,getHeight:n.getHeight??1,getTilt:n.getTilt??0,greatCircle:n.greatCircle,numSegments:n.numSegments,widthUnits:n.widthUnits,widthScale:n.widthScale,widthMinPixels:n.widthMinPixels,widthMaxPixels:n.widthMaxPixels,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getSourcePosition,n.getTargetPosition,n.getSourceColor,n.getTargetColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Bt=o({__name:`VLayerDeckglGeojson`,props:{id:{},data:{},getFillColor:{},getLineColor:{},getLineWidth:{},getPointRadius:{},getElevation:{},getText:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},pointType:{default:`circle`},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},lineJointRounded:{type:Boolean,default:!1},lineCapRounded:{type:Boolean,default:!1},lineMiterLimit:{default:4},pointRadiusUnits:{default:`meters`},pointRadiusScale:{default:1},pointRadiusMinPixels:{default:0},pointRadiusMaxPixels:{default:2**53-1},elevationScale:{default:1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ne({id:n.id,data:n.data,getFillColor:n.getFillColor??[200,200,200,200],getLineColor:n.getLineColor??[0,0,0,255],getLineWidth:n.getLineWidth??1,getPointRadius:n.getPointRadius??1,getElevation:n.getElevation??1e3,getText:n.getText,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,pointType:n.pointType,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,lineJointRounded:n.lineJointRounded,lineCapRounded:n.lineCapRounded,lineMiterLimit:n.lineMiterLimit,pointRadiusUnits:n.pointRadiusUnits,pointRadiusScale:n.pointRadiusScale,pointRadiusMinPixels:n.pointRadiusMinPixels,pointRadiusMaxPixels:n.pointRadiusMaxPixels,elevationScale:n.elevationScale,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getFillColor,n.getLineColor,n.opacity,n.visible,n.extruded],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Vt=o({__name:`VLayerDeckglPath`,props:{id:{},data:{},getPath:{},getColor:{},getWidth:{},widthUnits:{default:`meters`},widthScale:{default:1},widthMinPixels:{default:0},widthMaxPixels:{default:2**53-1},capRounded:{type:Boolean,default:!1},jointRounded:{type:Boolean,default:!1},billboard:{type:Boolean,default:!1},miterLimit:{default:4},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new oe({id:n.id,data:n.data,getPath:n.getPath,getColor:n.getColor??[0,0,0,255],getWidth:n.getWidth??1,widthUnits:n.widthUnits,widthScale:n.widthScale,widthMinPixels:n.widthMinPixels,widthMaxPixels:n.widthMaxPixels,capRounded:n.capRounded,jointRounded:n.jointRounded,billboard:n.billboard,miterLimit:n.miterLimit,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPath,n.getColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Ht=o({__name:`VLayerDeckglLine`,props:{id:{},data:{},getSourcePosition:{},getTargetPosition:{},getColor:{},getWidth:{},widthUnits:{default:`pixels`},widthScale:{default:1},widthMinPixels:{default:0},widthMaxPixels:{default:2**53-1},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ae({id:n.id,data:n.data,getSourcePosition:n.getSourcePosition,getTargetPosition:n.getTargetPosition,getColor:n.getColor??[0,0,0,255],getWidth:n.getWidth??1,widthUnits:n.widthUnits,widthScale:n.widthScale,widthMinPixels:n.widthMinPixels,widthMaxPixels:n.widthMaxPixels,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getSourcePosition,n.getTargetPosition,n.getColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Ut=o({__name:`VLayerDeckglPolygon`,props:{id:{},data:{},getPolygon:{},getFillColor:{},getLineColor:{},getLineWidth:{},getElevation:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},lineJointRounded:{type:Boolean,default:!1},lineMiterLimit:{default:4},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ce({id:n.id,data:n.data,getPolygon:n.getPolygon,getFillColor:n.getFillColor??[200,200,200,200],getLineColor:n.getLineColor??[0,0,0,255],getLineWidth:n.getLineWidth??1,getElevation:n.getElevation??1e3,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,lineJointRounded:n.lineJointRounded,lineMiterLimit:n.lineMiterLimit,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPolygon,n.getFillColor,n.getLineColor,n.opacity,n.visible,n.extruded],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Wt=o({__name:`VLayerDeckglSolidPolygon`,props:{id:{},data:{},getPolygon:{},getFillColor:{},getLineColor:{},getElevation:{},filled:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ue({id:n.id,data:n.data,getPolygon:n.getPolygon,getFillColor:n.getFillColor??[0,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,filled:n.filled,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPolygon,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Gt=o({__name:`VLayerDeckglIcon`,props:{id:{},data:{},getPosition:{},getIcon:{},getSize:{},getColor:{},getAngle:{},iconAtlas:{},iconMapping:{},sizeScale:{default:1},sizeUnits:{default:`pixels`},sizeMinPixels:{default:0},sizeMaxPixels:{default:2**53-1},billboard:{type:Boolean,default:!0},alphaCutoff:{default:.05},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ie({id:n.id,data:n.data,getPosition:n.getPosition,getIcon:n.getIcon??`marker`,getSize:n.getSize??1,getColor:n.getColor??[255,255,255,255],getAngle:n.getAngle??0,iconAtlas:n.iconAtlas,iconMapping:n.iconMapping,sizeScale:n.sizeScale,sizeUnits:n.sizeUnits,sizeMinPixels:n.sizeMinPixels,sizeMaxPixels:n.sizeMaxPixels,billboard:n.billboard,alphaCutoff:n.alphaCutoff,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getIcon,n.getSize,n.getColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Kt=o({__name:`VLayerDeckglText`,props:{id:{},data:{},getPosition:{},getText:{},getSize:{},getColor:{},getAngle:{},getTextAnchor:{},getAlignmentBaseline:{},getPixelOffset:{},getBackgroundColor:{},getBorderColor:{},getBorderWidth:{},background:{type:Boolean,default:!1},backgroundPadding:{},billboard:{type:Boolean,default:!0},sizeScale:{default:1},sizeUnits:{default:`pixels`},sizeMinPixels:{default:0},sizeMaxPixels:{default:2**53-1},characterSet:{default:`auto`},fontFamily:{default:`Monaco, monospace`},fontWeight:{default:`normal`},lineHeight:{default:1},fontSettings:{default:()=>({sdf:!0})},wordBreak:{default:`break-word`},maxWidth:{default:-1},outlineWidth:{default:0},outlineColor:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new de({id:n.id,data:n.data,getPosition:n.getPosition,getText:n.getText,getSize:n.getSize??32,getColor:n.getColor??[0,0,0,255],getAngle:n.getAngle??0,getTextAnchor:n.getTextAnchor??`middle`,getAlignmentBaseline:n.getAlignmentBaseline??`center`,getPixelOffset:n.getPixelOffset??[0,0],getBackgroundColor:n.getBackgroundColor,getBorderColor:n.getBorderColor,getBorderWidth:n.getBorderWidth,background:n.background,backgroundPadding:n.backgroundPadding,billboard:n.billboard,sizeScale:n.sizeScale,sizeUnits:n.sizeUnits,sizeMinPixels:n.sizeMinPixels,sizeMaxPixels:n.sizeMaxPixels,characterSet:n.characterSet,fontFamily:n.fontFamily,fontWeight:n.fontWeight,lineHeight:n.lineHeight,fontSettings:n.fontSettings,wordBreak:n.wordBreak,maxWidth:n.maxWidth,outlineWidth:n.outlineWidth,outlineColor:n.outlineColor,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getText,n.getSize,n.getColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),qt=o({__name:`VLayerDeckglColumn`,props:{id:{},data:{},getPosition:{},getFillColor:{},getLineColor:{},getElevation:{},diskResolution:{default:20},radius:{default:1e3},angle:{default:0},vertices:{},offset:{},coverage:{default:1},elevationScale:{default:1},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!1},extruded:{type:Boolean,default:!0},wireframe:{type:Boolean,default:!1},flatShading:{type:Boolean,default:!1},radiusUnits:{default:`meters`},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new te({id:n.id,data:n.data,getPosition:n.getPosition,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,diskResolution:n.diskResolution,radius:n.radius,angle:n.angle,vertices:n.vertices,offset:n.offset,coverage:n.coverage,elevationScale:n.elevationScale,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,flatShading:n.flatShading,radiusUnits:n.radiusUnits,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getFillColor,n.getElevation,n.radius,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Jt=o({__name:`VLayerDeckglBitmap`,props:{id:{},image:{},bounds:{},loadOptions:{},textureParameters:{},desaturate:{default:0},transparentColor:{},tintColor:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new z({id:n.id,image:n.image,bounds:n.bounds,loadOptions:n.loadOptions,textureParameters:n.textureParameters,desaturate:n.desaturate,transparentColor:n.transparentColor??[0,0,0,0],tintColor:n.tintColor??[255,255,255],opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.image,n.bounds,n.desaturate,n.tintColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Yt=o({__name:`VLayerDeckglGridCell`,props:{id:{},data:{},getPosition:{},getFillColor:{},getElevation:{},cellSize:{default:1e3},coverage:{default:1},elevationScale:{default:1},extruded:{type:Boolean,default:!0},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new re({id:n.id,data:n.data,getPosition:n.getPosition,getFillColor:n.getFillColor??[255,0,0,255],getElevation:n.getElevation??1e3,cellSize:n.cellSize,coverage:n.coverage,elevationScale:n.elevationScale,extruded:n.extruded,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getFillColor,n.getElevation,n.cellSize,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Xt=o({__name:`VLayerDeckglPointCloud`,props:{id:{},data:{},getPosition:{},getColor:{},getNormal:{},sizeUnits:{default:`pixels`},pointSize:{default:10},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new se({id:n.id,data:n.data,getPosition:n.getPosition,getColor:n.getColor??[0,0,0,255],getNormal:n.getNormal??[0,0,1],sizeUnits:n.sizeUnits,pointSize:n.pointSize,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getColor,n.pointSize,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Zt=o({__name:`VLayerDeckglHeatmap`,props:{id:{},data:{},getPosition:{},getWeight:{},intensity:{default:1},radiusPixels:{default:30},colorRange:{},threshold:{default:.05},colorDomain:{},aggregation:{default:`SUM`},weightsTextureSize:{default:2048},debounceTimeout:{default:500},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new me({id:n.id,data:n.data,getPosition:n.getPosition,getWeight:n.getWeight??1,intensity:n.intensity,radiusPixels:n.radiusPixels,colorRange:n.colorRange,threshold:n.threshold,colorDomain:n.colorDomain,aggregation:n.aggregation,weightsTextureSize:n.weightsTextureSize,debounceTimeout:n.debounceTimeout,opacity:n.opacity,visible:n.visible,pickable:n.pickable,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.getWeight,n.intensity,n.radiusPixels,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Qt=o({__name:`VLayerDeckglHexagon`,props:{id:{},data:{},getPosition:{},getColorWeight:{},getElevationWeight:{},gpuAggregation:{type:Boolean,default:!1},radius:{default:1e3},elevationScale:{default:1},elevationRange:{},colorRange:{},colorDomain:{},coverage:{default:1},extruded:{type:Boolean,default:!1},upperPercentile:{default:100},lowerPercentile:{default:0},elevationUpperPercentile:{default:100},elevationLowerPercentile:{default:0},colorScaleType:{default:`quantize`},material:{type:[Boolean,Object]},colorAggregation:{default:`SUM`},elevationAggregation:{default:`SUM`},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new he({id:n.id,data:n.data,getPosition:n.getPosition,getColorWeight:n.getColorWeight,getElevationWeight:n.getElevationWeight,gpuAggregation:n.gpuAggregation,radius:n.radius,elevationScale:n.elevationScale,elevationRange:n.elevationRange,colorRange:n.colorRange,colorDomain:n.colorDomain,coverage:n.coverage,extruded:n.extruded,upperPercentile:n.upperPercentile,lowerPercentile:n.lowerPercentile,elevationUpperPercentile:n.elevationUpperPercentile,elevationLowerPercentile:n.elevationLowerPercentile,colorScaleType:n.colorScaleType,material:n.material,colorAggregation:n.colorAggregation,elevationAggregation:n.elevationAggregation,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.radius,n.elevationScale,n.opacity,n.visible,n.extruded],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),$t=o({__name:`VLayerDeckglGrid`,props:{id:{},data:{},getPosition:{},getColorWeight:{},getElevationWeight:{},cellSize:{default:1e3},colorRange:{},coverage:{default:1},elevationDomain:{},elevationRange:{},elevationScale:{default:1},extruded:{type:Boolean,default:!1},upperPercentile:{default:100},lowerPercentile:{default:0},elevationUpperPercentile:{default:100},elevationLowerPercentile:{default:0},colorScaleType:{default:`quantize`},colorAggregation:{default:`SUM`},elevationAggregation:{default:`SUM`},gpuAggregation:{type:Boolean,default:!1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new pe({id:n.id,data:n.data,getPosition:n.getPosition,getColorWeight:n.getColorWeight??1,getElevationWeight:n.getElevationWeight??1,cellSize:n.cellSize,colorRange:n.colorRange,coverage:n.coverage,elevationDomain:n.elevationDomain,elevationRange:n.elevationRange,elevationScale:n.elevationScale,extruded:n.extruded,upperPercentile:n.upperPercentile,lowerPercentile:n.lowerPercentile,elevationUpperPercentile:n.elevationUpperPercentile,elevationLowerPercentile:n.elevationLowerPercentile,colorScaleType:n.colorScaleType,colorAggregation:n.colorAggregation,elevationAggregation:n.elevationAggregation,gpuAggregation:n.gpuAggregation,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.cellSize,n.colorRange,n.elevationScale,n.extruded,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),en=o({__name:`VLayerDeckglContour`,props:{id:{},data:{},getPosition:{},getWeight:{},cellSize:{default:1e3},contours:{},gpuAggregation:{type:Boolean,default:!1},aggregation:{default:`SUM`},zOffset:{default:.005},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new fe({id:n.id,data:n.data,getPosition:n.getPosition,getWeight:n.getWeight??1,cellSize:n.cellSize,contours:n.contours,gpuAggregation:n.gpuAggregation,aggregation:n.aggregation,zOffset:n.zOffset,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.cellSize,n.contours,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),tn=o({__name:`VLayerDeckglScreenGrid`,props:{id:{},data:{},getPosition:{},getWeight:{},cellSizePixels:{default:100},cellMarginPixels:{default:2},colorRange:{},colorDomain:{},gpuAggregation:{type:Boolean,default:!1},aggregation:{default:`SUM`},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ge({id:n.id,data:n.data,getPosition:n.getPosition,getWeight:n.getWeight??1,cellSizePixels:n.cellSizePixels,cellMarginPixels:n.cellMarginPixels,colorRange:n.colorRange,colorDomain:n.colorDomain,gpuAggregation:n.gpuAggregation,aggregation:n.aggregation,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPosition,n.cellSizePixels,n.colorRange,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),nn=o({__name:`VLayerDeckglTrips`,props:{id:{},data:{},getPath:{},getTimestamps:{},getColor:{},getWidth:{},currentTime:{default:0},trailLength:{default:120},fadeTrail:{type:Boolean,default:!0},widthUnits:{default:`pixels`},widthScale:{default:1},widthMinPixels:{default:0},widthMaxPixels:{default:2**53-1},capRounded:{type:Boolean,default:!1},jointRounded:{type:Boolean,default:!1},billboard:{type:Boolean,default:!1},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new De({id:n.id,data:n.data,getPath:n.getPath,getTimestamps:n.getTimestamps,getColor:n.getColor??[253,128,93],getWidth:n.getWidth??1,currentTime:n.currentTime,trailLength:n.trailLength,fadeTrail:n.fadeTrail,widthUnits:n.widthUnits,widthScale:n.widthScale,widthMinPixels:n.widthMinPixels,widthMaxPixels:n.widthMaxPixels,capRounded:n.capRounded,jointRounded:n.jointRounded,billboard:n.billboard,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getPath,n.currentTime,n.trailLength,n.getColor,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),rn=o({__name:`VLayerDeckglH3Hexagon`,props:{id:{},data:{},getHexagon:{},getFillColor:{},getLineColor:{},getElevation:{},highPrecision:{type:[Boolean,String],default:`auto`},coverage:{default:1},elevationScale:{default:1},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new be({id:n.id,data:n.data,getHexagon:n.getHexagon,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,highPrecision:n.highPrecision,coverage:n.coverage,elevationScale:n.elevationScale,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getHexagon,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),an=o({__name:`VLayerDeckglH3Cluster`,props:{id:{},data:{},getHexagons:{},getFillColor:{},getLineColor:{},getElevation:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ye({id:n.id,data:n.data,getHexagons:n.getHexagons,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getHexagons,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),on=o({__name:`VLayerDeckglMVT`,props:{id:{},data:{},minZoom:{default:0},maxZoom:{default:23},uniqueIdProperty:{},highlightedFeatureId:{},binary:{type:Boolean,default:!0},loadOptions:{},getFillColor:{},getLineColor:{},getLineWidth:{},getPointRadius:{},getElevation:{},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},pointRadiusUnits:{default:`meters`},pointRadiusScale:{default:1},pointRadiusMinPixels:{default:0},pointRadiusMaxPixels:{default:2**53-1},stroked:{type:Boolean,default:!0},filled:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},pointType:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`,`tileLoad`,`tileError`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new xe({id:n.id,data:n.data,minZoom:n.minZoom,maxZoom:n.maxZoom,uniqueIdProperty:n.uniqueIdProperty,highlightedFeatureId:n.highlightedFeatureId,binary:n.binary,loadOptions:n.loadOptions,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getLineWidth:n.getLineWidth??1,getPointRadius:n.getPointRadius??1,getElevation:n.getElevation??1e3,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,pointRadiusUnits:n.pointRadiusUnits,pointRadiusScale:n.pointRadiusScale,pointRadiusMinPixels:n.pointRadiusMinPixels,pointRadiusMaxPixels:n.pointRadiusMaxPixels,stroked:n.stroked,filled:n.filled,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,pointType:n.pointType,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e),onTileLoad:e=>r(`tileLoad`,e),onTileError:(e,t)=>r(`tileError`,e,t)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getFillColor,n.getLineColor,n.highlightedFeatureId,n.extruded,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),sn=o({__name:`VLayerDeckglTile`,props:{id:{},data:{},getTileData:{},renderSubLayers:{},tileSize:{default:512},maxZoom:{},minZoom:{default:0},maxCacheSize:{},maxCacheByteSize:{},refinementStrategy:{default:`best-available`},zRange:{},maxRequests:{default:6},extent:{},loadOptions:{},zoomOffset:{default:0},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`,`viewportLoad`,`tileLoad`,`tileUnload`,`tileError`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Ee({id:n.id,data:n.data,getTileData:n.getTileData,renderSubLayers:n.renderSubLayers,tileSize:n.tileSize,maxZoom:n.maxZoom,minZoom:n.minZoom,maxCacheSize:n.maxCacheSize,maxCacheByteSize:n.maxCacheByteSize,refinementStrategy:n.refinementStrategy,zRange:n.zRange,maxRequests:n.maxRequests,extent:n.extent,loadOptions:n.loadOptions,zoomOffset:n.zoomOffset,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e),onViewportLoad:e=>r(`viewportLoad`,e),onTileLoad:e=>r(`tileLoad`,e),onTileUnload:e=>r(`tileUnload`,e),onTileError:(e,t)=>r(`tileError`,e,t)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.tileSize,n.maxZoom,n.minZoom,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),cn=o({__name:`VLayerDeckglTile3D`,props:{id:{},data:{},loader:{},loadOptions:{},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},opacity:{default:1},visible:{type:Boolean,default:!0},pointSize:{default:1},getPointColor:{},beforeId:{}},emits:[`click`,`hover`,`tilesetLoad`,`tileLoad`,`tileUnload`,`tileError`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Te({id:n.id,data:n.data,pointSize:n.pointSize,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e),onTilesetLoad:e=>r(`tilesetLoad`,e),onTileLoad:e=>r(`tileLoad`,e),onTileUnload:e=>r(`tileUnload`,e),onTileError:(e,t,n)=>r(`tileError`,e,t,n),...n.loader!==void 0&&{loader:n.loader},...n.loadOptions!==void 0&&{loadOptions:n.loadOptions},...n.highlightColor!==void 0&&{highlightColor:n.highlightColor},...n.getPointColor!==void 0&&{getPointColor:n.getPointColor}}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.pointSize,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),ln=o({__name:`VLayerDeckglTerrain`,props:{id:{},elevationData:{},texture:{},meshMaxError:{default:4},elevationDecoder:{},bounds:{},loadOptions:{},workerUrl:{},color:{},wireframe:{type:Boolean,default:!1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new we({id:n.id,elevationData:n.elevationData,texture:n.texture,meshMaxError:n.meshMaxError,elevationDecoder:n.elevationDecoder,bounds:n.bounds,loadOptions:n.loadOptions,workerUrl:n.workerUrl,color:n.color??[255,255,255],wireframe:n.wireframe,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.elevationData,n.texture,n.meshMaxError,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),un=o({__name:`VLayerDeckglGreatCircle`,props:{id:{},data:{},getSourcePosition:{},getTargetPosition:{},getSourceColor:{},getTargetColor:{},getWidth:{},getHeight:{},getTilt:{},numSegments:{default:50},widthUnits:{default:`pixels`},widthScale:{default:1},widthMinPixels:{default:0},widthMaxPixels:{default:2**53-1},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ve({id:n.id,data:n.data,getSourcePosition:n.getSourcePosition,getTargetPosition:n.getTargetPosition,getSourceColor:n.getSourceColor??[0,0,255],getTargetColor:n.getTargetColor??[0,255,0],getWidth:n.getWidth??1,getHeight:n.getHeight??1,getTilt:n.getTilt??0,numSegments:n.numSegments,widthUnits:n.widthUnits,widthScale:n.widthScale,widthMinPixels:n.widthMinPixels,widthMaxPixels:n.widthMaxPixels,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getSourcePosition,n.getTargetPosition,n.getSourceColor,n.getTargetColor,n.getWidth,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),dn=o({__name:`VLayerDeckglS2`,props:{id:{},data:{},getS2Token:{},getFillColor:{},getLineColor:{},getElevation:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Ce({id:n.id,data:n.data,getS2Token:n.getS2Token,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getS2Token,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),fn=o({__name:`VLayerDeckglGeohash`,props:{id:{},data:{},getGeohash:{},getFillColor:{},getLineColor:{},getElevation:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new _e({id:n.id,data:n.data,getGeohash:n.getGeohash,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getGeohash,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),pn=o({__name:`VLayerDeckglQuadkey`,props:{id:{},data:{},getQuadkey:{},getFillColor:{},getLineColor:{},getElevation:{},filled:{type:Boolean,default:!0},stroked:{type:Boolean,default:!0},extruded:{type:Boolean,default:!1},wireframe:{type:Boolean,default:!1},elevationScale:{default:1},lineWidthUnits:{default:`meters`},lineWidthScale:{default:1},lineWidthMinPixels:{default:0},lineWidthMaxPixels:{default:2**53-1},material:{type:[Boolean,Object]},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Se({id:n.id,data:n.data,getQuadkey:n.getQuadkey,getFillColor:n.getFillColor??[255,0,0,255],getLineColor:n.getLineColor??[0,0,0,255],getElevation:n.getElevation??1e3,filled:n.filled,stroked:n.stroked,extruded:n.extruded,wireframe:n.wireframe,elevationScale:n.elevationScale,lineWidthUnits:n.lineWidthUnits,lineWidthScale:n.lineWidthScale,lineWidthMinPixels:n.lineWidthMinPixels,lineWidthMaxPixels:n.lineWidthMaxPixels,material:n.material,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.getQuadkey,n.getFillColor,n.getElevation,n.extruded,n.elevationScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),mn=o({__name:`VLayerDeckglWMS`,props:{id:{},data:{},serviceType:{default:`wms`},layers:{},srs:{default:`EPSG:4326`},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Oe({id:n.id,data:n.data,serviceType:n.serviceType,layers:n.layers,srs:n.srs,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,highlightColor:n.highlightColor,beforeId:n.beforeId,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e)}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.layers,n.srs,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),hn=o({__name:`VLayerDeckglSimpleMesh`,props:{id:{},data:{},mesh:{},getPosition:{},getColor:{},getOrientation:{},getScale:{},getTranslation:{},getTransformMatrix:{},texture:{},sizeScale:{default:1},wireframe:{type:Boolean,default:!1},material:{type:[Boolean,Object]},loaders:{},loadOptions:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new Ae({id:n.id,data:n.data,mesh:n.mesh,getPosition:n.getPosition,getColor:n.getColor??[255,255,255,255],getOrientation:n.getOrientation??[0,0,0],getScale:n.getScale??[1,1,1],getTranslation:n.getTranslation??[0,0,0],sizeScale:n.sizeScale,wireframe:n.wireframe,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e),...n.getTransformMatrix!==void 0&&{getTransformMatrix:n.getTransformMatrix},...n.texture!==void 0&&{texture:n.texture},...n.material!==void 0&&{material:n.material},...n.loaders!==void 0&&{loaders:n.loaders},...n.loadOptions!==void 0&&{loadOptions:n.loadOptions},...n.highlightColor!==void 0&&{highlightColor:n.highlightColor},...n.beforeId!==void 0&&{beforeId:n.beforeId}}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.mesh,n.getPosition,n.getColor,n.getOrientation,n.getScale,n.sizeScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),gn=o({__name:`VLayerDeckglScenegraph`,props:{id:{},data:{},scenegraph:{},getPosition:{},getColor:{},getOrientation:{},getScale:{},getTranslation:{},getTransformMatrix:{},sizeScale:{default:1},sizeMinPixels:{default:0},sizeMaxPixels:{default:2**53-1},animator:{},loaders:{},loadOptions:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!0},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{},_animations:{},_lighting:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),c=()=>new ke({id:n.id,data:n.data,scenegraph:n.scenegraph,getPosition:n.getPosition,getColor:n.getColor??[255,255,255,255],getOrientation:n.getOrientation??[0,0,0],getScale:n.getScale??[1,1,1],getTranslation:n.getTranslation??[0,0,0],sizeScale:n.sizeScale,sizeMinPixels:n.sizeMinPixels,sizeMaxPixels:n.sizeMaxPixels,opacity:n.opacity,visible:n.visible,pickable:n.pickable,autoHighlight:n.autoHighlight,onClick:e=>r(`click`,e),onHover:e=>r(`hover`,e),...n.getTransformMatrix!==void 0&&{getTransformMatrix:n.getTransformMatrix},...n.animator!==void 0&&{animator:n.animator},...n.loaders!==void 0&&{loaders:n.loaders},...n.loadOptions!==void 0&&{loadOptions:n.loadOptions},...n.highlightColor!==void 0&&{highlightColor:n.highlightColor},...n.beforeId!==void 0&&{beforeId:n.beforeId},...n._animations!==void 0&&{_animations:n._animations},...n._lighting!==void 0&&{_lighting:n._lighting}}),l=()=>{a(c())};return p(()=>{i.value?.isStyleLoaded()?l():i.value?.once(`style.load`,l)}),T(()=>[n.data,n.scenegraph,n.getPosition,n.getColor,n.getOrientation,n.getScale,n.sizeScale,n.opacity,n.visible],()=>s(n.id,c()),{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),_n=`pnpm add @deck.gl/core @deck.gl/layers @deck.gl/mapbox @developmentseed/deck.gl-geotiff @developmentseed/deck.gl-raster @developmentseed/geotiff @developmentseed/proj`,vn=o({__name:`VLayerDeckglCOG`,props:{id:{},geotiff:{},tileSize:{default:256},maxZoom:{},minZoom:{default:0},maxCacheSize:{},refinementStrategy:{default:`best-available`},maxRequests:{default:6},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},beforeId:{},debug:{type:Boolean,default:!1},debugOpacity:{default:.25}},emits:[`click`,`hover`,`geotiffLoad`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),l=x(null),u=x(null),d=()=>{if(!l.value)return null;let e={id:C(n.id),geotiff:C(n.geotiff),opacity:C(n.opacity),visible:C(n.visible),pickable:C(n.pickable),autoHighlight:C(n.autoHighlight),debug:C(n.debug),debugOpacity:C(n.debugOpacity)};return u.value&&(e.epsgResolver=u.value),e.onGeoTIFFLoad=(e,t)=>{r(`geotiffLoad`,e,t)},n.tileSize!==256&&(e.tileSize=C(n.tileSize)),n.maxZoom!==void 0&&(e.maxZoom=C(n.maxZoom)),n.minZoom!==0&&(e.minZoom=C(n.minZoom)),n.maxCacheSize!==void 0&&(e.maxCacheSize=C(n.maxCacheSize)),n.refinementStrategy!==`best-available`&&(e.refinementStrategy=C(n.refinementStrategy)),n.maxRequests!==6&&(e.maxRequests=C(n.maxRequests)),n.highlightColor!==void 0&&(e.highlightColor=C(n.highlightColor)),n.beforeId!==void 0&&(e.beforeId=C(n.beforeId)),c(new l.value(e))},m=async()=>{try{let[e,t]=await Promise.all([V(`@developmentseed/deck.gl-geotiff`,()=>import(`@developmentseed/deck.gl-geotiff`),_n),V(`@developmentseed/proj`,()=>import(`@developmentseed/proj`),_n)]);l.value=c(e.COGLayer),u.value=t.epsgResolver;let n=d();n&&a(n)}catch(e){console.error(`[deck.gl-raster] Error loading COGLayer:`,e),console.error(`Make sure @developmentseed/deck.gl-geotiff is installed`)}};return p(()=>{i.value?.isStyleLoaded()?m():i.value?.once(`style.load`,m)}),T(()=>[n.geotiff,n.tileSize,n.maxZoom,n.minZoom,n.opacity,n.visible,n.debug,n.debugOpacity],()=>{let e=d();e&&s(n.id,e)},{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Q=`pnpm add @deck.gl/core @deck.gl/layers @deck.gl/mapbox @developmentseed/deck.gl-geotiff @developmentseed/deck.gl-raster @developmentseed/geotiff @developmentseed/proj`,yn=o({__name:`VLayerDeckglMosaic`,props:{id:{},sources:{},renderMode:{default:`trueColor`},customRenderModules:{},colormapData:{},maxCacheSize:{default:1/0},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},highlightColor:{},ndviRange:{default:()=>[-1,1]},beforeId:{}},emits:[`click`,`hover`,`sourceLoad`,`error`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o}=W(i),s=``,l=x(null),u={name:`set-alpha-1`,inject:{"fs:DECKGL_FILTER_COLOR":`color = vec4(color.rgb, 1.0);`}},d={name:`false-color-infrared`,inject:{"fs:DECKGL_FILTER_COLOR":`
2
- float nir = color[3];
3
- float red = color[0];
4
- float green = color[1];
5
- color.rgb = vec3(nir, red, green);
6
- `}},m={name:`ndvi-compute`,inject:{"fs:DECKGL_FILTER_COLOR":`
7
- float nir_c = color[3];
8
- float red_c = color[0];
9
- float sum_c = nir_c + red_c;
10
- float ndvi_c = sum_c > 0.001 ? (nir_c - red_c) / sum_c : 0.0;
11
- color = vec4(ndvi_c, ndvi_c, ndvi_c, 1.0);
12
- `}},h={name:`ndviFilter`,fs:`uniform ndviFilterUniforms {
13
- float ndviMin;
14
- float ndviMax;
15
- } ndviFilter;
16
- `,inject:{"fs:DECKGL_FILTER_COLOR":`
17
- if (color.r < ndviFilter.ndviMin || color.r > ndviFilter.ndviMax) {
18
- discard;
19
- }
20
- `},uniformTypes:{ndviMin:`f32`,ndviMax:`f32`},getUniforms:e=>({ndviMin:e.ndviMin??-1,ndviMax:e.ndviMax??1})},g={name:`ndvi-colormap`,inject:{"fs:DECKGL_FILTER_COLOR":`
21
- float t = clamp((color.r + 1.0) / 2.0, 0.0, 1.0);
22
-
23
- vec3 result;
24
- if (t < 0.4) {
25
- float localT = t / 0.4;
26
- result = mix(vec3(0.0, 0.0, 0.5), vec3(0.5, 0.8, 0.9), localT);
27
- } else if (t < 0.5) {
28
- float localT = (t - 0.4) / 0.1;
29
- result = mix(vec3(0.5, 0.8, 0.9), vec3(0.9, 0.9, 0.4), localT);
30
- } else if (t < 0.6) {
31
- float localT = (t - 0.5) / 0.1;
32
- result = mix(vec3(0.9, 0.9, 0.4), vec3(0.6, 0.8, 0.2), localT);
33
- } else if (t < 0.75) {
34
- float localT = (t - 0.6) / 0.15;
35
- result = mix(vec3(0.6, 0.8, 0.2), vec3(0.1, 0.6, 0.1), localT);
36
- } else {
37
- float localT = (t - 0.75) / 0.25;
38
- result = mix(vec3(0.1, 0.6, 0.1), vec3(0.0, 0.3, 0.0), localT);
39
- }
40
-
41
- color.rgb = result;
42
- `}};function _(e,t,n,r,i){if(e===`custom`&&i)return i(t);let a=[{module:n.CreateTexture,props:{textureName:t}}];return e===`trueColor`?[...a,{module:u}]:e===`falseColor`?[...a,{module:d},{module:u}]:[...a,{module:m},{module:h,props:{ndviMin:r[0],ndviMax:r[1]}},{module:g},{module:u}]}function v(){let e=l.value;if(!e||!n.sources.length)return null;let{MosaicLayer:t,COGLayer:i,CreateTexture:a,fromUrl:o,resolveEpsg:s}=e,c=C(n.sources),u=C(n.renderMode),d=C(n.ndviRange),f=n.customRenderModules;return new t({id:`${C(n.id)}-mosaic`,sources:c,maxCacheSize:C(n.maxCacheSize),getSource:async e=>{try{let t=await o(e.assets.image.href);return r(`sourceLoad`,e),t}catch(t){throw r(`error`,t,e),t}},renderSource:(e,{data:t,signal:n})=>t?new i({id:`cog-${e.assets.image.href}-${u}`,geotiff:t,epsgResolver:s,getTileData:async(e,t)=>{let{device:r,x:i,y:a}=t,{array:o}=await e.fetchTile(i,a,{signal:n,boundless:!1});if(o.layout===`band-separate`)throw Error(`Band-separate COGs are not supported`);return{texture:r.createTexture({data:o.data,format:`rgba8unorm`,width:o.width,height:o.height}),width:o.width,height:o.height}},renderTile:e=>({image:e.texture,renderPipeline:_(u,e.texture,{CreateTexture:a},d,f)}),signal:n}):null})}async function y(){try{let[e,t,n,r]=await Promise.all([V(`@developmentseed/deck.gl-geotiff`,()=>import(`@developmentseed/deck.gl-geotiff`),Q),V(`@developmentseed/deck.gl-raster`,()=>import(`@developmentseed/deck.gl-raster/gpu-modules`),Q),V(`@developmentseed/geotiff`,()=>import(`@developmentseed/geotiff`),Q),V(`@developmentseed/proj`,()=>import(`@developmentseed/proj`),Q)]);l.value=c({MosaicLayer:e.MosaicLayer,COGLayer:e.COGLayer,CreateTexture:t.CreateTexture,fromUrl:n.GeoTIFF.fromUrl,resolveEpsg:r.epsgResolver});let i=v();i&&(s=i.id,a(i))}catch(e){console.error(`[deck.gl-mosaic] Error loading MosaicLayer:`,e),console.error(`Make sure @developmentseed/deck.gl-geotiff, @developmentseed/deck.gl-raster, and @developmentseed/geotiff are installed`),r(`error`,e)}}return p(()=>{i.value?.isStyleLoaded()?y():i.value?.once(`style.load`,y)}),T(()=>[n.sources,n.renderMode,n.ndviRange,n.opacity,n.visible],()=>{if(l.value){let e=v();e&&(s=e.id,a(e))}},{deep:!0}),f(()=>{s&&o(s)}),(e,t)=>b(e.$slots,`default`)}}),$=`pnpm add @deck.gl/core @deck.gl/layers @deck.gl/mapbox @developmentseed/deck.gl-geotiff @developmentseed/deck.gl-raster @developmentseed/geotiff @developmentseed/proj`,bn=o({__name:`VLayerDeckglMultiCOG`,props:{id:{},sources:{},composite:{},renderPipeline:{},maxError:{default:.125},maxCacheSize:{},maxCacheByteSize:{},maxRequests:{default:6},debounceTime:{},refinementStrategy:{default:`best-available`},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},autoHighlight:{type:Boolean,default:!1},beforeId:{},debug:{type:Boolean,default:!1},debugOpacity:{default:.5},debugLevel:{default:1}},emits:[`click`,`hover`,`geotiffLoad`],setup(e,{emit:t}){let n=e,r=t,i=B(G),{addLayer:a,removeLayer:o,updateLayer:s}=W(i),l=x(null),u=x(null),d=()=>{if(!l.value)return null;let e={id:C(n.id),sources:C(n.sources),opacity:C(n.opacity),visible:C(n.visible),pickable:C(n.pickable),autoHighlight:C(n.autoHighlight),debug:C(n.debug),debugOpacity:C(n.debugOpacity),debugLevel:C(n.debugLevel),maxError:C(n.maxError)};return u.value&&(e.epsgResolver=u.value),n.composite&&(e.composite=C(n.composite)),n.renderPipeline&&(e.renderPipeline=C(n.renderPipeline)),n.maxCacheSize!==void 0&&(e.maxCacheSize=C(n.maxCacheSize)),n.maxCacheByteSize!==void 0&&(e.maxCacheByteSize=C(n.maxCacheByteSize)),n.maxRequests!==6&&(e.maxRequests=C(n.maxRequests)),n.debounceTime!==void 0&&(e.debounceTime=C(n.debounceTime)),n.refinementStrategy!==`best-available`&&(e.refinementStrategy=C(n.refinementStrategy)),n.beforeId!==void 0&&(e.beforeId=C(n.beforeId)),e.onGeoTIFFLoad=(e,t)=>{r(`geotiffLoad`,e,t)},c(new l.value(e))},m=async()=>{try{let[e,t]=await Promise.all([V(`@developmentseed/deck.gl-geotiff`,()=>import(`@developmentseed/deck.gl-geotiff`),$),V(`@developmentseed/proj`,()=>import(`@developmentseed/proj`),$)]);l.value=c(e.MultiCOGLayer),u.value=t.epsgResolver;let n=d();n&&a(n)}catch(e){console.error(`[deck.gl-raster] Error loading MultiCOGLayer:`,e),console.error(`Make sure @developmentseed/deck.gl-geotiff and @developmentseed/proj are installed`)}};return p(()=>{i.value?.isStyleLoaded()?m():i.value?.once(`style.load`,m)}),T(()=>[n.sources,n.composite,n.renderPipeline,n.opacity,n.visible,n.debug,n.debugOpacity,n.debugLevel,n.maxError],()=>{let e=d();e&&s(n.id,e)},{deep:!0}),f(()=>{o(n.id)}),(e,t)=>b(e.$slots,`default`)}}),xn=`pnpm add @deck.gl/core @deck.gl/layers @deck.gl/mapbox @developmentseed/deck.gl-raster @developmentseed/deck.gl-zarr @developmentseed/proj zarrita`,Sn=o({__name:`VLayerDeckglZarr`,props:{id:{},node:{},variable:{},selection:{},metadata:{},getTileData:{},renderTile:{},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},beforeId:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=B(G),{addLayer:i,removeLayer:a,updateLayer:o}=W(r),s=x(null),l=x(null),u=()=>{if(!s.value)return null;let e={id:C(n.id),node:C(n.node),selection:C(n.selection),getTileData:n.getTileData,renderTile:n.renderTile,opacity:C(n.opacity),visible:C(n.visible),pickable:C(n.pickable)};return l.value&&(e.epsgResolver=l.value),n.variable!==void 0&&(e.variable=C(n.variable)),n.metadata!==void 0&&(e.metadata=C(n.metadata)),n.beforeId!==void 0&&(e.beforeId=C(n.beforeId)),c(new s.value(e))},d=async()=>{try{let[e,t]=await Promise.all([V(`@developmentseed/deck.gl-zarr`,()=>import(`@developmentseed/deck.gl-zarr`),xn),V(`@developmentseed/proj`,()=>import(`@developmentseed/proj`),xn)]);s.value=c(e.ZarrLayer),l.value=t.epsgResolver;let n=u();n&&i(n)}catch(e){console.error(`[deck.gl-raster] Error loading ZarrLayer:`,e),console.error(`Make sure @developmentseed/deck.gl-zarr, @developmentseed/proj, and zarrita are installed`)}};return p(()=>{r.value?.isStyleLoaded()?d():r.value?.once(`style.load`,d)}),T(()=>[n.node,n.variable,n.selection,n.metadata,n.opacity,n.visible],()=>{let e=u();e&&o(n.id,e)},{deep:!0}),f(()=>{a(n.id)}),(e,t)=>b(e.$slots,`default`)}}),Cn=o({__name:`VLayerDeckglWindParticle`,props:{id:{},imageUrl:{},windData:{},bounds:{default:()=>[-180,-90,180,90]},uMin:{default:-50},uMax:{default:50},vMin:{default:-50},vMax:{default:50},numParticles:{default:8192},maxAge:{default:30},speedFactor:{default:50},color:{default:()=>[255,255,255,200]},colorRamp:{default:()=>[[0,[59,130,189,255]],[.1,[102,194,165,255]],[.2,[171,221,164,255]],[.3,[230,245,152,255]],[.4,[254,224,139,255]],[.5,[253,174,97,255]],[.6,[244,109,67,255]],[1,[213,62,79,255]]]},speedRange:{default:()=>[0,30]},width:{default:1.5},animate:{type:Boolean,default:!0},opacity:{default:1},visible:{type:Boolean,default:!0},pickable:{type:Boolean,default:!1},beforeId:{}},emits:[`click`,`hover`,`loaded`,`error`],setup(e,{emit:n}){let r=e,i=n,a=B(G),{addLayer:o,removeLayer:s,updateLayer:c}=W(a),l=v(!1),u=v(null),d=v({uMin:r.uMin,uMax:r.uMax,vMin:r.vMin,vMax:r.vMax}),m=t(()=>{let e=d.value.uMax-d.value.uMin,t=d.value.vMax-d.value.vMin;return[Math.min(e,t)*-1,Math.max(e,t)]}),h=()=>u.value?new Me({id:r.id,image:u.value,bounds:r.bounds,imageUnscale:m.value,numParticles:r.numParticles,maxAge:r.maxAge,speedFactor:r.speedFactor,color:r.color,colorRamp:r.colorRamp,speedRange:r.speedRange,width:r.width,animate:r.animate,wrapLongitude:!0,opacity:r.opacity,visible:r.visible,pickable:r.pickable,beforeId:r.beforeId,onClick:e=>i(`click`,e),onHover:e=>i(`hover`,e)}):null,g=e=>{try{let t=Fe(e,{width:360,height:180,bounds:r.bounds});return d.value={uMin:t.uMin,uMax:t.uMax,vMin:t.vMin,vMax:t.vMax},u.value=t.canvas.toDataURL(`image/png`),!0}catch(e){return i(`error`,e instanceof Error?e:Error(String(e))),!1}},_=()=>{if(r.windData&&r.windData.length>0){if(!g(r.windData))return}else if(r.imageUrl)u.value=r.imageUrl,d.value={uMin:r.uMin,uMax:r.uMax,vMin:r.vMin,vMax:r.vMax};else return;let e=h();e&&(o(e),l.value=!0,i(`loaded`))},y=()=>{if(!l.value)return;let e=h();e&&c(r.id,e)};return p(()=>{a.value?.isStyleLoaded()?_():a.value?.once(`style.load`,_)}),T(()=>r.windData,e=>{e&&e.length>0&&g(e)&&y()},{deep:!0}),T(()=>r.imageUrl,e=>{e&&!r.windData&&(u.value=e,d.value={uMin:r.uMin,uMax:r.uMax,vMin:r.vMin,vMax:r.vMax},y())}),T(()=>[r.numParticles,r.maxAge,r.speedFactor,r.color,r.colorRamp,r.speedRange,r.width,r.animate,r.opacity,r.visible],()=>{y()},{deep:!0}),f(()=>{s(r.id)}),(e,t)=>b(e.$slots,`default`)}}),wn=o({__name:`VLayerDeckgl`,props:{layer:{}},emits:[`click`,`hover`],setup(e,{emit:t}){let n=e,r=B(G),{addLayer:i,removeLayer:a,updateLayer:o}=W(r),s=e=>e.id,c=()=>{i(n.layer)};return p(()=>{r.value?.isStyleLoaded()?c():r.value?.once(`style.load`,c)}),T(()=>n.layer,(e,t)=>{let n=t?s(t):null,r=s(e);n&&n!==r?(a(n),i(e)):o(r,e)},{deep:!0}),f(()=>{a(s(n.layer))}),(e,t)=>b(e.$slots,`default`)}});var Tn=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const En=[`id`];var Dn=Tn(o({__name:`VMap`,props:{options:{default:()=>({container:`map`})},supportPmtiles:{type:Boolean,default:!1}},emits:[`loaded`,...Dt],setup(e,{emit:t}){let n=e,a=t;if(n.supportPmtiles){let e=new I({metadata:!0});D.addProtocol(`pmtiles`,e.tile),_(K,e)}let o=x(null),s=v(!1),c=v(Dt);_(G,o),W(o),p(()=>{o.value=new j(n.options),s.value=!0,l()});let l=()=>{o.value&&c.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)=>(g(),i(`div`,{id:`${e.options?.container}`,class:`v-map-container`},[s.value?b(t.$slots,`default`,{key:0},()=>[b(t.$slots,`default`,{},void 0,!0)],!0):r(`v-if`,!0)],8,En))}}),[[`__scopeId`,`data-v-a543ca92`]]);const On=[`id`],kn=o({__name:`VPopup`,props:{options:{default:()=>({})},coordinates:{default:()=>({})},marker:{default:()=>({})}},emits:[`added`,`removed`,`open`,`close`],setup(e,{emit:t}){let n=e,r=t,a=B(G),o=new ee(n.options),s=v(!0),c=v(null),l=()=>a.value||null,u=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?s.value=!0:(s.value=!1,setTimeout(t,200))};t()})},d=()=>{try{c.value&&o.setDOMContent(c.value)}catch(e){console.error(`Error setting popup content:`,e)}},m=()=>{try{o.setLngLat(n.coordinates)}catch(e){console.error(`Error setting popup coordinates:`,e)}},h=()=>{let e=l();if(e)try{`setPopup`in n.marker?n.marker.setPopup(o):o.addTo(e),r(`added`,{popup:o})}catch(e){console.error(`Error adding popup to marker:`,e)}},_=()=>{try{o.remove(),r(`removed`)}catch(e){console.error(`Error removing popup:`,e)}},y=()=>{try{At.forEach(e=>{o.on(e,()=>{r(e)})})}catch(e){console.error(`Error setting up popup events:`,e)}},x=()=>{try{At.forEach(e=>{o.off(e,()=>{r(e)})})}catch(e){console.error(`Error removing popup events:`,e)}};return T(a,e=>{e&&u(e)},{immediate:!0}),T(()=>n.coordinates,()=>{m()},{deep:!0}),p(()=>{if(s.value)try{d(),m(),h(),y()}catch(e){console.error(`Error initializing popup:`,e)}else _(),x()}),f(()=>{_(),x()}),(e,t)=>(g(),i(`section`,{id:`popup-${Date.now()}`,ref_key:`content`,ref:c},[b(e.$slots,`default`)],8,On))}}),An=[`id`],jn=o({__name:`VMarker`,props:{coordinates:{},options:{default:()=>({})},popupOptions:{default:()=>({})},cursor:{default:`pointer`}},emits:[`added`,`update:coordinates`,`removed`,...Ot,...kt],setup(e,{emit:t}){let a=w(),o=e,s=t,c=B(G),l=v(null),u=v(!0),d=v(!1),m=v(null),h=()=>c.value||null,_=e=>{e&&e.on(`style.load`,()=>{let t=()=>{e.isStyleLoaded()?u.value=!0:(u.value=!1,setTimeout(t,200))};t()})},y=e=>{e instanceof HTMLElement&&(m.value=e)},x=e=>{try{e.setLngLat(o.coordinates)}catch(e){console.error(`Error setting marker coordinates:`,e)}},S=e=>{try{e.getElement().style.cursor=o.cursor||`default`}catch(e){console.error(`Error setting cursor:`,e)}},C=e=>{let t=h();if(t)try{e.addTo(t),s(`added`,{marker:e})}catch(e){console.error(`Error adding marker to map:`,e)}},D=e=>{try{e.remove(),s(`removed`)}catch(e){console.error(`Error removing marker from map:`,e)}},O=e=>{try{let t;Ot.forEach(n=>{e.on(n,e=>{n===`dragend`&&(t=Array.isArray(o.coordinates)?[e.target.getLngLat().lng,e.target.getLngLat().lat]:e.target.getLngLat(),s(`update:coordinates`,t)),s(n,e)})}),kt.forEach(t=>{e.getElement().addEventListener(t,e=>{s(t,e)})})}catch(e){console.error(`Error setting up marker events:`,e)}};T(l,e=>{d.value=e!==null&&`_map`in e}),T(c,e=>{e&&_(e)},{immediate:!0});let k=e=>{if(!(!u.value||l.value))try{l.value=new M({...o.options,element:e||void 0}),x(l.value),C(l.value),S(l.value),O(l.value)}catch(e){console.error(`Error initializing marker:`,e)}};return T(m,e=>{e&&!l.value&&k(e)}),p(()=>{a.markers||k()}),f(()=>{l.value&&D(l.value)}),(t,a)=>(g(),i(`section`,{id:`marker-${Date.now()}`,class:`absolute`},[b(t.$slots,`markers`,{setRef:y}),d.value&&t.$slots.default?(g(),n(kn,{key:0,marker:l.value,options:e.popupOptions,coordinates:e.coordinates},{default:E(()=>[b(t.$slots,`default`)]),_:3},8,[`marker`,`options`,`coordinates`])):r(`v-if`,!0)],8,An))}});var Mn=Dn;export{U as DeckLayersKey,H as DeckOverlayKey,Le as VControlAttribution,Re as VControlFullscreen,ze as VControlGeolocate,Ze as VControlLayer,ut as VControlLayerGroup,Ct as VControlLegend,He as VControlLidar,Be as VControlNavigation,Ve as VControlScale,wn as VLayerDeckgl,zt as VLayerDeckglArc,Jt as VLayerDeckglBitmap,vn as VLayerDeckglCOG,qt as VLayerDeckglColumn,en as VLayerDeckglContour,fn as VLayerDeckglGeohash,Bt as VLayerDeckglGeojson,un as VLayerDeckglGreatCircle,$t as VLayerDeckglGrid,Yt as VLayerDeckglGridCell,an as VLayerDeckglH3Cluster,rn as VLayerDeckglH3Hexagon,Zt as VLayerDeckglHeatmap,Qt as VLayerDeckglHexagon,Gt as VLayerDeckglIcon,Ht as VLayerDeckglLine,on as VLayerDeckglMVT,yn as VLayerDeckglMosaic,bn as VLayerDeckglMultiCOG,Vt as VLayerDeckglPath,Xt as VLayerDeckglPointCloud,Ut as VLayerDeckglPolygon,pn as VLayerDeckglQuadkey,dn as VLayerDeckglS2,Rt as VLayerDeckglScatterplot,gn as VLayerDeckglScenegraph,tn as VLayerDeckglScreenGrid,hn as VLayerDeckglSimpleMesh,Wt as VLayerDeckglSolidPolygon,ln as VLayerDeckglTerrain,Kt as VLayerDeckglText,sn as VLayerDeckglTile,cn as VLayerDeckglTile3D,nn as VLayerDeckglTrips,mn as VLayerDeckglWMS,Cn as VLayerDeckglWindParticle,Sn as VLayerDeckglZarr,wt as VLayerMaplibreCanvas,Pt as VLayerMaplibreCluster,Tt as VLayerMaplibreGeojson,Et as VLayerMaplibreImage,It as VLayerMaplibreIsochrone,Nt as VLayerMaplibrePmtile,X as VLayerMaplibreRaster,Ft as VLayerMaplibreRoute,Lt as VLayerMaplibreStarfield,jt as VLayerMaplibreVector,Mt as VLayerMaplibreVideo,Dn as VMap,jn as VMarker,kn as VPopup,je as WindParticleLayer,Ne as createWindDataFromOpenWeatherMap,Mn as default,Pe as generateWindTexture,V as requirePeer,Ie as useDeckLayers,W as useDeckOverlay};
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};
43
2
  //# sourceMappingURL=index.js.map