tangram-core 0.3.0__cp310-cp310-manylinux_2_28_aarch64.whl

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 (162) hide show
  1. tangram_core/App.vue +441 -0
  2. tangram_core/CommandPalette.vue +200 -0
  3. tangram_core/HighlightText.vue +32 -0
  4. tangram_core/__Timeline.vue +300 -0
  5. tangram_core/__init__.py +5 -0
  6. tangram_core/__main__.py +331 -0
  7. tangram_core/_core.cpython-310-aarch64-linux-gnu.so +0 -0
  8. tangram_core/_core.pyi +38 -0
  9. tangram_core/api.ts +652 -0
  10. tangram_core/backend.py +458 -0
  11. tangram_core/components.ts +2 -0
  12. tangram_core/config.py +167 -0
  13. tangram_core/dist-frontend/aggregation-layers.js +521 -0
  14. tangram_core/dist-frontend/aggregation-layers.js.map +1 -0
  15. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js +2 -0
  16. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
  17. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js +11 -0
  18. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js.map +1 -0
  19. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js +3 -0
  20. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js.map +1 -0
  21. tangram_core/dist-frontend/assets/b612-latin-400-italic-DePNXA0a.woff +0 -0
  22. tangram_core/dist-frontend/assets/b612-latin-400-italic-a-4GLPtl.woff2 +0 -0
  23. tangram_core/dist-frontend/assets/b612-latin-400-normal-CC98FVm_.woff2 +0 -0
  24. tangram_core/dist-frontend/assets/b612-latin-400-normal-JbZ7xwUX.woff +0 -0
  25. tangram_core/dist-frontend/assets/b612-latin-700-normal-B_Snq1wd.woff +0 -0
  26. tangram_core/dist-frontend/assets/b612-latin-700-normal-BinQrnoB.woff2 +0 -0
  27. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js +26 -0
  28. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js.map +1 -0
  29. tangram_core/dist-frontend/assets/color-CUNNsFV-.js +17 -0
  30. tangram_core/dist-frontend/assets/color-CUNNsFV-.js.map +1 -0
  31. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js +2 -0
  32. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js.map +1 -0
  33. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js +2 -0
  34. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js.map +1 -0
  35. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js +2 -0
  36. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js.map +1 -0
  37. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js +1010 -0
  38. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js.map +1 -0
  39. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js +94 -0
  40. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js.map +1 -0
  41. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js +2 -0
  42. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js.map +1 -0
  43. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js +2 -0
  44. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js.map +1 -0
  45. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 +0 -0
  46. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-HYADljCo.woff +0 -0
  47. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 +0 -0
  48. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff +0 -0
  49. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 +0 -0
  50. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff +0 -0
  51. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 +0 -0
  52. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff +0 -0
  53. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff +0 -0
  54. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 +0 -0
  55. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff +0 -0
  56. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 +0 -0
  57. tangram_core/dist-frontend/assets/index-CcogpxdD.js +824 -0
  58. tangram_core/dist-frontend/assets/index-CcogpxdD.js.map +1 -0
  59. tangram_core/dist-frontend/assets/index-SSLdizTv.css +1 -0
  60. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js +555 -0
  61. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js.map +1 -0
  62. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js +2 -0
  63. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js.map +1 -0
  64. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js +1123 -0
  65. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js.map +1 -0
  66. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js +2 -0
  67. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js.map +1 -0
  68. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js +2 -0
  69. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js.map +1 -0
  70. tangram_core/dist-frontend/assets/project-BTjD2Imj.js +760 -0
  71. tangram_core/dist-frontend/assets/project-BTjD2Imj.js.map +1 -0
  72. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-4qS3_zkX.woff2 +0 -0
  73. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-CDK-EZBY.woff +0 -0
  74. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-Bgns473E.woff +0 -0
  75. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2 +0 -0
  76. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-CvEVpWxD.woff +0 -0
  77. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2 +0 -0
  78. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-9RN-Z7cI.woff2 +0 -0
  79. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-BGMkBBYx.woff +0 -0
  80. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-C7erd-g8.woff +0 -0
  81. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-DR5R5TWx.woff2 +0 -0
  82. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-DGo1Ayjq.woff2 +0 -0
  83. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-WtM1l1qc.woff +0 -0
  84. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-C8FNIdXm.woff2 +0 -0
  85. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-TLDmfi3Q.woff +0 -0
  86. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CTXjXnze.woff2 +0 -0
  87. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CWPRiRXS.woff +0 -0
  88. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-CR6qj4Z4.woff2 +0 -0
  89. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-DHRaIs10.woff +0 -0
  90. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-D5vBSIyg.woff2 +0 -0
  91. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-FabMgVmk.woff +0 -0
  92. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-BIN62cw9.woff +0 -0
  93. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.woff2 +0 -0
  94. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-89Up2Xly.woff +0 -0
  95. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-DWMOA2VK.woff2 +0 -0
  96. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-D_BR-3LG.woff2 +0 -0
  97. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-om57GXsO.woff +0 -0
  98. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-BICmKrXV.woff2 +0 -0
  99. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-D2e7XwB1.woff +0 -0
  100. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-3p2daRJW.woff2 +0 -0
  101. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-Dc9bsamC.woff +0 -0
  102. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff +0 -0
  103. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2 +0 -0
  104. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-BXrkWnoY.woff +0 -0
  105. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-Bhem1d5z.woff2 +0 -0
  106. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-DT8nEsYA.woff +0 -0
  107. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2 +0 -0
  108. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2 +0 -0
  109. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-JgPl2bDS.woff +0 -0
  110. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2 +0 -0
  111. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff +0 -0
  112. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-BwUYFJ2t.woff2 +0 -0
  113. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-DV8QogUk.woff +0 -0
  114. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.woff2 +0 -0
  115. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-CPsdS8_S.woff +0 -0
  116. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-G9shSJ2z.woff +0 -0
  117. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.woff2 +0 -0
  118. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-BtNeb9D6.woff +0 -0
  119. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-D35V1G0s.woff2 +0 -0
  120. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js +843 -0
  121. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js.map +1 -0
  122. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js +392 -0
  123. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js.map +1 -0
  124. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js +2 -0
  125. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js.map +1 -0
  126. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js +7 -0
  127. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js.map +1 -0
  128. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js +3 -0
  129. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js.map +1 -0
  130. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js +2 -0
  131. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js.map +1 -0
  132. tangram_core/dist-frontend/core.js +60 -0
  133. tangram_core/dist-frontend/core.js.map +1 -0
  134. tangram_core/dist-frontend/extensions.js +609 -0
  135. tangram_core/dist-frontend/extensions.js.map +1 -0
  136. tangram_core/dist-frontend/favicon.ico +0 -0
  137. tangram_core/dist-frontend/favicon.png +0 -0
  138. tangram_core/dist-frontend/geo-layers.js +115 -0
  139. tangram_core/dist-frontend/geo-layers.js.map +1 -0
  140. tangram_core/dist-frontend/index.html +39 -0
  141. tangram_core/dist-frontend/json.js +3 -0
  142. tangram_core/dist-frontend/json.js.map +1 -0
  143. tangram_core/dist-frontend/layers.js +268 -0
  144. tangram_core/dist-frontend/layers.js.map +1 -0
  145. tangram_core/dist-frontend/mapbox.js +2 -0
  146. tangram_core/dist-frontend/mapbox.js.map +1 -0
  147. tangram_core/dist-frontend/mesh-layers.js +2 -0
  148. tangram_core/dist-frontend/mesh-layers.js.map +1 -0
  149. tangram_core/dist-frontend/widgets.js +3 -0
  150. tangram_core/dist-frontend/widgets.js.map +1 -0
  151. tangram_core/main.ts +28 -0
  152. tangram_core/package.json +62 -0
  153. tangram_core/plugin.py +109 -0
  154. tangram_core/plugin.ts +47 -0
  155. tangram_core/redis.py +89 -0
  156. tangram_core/user.css +114 -0
  157. tangram_core/utils.ts +143 -0
  158. tangram_core/vite-plugin-tangram.mjs +155 -0
  159. tangram_core-0.3.0.dist-info/METADATA +101 -0
  160. tangram_core-0.3.0.dist-info/RECORD +162 -0
  161. tangram_core-0.3.0.dist-info/WHEEL +4 -0
  162. tangram_core-0.3.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,2 @@
1
+ import{m as R,C as j,x as V}from"./assets/deep-equal-BTW2ZN6S.js";import{G as A,M as Z,D as x}from"./assets/globe-view-Day_n1iB.js";import{f as p}from"./assets/webgl-developer-tools-utTNOsNf.js";import{a as b}from"./assets/assert-cyW4mg7q.js";import"./assets/project-BTjD2Imj.js";import"./assets/pick-layers-pass-C-3k0wbN.js";import"./assets/widget-BjgEeHAL.js";import"./assets/globe-viewport-tqhQW7C4.js";import"./assets/image-loader-hHJsndO6.js";const _="mapbox",m=512,N=Math.PI/180;function k({map:t,gl:e,deck:r}){if(t.__deck)return t.__deck;const n=r?.props._customRender,o=r?.props.onLoad,s={...r?.props,_customRender:()=>{t.triggerRepaint(),n?.("")}};s.parameters={...w(t,!0),...s.parameters},s.views||(s.views=f(t));let i;return(!r||r.props.gl===e)&&(Object.assign(s,{gl:e,width:null,height:null,touchAction:"unset",viewState:y(t)}),r?.isInitialized?S(r,t):s.onLoad=()=>{o?.(),S(i,t)}),r?(i=r,r.setProps(s),r.userData.isExternal=!0):(i=new x(s),t.on("remove",()=>{F(t)})),i.userData.mapboxLayers=new Set,t.__deck=i,t.on("render",()=>{i.isInitialized&&$(i,t)}),i}function S(t,e){const r=()=>{t.isInitialized?q(t,e):e.off("move",r)};e.on("move",r)}function F(t){t.__deck?.finalize(),t.__deck=null}function w(t,e){const r=e?{depthWriteEnabled:!0,depthCompare:"less-equal",depthBias:0,blend:!0,blendColorSrcFactor:"src-alpha",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"}:{};return D(t)==="globe"&&(r.cullMode="back"),r}function B(t,e){t.userData.mapboxLayers.add(e),O(t)}function X(t,e){t.userData.mapboxLayers.delete(e),O(t)}function T(t,e){O(t)}function Y(t,e,r,n){let{currentViewport:o}=t.userData,s=!1;o||(o=C(t,e,n),t.userData.currentViewport=o,s=!0),t.isInitialized&&t._drawLayers("mapbox-repaint",{viewports:[o],layerFilter:i=>(!t.props.layerFilter||t.props.layerFilter(i))&&(r.id===i.layer.id||i.layer.props.operation.includes("terrain")),clearStack:s,clearCanvas:!1})}function W(t,e,r,n){let{currentViewport:o}=t.userData,s=!1;o||(o=C(t,e,n),t.userData.currentViewport=o,s=!0),t.isInitialized&&t._drawLayers("mapbox-repaint",{viewports:[o],layerFilter:i=>{if(t.props.layerFilter&&!t.props.layerFilter(i))return!1;const a=i.layer;return a.props.beforeId===r.beforeId&&a.props.slot===r.slot},clearStack:s,clearCanvas:!1})}function D(t){const e=t.getProjection?.(),r=e?.type||e?.name;if(r==="globe")return"globe";if(r&&r!=="mercator")throw new Error("Unsupported projection");return"mercator"}function f(t){return D(t)==="globe"?new A({id:_}):new Z({id:_})}function y(t){const{lng:e,lat:r}=t.getCenter(),n={longitude:(e+540)%360-180,latitude:r,zoom:t.getZoom(),bearing:t.getBearing(),pitch:t.getPitch(),padding:t.getPadding(),repeat:t.getRenderWorldCopies()};return t.getTerrain?.()&&U(t,n),n}function U(t,e){if(t.getFreeCameraOptions){const{position:r}=t.getFreeCameraOptions();if(!r||r.z===void 0)return;const n=t.transform.height,{longitude:o,latitude:s,pitch:i}=e,a=r.x*m,l=(1-r.y)*m,d=r.z*m,c=R([o,s]),h=a-c[0],u=l-c[1],v=Math.sqrt(h*h+u*u),g=i*N,I=1.5*n,P=g<.001?I*Math.cos(g)/d:I*Math.sin(g)/v;e.zoom=Math.log2(P);const G=I*Math.cos(g)/P,z=d-G;e.position=[0,0,z/j(s)]}else typeof t.transform.elevation=="number"&&(e.position=[0,0,t.transform.elevation])}function C(t,e,r){const n=y(e),{views:o}=t.props,s=o&&p(o).find(l=>l.id===_)||f(e);r&&(s.props.nearZMultiplier=.2);const i=r?.nearZ??e.transform._nearZ,a=r?.farZ??e.transform._farZ;return Number.isFinite(i)&&(n.nearZ=i/e.transform.height,n.farZ=a/e.transform.height),s.makeViewport({width:t.width,height:t.height,viewState:n})}function $(t,e){const{mapboxLayers:r,isExternal:n}=t.userData;if(n){const o=Array.from(r,c=>c.id),i=p(t.props.layers,Boolean).some(c=>c&&!o.includes(c.id));let a=t.getViewports();const l=a.findIndex(c=>c.id===_),d=a.length>1||l<0;(i||d)&&(l>=0&&(a=a.slice(),a[l]=C(t,e)),t._drawLayers("mapbox-repaint",{viewports:a,layerFilter:c=>(!t.props.layerFilter||t.props.layerFilter(c))&&(c.viewport.id!==_||!o.includes(c.layer.id)),clearCanvas:!1}))}t.userData.currentViewport=null}function q(t,e){t.setProps({viewState:y(e)}),t.needsRedraw({clearRedrawFlags:!0})}function O(t){if(t.userData.isExternal)return;const e=[];t.userData.mapboxLayers.forEach(r=>{const n=r.props.type,o=new n(r.props);e.push(o)}),t.setProps({layers:e})}class H{constructor(e){if(!e.id)throw new Error("Layer must have an unique id");this.id=e.id,this.type="custom",this.renderingMode=e.renderingMode||"3d",this.slot=e.slot,this.map=null,this.deck=null,this.props=e}onAdd(e,r){this.map=e,this.deck=k({map:e,gl:r,deck:this.props.deck}),B(this.deck,this)}onRemove(){this.deck&&X(this.deck,this)}setProps(e){Object.assign(this.props,e,{id:this.id}),this.deck&&T(this.deck)}render(e,r){Y(this.deck,this.map,this,r)}}const E="__UNDEFINED__";function J(t,e,r,n){if(!t||!e||!t.style||!t.style._loaded)return;const o=p(n,Boolean);if(r!==n){const a=p(r,Boolean),l=new Set(a.map(d=>d.id));for(const d of o)l.delete(d.id);for(const d of l)t.getLayer(d)&&t.removeLayer(d)}for(const a of o){const l=t.getLayer(a.id);l?(l.implementation||l).setProps(a.props):t.addLayer(new H({id:a.id,deck:e,slot:a.props.slot}),a.props.beforeId)}const s=t.style._order,i={};for(const a of o){let{beforeId:l}=a.props;(!l||!s.includes(l))&&(l=E),i[l]=i[l]||[],i[l].push(a.id)}for(const a in i){const l=i[a];let d=a===E?s.length:s.indexOf(a),c=a===E?void 0:a;for(let h=l.length-1;h>=0;h--){const u=l[h],v=s.indexOf(u);v!==d-1&&(t.moveLayer(u,c),v>d&&d++),d--,c=u}}}class K{constructor(e){b(e.id,"id is required"),this.id=e.id,this.type="custom",this.renderingMode=e.renderingMode||"3d",this.slot=e.slot,this.beforeId=e.beforeId,this.map=null,this.deck=null}onAdd(e,r){this.map=e,this.deck=k({map:e,gl:r})}render(e,r){!this.deck||!this.map||W(this.deck,this.map,this,r)}}const L="__UNDEFINED__";function M(t){return t.props.beforeId?`deck-layer-group-before:${t.props.beforeId}`:t.props.slot?`deck-layer-group-slot:${t.props.slot}`:"deck-layer-group-last"}function Q(t,e,r){if(!t||!t.style||!t.style._loaded)return;const n=p(r,Boolean);if(e!==r){const i=p(e,Boolean),a=new Set(i.map(d=>M(d))),l=new Set(n.map(d=>M(d)));for(const d of a)l.has(d)||t.getLayer(d)&&t.removeLayer(d)}const o={};for(const i of n){const a=M(i),l=t.getLayer(a);if(l){const d=l.implementation||l;o[a]=d}else{const d=new K({id:a,slot:i.props.slot,beforeId:i.props.beforeId});o[a]=d,t.addLayer(d,i.props.beforeId)}}const s=t.style._order;for(const[i,a]of Object.entries(o)){const l=a.beforeId||L,d=l===L?s.length:s.indexOf(l);if(s.indexOf(i)!==d-1){const h=l===L?void 0:l;t.moveLayer(i,h)}}}class de{constructor(e){this._handleStyleChange=()=>{if(this._resolveLayers(this._map,this._deck,this._props.layers,this._props.layers),!this._map)return;D(this._map)&&!this._props.views&&this._deck?.setProps({views:f(this._map)})},this._updateContainerSize=()=>{if(this._map&&this._container){const{clientWidth:n,clientHeight:o}=this._map.getContainer();Object.assign(this._container.style,{width:`${n}px`,height:`${o}px`})}},this._updateViewState=()=>{const n=this._deck,o=this._map;n&&o&&(n.setProps({views:this._props.views||f(o),viewState:y(o)}),n.isInitialized&&n.redraw())},this._handleMouseEvent=n=>{const o=this._deck;if(!o||!o.isInitialized)return;const s={type:n.type,offsetCenter:n.point,srcEvent:n},i=this._lastMouseDownPoint;switch(!n.point&&i&&(s.deltaX=n.originalEvent.clientX-i.clientX,s.deltaY=n.originalEvent.clientY-i.clientY,s.offsetCenter={x:i.x+s.deltaX,y:i.y+s.deltaY}),s.type){case"mousedown":o._onPointerDown(s),this._lastMouseDownPoint={...n.point,clientX:n.originalEvent.clientX,clientY:n.originalEvent.clientY};break;case"dragstart":s.type="panstart",o._onEvent(s);break;case"drag":s.type="panmove",o._onEvent(s);break;case"dragend":s.type="panend",o._onEvent(s);break;case"click":s.tapCount=1,o._onEvent(s);break;case"dblclick":s.type="click",s.tapCount=2,o._onEvent(s);break;case"mousemove":s.type="pointermove",o._onPointerMove(s);break;case"mouseout":s.type="pointerleave",o._onPointerMove(s);break;default:return}};const{interleaved:r=!1}=e;this._interleaved=r,this._renderLayersInGroups=e._renderLayersInGroups||!1,this._props=this.filterProps(e)}filterProps(e){const{interleaved:r=!1,useDevicePixels:n,...o}=e;return!r&&n!==void 0&&(o.useDevicePixels=n),o}setProps(e){this._interleaved&&e.layers&&this._resolveLayers(this._map,this._deck,this._props.layers,e.layers),Object.assign(this._props,this.filterProps(e)),this._deck&&this._map&&this._deck.setProps({...this._props,parameters:{...w(this._map,this._interleaved),...this._props.parameters}})}onAdd(e){return this._map=e,this._interleaved?this._onAddInterleaved(e):this._onAddOverlaid(e)}_onAddOverlaid(e){const r=document.createElement("div");return Object.assign(r.style,{position:"absolute",left:0,top:0,textAlign:"initial",pointerEvents:"none"}),this._container=r,this._deck=new x({...this._props,parent:r,parameters:{...w(e,!1),...this._props.parameters},views:this._props.views||f(e),viewState:y(e)}),e.on("resize",this._updateContainerSize),e.on("render",this._updateViewState),e.on("mousedown",this._handleMouseEvent),e.on("dragstart",this._handleMouseEvent),e.on("drag",this._handleMouseEvent),e.on("dragend",this._handleMouseEvent),e.on("mousemove",this._handleMouseEvent),e.on("mouseout",this._handleMouseEvent),e.on("click",this._handleMouseEvent),e.on("dblclick",this._handleMouseEvent),this._updateContainerSize(),r}_onAddInterleaved(e){const r=e.painter.context.gl;return r instanceof WebGLRenderingContext&&V.warn("Incompatible basemap library. See: https://deck.gl/docs/api-reference/mapbox/overview#compatibility")(),this._deck=k({map:e,gl:r,deck:new x({...this._props,gl:r,parameters:{...w(e,!0),...this._props.parameters}})}),e.on("styledata",this._handleStyleChange),this._resolveLayers(e,this._deck,[],this._props.layers),document.createElement("div")}_resolveLayers(e,r,n,o){this._renderLayersInGroups?Q(e,n,o):J(e,r,n,o)}onRemove(){const e=this._map;e&&(this._interleaved?this._onRemoveInterleaved(e):this._onRemoveOverlaid(e)),this._deck=void 0,this._map=void 0,this._container=void 0}_onRemoveOverlaid(e){e.off("resize",this._updateContainerSize),e.off("render",this._updateViewState),e.off("mousedown",this._handleMouseEvent),e.off("dragstart",this._handleMouseEvent),e.off("drag",this._handleMouseEvent),e.off("dragend",this._handleMouseEvent),e.off("mousemove",this._handleMouseEvent),e.off("mouseout",this._handleMouseEvent),e.off("click",this._handleMouseEvent),e.off("dblclick",this._handleMouseEvent),this._deck?.finalize()}_onRemoveInterleaved(e){e.off("styledata",this._handleStyleChange),this._resolveLayers(e,this._deck,this._props.layers,[]),F(e)}getDefaultPosition(){return"top-left"}pickObject(e){return b(this._deck),this._deck.pickObject(e)}pickMultipleObjects(e){return b(this._deck),this._deck.pickMultipleObjects(e)}pickObjects(e){return b(this._deck),this._deck.pickObjects(e)}finalize(){this._map&&this._map.removeControl(this)}getCanvas(){return this._map?this._interleaved?this._map.getCanvas():this._deck.getCanvas():null}}export{de as MapboxOverlay};
2
+ //# sourceMappingURL=mapbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapbox.js","sources":["../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/deck-utils.js","../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/mapbox-layer.js","../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/resolve-layers.js","../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/mapbox-layer-group.js","../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/resolve-layer-groups.js","../../../node_modules/.pnpm/@deck.gl+mapbox@9.2.6_@deck.gl+core@9.2.6_@luma.gl+constants@9.2.6_@luma.gl+core@9.2.6_@math.gl+web-mercator@4.1.0/node_modules/@deck.gl/mapbox/dist/mapbox-overlay.js"],"sourcesContent":["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Deck, MapView, _GlobeView as GlobeView, _flatten as flatten } from '@deck.gl/core';\nimport { lngLatToWorld, unitsPerMeter } from '@math.gl/web-mercator';\nconst MAPBOX_VIEW_ID = 'mapbox';\n// Mercator constants\nconst TILE_SIZE = 512;\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n// Create an interleaved deck instance.\nexport function getDeckInstance({ map, gl, deck }) {\n // Only create one deck instance per context\n if (map.__deck) {\n return map.__deck;\n }\n // Only initialize certain props once per context\n const customRender = deck?.props._customRender;\n const onLoad = deck?.props.onLoad;\n const deckProps = {\n ...deck?.props,\n _customRender: () => {\n map.triggerRepaint();\n // customRender may be subscribed by DeckGL React component to update child props\n // make sure it is still called\n // Hack - do not pass a redraw reason here to prevent the React component from clearing the context\n // Rerender will be triggered by MapboxLayer's render()\n customRender?.('');\n }\n };\n deckProps.parameters = { ...getDefaultParameters(map, true), ...deckProps.parameters };\n deckProps.views || (deckProps.views = getDefaultView(map));\n let deckInstance;\n if (!deck || deck.props.gl === gl) {\n // If deck isn't defined (Internal MapboxLayer use case),\n // or if deck is defined and is using the WebGLContext created by mapbox (MapboxOverlay and External MapboxLayer use case),\n // block deck from setting the canvas size, and use the map's viewState to drive deck.\n // Otherwise, we use deck's viewState to drive the map.\n Object.assign(deckProps, {\n gl,\n width: null,\n height: null,\n touchAction: 'unset',\n viewState: getViewState(map)\n });\n if (deck?.isInitialized) {\n watchMapMove(deck, map);\n }\n else {\n deckProps.onLoad = () => {\n onLoad?.();\n watchMapMove(deckInstance, map);\n };\n }\n }\n if (deck) {\n deckInstance = deck;\n deck.setProps(deckProps);\n deck.userData.isExternal = true;\n }\n else {\n deckInstance = new Deck(deckProps);\n map.on('remove', () => {\n removeDeckInstance(map);\n });\n }\n deckInstance.userData.mapboxLayers = new Set();\n // (deckInstance.userData as UserData).mapboxVersion = getMapboxVersion(map);\n map.__deck = deckInstance;\n map.on('render', () => {\n if (deckInstance.isInitialized)\n afterRender(deckInstance, map);\n });\n return deckInstance;\n}\nfunction watchMapMove(deck, map) {\n const _handleMapMove = () => {\n if (deck.isInitialized) {\n // call view state methods\n onMapMove(deck, map);\n }\n else {\n // deregister itself when deck is finalized\n map.off('move', _handleMapMove);\n }\n };\n map.on('move', _handleMapMove);\n}\nexport function removeDeckInstance(map) {\n map.__deck?.finalize();\n map.__deck = null;\n}\nexport function getDefaultParameters(map, interleaved) {\n const result = interleaved\n ? {\n depthWriteEnabled: true,\n depthCompare: 'less-equal',\n depthBias: 0,\n blend: true,\n blendColorSrcFactor: 'src-alpha',\n blendColorDstFactor: 'one-minus-src-alpha',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one-minus-src-alpha',\n blendColorOperation: 'add',\n blendAlphaOperation: 'add'\n }\n : {};\n if (getProjection(map) === 'globe') {\n result.cullMode = 'back';\n }\n return result;\n}\nexport function addLayer(deck, layer) {\n deck.userData.mapboxLayers.add(layer);\n updateLayers(deck);\n}\nexport function removeLayer(deck, layer) {\n deck.userData.mapboxLayers.delete(layer);\n updateLayers(deck);\n}\nexport function updateLayer(deck, layer) {\n updateLayers(deck);\n}\nexport function drawLayer(deck, map, layer, renderParameters) {\n let { currentViewport } = deck.userData;\n let clearStack = false;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, renderParameters);\n deck.userData.currentViewport = currentViewport;\n clearStack = true;\n }\n if (!deck.isInitialized) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: params => (!deck.props.layerFilter || deck.props.layerFilter(params)) &&\n (layer.id === params.layer.id || params.layer.props.operation.includes('terrain')),\n clearStack,\n clearCanvas: false\n });\n}\nexport function drawLayerGroup(deck, map, group, renderParameters) {\n let { currentViewport } = deck.userData;\n let clearStack = false;\n if (!currentViewport) {\n // This is the first layer drawn in this render cycle.\n // Generate viewport from the current map state.\n currentViewport = getViewport(deck, map, renderParameters);\n deck.userData.currentViewport = currentViewport;\n clearStack = true;\n }\n if (!deck.isInitialized) {\n return;\n }\n deck._drawLayers('mapbox-repaint', {\n viewports: [currentViewport],\n layerFilter: params => {\n if (deck.props.layerFilter && !deck.props.layerFilter(params)) {\n return false;\n }\n const layer = params.layer;\n if (layer.props.beforeId === group.beforeId && layer.props.slot === group.slot) {\n return true;\n }\n return false;\n },\n clearStack,\n clearCanvas: false\n });\n}\nexport function getProjection(map) {\n const projection = map.getProjection?.();\n const type = \n // maplibre projection spec\n projection?.type ||\n // mapbox projection spec\n projection?.name;\n if (type === 'globe') {\n return 'globe';\n }\n if (type && type !== 'mercator') {\n throw new Error('Unsupported projection');\n }\n return 'mercator';\n}\nexport function getDefaultView(map) {\n if (getProjection(map) === 'globe') {\n return new GlobeView({ id: MAPBOX_VIEW_ID });\n }\n return new MapView({ id: MAPBOX_VIEW_ID });\n}\nexport function getViewState(map) {\n const { lng, lat } = map.getCenter();\n const viewState = {\n // Longitude returned by getCenter can be outside of [-180, 180] when zooming near the anti meridian\n // https://github.com/visgl/deck.gl/issues/6894\n longitude: ((lng + 540) % 360) - 180,\n latitude: lat,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n padding: map.getPadding(),\n repeat: map.getRenderWorldCopies()\n };\n if (map.getTerrain?.()) {\n // When the base map has terrain, we need to target the camera at the terrain surface\n centerCameraOnTerrain(map, viewState);\n }\n return viewState;\n}\nfunction centerCameraOnTerrain(map, viewState) {\n if (map.getFreeCameraOptions) {\n // mapbox-gl v2\n const { position } = map.getFreeCameraOptions();\n if (!position || position.z === undefined) {\n return;\n }\n // @ts-ignore transform is not typed\n const height = map.transform.height;\n const { longitude, latitude, pitch } = viewState;\n // Convert mapbox mercator coordinate to deck common space\n const cameraX = position.x * TILE_SIZE;\n const cameraY = (1 - position.y) * TILE_SIZE;\n const cameraZ = position.z * TILE_SIZE;\n // Mapbox manipulates zoom in terrain mode, see discussion here: https://github.com/mapbox/mapbox-gl-js/issues/12040\n const center = lngLatToWorld([longitude, latitude]);\n const dx = cameraX - center[0];\n const dy = cameraY - center[1];\n const cameraToCenterDistanceGround = Math.sqrt(dx * dx + dy * dy);\n const pitchRadians = pitch * DEGREES_TO_RADIANS;\n const altitudePixels = 1.5 * height;\n const scale = pitchRadians < 0.001\n ? // Pitch angle too small to deduce the look at point, assume elevation is 0\n (altitudePixels * Math.cos(pitchRadians)) / cameraZ\n : (altitudePixels * Math.sin(pitchRadians)) / cameraToCenterDistanceGround;\n viewState.zoom = Math.log2(scale);\n const cameraZFromSurface = (altitudePixels * Math.cos(pitchRadians)) / scale;\n const surfaceElevation = cameraZ - cameraZFromSurface;\n viewState.position = [0, 0, surfaceElevation / unitsPerMeter(latitude)];\n }\n // @ts-ignore transform is not typed\n else if (typeof map.transform.elevation === 'number') {\n // maplibre-gl\n // @ts-ignore transform is not typed\n viewState.position = [0, 0, map.transform.elevation];\n }\n}\nfunction getViewport(deck, map, renderParameters) {\n const viewState = getViewState(map);\n const { views } = deck.props;\n const view = (views && flatten(views).find((v) => v.id === MAPBOX_VIEW_ID)) ||\n getDefaultView(map);\n if (renderParameters) {\n // Called from MapboxLayer.render\n // Magic number, matches mapbox-gl@>=1.3.0's projection matrix\n view.props.nearZMultiplier = 0.2;\n }\n // Get the base map near/far plane\n // renderParameters is maplibre API but not mapbox\n // Transform is not an official API, properties could be undefined for older versions\n const nearZ = renderParameters?.nearZ ?? map.transform._nearZ;\n const farZ = renderParameters?.farZ ?? map.transform._farZ;\n if (Number.isFinite(nearZ)) {\n viewState.nearZ = nearZ / map.transform.height;\n viewState.farZ = farZ / map.transform.height;\n }\n // Otherwise fallback to default calculation using nearZMultiplier/farZMultiplier\n return view.makeViewport({\n width: deck.width,\n height: deck.height,\n viewState\n });\n}\nfunction afterRender(deck, map) {\n const { mapboxLayers, isExternal } = deck.userData;\n if (isExternal) {\n // Draw non-Mapbox layers\n const mapboxLayerIds = Array.from(mapboxLayers, layer => layer.id);\n const deckLayers = flatten(deck.props.layers, Boolean);\n const hasNonMapboxLayers = deckLayers.some(layer => layer && !mapboxLayerIds.includes(layer.id));\n let viewports = deck.getViewports();\n const mapboxViewportIdx = viewports.findIndex(vp => vp.id === MAPBOX_VIEW_ID);\n const hasNonMapboxViews = viewports.length > 1 || mapboxViewportIdx < 0;\n if (hasNonMapboxLayers || hasNonMapboxViews) {\n if (mapboxViewportIdx >= 0) {\n viewports = viewports.slice();\n viewports[mapboxViewportIdx] = getViewport(deck, map);\n }\n deck._drawLayers('mapbox-repaint', {\n viewports,\n layerFilter: params => (!deck.props.layerFilter || deck.props.layerFilter(params)) &&\n (params.viewport.id !== MAPBOX_VIEW_ID || !mapboxLayerIds.includes(params.layer.id)),\n clearCanvas: false\n });\n }\n }\n // End of render cycle, clear generated viewport\n deck.userData.currentViewport = null;\n}\nfunction onMapMove(deck, map) {\n deck.setProps({\n viewState: getViewState(map)\n });\n // Camera changed, will trigger a map repaint right after this\n // Clear any change flag triggered by setting viewState so that deck does not request\n // a second repaint\n deck.needsRedraw({ clearRedrawFlags: true });\n}\nfunction updateLayers(deck) {\n if (deck.userData.isExternal) {\n return;\n }\n const layers = [];\n deck.userData.mapboxLayers.forEach(deckLayer => {\n const LayerType = deckLayer.props.type;\n const layer = new LayerType(deckLayer.props);\n layers.push(layer);\n });\n deck.setProps({ layers });\n}\n//# sourceMappingURL=deck-utils.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getDeckInstance, addLayer, removeLayer, updateLayer, drawLayer } from \"./deck-utils.js\";\nexport default class MapboxLayer {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n if (!props.id) {\n throw new Error('Layer must have an unique id');\n }\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.slot = props.slot;\n this.map = null;\n this.deck = null;\n this.props = props;\n }\n /* Mapbox custom layer methods */\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({ map, gl, deck: this.props.deck });\n addLayer(this.deck, this);\n }\n onRemove() {\n if (this.deck) {\n removeLayer(this.deck, this);\n }\n }\n setProps(props) {\n // id cannot be changed\n Object.assign(this.props, props, { id: this.id });\n // safe guard in case setProps is called before onAdd\n if (this.deck) {\n updateLayer(this.deck, this);\n }\n }\n render(gl, renderParameters) {\n drawLayer(this.deck, this.map, this, renderParameters);\n }\n}\n//# sourceMappingURL=mapbox-layer.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { _flatten as flatten } from '@deck.gl/core';\nimport MapboxLayer from \"./mapbox-layer.js\";\nconst UNDEFINED_BEFORE_ID = '__UNDEFINED__';\n/** Insert Deck layers into the mapbox Map according to the user-defined order */\n// eslint-disable-next-line complexity, max-statements\nexport function resolveLayers(map, deck, oldLayers, newLayers) {\n // Wait until map style is loaded\n // @ts-ignore non-public map property\n if (!map || !deck || !map.style || !map.style._loaded) {\n return;\n }\n const layers = flatten(newLayers, Boolean);\n if (oldLayers !== newLayers) {\n // Step 1: remove layers that no longer exist\n const prevLayers = flatten(oldLayers, Boolean);\n const prevLayerIds = new Set(prevLayers.map(l => l.id));\n for (const layer of layers) {\n prevLayerIds.delete(layer.id);\n }\n for (const id of prevLayerIds) {\n if (map.getLayer(id)) {\n map.removeLayer(id);\n }\n }\n }\n // Step 2: add missing layers\n for (const layer of layers) {\n const mapboxLayer = map.getLayer(layer.id);\n if (mapboxLayer) {\n // Mapbox's map.getLayer() had a breaking change in v3.6.0, see https://github.com/visgl/deck.gl/issues/9086\n // @ts-expect-error not typed\n const layerInstance = mapboxLayer.implementation || mapboxLayer;\n layerInstance.setProps(layer.props);\n }\n else {\n map.addLayer(new MapboxLayer({\n id: layer.id,\n deck,\n // @ts-expect-error slot is not defined in LayerProps\n slot: layer.props.slot\n }), \n // @ts-expect-error beforeId is not defined in LayerProps\n layer.props.beforeId);\n }\n }\n // Step 3: check the order of layers\n // If beforeId is defined, the deck layer should always render before the mapbox layer [beforeId]\n // If beforeId is not defined, the deck layer should appear after all mapbox layers\n // When two deck layers share the same beforeId, they are rendered in the order that is passed into Deck props.layers\n // @ts-ignore non-public map property\n const mapLayers = map.style._order;\n // Group deck layers by beforeId\n const layerGroups = {};\n for (const layer of layers) {\n // @ts-expect-error beforeId is not defined in LayerProps\n let { beforeId } = layer.props;\n if (!beforeId || !mapLayers.includes(beforeId)) {\n beforeId = UNDEFINED_BEFORE_ID;\n }\n layerGroups[beforeId] = layerGroups[beforeId] || [];\n layerGroups[beforeId].push(layer.id);\n }\n for (const beforeId in layerGroups) {\n const layerGroup = layerGroups[beforeId];\n let lastLayerIndex = beforeId === UNDEFINED_BEFORE_ID ? mapLayers.length : mapLayers.indexOf(beforeId);\n let lastLayerId = beforeId === UNDEFINED_BEFORE_ID ? undefined : beforeId;\n for (let i = layerGroup.length - 1; i >= 0; i--) {\n const layerId = layerGroup[i];\n const layerIndex = mapLayers.indexOf(layerId);\n if (layerIndex !== lastLayerIndex - 1) {\n map.moveLayer(layerId, lastLayerId);\n if (layerIndex > lastLayerIndex) {\n // The last layer's index have changed\n lastLayerIndex++;\n }\n }\n lastLayerIndex--;\n lastLayerId = layerId;\n }\n }\n}\n//# sourceMappingURL=resolve-layers.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getDeckInstance, drawLayerGroup } from \"./deck-utils.js\";\nimport { assert } from '@deck.gl/core';\nexport default class MapboxLayerGroup {\n /* eslint-disable no-this-before-super */\n constructor(props) {\n assert(props.id, 'id is required');\n this.id = props.id;\n this.type = 'custom';\n this.renderingMode = props.renderingMode || '3d';\n this.slot = props.slot;\n this.beforeId = props.beforeId;\n this.map = null;\n this.deck = null;\n }\n /* Mapbox custom layer methods */\n onAdd(map, gl) {\n this.map = map;\n this.deck = getDeckInstance({ map, gl });\n }\n render(gl, renderParameters) {\n if (!this.deck || !this.map)\n return;\n drawLayerGroup(this.deck, this.map, this, renderParameters);\n }\n}\n//# sourceMappingURL=mapbox-layer-group.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { _flatten as flatten } from '@deck.gl/core';\nimport MapboxLayerGroup from \"./mapbox-layer-group.js\";\nconst UNDEFINED_BEFORE_ID = '__UNDEFINED__';\nfunction getLayerGroupId(layer) {\n if (layer.props.beforeId) {\n return `deck-layer-group-before:${layer.props.beforeId}`;\n }\n else if (layer.props.slot) {\n return `deck-layer-group-slot:${layer.props.slot}`;\n }\n return 'deck-layer-group-last';\n}\n/** Group Deck layers into buckets (by beforeId or slot) and insert them\n * into the mapbox Map according to the user-defined order\n **/\n// eslint-disable-next-line complexity, max-statements\nexport function resolveLayerGroups(map, oldLayers, newLayers) {\n // Wait until map style is loaded\n // @ts-ignore non-public map property\n if (!map || !map.style || !map.style._loaded) {\n return;\n }\n const layers = flatten(newLayers, Boolean);\n if (oldLayers !== newLayers) {\n // Step 1: remove \"group\" layers that no longer exist\n const prevLayers = flatten(oldLayers, Boolean);\n const prevLayerGroupIds = new Set(prevLayers.map(l => getLayerGroupId(l)));\n const newLayerGroupIds = new Set(layers.map(l => getLayerGroupId(l)));\n for (const groupId of prevLayerGroupIds) {\n if (!newLayerGroupIds.has(groupId)) {\n if (map.getLayer(groupId)) {\n map.removeLayer(groupId);\n }\n }\n }\n }\n // Step 2: add missing \"group\" layers\n const layerGroups = {};\n for (const layer of layers) {\n const groupId = getLayerGroupId(layer);\n const mapboxGroup = map.getLayer(groupId);\n if (mapboxGroup) {\n // Mapbox's map.getLayer() had a breaking change in v3.6.0, see https://github.com/visgl/deck.gl/issues/9086\n // @ts-expect-error not typed\n const groupInstance = mapboxGroup.implementation || mapboxGroup;\n layerGroups[groupId] = groupInstance;\n }\n else {\n const newGroup = new MapboxLayerGroup({\n id: groupId,\n slot: layer.props.slot,\n beforeId: layer.props.beforeId\n });\n layerGroups[groupId] = newGroup;\n map.addLayer(newGroup, layer.props.beforeId);\n }\n }\n // Step 3: check the order of layers\n // If beforeId move \"group\" layers to proper position in the mapbox layer order\n // @ts-ignore non-public map property\n const mapLayers = map.style._order;\n for (const [groupId, group] of Object.entries(layerGroups)) {\n const beforeId = group.beforeId || UNDEFINED_BEFORE_ID;\n const expectedGroupIndex = beforeId === UNDEFINED_BEFORE_ID ? mapLayers.length : mapLayers.indexOf(beforeId);\n const currentGropupIndex = mapLayers.indexOf(groupId);\n if (currentGropupIndex !== expectedGroupIndex - 1) {\n const moveBeforeId = beforeId === UNDEFINED_BEFORE_ID ? undefined : beforeId;\n map.moveLayer(groupId, moveBeforeId);\n }\n }\n}\n//# sourceMappingURL=resolve-layer-groups.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Deck, assert } from '@deck.gl/core';\nimport { getViewState, getDefaultView, getDeckInstance, removeDeckInstance, getDefaultParameters, getProjection } from \"./deck-utils.js\";\nimport { log } from '@deck.gl/core';\nimport { resolveLayers } from \"./resolve-layers.js\";\nimport { resolveLayerGroups } from \"./resolve-layer-groups.js\";\n/**\n * Implements Mapbox [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) interface\n * Renders deck.gl layers over the base map and automatically synchronizes with the map's camera\n */\nexport default class MapboxOverlay {\n constructor(props) {\n this._handleStyleChange = () => {\n this._resolveLayers(this._map, this._deck, this._props.layers, this._props.layers);\n if (!this._map)\n return;\n // getProjection() returns undefined before style is loaded\n const projection = getProjection(this._map);\n if (projection && !this._props.views) {\n this._deck?.setProps({ views: getDefaultView(this._map) });\n }\n };\n this._updateContainerSize = () => {\n if (this._map && this._container) {\n const { clientWidth, clientHeight } = this._map.getContainer();\n Object.assign(this._container.style, {\n width: `${clientWidth}px`,\n height: `${clientHeight}px`\n });\n }\n };\n this._updateViewState = () => {\n const deck = this._deck;\n const map = this._map;\n if (deck && map) {\n deck.setProps({\n views: this._props.views || getDefaultView(map),\n viewState: getViewState(map)\n });\n // Redraw immediately if view state has changed\n if (deck.isInitialized) {\n deck.redraw();\n }\n }\n };\n // eslint-disable-next-line complexity\n this._handleMouseEvent = (event) => {\n const deck = this._deck;\n if (!deck || !deck.isInitialized) {\n return;\n }\n const mockEvent = {\n type: event.type,\n offsetCenter: event.point,\n srcEvent: event\n };\n const lastDown = this._lastMouseDownPoint;\n if (!event.point && lastDown) {\n // drag* events do not contain a `point` field\n mockEvent.deltaX = event.originalEvent.clientX - lastDown.clientX;\n mockEvent.deltaY = event.originalEvent.clientY - lastDown.clientY;\n mockEvent.offsetCenter = {\n x: lastDown.x + mockEvent.deltaX,\n y: lastDown.y + mockEvent.deltaY\n };\n }\n switch (mockEvent.type) {\n case 'mousedown':\n deck._onPointerDown(mockEvent);\n this._lastMouseDownPoint = {\n ...event.point,\n clientX: event.originalEvent.clientX,\n clientY: event.originalEvent.clientY\n };\n break;\n case 'dragstart':\n mockEvent.type = 'panstart';\n deck._onEvent(mockEvent);\n break;\n case 'drag':\n mockEvent.type = 'panmove';\n deck._onEvent(mockEvent);\n break;\n case 'dragend':\n mockEvent.type = 'panend';\n deck._onEvent(mockEvent);\n break;\n case 'click':\n mockEvent.tapCount = 1;\n deck._onEvent(mockEvent);\n break;\n case 'dblclick':\n mockEvent.type = 'click';\n mockEvent.tapCount = 2;\n deck._onEvent(mockEvent);\n break;\n case 'mousemove':\n mockEvent.type = 'pointermove';\n deck._onPointerMove(mockEvent);\n break;\n case 'mouseout':\n mockEvent.type = 'pointerleave';\n deck._onPointerMove(mockEvent);\n break;\n default:\n return;\n }\n };\n const { interleaved = false } = props;\n this._interleaved = interleaved;\n this._renderLayersInGroups = props._renderLayersInGroups || false;\n this._props = this.filterProps(props);\n }\n /** Filter out props to pass to Deck **/\n filterProps(props) {\n const { interleaved = false, useDevicePixels, ...deckProps } = props;\n if (!interleaved && useDevicePixels !== undefined) {\n // useDevicePixels cannot be used in interleaved mode\n deckProps.useDevicePixels = useDevicePixels;\n }\n return deckProps;\n }\n /** Update (partial) props of the underlying Deck instance. */\n setProps(props) {\n if (this._interleaved && props.layers) {\n this._resolveLayers(this._map, this._deck, this._props.layers, props.layers);\n }\n Object.assign(this._props, this.filterProps(props));\n if (this._deck && this._map) {\n this._deck.setProps({\n ...this._props,\n parameters: {\n ...getDefaultParameters(this._map, this._interleaved),\n ...this._props.parameters\n }\n });\n }\n }\n // The local Map type is for internal typecheck only. It does not necesarily satisefy mapbox/maplibre types at runtime.\n // Do not restrict the argument type here to avoid type conflict.\n /** Called when the control is added to a map */\n onAdd(map) {\n this._map = map;\n return this._interleaved ? this._onAddInterleaved(map) : this._onAddOverlaid(map);\n }\n _onAddOverlaid(map) {\n /* global document */\n const container = document.createElement('div');\n Object.assign(container.style, {\n position: 'absolute',\n left: 0,\n top: 0,\n textAlign: 'initial',\n pointerEvents: 'none'\n });\n this._container = container;\n this._deck = new Deck({\n ...this._props,\n parent: container,\n parameters: { ...getDefaultParameters(map, false), ...this._props.parameters },\n views: this._props.views || getDefaultView(map),\n viewState: getViewState(map)\n });\n map.on('resize', this._updateContainerSize);\n map.on('render', this._updateViewState);\n map.on('mousedown', this._handleMouseEvent);\n map.on('dragstart', this._handleMouseEvent);\n map.on('drag', this._handleMouseEvent);\n map.on('dragend', this._handleMouseEvent);\n map.on('mousemove', this._handleMouseEvent);\n map.on('mouseout', this._handleMouseEvent);\n map.on('click', this._handleMouseEvent);\n map.on('dblclick', this._handleMouseEvent);\n this._updateContainerSize();\n return container;\n }\n _onAddInterleaved(map) {\n // @ts-ignore non-public map property\n const gl = map.painter.context.gl;\n if (gl instanceof WebGLRenderingContext) {\n log.warn('Incompatible basemap library. See: https://deck.gl/docs/api-reference/mapbox/overview#compatibility')();\n }\n this._deck = getDeckInstance({\n map,\n gl,\n deck: new Deck({\n ...this._props,\n gl,\n parameters: { ...getDefaultParameters(map, true), ...this._props.parameters }\n })\n });\n map.on('styledata', this._handleStyleChange);\n this._resolveLayers(map, this._deck, [], this._props.layers);\n return document.createElement('div');\n }\n _resolveLayers(map, deck, prevLayers, newLayers) {\n if (this._renderLayersInGroups) {\n resolveLayerGroups(map, prevLayers, newLayers);\n }\n else {\n resolveLayers(map, deck, prevLayers, newLayers);\n }\n }\n /** Called when the control is removed from a map */\n onRemove() {\n const map = this._map;\n if (map) {\n if (this._interleaved) {\n this._onRemoveInterleaved(map);\n }\n else {\n this._onRemoveOverlaid(map);\n }\n }\n this._deck = undefined;\n this._map = undefined;\n this._container = undefined;\n }\n _onRemoveOverlaid(map) {\n map.off('resize', this._updateContainerSize);\n map.off('render', this._updateViewState);\n map.off('mousedown', this._handleMouseEvent);\n map.off('dragstart', this._handleMouseEvent);\n map.off('drag', this._handleMouseEvent);\n map.off('dragend', this._handleMouseEvent);\n map.off('mousemove', this._handleMouseEvent);\n map.off('mouseout', this._handleMouseEvent);\n map.off('click', this._handleMouseEvent);\n map.off('dblclick', this._handleMouseEvent);\n this._deck?.finalize();\n }\n _onRemoveInterleaved(map) {\n map.off('styledata', this._handleStyleChange);\n this._resolveLayers(map, this._deck, this._props.layers, []);\n removeDeckInstance(map);\n }\n getDefaultPosition() {\n return 'top-left';\n }\n /** Forwards the Deck.pickObject method */\n pickObject(params) {\n assert(this._deck);\n return this._deck.pickObject(params);\n }\n /** Forwards the Deck.pickMultipleObjects method */\n pickMultipleObjects(params) {\n assert(this._deck);\n return this._deck.pickMultipleObjects(params);\n }\n /** Forwards the Deck.pickObjects method */\n pickObjects(params) {\n assert(this._deck);\n return this._deck.pickObjects(params);\n }\n /** Remove from map and releases all resources */\n finalize() {\n if (this._map) {\n this._map.removeControl(this);\n }\n }\n /** If interleaved: true, returns base map's canvas, otherwise forwards the Deck.getCanvas method. */\n getCanvas() {\n if (!this._map) {\n return null;\n }\n return this._interleaved ? this._map.getCanvas() : this._deck.getCanvas();\n }\n}\n//# sourceMappingURL=mapbox-overlay.js.map"],"names":["MAPBOX_VIEW_ID","TILE_SIZE","DEGREES_TO_RADIANS","getDeckInstance","map","gl","deck","customRender","onLoad","deckProps","getDefaultParameters","getDefaultView","deckInstance","getViewState","watchMapMove","Deck","removeDeckInstance","afterRender","_handleMapMove","onMapMove","interleaved","result","getProjection","addLayer","layer","updateLayers","removeLayer","updateLayer","drawLayer","renderParameters","currentViewport","clearStack","getViewport","params","drawLayerGroup","group","projection","type","GlobeView","MapView","lng","lat","viewState","centerCameraOnTerrain","position","height","longitude","latitude","pitch","cameraX","cameraY","cameraZ","center","lngLatToWorld","dx","dy","cameraToCenterDistanceGround","pitchRadians","altitudePixels","scale","cameraZFromSurface","surfaceElevation","unitsPerMeter","views","view","flatten","v","nearZ","farZ","mapboxLayers","isExternal","mapboxLayerIds","hasNonMapboxLayers","viewports","mapboxViewportIdx","vp","hasNonMapboxViews","layers","deckLayer","LayerType","MapboxLayer","props","UNDEFINED_BEFORE_ID","resolveLayers","oldLayers","newLayers","prevLayers","prevLayerIds","l","id","mapboxLayer","mapLayers","layerGroups","beforeId","layerGroup","lastLayerIndex","lastLayerId","i","layerId","layerIndex","MapboxLayerGroup","assert","getLayerGroupId","resolveLayerGroups","prevLayerGroupIds","newLayerGroupIds","groupId","mapboxGroup","groupInstance","newGroup","expectedGroupIndex","moveBeforeId","MapboxOverlay","clientWidth","clientHeight","event","mockEvent","lastDown","useDevicePixels","container","log"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -0,0 +1,2 @@
1
+ import{d as y,S as L}from"./assets/mesh-layers-wiqredoy.js";import"./assets/layer-DPcO4AXQ.js";import"./assets/deep-equal-BTW2ZN6S.js";import"./assets/project-BTjD2Imj.js";import"./assets/shader-Cbdysp2j.js";import"./assets/array-utils-flat-BBMak426.js";import"./assets/assert-cyW4mg7q.js";import"./assets/webgl-developer-tools-utTNOsNf.js";import"./assets/webgl-device-BYRB-GQX.js";import"./assets/image-loader-hHJsndO6.js";export{y as ScenegraphLayer,L as SimpleMeshLayer};
2
+ //# sourceMappingURL=mesh-layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-layers.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import{W as f,L as ae,a as Qe,l as et}from"./assets/widget-BjgEeHAL.js";import{F as le}from"./assets/fly-to-interpolator-CIXGjOdo.js";import{W as ge,x as ee,i as ve}from"./assets/deep-equal-BTW2ZN6S.js";import{G as tt}from"./assets/globe-viewport-tqhQW7C4.js";import"./assets/assert-cyW4mg7q.js";var j,y,We,N,we,Ae,Fe,Ve,ce,te,ie,O={},De=[],it=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,X=Array.isArray;function C(t,e){for(var i in e)t[i]=e[i];return t}function de(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function st(t,e,i){var s,o,n,a={};for(n in e)n=="key"?s=e[n]:n=="ref"?o=e[n]:a[n]=e[n];if(arguments.length>2&&(a.children=arguments.length>3?j.call(arguments,2):i),typeof t=="function"&&t.defaultProps!=null)for(n in t.defaultProps)a[n]===void 0&&(a[n]=t.defaultProps[n]);return V(t,a,s,o,null)}function V(t,e,i,s,o){var n={type:t,props:e,key:i,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++We,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(n),n}function K(t){return t.children}function D(t,e){this.props=t,this.context=e}function H(t,e){if(e==null)return t.__?H(t.__,t.__i+1):null;for(var i;e<t.__k.length;e++)if((i=t.__k[e])!=null&&i.__e!=null)return i.__e;return typeof t.type=="function"?H(t):null}function Ue(t){var e,i;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((i=t.__k[e])!=null&&i.__e!=null){t.__e=t.__c.base=i.__e;break}return Ue(t)}}function be(t){(!t.__d&&(t.__d=!0)&&N.push(t)&&!G.__r++||we!=y.debounceRendering)&&((we=y.debounceRendering)||Ae)(G)}function G(){for(var t,e,i,s,o,n,a,l=1;N.length;)N.length>l&&N.sort(Fe),t=N.shift(),l=N.length,t.__d&&(i=void 0,s=void 0,o=(s=(e=t).__v).__e,n=[],a=[],e.__P&&((i=C({},s)).__v=s.__v+1,y.vnode&&y.vnode(i),he(e.__P,i,s,e.__n,e.__P.namespaceURI,32&s.__u?[o]:null,n,o??H(s),!!(32&s.__u),a),i.__v=s.__v,i.__.__k[i.__i]=i,qe(n,i,a),s.__e=s.__=null,i.__e!=o&&Ue(i)));G.__r=0}function Ge(t,e,i,s,o,n,a,l,h,c,u){var r,p,_,w,m,b,g,v=s&&s.__k||De,M=e.length;for(h=ot(i,e,v,h,M),r=0;r<M;r++)(_=i.__k[r])!=null&&(p=_.__i==-1?O:v[_.__i]||O,_.__i=r,b=he(t,_,p,o,n,a,l,h,c,u),w=_.__e,_.ref&&p.ref!=_.ref&&(p.ref&&pe(p.ref,null,_),u.push(_.ref,_.__c||w,_)),m==null&&w!=null&&(m=w),(g=!!(4&_.__u))||p.__k===_.__k?h=ze(_,h,t,g):typeof _.type=="function"&&b!==void 0?h=b:w&&(h=w.nextSibling),_.__u&=-7);return i.__e=m,h}function ot(t,e,i,s,o){var n,a,l,h,c,u=i.length,r=u,p=0;for(t.__k=new Array(o),n=0;n<o;n++)(a=e[n])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[n]=V(null,a,null,null,null):X(a)?a=t.__k[n]=V(K,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[n]=V(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[n]=a,h=n+p,a.__=t,a.__b=t.__b+1,l=null,(c=a.__i=nt(a,i,h,r))!=-1&&(r--,(l=i[c])&&(l.__u|=2)),l==null||l.__v==null?(c==-1&&(o>u?p--:o<u&&p++),typeof a.type!="function"&&(a.__u|=4)):c!=h&&(c==h-1?p--:c==h+1?p++:(c>h?p--:p++,a.__u|=4))):t.__k[n]=null;if(r)for(n=0;n<u;n++)(l=i[n])!=null&&(2&l.__u)==0&&(l.__e==s&&(s=H(l)),je(l,l));return s}function ze(t,e,i,s){var o,n;if(typeof t.type=="function"){for(o=t.__k,n=0;o&&n<o.length;n++)o[n]&&(o[n].__=t,e=ze(o[n],e,i,s));return e}t.__e!=e&&(s&&(e&&t.type&&!e.parentNode&&(e=H(t)),i.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function nt(t,e,i,s){var o,n,a,l=t.key,h=t.type,c=e[i],u=c!=null&&(2&c.__u)==0;if(c===null&&l==null||u&&l==c.key&&h==c.type)return i;if(s>(u?1:0)){for(o=i-1,n=i+1;o>=0||n<e.length;)if((c=e[a=o>=0?o--:n++])!=null&&(2&c.__u)==0&&l==c.key&&h==c.type)return a}return-1}function ye(t,e,i){e[0]=="-"?t.setProperty(e,i??""):t[e]=i==null?"":typeof i!="number"||it.test(e)?i:i+"px"}function F(t,e,i,s,o){var n,a;e:if(e=="style")if(typeof i=="string")t.style.cssText=i;else{if(typeof s=="string"&&(t.style.cssText=s=""),s)for(e in s)i&&e in i||ye(t.style,e,"");if(i)for(e in i)s&&i[e]==s[e]||ye(t.style,e,i[e])}else if(e[0]=="o"&&e[1]=="n")n=e!=(e=e.replace(Ve,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+n]=i,i?s?i.u=s.u:(i.u=ce,t.addEventListener(e,n?ie:te,n)):t.removeEventListener(e,n?ie:te,n);else{if(o=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=i??"";break e}catch{}typeof i=="function"||(i==null||i===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&i==1?"":i))}}function xe(t){return function(e){if(this.l){var i=this.l[e.type+t];if(e.t==null)e.t=ce++;else if(e.t<i.u)return;return i(y.event?y.event(e):e)}}}function he(t,e,i,s,o,n,a,l,h,c){var u,r,p,_,w,m,b,g,v,M,T,P,E,me,A,R,Z,S=e.type;if(e.constructor!==void 0)return null;128&i.__u&&(h=!!(32&i.__u),n=[l=e.__e=i.__e]),(u=y.__b)&&u(e);e:if(typeof S=="function")try{if(g=e.props,v="prototype"in S&&S.prototype.render,M=(u=S.contextType)&&s[u.__c],T=u?M?M.props.value:u.__:s,i.__c?b=(r=e.__c=i.__c).__=r.__E:(v?e.__c=r=new S(g,T):(e.__c=r=new D(g,T),r.constructor=S,r.render=at),M&&M.sub(r),r.state||(r.state={}),r.__n=s,p=r.__d=!0,r.__h=[],r._sb=[]),v&&r.__s==null&&(r.__s=r.state),v&&S.getDerivedStateFromProps!=null&&(r.__s==r.state&&(r.__s=C({},r.__s)),C(r.__s,S.getDerivedStateFromProps(g,r.__s))),_=r.props,w=r.state,r.__v=e,p)v&&S.getDerivedStateFromProps==null&&r.componentWillMount!=null&&r.componentWillMount(),v&&r.componentDidMount!=null&&r.__h.push(r.componentDidMount);else{if(v&&S.getDerivedStateFromProps==null&&g!==_&&r.componentWillReceiveProps!=null&&r.componentWillReceiveProps(g,T),e.__v==i.__v||!r.__e&&r.shouldComponentUpdate!=null&&r.shouldComponentUpdate(g,r.__s,T)===!1){for(e.__v!=i.__v&&(r.props=g,r.state=r.__s,r.__d=!1),e.__e=i.__e,e.__k=i.__k,e.__k.some(function($){$&&($.__=e)}),P=0;P<r._sb.length;P++)r.__h.push(r._sb[P]);r._sb=[],r.__h.length&&a.push(r);break e}r.componentWillUpdate!=null&&r.componentWillUpdate(g,r.__s,T),v&&r.componentDidUpdate!=null&&r.__h.push(function(){r.componentDidUpdate(_,w,m)})}if(r.context=T,r.props=g,r.__P=t,r.__e=!1,E=y.__r,me=0,v){for(r.state=r.__s,r.__d=!1,E&&E(e),u=r.render(r.props,r.state,r.context),A=0;A<r._sb.length;A++)r.__h.push(r._sb[A]);r._sb=[]}else do r.__d=!1,E&&E(e),u=r.render(r.props,r.state,r.context),r.state=r.__s;while(r.__d&&++me<25);r.state=r.__s,r.getChildContext!=null&&(s=C(C({},s),r.getChildContext())),v&&!p&&r.getSnapshotBeforeUpdate!=null&&(m=r.getSnapshotBeforeUpdate(_,w)),R=u,u!=null&&u.type===K&&u.key==null&&(R=Be(u.props.children)),l=Ge(t,X(R)?R:[R],e,i,s,o,n,a,l,h,c),r.base=e.__e,e.__u&=-161,r.__h.length&&a.push(r),b&&(r.__E=r.__=null)}catch($){if(e.__v=null,h||n!=null)if($.then){for(e.__u|=h?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;n[n.indexOf(l)]=null,e.__e=l}else{for(Z=n.length;Z--;)de(n[Z]);se(e)}else e.__e=i.__e,e.__k=i.__k,$.then||se(e);y.__e($,e,i)}else n==null&&e.__v==i.__v?(e.__k=i.__k,e.__e=i.__e):l=e.__e=rt(i.__e,e,i,s,o,n,a,h,c);return(u=y.diffed)&&u(e),128&e.__u?void 0:l}function se(t){t&&t.__c&&(t.__c.__e=!0),t&&t.__k&&t.__k.forEach(se)}function qe(t,e,i){for(var s=0;s<i.length;s++)pe(i[s],i[++s],i[++s]);y.__c&&y.__c(e,t),t.some(function(o){try{t=o.__h,o.__h=[],t.some(function(n){n.call(o)})}catch(n){y.__e(n,o.__v)}})}function Be(t){return typeof t!="object"||t==null||t.__b&&t.__b>0?t:X(t)?t.map(Be):C({},t)}function rt(t,e,i,s,o,n,a,l,h){var c,u,r,p,_,w,m,b=i.props||O,g=e.props,v=e.type;if(v=="svg"?o="http://www.w3.org/2000/svg":v=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),n!=null){for(c=0;c<n.length;c++)if((_=n[c])&&"setAttribute"in _==!!v&&(v?_.localName==v:_.nodeType==3)){t=_,n[c]=null;break}}if(t==null){if(v==null)return document.createTextNode(g);t=document.createElementNS(o,v,g.is&&g),l&&(y.__m&&y.__m(e,n),l=!1),n=null}if(v==null)b===g||l&&t.data==g||(t.data=g);else{if(n=n&&j.call(t.childNodes),!l&&n!=null)for(b={},c=0;c<t.attributes.length;c++)b[(_=t.attributes[c]).name]=_.value;for(c in b)if(_=b[c],c!="children"){if(c=="dangerouslySetInnerHTML")r=_;else if(!(c in g)){if(c=="value"&&"defaultValue"in g||c=="checked"&&"defaultChecked"in g)continue;F(t,c,null,_,o)}}for(c in g)_=g[c],c=="children"?p=_:c=="dangerouslySetInnerHTML"?u=_:c=="value"?w=_:c=="checked"?m=_:l&&typeof _!="function"||b[c]===_||F(t,c,_,b[c],o);if(u)l||r&&(u.__html==r.__html||u.__html==t.innerHTML)||(t.innerHTML=u.__html),e.__k=[];else if(r&&(t.innerHTML=""),Ge(e.type=="template"?t.content:t,X(p)?p:[p],e,i,s,v=="foreignObject"?"http://www.w3.org/1999/xhtml":o,n,a,n?n[0]:i.__k&&H(i,0),l,h),n!=null)for(c=n.length;c--;)de(n[c]);l||(c="value",v=="progress"&&w==null?t.removeAttribute("value"):w!=null&&(w!==t[c]||v=="progress"&&!w||v=="option"&&w!=b[c])&&F(t,c,w,b[c],o),c="checked",m!=null&&m!=t[c]&&F(t,c,m,b[c],o))}return t}function pe(t,e,i){try{if(typeof t=="function"){var s=typeof t.__u=="function";s&&t.__u(),s&&e==null||(t.__u=t(e))}else t.current=e}catch(o){y.__e(o,i)}}function je(t,e,i){var s,o;if(y.unmount&&y.unmount(t),(s=t.ref)&&(s.current&&s.current!=t.__e||pe(s,null,e)),(s=t.__c)!=null){if(s.componentWillUnmount)try{s.componentWillUnmount()}catch(n){y.__e(n,e)}s.base=s.__P=null}if(s=t.__k)for(o=0;o<s.length;o++)s[o]&&je(s[o],e,i||typeof t.type!="function");i||de(t.__e),t.__c=t.__=t.__e=void 0}function at(t,e,i){return this.constructor(t,i)}function I(t,e,i){var s,o,n,a;e==document&&(e=document.documentElement),y.__&&y.__(t,e),o=(s=!1)?null:e.__k,n=[],a=[],he(e,t=e.__k=st(K,null,[t]),o||O,O,e.namespaceURI,o?null:e.firstChild?j.call(e.childNodes):null,n,o?o.__e:e.firstChild,s,a),qe(n,t,a)}j=De.slice,y={__e:function(t,e,i,s){for(var o,n,a;e=e.__;)if((o=e.__c)&&!o.__)try{if((n=o.constructor)&&n.getDerivedStateFromError!=null&&(o.setState(n.getDerivedStateFromError(t)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(t,s||{}),a=o.__d),a)return o.__E=o}catch(l){t=l}throw t}},We=0,D.prototype.setState=function(t,e){var i;i=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=C({},this.state),typeof t=="function"&&(t=t(C({},i),this.props)),t&&C(i,t),t!=null&&this.__v&&(e&&this._sb.push(e),be(this))},D.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),be(this))},D.prototype.render=K,N=[],Ae=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Fe=function(t,e){return t.__v.__b-e.__v.__b},G.__r=0,Ve=/(PointerCapture)$|Capture$/i,ce=0,te=xe(!1),ie=xe(!0);var lt=0;function d(t,e,i,s,o,n){e||(e={});var a,l,h=e;if("ref"in h)for(l in h={},e)l=="ref"?a=e[l]:h[l]=e[l];var c={type:t,props:h,key:i,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--lt,__i:-1,__u:0,__source:o,__self:n};if(typeof t=="function"&&(a=t.defaultProps))for(l in a)h[l]===void 0&&(h[l]=a[l]);return y.vnode&&y.vnode(c),c}const Xe=t=>{const{children:e,orientation:i="horizontal"}=t;return d("div",{className:`deck-widget-button-group ${i}`,children:e})},oe=t=>{const{className:e="",label:i,onClick:s,children:o}=t;return d("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:s,title:i,children:o||d("div",{className:"deck-widget-icon"})})};class ct extends f{constructor(e={}){super(e),this.className="deck-widget-zoom",this.placement="top-left",this.viewports={},this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const i=d(Xe,{orientation:this.props.orientation,children:[d(oe,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),d(oe,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});I(i,e)}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,i){const s=this.viewId||e?.id||"default-view",o={...e,zoom:i};this.props.transitionDuration>0&&(o.transitionDuration=this.props.transitionDuration,o.transitionInterpolator="latitude"in o?new le:new ae({transitionProps:["zoom"]})),this.setViewState(s,o)}handleZoomIn(){for(const e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(const e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}setViewState(e,i){this.deck._onViewStateChange({viewId:e,viewState:i,interactionState:{}})}}ct.defaultProps={...f.defaultProps,id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",viewId:null};const L=t=>{const{className:e="",label:i,onClick:s,children:o}=t;return d("div",{className:"deck-widget-button",children:d("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:s,title:i,children:o||d("div",{className:"deck-widget-icon"})})})};class dt extends f{constructor(e={}){super(e),this.className="deck-widget-reset-view",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){I(d(L,{className:"deck-widget-reset-focus",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){const e=this.props.initialViewState||this.deck?.props.initialViewState;this.setViewState(e)}setViewState(e){const i=this.props.viewId||"default-view",s={...i!=="default-view"?e?.[i]:e};this.deck._onViewStateChange({viewId:i,viewState:s,interactionState:{}})}}dt.defaultProps={...f.defaultProps,id:"reset-view",placement:"top-left",label:"Reset View",initialViewState:void 0,viewId:null};class ht extends f{constructor(e={}){super(e),this.className="deck-widget-gimbal",this.placement="top-left",this.viewports={},this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const i=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",s=this.viewports[i],{rotationOrbit:o,rotationX:n}=this.getNormalizedRotation(s),a=d("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:d("button",{type:"button",onClick:()=>{for(const l of Object.values(this.viewports))this.resetOrbitView(l)},title:this.props.label,style:{position:"relative",width:26,height:26},children:[d("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateY(${o}deg)`},children:d("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),d("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateX(${n}deg)`},children:d("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})});I(a,e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){const i=this.getViewId(e),s=this.getViewState(i);if("rotationOrbit"in s||"rotationX"in s){const o={...s,rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new ae({transitionProps:["rotationOrbit","rotationX"]})};this.deck._onViewStateChange({viewId:i,viewState:o,interactionState:{}})}}getNormalizedRotation(e){const i=this.getViewState(this.getViewId(e)),[s,o]=this.getRotation(i),n=ke(s),a=ke(o);return{rotationOrbit:n,rotationX:a}}getRotation(e){return e&&("rotationOrbit"in e||"rotationX"in e)?[-(e.rotationOrbit||0),e.rotationX||0]:[0,0]}getViewId(e){return this.viewId||e?.id||"OrbitView"}getViewState(e){const i=this.getViewManager();return e&&i.getViewState(e)||i.viewState}getViewManager(){const e=this.deck?.viewManager;if(!e)throw new Error("wigdet must be added to a deck instance");return e}}ht.defaultProps={...f.defaultProps,id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",strokeWidth:1.5,transitionDuration:200};function ke(t){let e=((t+180)%360+360)%360-180;const i=10,s=e-90;return Math.abs(s)<i&&(s<i?e=90+i:s>-i&&(e=90-i)),e}class pt extends f{constructor(e={}){super(e),this.className="deck-widget-compass",this.placement="top-left",this.viewports={},this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const i=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",s=this.viewports[i],[o,n]=this.getRotation(s),a=d("div",{className:"deck-widget-button",style:{perspective:100},children:d("button",{type:"button",onClick:()=>{for(const l of Object.values(this.viewports))this.handleCompassReset(l)},title:this.props.label,style:{transform:`rotateX(${n}deg)`},children:d("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:d("g",{transform:`rotate(${o},13,13)`,children:[d("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),d("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})});I(a,e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof ge?[-e.bearing,e.pitch]:e instanceof tt?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){const i=this.viewId||e.id||"default-view";if(e instanceof ge){const s={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new le};this.deck._onViewStateChange({viewId:i,viewState:s,interactionState:{}})}}}pt.defaultProps={...f.defaultProps,id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",transitionDuration:200};class ut extends f{constructor(e={}){super(e),this.className="deck-widget-scale",this.placement="bottom-left",this.scaleWidth=10,this.scaleValue=0,this.scaleText="",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const s=50+this.scaleWidth,o=10;I(d("svg",{className:"deck-widget-scale",width:s,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[d("text",{x:55,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),d("line",{x1:50,y1:"15",x2:50+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),d("line",{x1:50,y1:"15",x2:50,y2:15-o,stroke:"black",strokeWidth:"6"}),d("line",{x1:50+this.scaleWidth,y1:"15",x2:50+this.scaleWidth,y2:15-o,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;const{latitude:i,zoom:s}=e,o=_t(i,s),{candidate:n,candidatePixels:a}=ft(o);this.scaleValue=n,this.scaleWidth=a,n>=1e3?this.scaleText=`${(n/1e3).toFixed(1)} km`:this.scaleText=`${n} m`,this.updateHTML()}handleClick(){}}ut.defaultProps={...f.defaultProps,id:"scale",placement:"bottom-left",label:"Scale",viewId:null};function _t(t,e){return 40075016686e-3*Math.cos(t*Math.PI/180)/Math.pow(2,e+8)}function ft(t){const o=150*t,n=Math.floor(Math.log10(o)),a=Math.pow(10,n),l=[1,2,5];let h=l[0]*a,c=h/t;for(let u=0;u<l.length;u++){const r=l[u]*a,p=r/t;if(p>=100&&p<=200){h=r,c=p;break}if(p>200){h=u>0?l[u-1]*a:r,c=h/t;break}u===l.length-1&&p<100&&(h=l[0]*a*10,c=h/t)}return{candidate:h,candidatePixels:c}}var W,x,Y,Ie,z=0,Ke=[],k=y,Me=k.__b,Te=k.__r,Pe=k.diffed,Se=k.__c,Ce=k.unmount,Le=k.__;function ue(t,e){k.__h&&k.__h(x,t,z||e),z=0;var i=x.__H||(x.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function q(t){return z=1,mt(Je,t)}function mt(t,e,i){var s=ue(W++,2);if(s.t=t,!s.__c&&(s.__=[Je(void 0,e),function(l){var h=s.__N?s.__N[0]:s.__[0],c=s.t(h,l);h!==c&&(s.__N=[c,s.__[1]],s.__c.setState({}))}],s.__c=x,!x.__f)){var o=function(l,h,c){if(!s.__c.__H)return!0;var u=s.__c.__H.__.filter(function(p){return!!p.__c});if(u.every(function(p){return!p.__N}))return!n||n.call(this,l,h,c);var r=s.__c.props!==l;return u.forEach(function(p){if(p.__N){var _=p.__[0];p.__=p.__N,p.__N=void 0,_!==p.__[0]&&(r=!0)}}),n&&n.call(this,l,h,c)||r};x.__f=!0;var n=x.shouldComponentUpdate,a=x.componentWillUpdate;x.componentWillUpdate=function(l,h,c){if(this.__e){var u=n;n=void 0,o(l,h,c),n=u}a&&a.call(this,l,h,c)},x.shouldComponentUpdate=o}return s.__N||s.__}function Ze(t,e){var i=ue(W++,3);!k.__s&&Ye(i.__H,e)&&(i.__=t,i.u=e,x.__H.__h.push(i))}function B(t){return z=5,gt(function(){return{current:t}},[])}function gt(t,e){var i=ue(W++,7);return Ye(i.__H,e)&&(i.__=t(),i.__H=e,i.__h=t),i.__}function vt(){for(var t;t=Ke.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(U),t.__H.__h.forEach(ne),t.__H.__h=[]}catch(e){t.__H.__h=[],k.__e(e,t.__v)}}k.__b=function(t){x=null,Me&&Me(t)},k.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),Le&&Le(t,e)},k.__r=function(t){Te&&Te(t),W=0;var e=(x=t.__c).__H;e&&(Y===x?(e.__h=[],x.__h=[],e.__.forEach(function(i){i.__N&&(i.__=i.__N),i.u=i.__N=void 0})):(e.__h.forEach(U),e.__h.forEach(ne),e.__h=[],W=0)),Y=x},k.diffed=function(t){Pe&&Pe(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(Ke.push(e)!==1&&Ie===k.requestAnimationFrame||((Ie=k.requestAnimationFrame)||wt)(vt)),e.__H.__.forEach(function(i){i.u&&(i.__H=i.u),i.u=void 0})),Y=x=null},k.__c=function(t,e){e.some(function(i){try{i.__h.forEach(U),i.__h=i.__h.filter(function(s){return!s.__||ne(s)})}catch(s){e.some(function(o){o.__h&&(o.__h=[])}),e=[],k.__e(s,i.__v)}}),Se&&Se(t,e)},k.unmount=function(t){Ce&&Ce(t);var e,i=t.__c;i&&i.__H&&(i.__H.__.forEach(function(s){try{U(s)}catch(o){e=o}}),i.__H=void 0,e&&k.__e(e,i.__v))};var Ne=typeof requestAnimationFrame=="function";function wt(t){var e,i=function(){clearTimeout(s),Ne&&cancelAnimationFrame(e),setTimeout(t)},s=setTimeout(i,35);Ne&&(e=requestAnimationFrame(i))}function U(t){var e=x,i=t.__c;typeof i=="function"&&(t.__c=void 0,i()),x=e}function ne(t){var e=x;t.__c=t.__(),x=e}function Ye(t,e){return!t||t.length!==e.length||e.some(function(i,s){return i!==t[s]})}function Je(t,e){return typeof e=="function"?e(t):e}const bt=t=>{const[e,i]=q(!1),s=B(null),o=()=>i(!e),n=l=>{s.current&&!s.current.contains(l.target)&&i(!1)};Ze(()=>(document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}),[]);const a=l=>{t.onSelect(l),i(!1)};return d("div",{className:"dropdown-container",ref:s,style:{position:"relative",display:"inline-block",...t.style},children:[d("button",{onClick:o,style:{width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid #ccc",borderRadius:"4px",background:"#fff",cursor:"pointer",padding:0},children:"▼"}),e&&d("ul",{style:{position:"absolute",top:"100%",right:"100%",background:"#fff",border:"1px solid #ccc",borderRadius:"4px",listStyle:"none",padding:"4px 0",margin:0,zIndex:1e3,minWidth:"200px"},children:t.menuItems.map(l=>d("li",{onClick:()=>a(l),style:{padding:"4px 8px",cursor:"pointer",whiteSpace:"nowrap"},children:l},l))})]})},yt="current",$e="deck-geocoder-history";class xt{constructor(e){this.addressText="",this.errorText="",this.addressHistory=[],this.props={maxEntries:5,...e},this.addressHistory=this.loadPreviousAddresses()}async geocode(e,i,s){this.errorText="",this.addressText=i;try{const o=await e.geocode(i,s);if(o)return this.storeAddress(this.addressText),o;this.errorText="Invalid address"}catch(o){this.errorText=`${o.message}`}return null}loadPreviousAddresses(){try{const e=window.localStorage.getItem($e),i=e&&JSON.parse(e);return Array.isArray(i)?i.filter(o=>typeof o=="string"):[]}catch{}return[]}storeAddress(e){const i=e.trim();if(!i||i===yt)return;const s=[i,...this.addressHistory.filter(o=>o!==i)];this.addressHistory=s.slice(0,this.props.maxEntries);try{window.localStorage.setItem($e,JSON.stringify(this.addressHistory))}catch{}}}const kt="https://maps.googleapis.com/maps/api/geocode/json",It="https://api.mapbox.com/geocoding/v5/mapbox.places",Mt="https://api.opencagedata.com/geocode/v1/json",Tt={name:"google",requiresApiKey:!0,async geocode(t,e){const i=encodeURIComponent(t),s=await _e(`${kt}?address=${i}&key=${e}`);if(s.status==="OK"){const o=s.results.length>0&&s.results[0].geometry.location;return o?{longitude:o.lng,latitude:o.lat}:null}else throw new Error(`Google Geocoder failed: ${s.status}`)}},Pt={name:"google",requiresApiKey:!0,async geocode(t,e){const i=encodeURIComponent(t),s=await _e(`${It}/${i}.json?access_token=${e}`);if(Array.isArray(s.features)&&s.features.length>0){const o=s.features[0].center;if(Array.isArray(o)&&o.length>=2)return{longitude:o[0],latitude:o[1]}}return null}},St={name:"opencage",requiresApiKey:!0,async geocode(t,e){const i=encodeURIComponent(t),s=await _e(`${Mt}?q=${i}&key=${e}`);if(Array.isArray(s.results)&&s.results.length>0){const o=s.results[0].geometry;return{longitude:o.lng,latitude:o.lat}}return null}},Ct={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw new Error("Geolocation not supported");return new Promise((t,e)=>{navigator.geolocation.getCurrentPosition(i=>{const{longitude:s,latitude:o}=i.coords;t({longitude:s,latitude:o})},i=>e(new Error(i.message)))})}};async function _e(t){let e;try{e=await fetch(t)}catch(s){throw new Error(`CORS error? ${s}. ${t}: `)}if(!e.ok)throw new Error(`${e.statusText}. ${t}: `);const i=await e.json();if(!i)throw new Error(`No data returned. ${t}`);return i}const fe={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37°48'N, 122°27'W",async geocode(t){return Lt(t)||null}};function Lt(t){t=t.trim();const e=t.split(/[,;]/).map(o=>o.trim());if(e.length<2)return null;const i=He(e[0]),s=He(e[1]);return i===null||s===null?null:Math.abs(i)>90&&Math.abs(s)<=90?{longitude:i,latitude:s}:Math.abs(s)>90&&Math.abs(i)<=90?{longitude:s,latitude:i}:{latitude:i,longitude:s}}function He(t){if(t=t.trim(),t.includes("°")||t.includes("'")||t.includes('"')){const s=Nt(t);return isNaN(s)?null:s}let e=1;/[SW]/i.test(t)&&(e=-1),t=t.replace(/[NSEW]/gi,"");const i=parseFloat(t);return isNaN(i)?null:e*i}function Nt(t){const e=/(\d+)[°d]\s*(\d+)?['′m]?\s*(\d+(?:\.\d+)?)?[\"″s]?\s*([NSEW])?/i,i=t.match(e);if(!i)return NaN;const s=parseFloat(i[1])||0,o=parseFloat(i[2])||0,n=parseFloat(i[3])||0,a=i[4]||"";let l=s+o/60+n/3600;return/[SW]/i.test(a)&&(l=-l),l}const Ee="current";class $t extends f{constructor(e={}){super(e),this.className="deck-widget-geocoder",this.placement="top-left",this.geocodeHistory=new xt({}),this.addressText="",this.geocoder=fe,this.setInput=i=>{this.addressText=i},this.handleKeyPress=i=>{i.key==="Enter"&&this.handleSubmit()},this.handleSelect=i=>{this.setInput(i),this.handleSubmit()},this.handleSubmit=()=>{this.geocode(this.addressText)},this.geocode=async i=>{const o=this.props._geolocation&&i===Ee?Ct:this.geocoder,n=await this.geocodeHistory.geocode(o,this.addressText,this.props.apiKey);n&&this.setViewState(n)},this.viewports={},this.setProps(this.props)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this.geocoder=Ht(this.props),this.geocoder.requiresApiKey&&!this.props.apiKey)throw new Error(`API key is required for the ${this.geocoder.name} geocoder`);super.setProps(e)}onRenderHTML(e){const i=this.props._geolocation?[Ee,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];I(d("div",{className:"deck-widget-geocoder",style:{pointerEvents:"auto",display:"flex",alignItems:"center",flexWrap:"wrap"},children:[d("input",{type:"text",placeholder:this.geocoder.placeholderLocation??"Enter address or location",value:this.geocodeHistory.addressText,onInput:s=>this.setInput(s.target?.value||""),onKeyPress:this.handleKeyPress,style:{flex:"1 1 auto",minWidth:"200px",margin:0,padding:"8px",boxSizing:"border-box"}}),d(bt,{menuItems:i,onSelect:this.handleSelect,style:{margin:2,padding:"4px 2px",boxSizing:"border-box"}}),this.geocodeHistory.errorText&&d("div",{className:"error",children:this.geocodeHistory.errorText})]}),e)}setViewState(e){const i=this.props.viewId||e?.id||"default-view",o={...this.viewports[i]||{},...e};this.props.transitionDuration>0&&(o.transitionDuration=this.props.transitionDuration,o.transitionInterpolator="latitude"in o?new le:new ae),this.deck._onViewStateChange({viewId:i,viewState:o,interactionState:{}})}onViewportChange(e){this.viewports[e.id]=e}}$t.defaultProps={...f.defaultProps,id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:fe,apiKey:"",_geolocation:!1};function Ht(t){switch(t.geocoder){case"google":return Tt;case"mapbox":return Pt;case"opencage":return St;case"coordinates":return fe;case"custom":if(!t.customGeocoder)throw new Error("Custom geocoder is not defined");return t.customGeocoder;default:throw new Error(`Unknown geocoder: ${t.geocoder}`)}}class Et extends f{constructor(e={}){super(e),this.className="deck-widget-fullscreen",this.placement="top-left",this.fullscreen=!1,this.setProps(this.props)}onAdd(){document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRemove(){document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRenderHTML(e){I(d(L,{onClick:()=>{this.handleClick().catch(i=>ee.error(i)())},label:this.fullscreen?this.props.exitLabel:this.props.enterLabel,className:this.fullscreen?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"}),e)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}getContainer(){return this.props.container||this.deck?.getCanvas()?.parentElement}onFullscreenChange(){const e=this.fullscreen,i=document.fullscreenElement===this.getContainer();e!==i&&(this.fullscreen=!this.fullscreen),this.updateHTML()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.updateHTML()}async requestFullscreen(){const e=this.getContainer();e?.requestFullscreen?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){this.getContainer()?.classList.toggle("deck-pseudo-fullscreen")}}Et.defaultProps={...f.defaultProps,id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",container:void 0};class Rt extends f{constructor(e){super(e),this.className="deck-widget-splitter",this.placement="fill"}setProps(e){super.setProps(e)}onRenderHTML(e){e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.margin="0px",I(d(Ot,{orientation:this.props.orientation,initialSplit:this.props.initialSplit,onChange:this.props.onChange,onDragStart:this.props.onDragStart,onDragEnd:this.props.onDragEnd}),e)}}Rt.defaultProps={...f.defaultProps,id:"splitter-widget",viewId1:"",viewId2:"",orientation:"vertical",initialSplit:.5,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}};function Ot({orientation:t,initialSplit:e,onChange:i,onDragStart:s,onDragEnd:o}){const[n,a]=q(e),l=B(!1),h=B(null),c=w=>{l.current=!0,s?.(),document.addEventListener("mousemove",u),document.addEventListener("mouseup",r),w.preventDefault()},u=w=>{if(!l.current||!h.current)return;const m=h.current.getBoundingClientRect();let b;t==="vertical"?b=(w.clientX-m.left)/m.width:b=(w.clientY-m.top)/m.height,b=Math.min(Math.max(b,.05),.95),a(b),i?.(b)},r=w=>{l.current&&(l.current=!1,o?.(),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",r))},p=t==="vertical"?{position:"absolute",top:0,bottom:0,left:`${n*100}%`,width:"4px",cursor:"col-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"}:{position:"absolute",left:0,right:0,top:`${n*100}%`,height:"4px",cursor:"row-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"};return d("div",{ref:h,style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:d("div",{style:p,onMouseDown:c})})}function Wt(t){const[e,i]=q(!1),s=B(null),o=p=>{s.current&&!s.current.contains(p.target)&&i(!1)};Ze(()=>(document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[s]);const[n,a]=q(t.initialItem),l=p=>{a(p),i(!1),t.onItemSelected(p)},h=()=>i(!e),c=t.menuItems.find(p=>p.value===n),u=t.label||c?.label||"",r=t.icon||c?.icon;return d("div",{style:{position:"relative",display:"inline-block"},ref:s,children:[d(L,{className:t.className,label:u,onClick:h,children:r}),e&&d("div",{className:"deck-widget-icon-menu",children:d(Xe,{orientation:"vertical",children:t.menuItems.map(p=>d(oe,{label:p.label,onClick:()=>l(p.value),children:p.icon},p.value))})})]})}class At extends f{constructor(e={}){super(e),this.className="deck-widget-view-selector",this.placement="top-left",this.handleSelectMode=i=>{this.viewMode=i,this.updateHTML(),this.props.onViewModeChange(i)},this.viewMode=this.props.initialViewMode,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){I(d(Wt,{className:"deck-widget-view-selector",menuItems:Ft.map(i=>({...i,icon:i.icon()})),initialItem:this.props.initialViewMode,onItemSelected:this.handleSelectMode}),e)}}At.defaultProps={...f.defaultProps,id:"view-selector",placement:"top-left",viewId:null,label:"Split View",initialViewMode:"single",onViewModeChange:()=>{}};const J={width:"24px",height:"24px"},Q={single:()=>d("svg",{width:"24",height:"24",style:J,children:d("rect",{x:"4",y:"4",width:"16",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})}),"split-horizontal":()=>d("svg",{width:"24",height:"24",style:J,children:[d("rect",{x:"4",y:"4",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),d("rect",{x:"4",y:"13",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]}),"split-vertical":()=>d("svg",{width:"24",height:"24",style:J,children:[d("rect",{x:"4",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),d("rect",{x:"13",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]})},Ft=[{value:"single",icon:Q.single,label:"Single View"},{value:"split-horizontal",icon:Q["split-horizontal"],label:"Split Horizontal"},{value:"split-vertical",icon:Q["split-vertical"],label:"Split Vertical"}];class Vt extends f{constructor(e){super(e),this.className="deck-widget-info",this.placement="fill",this.setProps(this.props)}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onCreateRootElement(){const e=super.onCreateRootElement();return Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute"}).forEach(([s,o])=>e.style.setProperty(s,o)),e}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){if(this.props.mode==="hover"&&this.props.getTooltip){const i=this.props.getTooltip(e,this);this.setProps({visible:i!==null,...i,style:{zIndex:"1",...i?.style}})}}onClick(e){if(this.props.mode==="click"&&this.props.getTooltip){const i=this.props.getTooltip(e,this);return this.setProps({visible:i!==null,...i}),i!==null}return this.props.onClick?.(this,e)||!1}onAdd({deck:e,viewId:i}){this.deck=e,i?this.viewport=e.getViewports().find(s=>s.id===i):this.viewport=e.getViewports()[0]}onRenderHTML(e){if(!this.viewport)return;const[i,s]=this.props.position,[o,n]=this.viewport.project([i,s]),a=this.props.minOffset||0,l=10,h=8,c=16,u=n>this.viewport.height/2,r=this.props.style&&this.props.style.background||"rgba(255,255,255,0.9)",p=this.props.visible?d("div",{className:"popup-container",style:{position:"absolute",left:0,top:0},children:[d("div",{className:"popup-content",style:{background:r,padding:"10px",position:"relative",...this.props.style},children:this.props.text}),d("div",{className:"popup-arrow",style:{position:"absolute",width:"0px",height:"0px"}})]}):null;I(p,e),requestAnimationFrame(()=>{if(!this.props.visible||!e.firstChild||!this.viewport)return;const _=e.firstChild,w=_.querySelector(".popup-content"),m=_.querySelector(".popup-arrow");if(!w||!m)return;const b=w.getBoundingClientRect(),g=b.width,v=b.height;let M=o-g/2,T;u?T=n-l-h-v:T=n+l+h,M<a&&(M=a),M+g>this.viewport.width-a&&(M=this.viewport.width-a-g),u?T<a&&(T=a):T+v+h>this.viewport.height-a&&(T=this.viewport.height-a-v-h),_.style.left=`${M}px`,_.style.top=`${T}px`,_.style.transform="";let P=o-M-c/2;P=Math.max(P,0),P=Math.min(P,g-c),u?(m.style.left=`${P}px`,m.style.bottom=`-${h}px`,m.style.top="",m.style.borderLeft=`${c/2}px solid transparent`,m.style.borderRight=`${c/2}px solid transparent`,m.style.borderTop=`${h}px solid ${r}`,m.style.borderBottom=""):(m.style.left=`${P}px`,m.style.top=`-${h}px`,m.style.bottom="",m.style.borderLeft=`${c/2}px solid transparent`,m.style.borderRight=`${c/2}px solid transparent`,m.style.borderBottom=`${h}px solid ${r}`,m.style.borderTop="")})}}Vt.defaultProps={...f.defaultProps,id:"info",position:[0,0],text:"",visible:!1,minOffset:0,viewId:null,mode:"hover",getTooltip:void 0,onClick:void 0};const Dt={position:"absolute",top:"100%",left:0,background:"white",border:"1px solid #ccc",borderRadius:"4px",marginTop:"var(--menu-gap, 4px)",zIndex:100},Ut={background:"white",border:"none",padding:"4px",cursor:"pointer",pointerEvents:"auto"},Gt=t=>{const{menuItems:e,onItemSelected:i,position:s,style:o}=t,n={...Dt,...o,left:`${s.x}px`,top:`${s.y}px`};return d("div",{style:n,children:e.map(({key:a,label:l})=>d("button",{style:{...Ut,display:"block"},onClick:h=>i(a),children:l},a))})},zt=2,qt=3;class Bt extends f{constructor(e){super(e),this.className="deck-widget-context-menu",this.placement="fill",this.pickInfo=null,this.pickInfo=null,this.setProps(this.props)}onAdd({deck:e}){const i=document.createElement("div");return i.classList.add("deck-widget","deck-widget-context-menu"),Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute",pointerEvents:"auto"}).forEach(([o,n])=>i.style.setProperty(o,n)),e.getCanvas()?.addEventListener("click",()=>this.hide()),e.getCanvas()?.addEventListener("contextmenu",o=>this.handleContextMenu(o)),i}onRenderHTML(e){const{visible:i,position:s,menuItems:o}=this.props,n=i&&o.length?d(Gt,{menuItems:o,onItemSelected:a=>this.props.onMenuItemSelected(a,this.pickInfo),position:s,style:{pointerEvents:"auto"}}):null;I(n,e)}handleContextMenu(e){if(e&&(e.button===zt||e.which===qt)){this.pickInfo=this.deck?.pickObject({x:e.clientX,y:e.clientY})||null;const i=this.pickInfo&&this.props.getMenuItems?.(this.pickInfo,this)||[],s=i.length>0;return this.setProps({visible:s,position:{x:e.clientX,y:e.clientY},menuItems:i}),this.updateHTML(),e.preventDefault(),s}return!1}hide(){this.setProps({visible:!1})}}Bt.defaultProps={...f.defaultProps,id:"context",viewId:null,visible:!1,position:{x:0,y:0},getMenuItems:void 0,menuItems:[],onMenuItemSelected:(t,e)=>console.log("Context menu item selected:",t,e)};class jt extends f{constructor(e={}){super(e),this.id="timeline",this.className="deck-widget-timeline",this.placement="bottom-left",this.playing=!1,this.timerId=null,this.handlePlayPause=()=>{this.playing?this.stop():this.start()},this.handleSliderChange=i=>{const s=i.target,o=Number(s.value);this.currentTime=o,this.props.onTimeChange(o),this.updateHTML()},this.tick=()=>{const[i,s]=this.props.timeRange;let o=this.currentTime+this.props.step;o>s&&(o=i),this.currentTime=o,this.props.onTimeChange(o),this.updateHTML(),this.playing&&(this.timerId=window.setTimeout(this.tick,this.props.playInterval))},this.currentTime=this.props.initialTime??this.props.timeRange[0],this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd(){this.playing=!1,this.timerId=null}onRemove(){this.stop()}onRenderHTML(e){I(d("div",{style:{display:"flex",alignItems:"center",pointerEvents:"auto"},children:[d(L,{label:this.playing?"Pause":"Play",onClick:this.handlePlayPause,children:d("div",{className:"text",children:this.playing?"⏸":"▶"})}),d("input",{type:"range",className:"timeline-slider",min:this.props.timeRange[0],max:this.props.timeRange[1],step:this.props.step,value:this.currentTime,onInput:this.handleSliderChange})]}),e)}start(){this.playing=!0,this.updateHTML(),this.tick()}stop(){this.playing=!1,this.timerId!==null&&(window.clearTimeout(this.timerId),this.timerId=null),this.updateHTML()}}jt.defaultProps={...f.defaultProps,id:"timeline",placement:"bottom-left",viewId:null,timeRange:[0,100],step:1,initialTime:void 0,onTimeChange:()=>{},playInterval:1e3};class Xt extends f{constructor(e={}){super(e),this.className="deck-widget-screenshot",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){I(d(L,{className:"deck-widget-camera",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture){this.props.onCapture(this);return}const e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){return this.deck?.getCanvas()?.toDataURL(e)}downloadDataURL(e,i){const s=document.createElement("a");s.href=e,s.download=i,s.click()}}Xt.defaultProps={...f.defaultProps,id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0};const ci={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"#fff","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px"},di={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 1)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px"},Kt={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px"},Zt={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px"};class Yt extends f{constructor(e={}){super(e),this.className="deck-widget-theme",this.placement="top-left",this.themeMode="dark",this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}setProps(e){const{lightModeTheme:i,darkModeTheme:s}=this.props;switch(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e),this.themeMode){case"light":e.lightModeTheme&&!ve(e.lightModeTheme,i,1)&&this._setThemeMode("light");break;case"dark":e.darkModeTheme&&!ve(e.darkModeTheme,s,1)&&this._setThemeMode("dark");break;default:ee.warn(`Invalid theme mode ${this.themeMode}`)()}}onRenderHTML(e){const{lightModeLabel:i,darkModeLabel:s}=this.props;I(d(L,{onClick:this._handleClick.bind(this),label:this.themeMode==="dark"?s:i,className:this.themeMode==="dark"?"deck-widget-moon":"deck-widget-sun"}),e)}onAdd(){this._setThemeMode(this.themeMode)}_handleClick(){const e=this.themeMode==="dark"?"light":"dark";this._setThemeMode(e)}_setThemeMode(e){this.themeMode=e;const i=this.rootElement?.closest(".deck-widget-container");if(i){const s=e==="dark"?this.props.darkModeTheme:this.props.lightModeTheme;Qe(i,s);const o=this.themeMode==="dark"?this.props.darkModeLabel:this.props.lightModeLabel;ee.log(1,`Switched theme to ${o}`,s)(),this.updateHTML()}}_getInitialThemeMode(){const{initialThemeMode:e}=this.props;return e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e}}Yt.defaultProps={...f.defaultProps,id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTheme:Kt,darkModeLabel:"Dark Mode",darkModeTheme:Zt,initialThemeMode:"auto"};class Jt extends f{constructor(e={}){super(e),this.className="deck-widget-loading",this.placement="top-left",this.loading=!0,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){I(this.loading&&d(L,{className:"deck-widget-spinner",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}onRedraw({layers:e}){const i=e.some(s=>!s.isLoaded);i!==this.loading&&(this.loading=i,this.updateHTML())}handleClick(){}}Jt.defaultProps={...f.defaultProps,id:"loading",placement:"top-left",viewId:null,label:"Loading layer data"};class Qt extends f{constructor(e={}){super(e),this.className="deck-widget-fps",this.placement="top-left",this._lastFps=-1,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd({}){this._lastFps=this._getFps(),requestAnimationFrame(()=>this._animate())}onRenderHTML(e){const i=this._getFps();I(d(L,{children:d("div",{className:"text",children:["FPS",d("br",{}),i]})}),e)}_animate(){const e=this._getFps();this._lastFps!==e&&(this._lastFps=e,this.updateHTML()),requestAnimationFrame(()=>this._animate())}_getFps(){return Math.round(this.deck?.metrics.fps??0)}}Qt.defaultProps={...f.defaultProps,id:"fps",placement:"top-left",viewId:null};const ei="▶",ti="⬇",re=t=>`${t.name}: ${t.count}`;function Re(t){return t<1e3?`${t.toFixed(2)}ms`:`${(t/1e3).toFixed(2)}s`}function ii(t){return`${(t/1e6).toFixed(1)} MB`}const Oe={count:re,averageTime:t=>`${t.name}: ${Re(t.getAverageTime())}`,totalTime:t=>`${t.name}: ${Re(t.time)}`,fps:t=>`${t.name}: ${Math.round(t.getHz())}fps`,memory:t=>`${t.name}: ${ii(t.count)}`};class si extends f{constructor(e={}){super(e),this.className="deck-widget-stats",this.placement="top-left",this._counter=0,this.collapsed=!0,this._toggleCollapsed=()=>{this.collapsed=!this.collapsed,this.updateHTML()},this._formatters={...Oe},this._resetOnUpdate={...this.props.resetOnUpdate},this._stats=this.props.stats,this.setProps(e)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this._stats=this._getStats(),e.formatters)for(const i in e.formatters){const s=e.formatters[i];this._formatters[i]=typeof s=="string"?Oe[s]||re:s}e.resetOnUpdate&&(this._resetOnUpdate={...e.resetOnUpdate}),super.setProps(e)}onAdd(){this._stats=this._getStats(),this.updateHTML()}onRenderHTML(e){const i=this._stats,s=this.collapsed,o=this.props.title||i?.id||"Stats",n=[];!s&&i&&i.forEach(a=>{const l=this._getLines(a);this._resetOnUpdate&&this._resetOnUpdate[a.name]&&a.reset(),l.forEach((h,c)=>{n.push(d("div",{style:{whiteSpace:"pre"},children:h},`${a.name}-${c}`))})}),I(d("div",{className:"deck-widget-stats-container",style:{cursor:"default"},children:[d("div",{className:"deck-widget-stats-header",style:{cursor:"pointer",pointerEvents:"auto"},onClick:this._toggleCollapsed,children:[s?ei:ti," ",o]}),!s&&d("div",{className:"deck-widget-stats-content",children:n})]}),e)}onRedraw(){const e=Math.max(1,this.props.framesPerUpdate||1);this._counter++%e===0&&(this._stats=this._getStats(),this.updateHTML())}_getStats(){switch(this.props.type){case"deck":return this.deck?.stats;case"luma":return Array.from(et.stats.stats.values())[0];case"device":const i=this.deck?.device?.statsManager.stats.values();return i?Array.from(i)[0]:void 0;case"custom":return this.props.stats;default:throw new Error(`Unknown stats type: ${this.props.type}`)}}_getLines(e){return(this._formatters[e.name]||this._formatters[e.type||""]||re)(e).split(`
2
+ `)}}si.defaultProps={...f.defaultProps,type:"deck",placement:"top-left",viewId:null,stats:void 0,title:"Stats",framesPerUpdate:1,formatters:{},resetOnUpdate:{},id:"stats"};export{pt as CompassWidget,Zt as DarkGlassTheme,di as DarkTheme,Et as FullscreenWidget,ht as GimbalWidget,Kt as LightGlassTheme,ci as LightTheme,dt as ResetViewWidget,Xt as ScreenshotWidget,ct as ZoomWidget,Xe as _ButtonGroup,Bt as _ContextMenuWidget,fe as _CoordinatesGeocoder,Ct as _CurrentLocationGeocoder,bt as _DropdownMenu,Qt as _FpsWidget,$t as _GeocoderWidget,Tt as _GoogleGeocoder,oe as _GroupedIconButton,L as _IconButton,Wt as _IconMenu,Vt as _InfoWidget,Jt as _LoadingWidget,Pt as _MapboxGeocoder,St as _OpenCageGeocoder,ut as _ScaleWidget,Gt as _SimpleMenu,Rt as _SplitterWidget,si as _StatsWidget,Yt as _ThemeWidget,jt as _TimelineWidget,At as _ViewSelectorWidget};
3
+ //# sourceMappingURL=widgets.js.map