@deck.gl/jupyter-widget 9.2.0-beta.3 → 9.2.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +12 -10
- package/dist/index.js.map +3 -3
- package/package.json +13 -13
package/dist/index.js
CHANGED
|
@@ -503,7 +503,7 @@ uniform `+Ee+" "+Ce+" u_"+Ie+`;
|
|
|
503
503
|
`}),staticAttributes:T,staticUniforms:j}}var ar=Object.freeze({__proto__:null,prelude:rh,background:Jp,backgroundPattern:cA,circle:lA,clippingMask:Vf,heatmap:Em,heatmapTexture:Mm,collisionBox:Sm,collisionCircle:Xh,debug:Cm,fill:Im,fillOutline:jf,fillOutlinePattern:Hf,fillPattern:uA,fillExtrusion:R,fillExtrusionPattern:V,hillshadePrepare:$,hillshade:ee,line:he,lineGradient:fe,linePattern:xe,lineSDF:Ze,raster:Ge,symbolIcon:at,symbolSDF:Nt,symbolTextAndIcon:jt}),_n=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};function ct(d){for(var x=[],A=0;A<d.length;A++)if(d[A]!==null){var T=d[A].split(" ");x.push(T.pop())}return x}_n.prototype.bind=function(d,x,A,T,k,U,j,K){this.context=d;for(var oe=this.boundPaintVertexBuffers.length!==T.length,pe=0;!oe&&pe<T.length;pe++)this.boundPaintVertexBuffers[pe]!==T[pe]&&(oe=!0);d.extVertexArrayObject&&this.vao&&this.boundProgram===x&&this.boundLayoutVertexBuffer===A&&!oe&&this.boundIndexBuffer===k&&this.boundVertexOffset===U&&this.boundDynamicVertexBuffer===j&&this.boundDynamicVertexBuffer2===K?(d.bindVertexArrayOES.set(this.vao),j&&j.bind(),k&&k.dynamicDraw&&k.bind(),K&&K.bind()):this.freshBind(x,A,T,k,U,j,K)},_n.prototype.freshBind=function(d,x,A,T,k,U,j){var K,oe=d.numAttributes,pe=this.context,Ee=pe.gl;if(pe.extVertexArrayObject)this.vao&&this.destroy(),this.vao=pe.extVertexArrayObject.createVertexArrayOES(),pe.bindVertexArrayOES.set(this.vao),K=0,this.boundProgram=d,this.boundLayoutVertexBuffer=x,this.boundPaintVertexBuffers=A,this.boundIndexBuffer=T,this.boundVertexOffset=k,this.boundDynamicVertexBuffer=U,this.boundDynamicVertexBuffer2=j;else{K=pe.currentNumAttributes||0;for(var Ce=oe;Ce<K;Ce++)Ee.disableVertexAttribArray(Ce)}x.enableAttributes(Ee,d);for(var Ie=0,Ve=A;Ie<Ve.length;Ie+=1)Ve[Ie].enableAttributes(Ee,d);U&&U.enableAttributes(Ee,d),j&&j.enableAttributes(Ee,d),x.bind(),x.setVertexAttribPointers(Ee,d,k);for(var Fe=0,Ke=A;Fe<Ke.length;Fe+=1){var De=Ke[Fe];De.bind(),De.setVertexAttribPointers(Ee,d,k)}U&&(U.bind(),U.setVertexAttribPointers(Ee,d,k)),T&&T.bind(),j&&(j.bind(),j.setVertexAttribPointers(Ee,d,k)),pe.currentNumAttributes=oe},_n.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var Et=function(d,x,A,T,k,U){var j=d.gl;this.program=j.createProgram();for(var K=ct(A.staticAttributes),oe=T?T.getBinderAttributes():[],pe=K.concat(oe),Ee=A.staticUniforms?ct(A.staticUniforms):[],Ce=T?T.getBinderUniforms():[],Ie=[],Ve=0,Fe=Ee.concat(Ce);Ve<Fe.length;Ve+=1){var Ke=Fe[Ve];Ie.indexOf(Ke)<0&&Ie.push(Ke)}var De=T?T.defines():[];U&&De.push("#define OVERDRAW_INSPECTOR;");var $e=De.concat(rh.fragmentSource,A.fragmentSource).join(`
|
|
504
504
|
`),nt=De.concat(rh.vertexSource,A.vertexSource).join(`
|
|
505
505
|
`),ft=j.createShader(j.FRAGMENT_SHADER);if(j.isContextLost())this.failedToCreate=!0;else{j.shaderSource(ft,$e),j.compileShader(ft),j.attachShader(this.program,ft);var Mt=j.createShader(j.VERTEX_SHADER);if(j.isContextLost())this.failedToCreate=!0;else{j.shaderSource(Mt,nt),j.compileShader(Mt),j.attachShader(this.program,Mt),this.attributes={};var xt={};this.numAttributes=pe.length;for(var It=0;It<this.numAttributes;It++)pe[It]&&(j.bindAttribLocation(this.program,It,pe[It]),this.attributes[pe[It]]=It);j.linkProgram(this.program),j.deleteShader(Mt),j.deleteShader(ft);for(var qt=0;qt<Ie.length;qt++){var ir=Ie[qt];if(ir&&!xt[ir]){var tr=j.getUniformLocation(this.program,ir);tr&&(xt[ir]=tr)}}this.fixedUniforms=k(d,xt),this.binderUniforms=T?T.getUniforms(d,xt):[]}}};function sr(d,x,A){var T=1/so(A,1,x.transform.tileZoom),k=Math.pow(2,A.tileID.overscaledZ),U=A.tileSize*Math.pow(2,x.transform.tileZoom)/k,j=U*(A.tileID.canonical.x+A.tileID.wrap*k),K=U*A.tileID.canonical.y;return{u_image:0,u_texsize:A.imageAtlasTexture.size,u_scale:[T,d.fromScale,d.toScale],u_fade:d.t,u_pixel_coord_upper:[j>>16,K>>16],u_pixel_coord_lower:[65535&j,65535&K]}}Et.prototype.draw=function(d,x,A,T,k,U,j,K,oe,pe,Ee,Ce,Ie,Ve,Fe,Ke){var De,$e=d.gl;if(!this.failedToCreate){for(var nt in d.program.set(this.program),d.setDepthMode(A),d.setStencilMode(T),d.setColorMode(k),d.setCullFace(U),this.fixedUniforms)this.fixedUniforms[nt].set(j[nt]);Ve&&Ve.setUniforms(d,this.binderUniforms,Ce,{zoom:Ie});for(var ft=(De={},De[$e.LINES]=2,De[$e.TRIANGLES]=3,De[$e.LINE_STRIP]=1,De)[x],Mt=0,xt=Ee.get();Mt<xt.length;Mt+=1){var It=xt[Mt],qt=It.vaos||(It.vaos={});(qt[K]||(qt[K]=new _n)).bind(d,this,oe,Ve?Ve.getPaintVertexBuffers():[],pe,It.vertexOffset,Fe,Ke),$e.drawElements(x,It.primitiveLength*ft,$e.UNSIGNED_SHORT,It.primitiveOffset*ft*2)}}};var Yr=function(d,x,A,T){var k=x.style.light,U=k.properties.get("position"),j=[U.x,U.y,U.z],K=i.create$1();k.properties.get("anchor")==="viewport"&&i.fromRotation(K,-x.transform.angle),i.transformMat3(j,j,K);var oe=k.properties.get("color");return{u_matrix:d,u_lightpos:j,u_lightintensity:k.properties.get("intensity"),u_lightcolor:[oe.r,oe.g,oe.b],u_vertical_gradient:+A,u_opacity:T}},_=function(d,x,A,T,k,U,j){return i.extend(Yr(d,x,A,T),sr(U,x,j),{u_height_factor:-Math.pow(2,k.overscaledZ)/j.tileSize/8})},Un=function(d){return{u_matrix:d}},Xr=function(d,x,A,T){return i.extend(Un(d),sr(A,x,T))},Re=function(d,x){return{u_matrix:d,u_world:x}},En=function(d,x,A,T,k){return i.extend(Xr(d,x,A,T),{u_world:k})},di=function(d,x,A,T){var k,U,j=d.transform;if(T.paint.get("circle-pitch-alignment")==="map"){var K=so(A,1,j.zoom);k=!0,U=[K,K]}else k=!1,U=j.pixelsToGLUnits;return{u_camera_to_center_distance:j.cameraToCenterDistance,u_scale_with_map:+(T.paint.get("circle-pitch-scale")==="map"),u_matrix:d.translatePosMatrix(x.posMatrix,A,T.paint.get("circle-translate"),T.paint.get("circle-translate-anchor")),u_pitch_with_map:+k,u_device_pixel_ratio:i.browser.devicePixelRatio,u_extrude_scale:U}},Ji=function(d,x,A){var T=so(A,1,x.zoom),k=Math.pow(2,x.zoom-A.tileID.overscaledZ),U=A.tileID.overscaleFactor();return{u_matrix:d,u_camera_to_center_distance:x.cameraToCenterDistance,u_pixels_to_tile_units:T,u_extrude_scale:[x.pixelsToGLUnits[0]/(T*k),x.pixelsToGLUnits[1]/(T*k)],u_overscale_factor:U}},Ei=function(d,x,A){return{u_matrix:d,u_inv_matrix:x,u_camera_to_center_distance:A.cameraToCenterDistance,u_viewport_size:[A.width,A.height]}},ci=function(d,x,A){return A===void 0&&(A=1),{u_matrix:d,u_color:x,u_overlay:0,u_overlay_scale:A}},eo=function(d){return{u_matrix:d}},Xn=function(d,x,A,T){return{u_matrix:d,u_extrude_scale:so(x,1,A),u_intensity:T}},Yn=function(d,x,A){var T=d.transform;return{u_matrix:Jo(d,x,A),u_ratio:1/so(x,1,T.zoom),u_device_pixel_ratio:i.browser.devicePixelRatio,u_units_to_pixels:[1/T.pixelsToGLUnits[0],1/T.pixelsToGLUnits[1]]}},oi=function(d,x,A,T){return i.extend(Yn(d,x,A),{u_image:0,u_image_height:T})},ma=function(d,x,A,T){var k=d.transform,U=ea(x,k);return{u_matrix:Jo(d,x,A),u_texsize:x.imageAtlasTexture.size,u_ratio:1/so(x,1,k.zoom),u_device_pixel_ratio:i.browser.devicePixelRatio,u_image:0,u_scale:[U,T.fromScale,T.toScale],u_fade:T.t,u_units_to_pixels:[1/k.pixelsToGLUnits[0],1/k.pixelsToGLUnits[1]]}},ed=function(d,x,A,T,k){var U=d.lineAtlas,j=ea(x,d.transform),K=A.layout.get("line-cap")==="round",oe=U.getDash(T.from,K),pe=U.getDash(T.to,K),Ee=oe.width*k.fromScale,Ce=pe.width*k.toScale;return i.extend(Yn(d,x,A),{u_patternscale_a:[j/Ee,-oe.height/2],u_patternscale_b:[j/Ce,-pe.height/2],u_sdfgamma:U.width/(256*Math.min(Ee,Ce)*i.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:oe.y,u_tex_y_b:pe.y,u_mix:k.t})};function ea(d,x){return 1/so(d,1,x.tileZoom)}function Jo(d,x,A){return d.translatePosMatrix(x.tileID.posMatrix,x,A.paint.get("line-translate"),A.paint.get("line-translate-anchor"))}var nh=function(d,x,A,T,k){return{u_matrix:d,u_tl_parent:x,u_scale_parent:A,u_buffer_scale:1,u_fade_t:T.mix,u_opacity:T.opacity*k.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:k.paint.get("raster-brightness-min"),u_brightness_high:k.paint.get("raster-brightness-max"),u_saturation_factor:(j=k.paint.get("raster-saturation"),j>0?1-1/(1.001-j):-j),u_contrast_factor:(U=k.paint.get("raster-contrast"),U>0?1/(1-U):1+U),u_spin_weights:Nc(k.paint.get("raster-hue-rotate"))};var U,j};function Nc(d){d*=Math.PI/180;var x=Math.sin(d),A=Math.cos(d);return[(2*A+1)/3,(-Math.sqrt(3)*x-A+1)/3,(Math.sqrt(3)*x-A+1)/3]}var ih,Mi=function(d,x,A,T,k,U,j,K,oe,pe){var Ee=k.transform;return{u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:x?x.uSizeT:0,u_size:x?x.uSize:0,u_camera_to_center_distance:Ee.cameraToCenterDistance,u_pitch:Ee.pitch/360*2*Math.PI,u_rotate_symbol:+A,u_aspect_ratio:Ee.width/Ee.height,u_fade_change:k.options.fadeDuration?k.symbolFadeChange:1,u_matrix:U,u_label_plane_matrix:j,u_coord_matrix:K,u_is_text:+oe,u_pitch_with_map:+T,u_texsize:pe,u_texture:0}},Ba=function(d,x,A,T,k,U,j,K,oe,pe,Ee){var Ce=k.transform;return i.extend(Mi(d,x,A,T,k,U,j,K,oe,pe),{u_gamma_scale:T?Math.cos(Ce._pitch)*Ce.cameraToCenterDistance:1,u_device_pixel_ratio:i.browser.devicePixelRatio,u_is_halo:+Ee})},xn=function(d,x,A,T,k,U,j,K,oe,pe){return i.extend(Ba(d,x,A,T,k,U,j,K,!0,oe,!0),{u_texsize_icon:pe,u_texture_icon:1})},ke=function(d,x,A){return{u_matrix:d,u_opacity:x,u_color:A}},vn=function(d,x,A,T,k,U){return i.extend(function(j,K,oe,pe){var Ee=oe.imageManager.getPattern(j.from.toString()),Ce=oe.imageManager.getPattern(j.to.toString()),Ie=oe.imageManager.getPixelSize(),Ve=Ie.width,Fe=Ie.height,Ke=Math.pow(2,pe.tileID.overscaledZ),De=pe.tileSize*Math.pow(2,oe.transform.tileZoom)/Ke,$e=De*(pe.tileID.canonical.x+pe.tileID.wrap*Ke),nt=De*pe.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Ee.tl,u_pattern_br_a:Ee.br,u_pattern_tl_b:Ce.tl,u_pattern_br_b:Ce.br,u_texsize:[Ve,Fe],u_mix:K.t,u_pattern_size_a:Ee.displaySize,u_pattern_size_b:Ce.displaySize,u_scale_a:K.fromScale,u_scale_b:K.toScale,u_tile_units_to_pixels:1/so(pe,1,oe.transform.tileZoom),u_pixel_coord_upper:[$e>>16,nt>>16],u_pixel_coord_lower:[65535&$e,65535&nt]}}(T,U,A,k),{u_matrix:d,u_opacity:x})},td={fillExtrusion:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_lightpos:new i.Uniform3f(d,x.u_lightpos),u_lightintensity:new i.Uniform1f(d,x.u_lightintensity),u_lightcolor:new i.Uniform3f(d,x.u_lightcolor),u_vertical_gradient:new i.Uniform1f(d,x.u_vertical_gradient),u_opacity:new i.Uniform1f(d,x.u_opacity)}},fillExtrusionPattern:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_lightpos:new i.Uniform3f(d,x.u_lightpos),u_lightintensity:new i.Uniform1f(d,x.u_lightintensity),u_lightcolor:new i.Uniform3f(d,x.u_lightcolor),u_vertical_gradient:new i.Uniform1f(d,x.u_vertical_gradient),u_height_factor:new i.Uniform1f(d,x.u_height_factor),u_image:new i.Uniform1i(d,x.u_image),u_texsize:new i.Uniform2f(d,x.u_texsize),u_pixel_coord_upper:new i.Uniform2f(d,x.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(d,x.u_pixel_coord_lower),u_scale:new i.Uniform3f(d,x.u_scale),u_fade:new i.Uniform1f(d,x.u_fade),u_opacity:new i.Uniform1f(d,x.u_opacity)}},fill:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix)}},fillPattern:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_image:new i.Uniform1i(d,x.u_image),u_texsize:new i.Uniform2f(d,x.u_texsize),u_pixel_coord_upper:new i.Uniform2f(d,x.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(d,x.u_pixel_coord_lower),u_scale:new i.Uniform3f(d,x.u_scale),u_fade:new i.Uniform1f(d,x.u_fade)}},fillOutline:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_world:new i.Uniform2f(d,x.u_world)}},fillOutlinePattern:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_world:new i.Uniform2f(d,x.u_world),u_image:new i.Uniform1i(d,x.u_image),u_texsize:new i.Uniform2f(d,x.u_texsize),u_pixel_coord_upper:new i.Uniform2f(d,x.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(d,x.u_pixel_coord_lower),u_scale:new i.Uniform3f(d,x.u_scale),u_fade:new i.Uniform1f(d,x.u_fade)}},circle:function(d,x){return{u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_scale_with_map:new i.Uniform1i(d,x.u_scale_with_map),u_pitch_with_map:new i.Uniform1i(d,x.u_pitch_with_map),u_extrude_scale:new i.Uniform2f(d,x.u_extrude_scale),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_matrix:new i.UniformMatrix4f(d,x.u_matrix)}},collisionBox:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_pixels_to_tile_units:new i.Uniform1f(d,x.u_pixels_to_tile_units),u_extrude_scale:new i.Uniform2f(d,x.u_extrude_scale),u_overscale_factor:new i.Uniform1f(d,x.u_overscale_factor)}},collisionCircle:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_inv_matrix:new i.UniformMatrix4f(d,x.u_inv_matrix),u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_viewport_size:new i.Uniform2f(d,x.u_viewport_size)}},debug:function(d,x){return{u_color:new i.UniformColor(d,x.u_color),u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_overlay:new i.Uniform1i(d,x.u_overlay),u_overlay_scale:new i.Uniform1f(d,x.u_overlay_scale)}},clippingMask:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix)}},heatmap:function(d,x){return{u_extrude_scale:new i.Uniform1f(d,x.u_extrude_scale),u_intensity:new i.Uniform1f(d,x.u_intensity),u_matrix:new i.UniformMatrix4f(d,x.u_matrix)}},heatmapTexture:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_world:new i.Uniform2f(d,x.u_world),u_image:new i.Uniform1i(d,x.u_image),u_color_ramp:new i.Uniform1i(d,x.u_color_ramp),u_opacity:new i.Uniform1f(d,x.u_opacity)}},hillshade:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_image:new i.Uniform1i(d,x.u_image),u_latrange:new i.Uniform2f(d,x.u_latrange),u_light:new i.Uniform2f(d,x.u_light),u_shadow:new i.UniformColor(d,x.u_shadow),u_highlight:new i.UniformColor(d,x.u_highlight),u_accent:new i.UniformColor(d,x.u_accent)}},hillshadePrepare:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_image:new i.Uniform1i(d,x.u_image),u_dimension:new i.Uniform2f(d,x.u_dimension),u_zoom:new i.Uniform1f(d,x.u_zoom),u_unpack:new i.Uniform4f(d,x.u_unpack)}},line:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_ratio:new i.Uniform1f(d,x.u_ratio),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(d,x.u_units_to_pixels)}},lineGradient:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_ratio:new i.Uniform1f(d,x.u_ratio),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(d,x.u_units_to_pixels),u_image:new i.Uniform1i(d,x.u_image),u_image_height:new i.Uniform1f(d,x.u_image_height)}},linePattern:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_texsize:new i.Uniform2f(d,x.u_texsize),u_ratio:new i.Uniform1f(d,x.u_ratio),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_image:new i.Uniform1i(d,x.u_image),u_units_to_pixels:new i.Uniform2f(d,x.u_units_to_pixels),u_scale:new i.Uniform3f(d,x.u_scale),u_fade:new i.Uniform1f(d,x.u_fade)}},lineSDF:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_ratio:new i.Uniform1f(d,x.u_ratio),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(d,x.u_units_to_pixels),u_patternscale_a:new i.Uniform2f(d,x.u_patternscale_a),u_patternscale_b:new i.Uniform2f(d,x.u_patternscale_b),u_sdfgamma:new i.Uniform1f(d,x.u_sdfgamma),u_image:new i.Uniform1i(d,x.u_image),u_tex_y_a:new i.Uniform1f(d,x.u_tex_y_a),u_tex_y_b:new i.Uniform1f(d,x.u_tex_y_b),u_mix:new i.Uniform1f(d,x.u_mix)}},raster:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_tl_parent:new i.Uniform2f(d,x.u_tl_parent),u_scale_parent:new i.Uniform1f(d,x.u_scale_parent),u_buffer_scale:new i.Uniform1f(d,x.u_buffer_scale),u_fade_t:new i.Uniform1f(d,x.u_fade_t),u_opacity:new i.Uniform1f(d,x.u_opacity),u_image0:new i.Uniform1i(d,x.u_image0),u_image1:new i.Uniform1i(d,x.u_image1),u_brightness_low:new i.Uniform1f(d,x.u_brightness_low),u_brightness_high:new i.Uniform1f(d,x.u_brightness_high),u_saturation_factor:new i.Uniform1f(d,x.u_saturation_factor),u_contrast_factor:new i.Uniform1f(d,x.u_contrast_factor),u_spin_weights:new i.Uniform3f(d,x.u_spin_weights)}},symbolIcon:function(d,x){return{u_is_size_zoom_constant:new i.Uniform1i(d,x.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(d,x.u_is_size_feature_constant),u_size_t:new i.Uniform1f(d,x.u_size_t),u_size:new i.Uniform1f(d,x.u_size),u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_pitch:new i.Uniform1f(d,x.u_pitch),u_rotate_symbol:new i.Uniform1i(d,x.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(d,x.u_aspect_ratio),u_fade_change:new i.Uniform1f(d,x.u_fade_change),u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(d,x.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(d,x.u_coord_matrix),u_is_text:new i.Uniform1i(d,x.u_is_text),u_pitch_with_map:new i.Uniform1i(d,x.u_pitch_with_map),u_texsize:new i.Uniform2f(d,x.u_texsize),u_texture:new i.Uniform1i(d,x.u_texture)}},symbolSDF:function(d,x){return{u_is_size_zoom_constant:new i.Uniform1i(d,x.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(d,x.u_is_size_feature_constant),u_size_t:new i.Uniform1f(d,x.u_size_t),u_size:new i.Uniform1f(d,x.u_size),u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_pitch:new i.Uniform1f(d,x.u_pitch),u_rotate_symbol:new i.Uniform1i(d,x.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(d,x.u_aspect_ratio),u_fade_change:new i.Uniform1f(d,x.u_fade_change),u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(d,x.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(d,x.u_coord_matrix),u_is_text:new i.Uniform1i(d,x.u_is_text),u_pitch_with_map:new i.Uniform1i(d,x.u_pitch_with_map),u_texsize:new i.Uniform2f(d,x.u_texsize),u_texture:new i.Uniform1i(d,x.u_texture),u_gamma_scale:new i.Uniform1f(d,x.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(d,x.u_is_halo)}},symbolTextAndIcon:function(d,x){return{u_is_size_zoom_constant:new i.Uniform1i(d,x.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(d,x.u_is_size_feature_constant),u_size_t:new i.Uniform1f(d,x.u_size_t),u_size:new i.Uniform1f(d,x.u_size),u_camera_to_center_distance:new i.Uniform1f(d,x.u_camera_to_center_distance),u_pitch:new i.Uniform1f(d,x.u_pitch),u_rotate_symbol:new i.Uniform1i(d,x.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(d,x.u_aspect_ratio),u_fade_change:new i.Uniform1f(d,x.u_fade_change),u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(d,x.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(d,x.u_coord_matrix),u_is_text:new i.Uniform1i(d,x.u_is_text),u_pitch_with_map:new i.Uniform1i(d,x.u_pitch_with_map),u_texsize:new i.Uniform2f(d,x.u_texsize),u_texsize_icon:new i.Uniform2f(d,x.u_texsize_icon),u_texture:new i.Uniform1i(d,x.u_texture),u_texture_icon:new i.Uniform1i(d,x.u_texture_icon),u_gamma_scale:new i.Uniform1f(d,x.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(d,x.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(d,x.u_is_halo)}},background:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_opacity:new i.Uniform1f(d,x.u_opacity),u_color:new i.UniformColor(d,x.u_color)}},backgroundPattern:function(d,x){return{u_matrix:new i.UniformMatrix4f(d,x.u_matrix),u_opacity:new i.Uniform1f(d,x.u_opacity),u_image:new i.Uniform1i(d,x.u_image),u_pattern_tl_a:new i.Uniform2f(d,x.u_pattern_tl_a),u_pattern_br_a:new i.Uniform2f(d,x.u_pattern_br_a),u_pattern_tl_b:new i.Uniform2f(d,x.u_pattern_tl_b),u_pattern_br_b:new i.Uniform2f(d,x.u_pattern_br_b),u_texsize:new i.Uniform2f(d,x.u_texsize),u_mix:new i.Uniform1f(d,x.u_mix),u_pattern_size_a:new i.Uniform2f(d,x.u_pattern_size_a),u_pattern_size_b:new i.Uniform2f(d,x.u_pattern_size_b),u_scale_a:new i.Uniform1f(d,x.u_scale_a),u_scale_b:new i.Uniform1f(d,x.u_scale_b),u_pixel_coord_upper:new i.Uniform2f(d,x.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(d,x.u_pixel_coord_lower),u_tile_units_to_pixels:new i.Uniform1f(d,x.u_tile_units_to_pixels)}}};function Iu(d,x,A,T,k,U,j){for(var K=d.context,oe=K.gl,pe=d.useProgram("collisionBox"),Ee=[],Ce=0,Ie=0,Ve=0;Ve<T.length;Ve++){var Fe=T[Ve],Ke=x.getTile(Fe),De=Ke.getBucket(A);if(De){var $e=Fe.posMatrix;k[0]===0&&k[1]===0||($e=d.translatePosMatrix(Fe.posMatrix,Ke,k,U));var nt=j?De.textCollisionBox:De.iconCollisionBox,ft=De.collisionCircleArray;if(ft.length>0){var Mt=i.create(),xt=$e;i.mul(Mt,De.placementInvProjMatrix,d.transform.glCoordMatrix),i.mul(Mt,Mt,De.placementViewportMatrix),Ee.push({circleArray:ft,circleOffset:Ie,transform:xt,invTransform:Mt}),Ie=Ce+=ft.length/4}nt&&pe.draw(K,oe.LINES,Le.disabled,ve.disabled,d.colorModeForRenderPass(),tt.disabled,Ji($e,d.transform,Ke),A.id,nt.layoutVertexBuffer,nt.indexBuffer,nt.segments,null,d.transform.zoom,null,null,nt.collisionVertexBuffer)}}if(j&&Ee.length){var It=d.useProgram("collisionCircle"),qt=new i.StructArrayLayout2f1f2i16;qt.resize(4*Ce),qt._trim();for(var ir=0,tr=0,Cr=Ee;tr<Cr.length;tr+=1)for(var Jr=Cr[tr],on=0;on<Jr.circleArray.length/4;on++){var rn=4*on,fi=Jr.circleArray[rn+0],Lr=Jr.circleArray[rn+1],bn=Jr.circleArray[rn+2],wn=Jr.circleArray[rn+3];qt.emplace(ir++,fi,Lr,bn,wn,0),qt.emplace(ir++,fi,Lr,bn,wn,1),qt.emplace(ir++,fi,Lr,bn,wn,2),qt.emplace(ir++,fi,Lr,bn,wn,3)}(!ih||ih.length<2*Ce)&&(ih=function(Yi){var na=2*Yi,Ls=new i.StructArrayLayout3ui6;Ls.resize(na),Ls._trim();for(var ko=0;ko<na;ko++){var ts=6*ko;Ls.uint16[ts+0]=4*ko+0,Ls.uint16[ts+1]=4*ko+1,Ls.uint16[ts+2]=4*ko+2,Ls.uint16[ts+3]=4*ko+2,Ls.uint16[ts+4]=4*ko+3,Ls.uint16[ts+5]=4*ko+0}return Ls}(Ce));for(var mn=K.createIndexBuffer(ih,!0),An=K.createVertexBuffer(qt,i.collisionCircleLayout.members,!0),Ln=0,dn=Ee;Ln<dn.length;Ln+=1){var ln=dn[Ln],Rs=Ei(ln.transform,ln.invTransform,d.transform);It.draw(K,oe.TRIANGLES,Le.disabled,ve.disabled,d.colorModeForRenderPass(),tt.disabled,Rs,A.id,An,mn,i.SegmentVector.simpleSegment(0,2*ln.circleOffset,ln.circleArray.length,ln.circleArray.length/2),null,d.transform.zoom,null,null,null)}An.destroy(),mn.destroy()}}var zs=i.identity(new Float32Array(16));function Wf(d,x,A,T,k,U){var j=i.getAnchorAlignment(d),K=-(j.horizontalAlign-.5)*x,oe=-(j.verticalAlign-.5)*A,pe=i.evaluateVariableOffset(d,T);return new i.Point((K/k+pe[0])*U,(oe/k+pe[1])*U)}function Ml(d,x,A,T,k,U,j,K,oe,pe,Ee){var Ce=d.text.placedSymbolArray,Ie=d.text.dynamicLayoutVertexArray,Ve=d.icon.dynamicLayoutVertexArray,Fe={};Ie.clear();for(var Ke=0;Ke<Ce.length;Ke++){var De=Ce.get(Ke),$e=De.hidden||!De.crossTileID||d.allowVerticalPlacement&&!De.placedOrientation?null:T[De.crossTileID];if($e){var nt=new i.Point(De.anchorX,De.anchorY),ft=Gn(nt,A?K:j),Mt=_i(U.cameraToCenterDistance,ft.signedDistanceFromCamera),xt=k.evaluateSizeForFeature(d.textSizeData,pe,De)*Mt/i.ONE_EM;A&&(xt*=d.tilePixelRatio/oe);for(var It=Wf($e.anchor,$e.width,$e.height,$e.textOffset,$e.textBoxScale,xt),qt=A?Gn(nt.add(It),j).point:ft.point.add(x?It.rotate(-U.angle):It),ir=d.allowVerticalPlacement&&De.placedOrientation===i.WritingMode.vertical?Math.PI/2:0,tr=0;tr<De.numGlyphs;tr++)i.addDynamicAttributes(Ie,qt,ir);Ee&&De.associatedIconIndex>=0&&(Fe[De.associatedIconIndex]={shiftedAnchor:qt,angle:ir})}else pa(De.numGlyphs,Ie)}if(Ee){Ve.clear();for(var Cr=d.icon.placedSymbolArray,Jr=0;Jr<Cr.length;Jr++){var on=Cr.get(Jr);if(on.hidden)pa(on.numGlyphs,Ve);else{var rn=Fe[Jr];if(rn)for(var fi=0;fi<on.numGlyphs;fi++)i.addDynamicAttributes(Ve,rn.shiftedAnchor,rn.angle);else pa(on.numGlyphs,Ve)}}d.icon.dynamicLayoutVertexBuffer.updateData(Ve)}d.text.dynamicLayoutVertexBuffer.updateData(Ie)}function Pe(d,x,A){return A.iconsInText&&x?"symbolTextAndIcon":d?"symbolSDF":"symbolIcon"}function Fc(d,x,A,T,k,U,j,K,oe,pe,Ee,Ce){for(var Ie=d.context,Ve=Ie.gl,Fe=d.transform,Ke=K==="map",De=oe==="map",$e=Ke&&A.layout.get("symbol-placement")!=="point",nt=Ke&&!De&&!$e,ft=A.layout.get("symbol-sort-key").constantOr(1)!==void 0,Mt=!1,xt=d.depthModeForSublayer(0,Le.ReadOnly),It=A.layout.get("text-variable-anchor"),qt=[],ir=0,tr=T;ir<tr.length;ir+=1){var Cr=tr[ir],Jr=x.getTile(Cr),on=Jr.getBucket(A);if(on){var rn=k?on.text:on.icon;if(rn&&rn.segments.get().length){var fi=rn.programConfigurations.get(A.id),Lr=k||on.sdfIcons,bn=k?on.textSizeData:on.iconSizeData,wn=De||Fe.pitch!==0,mn=d.useProgram(Pe(Lr,k,on),fi),An=i.evaluateSizeForZoom(bn,Fe.zoom),Ln=void 0,dn=[0,0],ln=void 0,Rs=void 0,Yi=null,na=void 0;if(k)ln=Jr.glyphAtlasTexture,Rs=Ve.LINEAR,Ln=Jr.glyphAtlasTexture.size,on.iconsInText&&(dn=Jr.imageAtlasTexture.size,Yi=Jr.imageAtlasTexture,na=wn||d.options.rotating||d.options.zooming||bn.kind==="composite"||bn.kind==="camera"?Ve.LINEAR:Ve.NEAREST);else{var Ls=A.layout.get("icon-size").constantOr(0)!==1||on.iconsNeedLinear;ln=Jr.imageAtlasTexture,Rs=Lr||d.options.rotating||d.options.zooming||Ls||wn?Ve.LINEAR:Ve.NEAREST,Ln=Jr.imageAtlasTexture.size}var ko=so(Jr,1,d.transform.zoom),ts=Oo(Cr.posMatrix,De,Ke,d.transform,ko),Ac=zi(Cr.posMatrix,De,Ke,d.transform,ko),Da=It&&on.hasTextData(),fh=A.layout.get("icon-text-fit")!=="none"&&Da&&on.hasIconData();$e&&Wh(on,Cr.posMatrix,d,k,ts,Ac,De,pe);var Ja=d.translatePosMatrix(Cr.posMatrix,Jr,U,j),Cl=$e||k&&It||fh?zs:ts,il=d.translatePosMatrix(Ac,Jr,U,j,!0),cd=Lr&&A.paint.get(k?"text-halo-width":"icon-halo-width").constantOr(1)!==0,Jf={program:mn,buffers:rn,uniformValues:Lr?on.iconsInText?xn(bn.kind,An,nt,De,d,Ja,Cl,il,Ln,dn):Ba(bn.kind,An,nt,De,d,Ja,Cl,il,k,Ln,!0):Mi(bn.kind,An,nt,De,d,Ja,Cl,il,k,Ln),atlasTexture:ln,atlasTextureIcon:Yi,atlasInterpolation:Rs,atlasInterpolationIcon:na,isSDF:Lr,hasHalo:cd};if(ft&&on.canOverlap){Mt=!0;for(var ph=0,tf=rn.segments.get();ph<tf.length;ph+=1){var ep=tf[ph];qt.push({segments:new i.SegmentVector([ep]),sortKey:ep.sortKey,state:Jf})}}else qt.push({segments:rn.segments,sortKey:0,state:Jf})}}}Mt&&qt.sort(function(dh,rf){return dh.sortKey-rf.sortKey});for(var ao=0,ld=qt;ao<ld.length;ao+=1){var ru=ld[ao],Go=ru.state;if(Ie.activeTexture.set(Ve.TEXTURE0),Go.atlasTexture.bind(Go.atlasInterpolation,Ve.CLAMP_TO_EDGE),Go.atlasTextureIcon&&(Ie.activeTexture.set(Ve.TEXTURE1),Go.atlasTextureIcon&&Go.atlasTextureIcon.bind(Go.atlasInterpolationIcon,Ve.CLAMP_TO_EDGE)),Go.isSDF){var Os=Go.uniformValues;Go.hasHalo&&(Os.u_is_halo=1,Zl(Go.buffers,ru.segments,A,d,Go.program,xt,Ee,Ce,Os)),Os.u_is_halo=0}Zl(Go.buffers,ru.segments,A,d,Go.program,xt,Ee,Ce,Go.uniformValues)}}function Zl(d,x,A,T,k,U,j,K,oe){var pe=T.context;k.draw(pe,pe.gl.TRIANGLES,U,j,K,tt.disabled,oe,A.id,d.layoutVertexBuffer,d.indexBuffer,x,A.paint,T.transform.zoom,d.programConfigurations.get(A.id),d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer)}function Pu(d,x,A,T,k,U,j){var K,oe,pe,Ee,Ce,Ie=d.context.gl,Ve=A.paint.get("fill-pattern"),Fe=Ve&&Ve.constantOr(1),Ke=A.getCrossfadeParameters();j?(oe=Fe&&!A.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",K=Ie.LINES):(oe=Fe?"fillPattern":"fill",K=Ie.TRIANGLES);for(var De=0,$e=T;De<$e.length;De+=1){var nt=$e[De],ft=x.getTile(nt);if(!Fe||ft.patternsLoaded()){var Mt=ft.getBucket(A);if(Mt){var xt=Mt.programConfigurations.get(A.id),It=d.useProgram(oe,xt);Fe&&(d.context.activeTexture.set(Ie.TEXTURE0),ft.imageAtlasTexture.bind(Ie.LINEAR,Ie.CLAMP_TO_EDGE),xt.updatePaintBuffers(Ke));var qt=Ve.constantOr(null);if(qt&&ft.imageAtlas){var ir=ft.imageAtlas,tr=ir.patternPositions[qt.to.toString()],Cr=ir.patternPositions[qt.from.toString()];tr&&Cr&&xt.setConstantPatternPositions(tr,Cr)}var Jr=d.translatePosMatrix(nt.posMatrix,ft,A.paint.get("fill-translate"),A.paint.get("fill-translate-anchor"));if(j){Ee=Mt.indexBuffer2,Ce=Mt.segments2;var on=[Ie.drawingBufferWidth,Ie.drawingBufferHeight];pe=oe==="fillOutlinePattern"&&Fe?En(Jr,d,Ke,ft,on):Re(Jr,on)}else Ee=Mt.indexBuffer,Ce=Mt.segments,pe=Fe?Xr(Jr,d,Ke,ft):Un(Jr);It.draw(d.context,K,k,d.stencilModeForClipping(nt),U,tt.disabled,pe,A.id,Mt.layoutVertexBuffer,Ee,Ce,A.paint,d.transform.zoom,xt)}}}}function Yh(d,x,A,T,k,U,j){for(var K=d.context,oe=K.gl,pe=A.paint.get("fill-extrusion-pattern"),Ee=pe.constantOr(1),Ce=A.getCrossfadeParameters(),Ie=A.paint.get("fill-extrusion-opacity"),Ve=0,Fe=T;Ve<Fe.length;Ve+=1){var Ke=Fe[Ve],De=x.getTile(Ke),$e=De.getBucket(A);if($e){var nt=$e.programConfigurations.get(A.id),ft=d.useProgram(Ee?"fillExtrusionPattern":"fillExtrusion",nt);Ee&&(d.context.activeTexture.set(oe.TEXTURE0),De.imageAtlasTexture.bind(oe.LINEAR,oe.CLAMP_TO_EDGE),nt.updatePaintBuffers(Ce));var Mt=pe.constantOr(null);if(Mt&&De.imageAtlas){var xt=De.imageAtlas,It=xt.patternPositions[Mt.to.toString()],qt=xt.patternPositions[Mt.from.toString()];It&&qt&&nt.setConstantPatternPositions(It,qt)}var ir=d.translatePosMatrix(Ke.posMatrix,De,A.paint.get("fill-extrusion-translate"),A.paint.get("fill-extrusion-translate-anchor")),tr=A.paint.get("fill-extrusion-vertical-gradient"),Cr=Ee?_(ir,d,tr,Ie,Ke,Ce,De):Yr(ir,d,tr,Ie);ft.draw(K,K.gl.TRIANGLES,k,U,j,tt.backCCW,Cr,A.id,$e.layoutVertexBuffer,$e.indexBuffer,$e.segments,A.paint,d.transform.zoom,nt)}}}function qf(d,x,A,T,k,U){var j=d.context,K=j.gl,oe=x.fbo;if(oe){var pe=d.useProgram("hillshade");j.activeTexture.set(K.TEXTURE0),K.bindTexture(K.TEXTURE_2D,oe.colorAttachment.get());var Ee=function(Ce,Ie,Ve){var Fe=Ve.paint.get("hillshade-shadow-color"),Ke=Ve.paint.get("hillshade-highlight-color"),De=Ve.paint.get("hillshade-accent-color"),$e=Ve.paint.get("hillshade-illumination-direction")*(Math.PI/180);Ve.paint.get("hillshade-illumination-anchor")==="viewport"&&($e-=Ce.transform.angle);var nt,ft,Mt,xt=!Ce.options.moving;return{u_matrix:Ce.transform.calculatePosMatrix(Ie.tileID.toUnwrapped(),xt),u_image:0,u_latrange:(nt=Ie.tileID,ft=Math.pow(2,nt.canonical.z),Mt=nt.canonical.y,[new i.MercatorCoordinate(0,Mt/ft).toLngLat().lat,new i.MercatorCoordinate(0,(Mt+1)/ft).toLngLat().lat]),u_light:[Ve.paint.get("hillshade-exaggeration"),$e],u_shadow:Fe,u_highlight:Ke,u_accent:De}}(d,x,A);pe.draw(j,K.TRIANGLES,T,k,U,tt.disabled,Ee,A.id,d.rasterBoundsBuffer,d.quadTriangleIndexBuffer,d.rasterBoundsSegments)}}function Gf(d,x,A,T,k,U){var j=d.context,K=j.gl,oe=x.dem;if(oe&&oe.data){var pe=oe.dim,Ee=oe.stride,Ce=oe.getPixels();if(j.activeTexture.set(K.TEXTURE1),j.pixelStoreUnpackPremultiplyAlpha.set(!1),x.demTexture=x.demTexture||d.getTileTexture(Ee),x.demTexture){var Ie=x.demTexture;Ie.update(Ce,{premultiply:!1}),Ie.bind(K.NEAREST,K.CLAMP_TO_EDGE)}else x.demTexture=new i.Texture(j,Ce,K.RGBA,{premultiply:!1}),x.demTexture.bind(K.NEAREST,K.CLAMP_TO_EDGE);j.activeTexture.set(K.TEXTURE0);var Ve=x.fbo;if(!Ve){var Fe=new i.Texture(j,{width:pe,height:pe,data:null},K.RGBA);Fe.bind(K.LINEAR,K.CLAMP_TO_EDGE),(Ve=x.fbo=j.createFramebuffer(pe,pe,!0)).colorAttachment.set(Fe.texture)}j.bindFramebuffer.set(Ve.framebuffer),j.viewport.set([0,0,pe,pe]),d.useProgram("hillshadePrepare").draw(j,K.TRIANGLES,T,k,U,tt.disabled,function(Ke,De){var $e=De.stride,nt=i.create();return i.ortho(nt,0,i.EXTENT,-i.EXTENT,0,0,1),i.translate(nt,nt,[0,-i.EXTENT,0]),{u_matrix:nt,u_image:1,u_dimension:[$e,$e],u_zoom:Ke.overscaledZ,u_unpack:De.getUnpackVector()}}(x.tileID,oe),A.id,d.rasterBoundsBuffer,d.quadTriangleIndexBuffer,d.rasterBoundsSegments),x.needsHillshadePrepare=!1}}function Ru(d,x,A,T,k){var U=T.paint.get("raster-fade-duration");if(U>0){var j=i.browser.now(),K=(j-d.timeAdded)/U,oe=x?(j-x.timeAdded)/U:-1,pe=A.getSource(),Ee=k.coveringZoomLevel({tileSize:pe.tileSize,roundZoom:pe.roundZoom}),Ce=!x||Math.abs(x.tileID.overscaledZ-Ee)>Math.abs(d.tileID.overscaledZ-Ee),Ie=Ce&&d.refreshedUponExpiration?1:i.clamp(Ce?K:1-oe,0,1);return d.refreshedUponExpiration&&K>=1&&(d.refreshedUponExpiration=!1),x?{opacity:1,mix:1-Ie}:{opacity:Ie,mix:0}}return{opacity:1,mix:0}}var oh=new i.Color(1,0,0,1),rd=new i.Color(0,1,0,1),hc=new i.Color(0,0,1,1),qo=new i.Color(1,0,1,1),ze=new i.Color(0,1,1,1);function ot(d,x,A,T){Ot(d,0,x+A/2,d.transform.width,A,T)}function wt(d,x,A,T){Ot(d,x-A/2,0,A,d.transform.height,T)}function Ot(d,x,A,T,k,U){var j=d.context,K=j.gl;K.enable(K.SCISSOR_TEST),K.scissor(x*i.browser.devicePixelRatio,A*i.browser.devicePixelRatio,T*i.browser.devicePixelRatio,k*i.browser.devicePixelRatio),j.clear({color:U}),K.disable(K.SCISSOR_TEST)}function Ht(d,x,A){var T=d.context,k=T.gl,U=A.posMatrix,j=d.useProgram("debug"),K=Le.disabled,oe=ve.disabled,pe=d.colorModeForRenderPass();T.activeTexture.set(k.TEXTURE0),d.emptyTexture.bind(k.LINEAR,k.CLAMP_TO_EDGE),j.draw(T,k.LINE_STRIP,K,oe,pe,tt.disabled,ci(U,i.Color.red),"$debug",d.debugBuffer,d.tileBorderIndexBuffer,d.debugSegments);var Ee=x.getTileByID(A.key).latestRawTileData,Ce=Math.floor((Ee&&Ee.byteLength||0)/1024),Ie=x.getTile(A).tileSize,Ve=512/Math.min(Ie,512)*(A.overscaledZ/d.transform.zoom)*.5,Fe=A.canonical.toString();A.overscaledZ!==A.canonical.z&&(Fe+=" => "+A.overscaledZ),function(Ke,De){Ke.initDebugOverlayCanvas();var $e=Ke.debugOverlayCanvas,nt=Ke.context.gl,ft=Ke.debugOverlayCanvas.getContext("2d");ft.clearRect(0,0,$e.width,$e.height),ft.shadowColor="white",ft.shadowBlur=2,ft.lineWidth=1.5,ft.strokeStyle="white",ft.textBaseline="top",ft.font="bold 36px Open Sans, sans-serif",ft.fillText(De,5,5),ft.strokeText(De,5,5),Ke.debugOverlayTexture.update($e),Ke.debugOverlayTexture.bind(nt.LINEAR,nt.CLAMP_TO_EDGE)}(d,Fe+" "+Ce+"kb"),j.draw(T,k.TRIANGLES,K,oe,et.alphaBlended,tt.disabled,ci(U,i.Color.transparent,Ve),"$debug",d.debugBuffer,d.quadTriangleIndexBuffer,d.debugSegments)}var gr={symbol:function(d,x,A,T,k){if(d.renderPass==="translucent"){var U=ve.disabled,j=d.colorModeForRenderPass();A.layout.get("text-variable-anchor")&&function(K,oe,pe,Ee,Ce,Ie,Ve){for(var Fe=oe.transform,Ke=Ce==="map",De=Ie==="map",$e=0,nt=K;$e<nt.length;$e+=1){var ft=nt[$e],Mt=Ee.getTile(ft),xt=Mt.getBucket(pe);if(xt&&xt.text&&xt.text.segments.get().length){var It=i.evaluateSizeForZoom(xt.textSizeData,Fe.zoom),qt=so(Mt,1,oe.transform.zoom),ir=Oo(ft.posMatrix,De,Ke,oe.transform,qt),tr=pe.layout.get("icon-text-fit")!=="none"&&xt.hasIconData();if(It){var Cr=Math.pow(2,Fe.zoom-Mt.tileID.overscaledZ);Ml(xt,Ke,De,Ve,i.symbolSize,Fe,ir,ft.posMatrix,Cr,It,tr)}}}}(T,d,A,x,A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),k),A.paint.get("icon-opacity").constantOr(1)!==0&&Fc(d,x,A,T,!1,A.paint.get("icon-translate"),A.paint.get("icon-translate-anchor"),A.layout.get("icon-rotation-alignment"),A.layout.get("icon-pitch-alignment"),A.layout.get("icon-keep-upright"),U,j),A.paint.get("text-opacity").constantOr(1)!==0&&Fc(d,x,A,T,!0,A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),A.layout.get("text-keep-upright"),U,j),x.map.showCollisionBoxes&&(Iu(d,x,A,T,A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),!0),Iu(d,x,A,T,A.paint.get("icon-translate"),A.paint.get("icon-translate-anchor"),!1))}},circle:function(d,x,A,T){if(d.renderPass==="translucent"){var k=A.paint.get("circle-opacity"),U=A.paint.get("circle-stroke-width"),j=A.paint.get("circle-stroke-opacity"),K=A.layout.get("circle-sort-key").constantOr(1)!==void 0;if(k.constantOr(1)!==0||U.constantOr(1)!==0&&j.constantOr(1)!==0){for(var oe=d.context,pe=oe.gl,Ee=d.depthModeForSublayer(0,Le.ReadOnly),Ce=ve.disabled,Ie=d.colorModeForRenderPass(),Ve=[],Fe=0;Fe<T.length;Fe++){var Ke=T[Fe],De=x.getTile(Ke),$e=De.getBucket(A);if($e){var nt=$e.programConfigurations.get(A.id),ft={programConfiguration:nt,program:d.useProgram("circle",nt),layoutVertexBuffer:$e.layoutVertexBuffer,indexBuffer:$e.indexBuffer,uniformValues:di(d,Ke,De,A)};if(K)for(var Mt=0,xt=$e.segments.get();Mt<xt.length;Mt+=1){var It=xt[Mt];Ve.push({segments:new i.SegmentVector([It]),sortKey:It.sortKey,state:ft})}else Ve.push({segments:$e.segments,sortKey:0,state:ft})}}K&&Ve.sort(function(Jr,on){return Jr.sortKey-on.sortKey});for(var qt=0,ir=Ve;qt<ir.length;qt+=1){var tr=ir[qt],Cr=tr.state;Cr.program.draw(oe,pe.TRIANGLES,Ee,Ce,Ie,tt.disabled,Cr.uniformValues,A.id,Cr.layoutVertexBuffer,Cr.indexBuffer,tr.segments,A.paint,d.transform.zoom,Cr.programConfiguration)}}}},heatmap:function(d,x,A,T){if(A.paint.get("heatmap-opacity")!==0)if(d.renderPass==="offscreen"){var k=d.context,U=k.gl,j=ve.disabled,K=new et([U.ONE,U.ONE],i.Color.transparent,[!0,!0,!0,!0]);(function(Ve,Fe,Ke){var De=Ve.gl;Ve.activeTexture.set(De.TEXTURE1),Ve.viewport.set([0,0,Fe.width/4,Fe.height/4]);var $e=Ke.heatmapFbo;if($e)De.bindTexture(De.TEXTURE_2D,$e.colorAttachment.get()),Ve.bindFramebuffer.set($e.framebuffer);else{var nt=De.createTexture();De.bindTexture(De.TEXTURE_2D,nt),De.texParameteri(De.TEXTURE_2D,De.TEXTURE_WRAP_S,De.CLAMP_TO_EDGE),De.texParameteri(De.TEXTURE_2D,De.TEXTURE_WRAP_T,De.CLAMP_TO_EDGE),De.texParameteri(De.TEXTURE_2D,De.TEXTURE_MIN_FILTER,De.LINEAR),De.texParameteri(De.TEXTURE_2D,De.TEXTURE_MAG_FILTER,De.LINEAR),$e=Ke.heatmapFbo=Ve.createFramebuffer(Fe.width/4,Fe.height/4,!1),function(ft,Mt,xt,It){var qt=ft.gl;qt.texImage2D(qt.TEXTURE_2D,0,qt.RGBA,Mt.width/4,Mt.height/4,0,qt.RGBA,ft.extRenderToTextureHalfFloat?ft.extTextureHalfFloat.HALF_FLOAT_OES:qt.UNSIGNED_BYTE,null),It.colorAttachment.set(xt)}(Ve,Fe,nt,$e)}})(k,d,A),k.clear({color:i.Color.transparent});for(var oe=0;oe<T.length;oe++){var pe=T[oe];if(!x.hasRenderableParent(pe)){var Ee=x.getTile(pe),Ce=Ee.getBucket(A);if(Ce){var Ie=Ce.programConfigurations.get(A.id);d.useProgram("heatmap",Ie).draw(k,U.TRIANGLES,Le.disabled,j,K,tt.disabled,Xn(pe.posMatrix,Ee,d.transform.zoom,A.paint.get("heatmap-intensity")),A.id,Ce.layoutVertexBuffer,Ce.indexBuffer,Ce.segments,A.paint,d.transform.zoom,Ie)}}}k.viewport.set([0,0,d.width,d.height])}else d.renderPass==="translucent"&&(d.context.setColorMode(d.colorModeForRenderPass()),function(Ve,Fe){var Ke=Ve.context,De=Ke.gl,$e=Fe.heatmapFbo;if($e){Ke.activeTexture.set(De.TEXTURE0),De.bindTexture(De.TEXTURE_2D,$e.colorAttachment.get()),Ke.activeTexture.set(De.TEXTURE1);var nt=Fe.colorRampTexture;nt||(nt=Fe.colorRampTexture=new i.Texture(Ke,Fe.colorRamp,De.RGBA)),nt.bind(De.LINEAR,De.CLAMP_TO_EDGE),Ve.useProgram("heatmapTexture").draw(Ke,De.TRIANGLES,Le.disabled,ve.disabled,Ve.colorModeForRenderPass(),tt.disabled,function(ft,Mt,xt,It){var qt=i.create();i.ortho(qt,0,ft.width,ft.height,0,0,1);var ir=ft.context.gl;return{u_matrix:qt,u_world:[ir.drawingBufferWidth,ir.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:Mt.paint.get("heatmap-opacity")}}(Ve,Fe),Fe.id,Ve.viewportBuffer,Ve.quadTriangleIndexBuffer,Ve.viewportSegments,Fe.paint,Ve.transform.zoom)}}(d,A))},line:function(d,x,A,T){if(d.renderPass==="translucent"){var k=A.paint.get("line-opacity"),U=A.paint.get("line-width");if(k.constantOr(1)!==0&&U.constantOr(1)!==0)for(var j=d.depthModeForSublayer(0,Le.ReadOnly),K=d.colorModeForRenderPass(),oe=A.paint.get("line-dasharray"),pe=A.paint.get("line-pattern"),Ee=pe.constantOr(1),Ce=A.paint.get("line-gradient"),Ie=A.getCrossfadeParameters(),Ve=Ee?"linePattern":oe?"lineSDF":Ce?"lineGradient":"line",Fe=d.context,Ke=Fe.gl,De=!0,$e=0,nt=T;$e<nt.length;$e+=1){var ft=nt[$e],Mt=x.getTile(ft);if(!Ee||Mt.patternsLoaded()){var xt=Mt.getBucket(A);if(xt){var It=xt.programConfigurations.get(A.id),qt=d.context.program.get(),ir=d.useProgram(Ve,It),tr=De||ir.program!==qt,Cr=pe.constantOr(null);if(Cr&&Mt.imageAtlas){var Jr=Mt.imageAtlas,on=Jr.patternPositions[Cr.to.toString()],rn=Jr.patternPositions[Cr.from.toString()];on&&rn&&It.setConstantPatternPositions(on,rn)}var fi=Ee?ma(d,Mt,A,Ie):oe?ed(d,Mt,A,oe,Ie):Ce?oi(d,Mt,A,xt.lineClipsArray.length):Yn(d,Mt,A);if(Ee)Fe.activeTexture.set(Ke.TEXTURE0),Mt.imageAtlasTexture.bind(Ke.LINEAR,Ke.CLAMP_TO_EDGE),It.updatePaintBuffers(Ie);else if(oe&&(tr||d.lineAtlas.dirty))Fe.activeTexture.set(Ke.TEXTURE0),d.lineAtlas.bind(Fe);else if(Ce){var Lr=xt.gradients[A.id],bn=Lr.texture;if(A.gradientVersion!==Lr.version){var wn=256;if(A.stepInterpolant){var mn=x.getSource().maxzoom,An=ft.canonical.z===mn?Math.ceil(1<<d.transform.maxZoom-ft.canonical.z):1;wn=i.clamp(i.nextPowerOfTwo(xt.maxLineLength/i.EXTENT*1024*An),256,Fe.maxTextureSize)}Lr.gradient=i.renderColorRamp({expression:A.gradientExpression(),evaluationKey:"lineProgress",resolution:wn,image:Lr.gradient||void 0,clips:xt.lineClipsArray}),Lr.texture?Lr.texture.update(Lr.gradient):Lr.texture=new i.Texture(Fe,Lr.gradient,Ke.RGBA),Lr.version=A.gradientVersion,bn=Lr.texture}Fe.activeTexture.set(Ke.TEXTURE0),bn.bind(A.stepInterpolant?Ke.NEAREST:Ke.LINEAR,Ke.CLAMP_TO_EDGE)}ir.draw(Fe,Ke.TRIANGLES,j,d.stencilModeForClipping(ft),K,tt.disabled,fi,A.id,xt.layoutVertexBuffer,xt.indexBuffer,xt.segments,A.paint,d.transform.zoom,It,xt.layoutVertexBuffer2),De=!1}}}}},fill:function(d,x,A,T){var k=A.paint.get("fill-color"),U=A.paint.get("fill-opacity");if(U.constantOr(1)!==0){var j=d.colorModeForRenderPass(),K=A.paint.get("fill-pattern"),oe=d.opaquePassEnabledForLayer()&&!K.constantOr(1)&&k.constantOr(i.Color.transparent).a===1&&U.constantOr(0)===1?"opaque":"translucent";if(d.renderPass===oe){var pe=d.depthModeForSublayer(1,d.renderPass==="opaque"?Le.ReadWrite:Le.ReadOnly);Pu(d,x,A,T,pe,j,!1)}if(d.renderPass==="translucent"&&A.paint.get("fill-antialias")){var Ee=d.depthModeForSublayer(A.getPaintProperty("fill-outline-color")?2:0,Le.ReadOnly);Pu(d,x,A,T,Ee,j,!0)}}},"fill-extrusion":function(d,x,A,T){var k=A.paint.get("fill-extrusion-opacity");if(k!==0&&d.renderPass==="translucent"){var U=new Le(d.context.gl.LEQUAL,Le.ReadWrite,d.depthRangeFor3D);if(k!==1||A.paint.get("fill-extrusion-pattern").constantOr(1))Yh(d,x,A,T,U,ve.disabled,et.disabled),Yh(d,x,A,T,U,d.stencilModeFor3D(),d.colorModeForRenderPass());else{var j=d.colorModeForRenderPass();Yh(d,x,A,T,U,ve.disabled,j)}}},hillshade:function(d,x,A,T){if(d.renderPass==="offscreen"||d.renderPass==="translucent"){for(var k=d.context,U=d.depthModeForSublayer(0,Le.ReadOnly),j=d.colorModeForRenderPass(),K=d.renderPass==="translucent"?d.stencilConfigForOverlap(T):[{},T],oe=K[0],pe=0,Ee=K[1];pe<Ee.length;pe+=1){var Ce=Ee[pe],Ie=x.getTile(Ce);Ie.needsHillshadePrepare&&d.renderPass==="offscreen"?Gf(d,Ie,A,U,ve.disabled,j):d.renderPass==="translucent"&&qf(d,Ie,A,U,oe[Ce.overscaledZ],j)}k.viewport.set([0,0,d.width,d.height])}},raster:function(d,x,A,T){if(d.renderPass==="translucent"&&A.paint.get("raster-opacity")!==0&&T.length)for(var k=d.context,U=k.gl,j=x.getSource(),K=d.useProgram("raster"),oe=d.colorModeForRenderPass(),pe=j instanceof tn?[{},T]:d.stencilConfigForOverlap(T),Ee=pe[0],Ce=pe[1],Ie=Ce[Ce.length-1].overscaledZ,Ve=!d.options.moving,Fe=0,Ke=Ce;Fe<Ke.length;Fe+=1){var De=Ke[Fe],$e=d.depthModeForSublayer(De.overscaledZ-Ie,A.paint.get("raster-opacity")===1?Le.ReadWrite:Le.ReadOnly,U.LESS),nt=x.getTile(De),ft=d.transform.calculatePosMatrix(De.toUnwrapped(),Ve);nt.registerFadeDuration(A.paint.get("raster-fade-duration"));var Mt=x.findLoadedParent(De,0),xt=Ru(nt,Mt,x,A,d.transform),It=void 0,qt=void 0,ir=A.paint.get("raster-resampling")==="nearest"?U.NEAREST:U.LINEAR;k.activeTexture.set(U.TEXTURE0),nt.texture.bind(ir,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST),k.activeTexture.set(U.TEXTURE1),Mt?(Mt.texture.bind(ir,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST),It=Math.pow(2,Mt.tileID.overscaledZ-nt.tileID.overscaledZ),qt=[nt.tileID.canonical.x*It%1,nt.tileID.canonical.y*It%1]):nt.texture.bind(ir,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST);var tr=nh(ft,qt||[0,0],It||1,xt,A);j instanceof tn?K.draw(k,U.TRIANGLES,$e,ve.disabled,oe,tt.disabled,tr,A.id,j.boundsBuffer,d.quadTriangleIndexBuffer,j.boundsSegments):K.draw(k,U.TRIANGLES,$e,Ee[De.overscaledZ],oe,tt.disabled,tr,A.id,d.rasterBoundsBuffer,d.quadTriangleIndexBuffer,d.rasterBoundsSegments)}},background:function(d,x,A){var T=A.paint.get("background-color"),k=A.paint.get("background-opacity");if(k!==0){var U=d.context,j=U.gl,K=d.transform,oe=K.tileSize,pe=A.paint.get("background-pattern");if(!d.isPatternMissing(pe)){var Ee=!pe&&T.a===1&&k===1&&d.opaquePassEnabledForLayer()?"opaque":"translucent";if(d.renderPass===Ee){var Ce=ve.disabled,Ie=d.depthModeForSublayer(0,Ee==="opaque"?Le.ReadWrite:Le.ReadOnly),Ve=d.colorModeForRenderPass(),Fe=d.useProgram(pe?"backgroundPattern":"background"),Ke=K.coveringTiles({tileSize:oe});pe&&(U.activeTexture.set(j.TEXTURE0),d.imageManager.bind(d.context));for(var De=A.getCrossfadeParameters(),$e=0,nt=Ke;$e<nt.length;$e+=1){var ft=nt[$e],Mt=d.transform.calculatePosMatrix(ft.toUnwrapped()),xt=pe?vn(Mt,k,d,pe,{tileID:ft,tileSize:oe},De):ke(Mt,k,T);Fe.draw(U,j.TRIANGLES,Ie,Ce,Ve,tt.disabled,xt,A.id,d.tileExtentBuffer,d.quadTriangleIndexBuffer,d.tileExtentSegments)}}}}},debug:function(d,x,A){for(var T=0;T<A.length;T++)Ht(d,x,A[T])},custom:function(d,x,A){var T=d.context,k=A.implementation;if(d.renderPass==="offscreen"){var U=k.prerender;U&&(d.setCustomLayerDefaults(),T.setColorMode(d.colorModeForRenderPass()),U.call(k,T.gl,d.transform.customLayerMatrix()),T.setDirty(),d.setBaseState())}else if(d.renderPass==="translucent"){d.setCustomLayerDefaults(),T.setColorMode(d.colorModeForRenderPass()),T.setStencilMode(ve.disabled);var j=k.renderingMode==="3d"?new Le(d.context.gl.LEQUAL,Le.ReadWrite,d.depthRangeFor3D):d.depthModeForSublayer(0,Le.ReadOnly);T.setDepthMode(j),k.render(T.gl,d.transform.customLayerMatrix()),T.setDirty(),d.setBaseState(),T.bindFramebuffer.set(null)}}},cr=function(d,x){this.context=new Se(d),this.transform=x,this._tileTextures={},this.setup(),this.numSublayers=je.maxUnderzooming+je.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Mu,this.gpuTimers={}};cr.prototype.resize=function(d,x){if(this.width=d*i.browser.devicePixelRatio,this.height=x*i.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var A=0,T=this.style._order;A<T.length;A+=1)this.style._layers[T[A]].resize()},cr.prototype.setup=function(){var d=this.context,x=new i.StructArrayLayout2i4;x.emplaceBack(0,0),x.emplaceBack(i.EXTENT,0),x.emplaceBack(0,i.EXTENT),x.emplaceBack(i.EXTENT,i.EXTENT),this.tileExtentBuffer=d.createVertexBuffer(x,Bo.members),this.tileExtentSegments=i.SegmentVector.simpleSegment(0,0,4,2);var A=new i.StructArrayLayout2i4;A.emplaceBack(0,0),A.emplaceBack(i.EXTENT,0),A.emplaceBack(0,i.EXTENT),A.emplaceBack(i.EXTENT,i.EXTENT),this.debugBuffer=d.createVertexBuffer(A,Bo.members),this.debugSegments=i.SegmentVector.simpleSegment(0,0,4,5);var T=new i.StructArrayLayout4i8;T.emplaceBack(0,0,0,0),T.emplaceBack(i.EXTENT,0,i.EXTENT,0),T.emplaceBack(0,i.EXTENT,0,i.EXTENT),T.emplaceBack(i.EXTENT,i.EXTENT,i.EXTENT,i.EXTENT),this.rasterBoundsBuffer=d.createVertexBuffer(T,wr.members),this.rasterBoundsSegments=i.SegmentVector.simpleSegment(0,0,4,2);var k=new i.StructArrayLayout2i4;k.emplaceBack(0,0),k.emplaceBack(1,0),k.emplaceBack(0,1),k.emplaceBack(1,1),this.viewportBuffer=d.createVertexBuffer(k,Bo.members),this.viewportSegments=i.SegmentVector.simpleSegment(0,0,4,2);var U=new i.StructArrayLayout1ui2;U.emplaceBack(0),U.emplaceBack(1),U.emplaceBack(3),U.emplaceBack(2),U.emplaceBack(0),this.tileBorderIndexBuffer=d.createIndexBuffer(U);var j=new i.StructArrayLayout3ui6;j.emplaceBack(0,1,2),j.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=d.createIndexBuffer(j),this.emptyTexture=new i.Texture(d,{width:1,height:1,data:new Uint8Array([0,0,0,0])},d.gl.RGBA);var K=this.context.gl;this.stencilClearMode=new ve({func:K.ALWAYS,mask:0},0,255,K.ZERO,K.ZERO,K.ZERO)},cr.prototype.clearStencil=function(){var d=this.context,x=d.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var A=i.create();i.ortho(A,0,this.width,this.height,0,0,1),i.scale(A,A,[x.drawingBufferWidth,x.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(d,x.TRIANGLES,Le.disabled,this.stencilClearMode,et.disabled,tt.disabled,eo(A),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},cr.prototype._renderTileClippingMasks=function(d,x){if(this.currentStencilSource!==d.source&&d.isTileClipped()&&x&&x.length){this.currentStencilSource=d.source;var A=this.context,T=A.gl;this.nextStencilID+x.length>256&&this.clearStencil(),A.setColorMode(et.disabled),A.setDepthMode(Le.disabled);var k=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var U=0,j=x;U<j.length;U+=1){var K=j[U],oe=this._tileClippingMaskIDs[K.key]=this.nextStencilID++;k.draw(A,T.TRIANGLES,Le.disabled,new ve({func:T.ALWAYS,mask:0},oe,255,T.KEEP,T.KEEP,T.REPLACE),et.disabled,tt.disabled,eo(K.posMatrix),"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}},cr.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();var d=this.nextStencilID++,x=this.context.gl;return new ve({func:x.NOTEQUAL,mask:255},d,255,x.KEEP,x.KEEP,x.REPLACE)},cr.prototype.stencilModeForClipping=function(d){var x=this.context.gl;return new ve({func:x.EQUAL,mask:255},this._tileClippingMaskIDs[d.key],0,x.KEEP,x.KEEP,x.REPLACE)},cr.prototype.stencilConfigForOverlap=function(d){var x,A=this.context.gl,T=d.sort(function(oe,pe){return pe.overscaledZ-oe.overscaledZ}),k=T[T.length-1].overscaledZ,U=T[0].overscaledZ-k+1;if(U>1){this.currentStencilSource=void 0,this.nextStencilID+U>256&&this.clearStencil();for(var j={},K=0;K<U;K++)j[K+k]=new ve({func:A.GEQUAL,mask:255},K+this.nextStencilID,255,A.KEEP,A.KEEP,A.REPLACE);return this.nextStencilID+=U,[j,T]}return[(x={},x[k]=ve.disabled,x),T]},cr.prototype.colorModeForRenderPass=function(){var d=this.context.gl;return this._showOverdrawInspector?new et([d.CONSTANT_COLOR,d.ONE],new i.Color(1/8,1/8,1/8,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?et.unblended:et.alphaBlended},cr.prototype.depthModeForSublayer=function(d,x,A){if(!this.opaquePassEnabledForLayer())return Le.disabled;var T=1-((1+this.currentLayer)*this.numSublayers+d)*this.depthEpsilon;return new Le(A||this.context.gl.LEQUAL,x,[T,T])},cr.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},cr.prototype.render=function(d,x){var A=this;this.style=d,this.options=x,this.lineAtlas=d.lineAtlas,this.imageManager=d.imageManager,this.glyphManager=d.glyphManager,this.symbolFadeChange=d.placement.symbolFadeChange(i.browser.now()),this.imageManager.beginFrame();var T=this.style._order,k=this.style.sourceCaches;for(var U in k){var j=k[U];j.used&&j.prepare(this.context)}var K,oe,pe={},Ee={},Ce={};for(var Ie in k){var Ve=k[Ie];pe[Ie]=Ve.getVisibleCoordinates(),Ee[Ie]=pe[Ie].slice().reverse(),Ce[Ie]=Ve.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(var Fe=0;Fe<T.length;Fe++)if(this.style._layers[T[Fe]].is3D()){this.opaquePassCutoff=Fe;break}this.renderPass="offscreen";for(var Ke=0,De=T;Ke<De.length;Ke+=1){var $e=this.style._layers[De[Ke]];if($e.hasOffscreenPass()&&!$e.isHidden(this.transform.zoom)){var nt=Ee[$e.source];($e.type==="custom"||nt.length)&&this.renderLayer(this,k[$e.source],$e,nt)}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:x.showOverdrawInspector?i.Color.black:i.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=x.showOverdrawInspector,this.depthRangeFor3D=[0,1-(d._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass="opaque",this.currentLayer=T.length-1;this.currentLayer>=0;this.currentLayer--){var ft=this.style._layers[T[this.currentLayer]],Mt=k[ft.source],xt=pe[ft.source];this._renderTileClippingMasks(ft,xt),this.renderLayer(this,Mt,ft,xt)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<T.length;this.currentLayer++){var It=this.style._layers[T[this.currentLayer]],qt=k[It.source],ir=(It.type==="symbol"?Ce:Ee)[It.source];this._renderTileClippingMasks(It,pe[It.source]),this.renderLayer(this,qt,It,ir)}this.options.showTileBoundaries&&(i.values(this.style._layers).forEach(function(tr){tr.source&&!tr.isHidden(A.transform.zoom)&&(tr.source!==(oe&&oe.id)&&(oe=A.style.sourceCaches[tr.source]),(!K||K.getSource().maxzoom<oe.getSource().maxzoom)&&(K=oe))}),K&&gr.debug(this,K,K.getVisibleCoordinates())),this.options.showPadding&&function(tr){var Cr=tr.transform.padding;ot(tr,tr.transform.height-(Cr.top||0),3,oh),ot(tr,Cr.bottom||0,3,rd),wt(tr,Cr.left||0,3,hc),wt(tr,tr.transform.width-(Cr.right||0),3,qo);var Jr=tr.transform.centerPoint;(function(on,rn,fi,Lr){Ot(on,rn-1,fi-10,2,20,Lr),Ot(on,rn-10,fi-1,20,2,Lr)})(tr,Jr.x,tr.transform.height-Jr.y,ze)}(this),this.context.setDefault()},cr.prototype.renderLayer=function(d,x,A,T){A.isHidden(this.transform.zoom)||(A.type==="background"||A.type==="custom"||T.length)&&(this.id=A.id,this.gpuTimingStart(A),gr[A.type](d,x,A,T,this.style.placement.variableOffsets),this.gpuTimingEnd())},cr.prototype.gpuTimingStart=function(d){if(this.options.gpuTiming){var x=this.context.extTimerQuery,A=this.gpuTimers[d.id];A||(A=this.gpuTimers[d.id]={calls:0,cpuTime:0,query:x.createQueryEXT()}),A.calls++,x.beginQueryEXT(x.TIME_ELAPSED_EXT,A.query)}},cr.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var d=this.context.extTimerQuery;d.endQueryEXT(d.TIME_ELAPSED_EXT)}},cr.prototype.collectGpuTimers=function(){var d=this.gpuTimers;return this.gpuTimers={},d},cr.prototype.queryGpuTimers=function(d){var x={};for(var A in d){var T=d[A],k=this.context.extTimerQuery,U=k.getQueryObjectEXT(T.query,k.QUERY_RESULT_EXT)/1e6;k.deleteQueryEXT(T.query),x[A]=U}return x},cr.prototype.translatePosMatrix=function(d,x,A,T,k){if(!A[0]&&!A[1])return d;var U=k?T==="map"?this.transform.angle:0:T==="viewport"?-this.transform.angle:0;if(U){var j=Math.sin(U),K=Math.cos(U);A=[A[0]*K-A[1]*j,A[0]*j+A[1]*K]}var oe=[k?A[0]:so(x,A[0],this.transform.zoom),k?A[1]:so(x,A[1],this.transform.zoom),0],pe=new Float32Array(16);return i.translate(pe,d,oe),pe},cr.prototype.saveTileTexture=function(d){var x=this._tileTextures[d.size[0]];x?x.push(d):this._tileTextures[d.size[0]]=[d]},cr.prototype.getTileTexture=function(d){var x=this._tileTextures[d];return x&&x.length>0?x.pop():null},cr.prototype.isPatternMissing=function(d){if(!d)return!1;if(!d.from||!d.to)return!0;var x=this.imageManager.getPattern(d.from.toString()),A=this.imageManager.getPattern(d.to.toString());return!x||!A},cr.prototype.useProgram=function(d,x){this.cache=this.cache||{};var A=""+d+(x?x.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[A]||(this.cache[A]=new Et(this.context,d,ar[d],x,td[d],this._showOverdrawInspector)),this.cache[A]},cr.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},cr.prototype.setBaseState=function(){var d=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(d.FUNC_ADD)},cr.prototype.initDebugOverlayCanvas=function(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=i.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new i.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},cr.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var _r=function(d,x){this.points=d,this.planes=x};_r.fromInvProjectionMatrix=function(d,x,A){var T=Math.pow(2,A),k=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(function(j){return i.transformMat4([],j,d)}).map(function(j){return i.scale$1([],j,1/j[3]/x*T)}),U=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(function(j){var K=i.sub([],k[j[0]],k[j[1]]),oe=i.sub([],k[j[2]],k[j[1]]),pe=i.normalize([],i.cross([],K,oe)),Ee=-i.dot(pe,k[j[1]]);return pe.concat(Ee)});return new _r(k,U)};var Br=function(d,x){this.min=d,this.max=x,this.center=i.scale$2([],i.add([],this.min,this.max),.5)};Br.prototype.quadrant=function(d){for(var x=[d%2==0,d<2],A=i.clone$2(this.min),T=i.clone$2(this.max),k=0;k<x.length;k++)A[k]=x[k]?this.min[k]:this.center[k],T[k]=x[k]?this.center[k]:this.max[k];return T[2]=this.max[2],new Br(A,T)},Br.prototype.distanceX=function(d){return Math.max(Math.min(this.max[0],d[0]),this.min[0])-d[0]},Br.prototype.distanceY=function(d){return Math.max(Math.min(this.max[1],d[1]),this.min[1])-d[1]},Br.prototype.intersects=function(d){for(var x=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],A=!0,T=0;T<d.planes.length;T++){for(var k=d.planes[T],U=0,j=0;j<x.length;j++)U+=i.dot$1(k,x[j])>=0;if(U===0)return 0;U!==x.length&&(A=!1)}if(A)return 2;for(var K=0;K<3;K++){for(var oe=Number.MAX_VALUE,pe=-Number.MAX_VALUE,Ee=0;Ee<d.points.length;Ee++){var Ce=d.points[Ee][K]-this.min[K];oe=Math.min(oe,Ce),pe=Math.max(pe,Ce)}if(pe<0||oe>this.max[K]-this.min[K])return 0}return 1};var Nn=function(d,x,A,T){if(d===void 0&&(d=0),x===void 0&&(x=0),A===void 0&&(A=0),T===void 0&&(T=0),isNaN(d)||d<0||isNaN(x)||x<0||isNaN(A)||A<0||isNaN(T)||T<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=d,this.bottom=x,this.left=A,this.right=T};Nn.prototype.interpolate=function(d,x,A){return x.top!=null&&d.top!=null&&(this.top=i.number(d.top,x.top,A)),x.bottom!=null&&d.bottom!=null&&(this.bottom=i.number(d.bottom,x.bottom,A)),x.left!=null&&d.left!=null&&(this.left=i.number(d.left,x.left,A)),x.right!=null&&d.right!=null&&(this.right=i.number(d.right,x.right,A)),this},Nn.prototype.getCenter=function(d,x){var A=i.clamp((this.left+d-this.right)/2,0,d),T=i.clamp((this.top+x-this.bottom)/2,0,x);return new i.Point(A,T)},Nn.prototype.equals=function(d){return this.top===d.top&&this.bottom===d.bottom&&this.left===d.left&&this.right===d.right},Nn.prototype.clone=function(){return new Nn(this.top,this.bottom,this.left,this.right)},Nn.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var xr=function(d,x,A,T,k){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=k===void 0||k,this._minZoom=d||0,this._maxZoom=x||22,this._minPitch=A??0,this._maxPitch=T??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new i.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Nn,this._posMatrixCache={},this._alignedPosMatrixCache={}},Wr={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};xr.prototype.clone=function(){var d=new xr(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return d.tileSize=this.tileSize,d.latRange=this.latRange,d.width=this.width,d.height=this.height,d._center=this._center,d.zoom=this.zoom,d.angle=this.angle,d._fov=this._fov,d._pitch=this._pitch,d._unmodified=this._unmodified,d._edgeInsets=this._edgeInsets.clone(),d._calcMatrices(),d},Wr.minZoom.get=function(){return this._minZoom},Wr.minZoom.set=function(d){this._minZoom!==d&&(this._minZoom=d,this.zoom=Math.max(this.zoom,d))},Wr.maxZoom.get=function(){return this._maxZoom},Wr.maxZoom.set=function(d){this._maxZoom!==d&&(this._maxZoom=d,this.zoom=Math.min(this.zoom,d))},Wr.minPitch.get=function(){return this._minPitch},Wr.minPitch.set=function(d){this._minPitch!==d&&(this._minPitch=d,this.pitch=Math.max(this.pitch,d))},Wr.maxPitch.get=function(){return this._maxPitch},Wr.maxPitch.set=function(d){this._maxPitch!==d&&(this._maxPitch=d,this.pitch=Math.min(this.pitch,d))},Wr.renderWorldCopies.get=function(){return this._renderWorldCopies},Wr.renderWorldCopies.set=function(d){d===void 0?d=!0:d===null&&(d=!1),this._renderWorldCopies=d},Wr.worldSize.get=function(){return this.tileSize*this.scale},Wr.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Wr.size.get=function(){return new i.Point(this.width,this.height)},Wr.bearing.get=function(){return-this.angle/Math.PI*180},Wr.bearing.set=function(d){var x=-i.wrap(d,-180,180)*Math.PI/180;this.angle!==x&&(this._unmodified=!1,this.angle=x,this._calcMatrices(),this.rotationMatrix=i.create$2(),i.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Wr.pitch.get=function(){return this._pitch/Math.PI*180},Wr.pitch.set=function(d){var x=i.clamp(d,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==x&&(this._unmodified=!1,this._pitch=x,this._calcMatrices())},Wr.fov.get=function(){return this._fov/Math.PI*180},Wr.fov.set=function(d){d=Math.max(.01,Math.min(60,d)),this._fov!==d&&(this._unmodified=!1,this._fov=d/180*Math.PI,this._calcMatrices())},Wr.zoom.get=function(){return this._zoom},Wr.zoom.set=function(d){var x=Math.min(Math.max(d,this.minZoom),this.maxZoom);this._zoom!==x&&(this._unmodified=!1,this._zoom=x,this.scale=this.zoomScale(x),this.tileZoom=Math.floor(x),this.zoomFraction=x-this.tileZoom,this._constrain(),this._calcMatrices())},Wr.center.get=function(){return this._center},Wr.center.set=function(d){d.lat===this._center.lat&&d.lng===this._center.lng||(this._unmodified=!1,this._center=d,this._constrain(),this._calcMatrices())},Wr.padding.get=function(){return this._edgeInsets.toJSON()},Wr.padding.set=function(d){this._edgeInsets.equals(d)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,d,1),this._calcMatrices())},Wr.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},xr.prototype.isPaddingEqual=function(d){return this._edgeInsets.equals(d)},xr.prototype.interpolatePadding=function(d,x,A){this._unmodified=!1,this._edgeInsets.interpolate(d,x,A),this._constrain(),this._calcMatrices()},xr.prototype.coveringZoomLevel=function(d){var x=(d.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/d.tileSize));return Math.max(0,x)},xr.prototype.getVisibleUnwrappedCoordinates=function(d){var x=[new i.UnwrappedTileID(0,d)];if(this._renderWorldCopies)for(var A=this.pointCoordinate(new i.Point(0,0)),T=this.pointCoordinate(new i.Point(this.width,0)),k=this.pointCoordinate(new i.Point(this.width,this.height)),U=this.pointCoordinate(new i.Point(0,this.height)),j=Math.floor(Math.min(A.x,T.x,k.x,U.x)),K=Math.floor(Math.max(A.x,T.x,k.x,U.x)),oe=j-1;oe<=K+1;oe++)oe!==0&&x.push(new i.UnwrappedTileID(oe,d));return x},xr.prototype.coveringTiles=function(d){var x=this.coveringZoomLevel(d),A=x;if(d.minzoom!==void 0&&x<d.minzoom)return[];d.maxzoom!==void 0&&x>d.maxzoom&&(x=d.maxzoom);var T=i.MercatorCoordinate.fromLngLat(this.center),k=Math.pow(2,x),U=[k*T.x,k*T.y,0],j=_r.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,x),K=d.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(K=x);var oe=function(tr){return{aabb:new Br([tr*k,0,0],[(tr+1)*k,k,0]),zoom:0,x:0,y:0,wrap:tr,fullyVisible:!1}},pe=[],Ee=[],Ce=x,Ie=d.reparseOverscaled?A:x;if(this._renderWorldCopies)for(var Ve=1;Ve<=3;Ve++)pe.push(oe(-Ve)),pe.push(oe(Ve));for(pe.push(oe(0));pe.length>0;){var Fe=pe.pop(),Ke=Fe.x,De=Fe.y,$e=Fe.fullyVisible;if(!$e){var nt=Fe.aabb.intersects(j);if(nt===0)continue;$e=nt===2}var ft=Fe.aabb.distanceX(U),Mt=Fe.aabb.distanceY(U),xt=Math.max(Math.abs(ft),Math.abs(Mt));if(Fe.zoom===Ce||xt>3+(1<<Ce-Fe.zoom)-2&&Fe.zoom>=K)Ee.push({tileID:new i.OverscaledTileID(Fe.zoom===Ce?Ie:Fe.zoom,Fe.wrap,Fe.zoom,Ke,De),distanceSq:i.sqrLen([U[0]-.5-Ke,U[1]-.5-De])});else for(var It=0;It<4;It++){var qt=(Ke<<1)+It%2,ir=(De<<1)+(It>>1);pe.push({aabb:Fe.aabb.quadrant(It),zoom:Fe.zoom+1,x:qt,y:ir,wrap:Fe.wrap,fullyVisible:$e})}}return Ee.sort(function(tr,Cr){return tr.distanceSq-Cr.distanceSq}).map(function(tr){return tr.tileID})},xr.prototype.resize=function(d,x){this.width=d,this.height=x,this.pixelsToGLUnits=[2/d,-2/x],this._constrain(),this._calcMatrices()},Wr.unmodified.get=function(){return this._unmodified},xr.prototype.zoomScale=function(d){return Math.pow(2,d)},xr.prototype.scaleZoom=function(d){return Math.log(d)/Math.LN2},xr.prototype.project=function(d){var x=i.clamp(d.lat,-this.maxValidLatitude,this.maxValidLatitude);return new i.Point(i.mercatorXfromLng(d.lng)*this.worldSize,i.mercatorYfromLat(x)*this.worldSize)},xr.prototype.unproject=function(d){return new i.MercatorCoordinate(d.x/this.worldSize,d.y/this.worldSize).toLngLat()},Wr.point.get=function(){return this.project(this.center)},xr.prototype.setLocationAtPoint=function(d,x){var A=this.pointCoordinate(x),T=this.pointCoordinate(this.centerPoint),k=this.locationCoordinate(d),U=new i.MercatorCoordinate(k.x-(A.x-T.x),k.y-(A.y-T.y));this.center=this.coordinateLocation(U),this._renderWorldCopies&&(this.center=this.center.wrap())},xr.prototype.locationPoint=function(d){return this.coordinatePoint(this.locationCoordinate(d))},xr.prototype.pointLocation=function(d){return this.coordinateLocation(this.pointCoordinate(d))},xr.prototype.locationCoordinate=function(d){return i.MercatorCoordinate.fromLngLat(d)},xr.prototype.coordinateLocation=function(d){return d.toLngLat()},xr.prototype.pointCoordinate=function(d){var x=[d.x,d.y,0,1],A=[d.x,d.y,1,1];i.transformMat4(x,x,this.pixelMatrixInverse),i.transformMat4(A,A,this.pixelMatrixInverse);var T=x[3],k=A[3],U=x[1]/T,j=A[1]/k,K=x[2]/T,oe=A[2]/k,pe=K===oe?0:(0-K)/(oe-K);return new i.MercatorCoordinate(i.number(x[0]/T,A[0]/k,pe)/this.worldSize,i.number(U,j,pe)/this.worldSize)},xr.prototype.coordinatePoint=function(d){var x=[d.x*this.worldSize,d.y*this.worldSize,0,1];return i.transformMat4(x,x,this.pixelMatrix),new i.Point(x[0]/x[3],x[1]/x[3])},xr.prototype.getBounds=function(){return new i.LngLatBounds().extend(this.pointLocation(new i.Point(0,0))).extend(this.pointLocation(new i.Point(this.width,0))).extend(this.pointLocation(new i.Point(this.width,this.height))).extend(this.pointLocation(new i.Point(0,this.height)))},xr.prototype.getMaxBounds=function(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new i.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},xr.prototype.setMaxBounds=function(d){d?(this.lngRange=[d.getWest(),d.getEast()],this.latRange=[d.getSouth(),d.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},xr.prototype.calculatePosMatrix=function(d,x){x===void 0&&(x=!1);var A=d.key,T=x?this._alignedPosMatrixCache:this._posMatrixCache;if(T[A])return T[A];var k=d.canonical,U=this.worldSize/this.zoomScale(k.z),j=k.x+Math.pow(2,k.z)*d.wrap,K=i.identity(new Float64Array(16));return i.translate(K,K,[j*U,k.y*U,0]),i.scale(K,K,[U/i.EXTENT,U/i.EXTENT,1]),i.multiply(K,x?this.alignedProjMatrix:this.projMatrix,K),T[A]=new Float32Array(K),T[A]},xr.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},xr.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var d,x,A,T,k=-90,U=90,j=-180,K=180,oe=this.size,pe=this._unmodified;if(this.latRange){var Ee=this.latRange;k=i.mercatorYfromLat(Ee[1])*this.worldSize,d=(U=i.mercatorYfromLat(Ee[0])*this.worldSize)-k<oe.y?oe.y/(U-k):0}if(this.lngRange){var Ce=this.lngRange;j=i.mercatorXfromLng(Ce[0])*this.worldSize,x=(K=i.mercatorXfromLng(Ce[1])*this.worldSize)-j<oe.x?oe.x/(K-j):0}var Ie=this.point,Ve=Math.max(x||0,d||0);if(Ve)return this.center=this.unproject(new i.Point(x?(K+j)/2:Ie.x,d?(U+k)/2:Ie.y)),this.zoom+=this.scaleZoom(Ve),this._unmodified=pe,void(this._constraining=!1);if(this.latRange){var Fe=Ie.y,Ke=oe.y/2;Fe-Ke<k&&(T=k+Ke),Fe+Ke>U&&(T=U-Ke)}if(this.lngRange){var De=Ie.x,$e=oe.x/2;De-$e<j&&(A=j+$e),De+$e>K&&(A=K-$e)}A===void 0&&T===void 0||(this.center=this.unproject(new i.Point(A!==void 0?A:Ie.x,T!==void 0?T:Ie.y))),this._unmodified=pe,this._constraining=!1}},xr.prototype._calcMatrices=function(){if(this.height){var d=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var x=Math.PI/2+this._pitch,A=this._fov*(.5+d.y/this.height),T=Math.sin(A)*this.cameraToCenterDistance/Math.sin(i.clamp(Math.PI-x-A,.01,Math.PI-.01)),k=this.point,U=k.x,j=k.y,K=1.01*(Math.cos(Math.PI/2-this._pitch)*T+this.cameraToCenterDistance),oe=this.height/50,pe=new Float64Array(16);i.perspective(pe,this._fov,this.width/this.height,oe,K),pe[8]=2*-d.x/this.width,pe[9]=2*d.y/this.height,i.scale(pe,pe,[1,-1,1]),i.translate(pe,pe,[0,0,-this.cameraToCenterDistance]),i.rotateX(pe,pe,this._pitch),i.rotateZ(pe,pe,this.angle),i.translate(pe,pe,[-U,-j,0]),this.mercatorMatrix=i.scale([],pe,[this.worldSize,this.worldSize,this.worldSize]),i.scale(pe,pe,[1,1,i.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=pe,this.invProjMatrix=i.invert([],this.projMatrix);var Ee=this.width%2/2,Ce=this.height%2/2,Ie=Math.cos(this.angle),Ve=Math.sin(this.angle),Fe=U-Math.round(U)+Ie*Ee+Ve*Ce,Ke=j-Math.round(j)+Ie*Ce+Ve*Ee,De=new Float64Array(pe);if(i.translate(De,De,[Fe>.5?Fe-1:Fe,Ke>.5?Ke-1:Ke,0]),this.alignedProjMatrix=De,pe=i.create(),i.scale(pe,pe,[this.width/2,-this.height/2,1]),i.translate(pe,pe,[1,-1,0]),this.labelPlaneMatrix=pe,pe=i.create(),i.scale(pe,pe,[1,-1,1]),i.translate(pe,pe,[-1,-1,0]),i.scale(pe,pe,[2/this.width,2/this.height,1]),this.glCoordMatrix=pe,this.pixelMatrix=i.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(pe=i.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=pe,this._posMatrixCache={},this._alignedPosMatrixCache={}}},xr.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var d=this.pointCoordinate(new i.Point(0,0)),x=[d.x*this.worldSize,d.y*this.worldSize,0,1];return i.transformMat4(x,x,this.pixelMatrix)[3]/this.cameraToCenterDistance},xr.prototype.getCameraPoint=function(){var d=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new i.Point(0,d))},xr.prototype.getCameraQueryGeometry=function(d){var x=this.getCameraPoint();if(d.length===1)return[d[0],x];for(var A=x.x,T=x.y,k=x.x,U=x.y,j=0,K=d;j<K.length;j+=1){var oe=K[j];A=Math.min(A,oe.x),T=Math.min(T,oe.y),k=Math.max(k,oe.x),U=Math.max(U,oe.y)}return[new i.Point(A,T),new i.Point(k,T),new i.Point(k,U),new i.Point(A,U),new i.Point(A,T)]},Object.defineProperties(xr.prototype,Wr);var Cn=function(d){var x,A,T,k;this._hashName=d&&encodeURIComponent(d),i.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=(x=this._updateHashUnthrottled.bind(this),A=!1,T=null,k=function(){T=null,A&&(x(),T=setTimeout(k,300),A=!1)},function(){return A=!0,T||k(),T})};Cn.prototype.addTo=function(d){return this._map=d,i.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Cn.prototype.remove=function(){return i.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},Cn.prototype.getHashString=function(d){var x=this._map.getCenter(),A=Math.round(100*this._map.getZoom())/100,T=Math.ceil((A*Math.LN2+Math.log(512/360/.5))/Math.LN10),k=Math.pow(10,T),U=Math.round(x.lng*k)/k,j=Math.round(x.lat*k)/k,K=this._map.getBearing(),oe=this._map.getPitch(),pe="";if(pe+=d?"/"+U+"/"+j+"/"+A:A+"/"+j+"/"+U,(K||oe)&&(pe+="/"+Math.round(10*K)/10),oe&&(pe+="/"+Math.round(oe)),this._hashName){var Ee=this._hashName,Ce=!1,Ie=i.window.location.hash.slice(1).split("&").map(function(Ve){var Fe=Ve.split("=")[0];return Fe===Ee?(Ce=!0,Fe+"="+pe):Ve}).filter(function(Ve){return Ve});return Ce||Ie.push(Ee+"="+pe),"#"+Ie.join("&")}return"#"+pe},Cn.prototype._getCurrentHash=function(){var d,x=this,A=i.window.location.hash.replace("#","");return this._hashName?(A.split("&").map(function(T){return T.split("=")}).forEach(function(T){T[0]===x._hashName&&(d=T)}),(d&&d[1]||"").split("/")):A.split("/")},Cn.prototype._onHashChange=function(){var d=this._getCurrentHash();if(d.length>=3&&!d.some(function(A){return isNaN(A)})){var x=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(d[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+d[2],+d[1]],zoom:+d[0],bearing:x,pitch:+(d[4]||0)}),!0}return!1},Cn.prototype._updateHashUnthrottled=function(){var d=i.window.location.href.replace(/(#.+)?$/,this.getHashString());try{i.window.history.replaceState(i.window.history.state,null,d)}catch{}};var pn={linearity:.3,easing:i.bezier(0,0,.3,1)},Pi=i.extend({deceleration:2500,maxSpeed:1400},pn),cs=i.extend({deceleration:20,maxSpeed:1400},pn),ta=i.extend({deceleration:1e3,maxSpeed:360},pn),fc=i.extend({deceleration:1e3,maxSpeed:90},pn),Aa=function(d){this._map=d,this.clear()};function zc(d,x){(!d.duration||d.duration<x.duration)&&(d.duration=x.duration,d.easing=x.easing)}function So(d,x,A){var T=A.maxSpeed,k=A.linearity,U=A.deceleration,j=i.clamp(d*k/(x/1e3),-T,T),K=Math.abs(j)/(U*k);return{easing:A.easing,duration:1e3*K,amount:j*(K/2)}}Aa.prototype.clear=function(){this._inertiaBuffer=[]},Aa.prototype.record=function(d){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:i.browser.now(),settings:d})},Aa.prototype._drainInertiaBuffer=function(){for(var d=this._inertiaBuffer,x=i.browser.now();d.length>0&&x-d[0].time>160;)d.shift()},Aa.prototype._onMoveEnd=function(d){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var x={zoom:0,bearing:0,pitch:0,pan:new i.Point(0,0),pinchAround:void 0,around:void 0},A=0,T=this._inertiaBuffer;A<T.length;A+=1){var k=T[A].settings;x.zoom+=k.zoomDelta||0,x.bearing+=k.bearingDelta||0,x.pitch+=k.pitchDelta||0,k.panDelta&&x.pan._add(k.panDelta),k.around&&(x.around=k.around),k.pinchAround&&(x.pinchAround=k.pinchAround)}var U=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,j={};if(x.pan.mag()){var K=So(x.pan.mag(),U,i.extend({},Pi,d||{}));j.offset=x.pan.mult(K.amount/x.pan.mag()),j.center=this._map.transform.center,zc(j,K)}if(x.zoom){var oe=So(x.zoom,U,cs);j.zoom=this._map.transform.zoom+oe.amount,zc(j,oe)}if(x.bearing){var pe=So(x.bearing,U,ta);j.bearing=this._map.transform.bearing+i.clamp(pe.amount,-179,179),zc(j,pe)}if(x.pitch){var Ee=So(x.pitch,U,fc);j.pitch=this._map.transform.pitch+Ee.amount,zc(j,Ee)}if(j.zoom||j.bearing){var Ce=x.pinchAround===void 0?x.around:x.pinchAround;j.around=Ce?this._map.unproject(Ce):this._map.getCenter()}return this.clear(),i.extend(j,{noMoveStart:!0})}};var xs=function(d){function x(T,k,U,j){j===void 0&&(j={});var K=s.mousePos(k.getCanvasContainer(),U),oe=k.unproject(K);d.call(this,T,i.extend({point:K,lngLat:oe,originalEvent:U},j)),this._defaultPrevented=!1,this.target=k}d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x;var A={defaultPrevented:{configurable:!0}};return x.prototype.preventDefault=function(){this._defaultPrevented=!0},A.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(x.prototype,A),x}(i.Event),nd=function(d){function x(T,k,U){var j=T==="touchend"?U.changedTouches:U.touches,K=s.touchPos(k.getCanvasContainer(),j),oe=K.map(function(Ce){return k.unproject(Ce)}),pe=K.reduce(function(Ce,Ie,Ve,Fe){return Ce.add(Ie.div(Fe.length))},new i.Point(0,0)),Ee=k.unproject(pe);d.call(this,T,{points:K,point:pe,lngLats:oe,lngLat:Ee,originalEvent:U}),this._defaultPrevented=!1}d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x;var A={defaultPrevented:{configurable:!0}};return x.prototype.preventDefault=function(){this._defaultPrevented=!0},A.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(x.prototype,A),x}(i.Event),Qy=function(d){function x(T,k,U){d.call(this,T,{originalEvent:U}),this._defaultPrevented=!1}d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x;var A={defaultPrevented:{configurable:!0}};return x.prototype.preventDefault=function(){this._defaultPrevented=!0},A.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(x.prototype,A),x}(i.Event),xi=function(d,x){this._map=d,this._clickTolerance=x.clickTolerance};xi.prototype.reset=function(){delete this._mousedownPos},xi.prototype.wheel=function(d){return this._firePreventable(new Qy(d.type,this._map,d))},xi.prototype.mousedown=function(d,x){return this._mousedownPos=x,this._firePreventable(new xs(d.type,this._map,d))},xi.prototype.mouseup=function(d){this._map.fire(new xs(d.type,this._map,d))},xi.prototype.click=function(d,x){this._mousedownPos&&this._mousedownPos.dist(x)>=this._clickTolerance||this._map.fire(new xs(d.type,this._map,d))},xi.prototype.dblclick=function(d){return this._firePreventable(new xs(d.type,this._map,d))},xi.prototype.mouseover=function(d){this._map.fire(new xs(d.type,this._map,d))},xi.prototype.mouseout=function(d){this._map.fire(new xs(d.type,this._map,d))},xi.prototype.touchstart=function(d){return this._firePreventable(new nd(d.type,this._map,d))},xi.prototype.touchmove=function(d){this._map.fire(new nd(d.type,this._map,d))},xi.prototype.touchend=function(d){this._map.fire(new nd(d.type,this._map,d))},xi.prototype.touchcancel=function(d){this._map.fire(new nd(d.type,this._map,d))},xi.prototype._firePreventable=function(d){if(this._map.fire(d),d.defaultPrevented)return{}},xi.prototype.isEnabled=function(){return!0},xi.prototype.isActive=function(){return!1},xi.prototype.enable=function(){},xi.prototype.disable=function(){};var Tr=function(d){this._map=d};Tr.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Tr.prototype.mousemove=function(d){this._map.fire(new xs(d.type,this._map,d))},Tr.prototype.mousedown=function(){this._delayContextMenu=!0},Tr.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new xs("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Tr.prototype.contextmenu=function(d){this._delayContextMenu?this._contextMenuEvent=d:this._map.fire(new xs(d.type,this._map,d)),this._map.listens("contextmenu")&&d.preventDefault()},Tr.prototype.isEnabled=function(){return!0},Tr.prototype.isActive=function(){return!1},Tr.prototype.enable=function(){},Tr.prototype.disable=function(){};var fo=function(d,x){this._map=d,this._el=d.getCanvasContainer(),this._container=d.getContainer(),this._clickTolerance=x.clickTolerance||1};function Xf(d,x){for(var A={},T=0;T<d.length;T++)A[d[T].identifier]=x[T];return A}fo.prototype.isEnabled=function(){return!!this._enabled},fo.prototype.isActive=function(){return!!this._active},fo.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},fo.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},fo.prototype.mousedown=function(d,x){this.isEnabled()&&d.shiftKey&&d.button===0&&(s.disableDrag(),this._startPos=this._lastPos=x,this._active=!0)},fo.prototype.mousemoveWindow=function(d,x){if(this._active){var A=x;if(!(this._lastPos.equals(A)||!this._box&&A.dist(this._startPos)<this._clickTolerance)){var T=this._startPos;this._lastPos=A,this._box||(this._box=s.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",d));var k=Math.min(T.x,A.x),U=Math.max(T.x,A.x),j=Math.min(T.y,A.y),K=Math.max(T.y,A.y);s.setTransform(this._box,"translate("+k+"px,"+j+"px)"),this._box.style.width=U-k+"px",this._box.style.height=K-j+"px"}}},fo.prototype.mouseupWindow=function(d,x){var A=this;if(this._active&&d.button===0){var T=this._startPos,k=x;if(this.reset(),s.suppressClick(),T.x!==k.x||T.y!==k.y)return this._map.fire(new i.Event("boxzoomend",{originalEvent:d})),{cameraAnimation:function(U){return U.fitScreenCoordinates(T,k,A._map.getBearing(),{linear:!0})}};this._fireEvent("boxzoomcancel",d)}},fo.prototype.keydown=function(d){this._active&&d.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",d))},fo.prototype.blur=function(){this.reset()},fo.prototype.reset=function(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(s.remove(this._box),this._box=null),s.enableDrag(),delete this._startPos,delete this._lastPos},fo.prototype._fireEvent=function(d,x){return this._map.fire(new i.Event(d,{originalEvent:x}))};var $h=function(d){this.reset(),this.numTouches=d.numTouches};$h.prototype.reset=function(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1},$h.prototype.touchstart=function(d,x,A){(this.centroid||A.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=d.timeStamp),A.length===this.numTouches&&(this.centroid=function(T){for(var k=new i.Point(0,0),U=0,j=T;U<j.length;U+=1)k._add(j[U]);return k.div(T.length)}(x),this.touches=Xf(A,x)))},$h.prototype.touchmove=function(d,x,A){if(!this.aborted&&this.centroid){var T=Xf(A,x);for(var k in this.touches){var U=T[k];(!U||U.dist(this.touches[k])>30)&&(this.aborted=!0)}}},$h.prototype.touchend=function(d,x,A){if((!this.centroid||d.timeStamp-this.startTime>500)&&(this.aborted=!0),A.length===0){var T=!this.aborted&&this.centroid;if(this.reset(),T)return T}};var pc=function(d){this.singleTap=new $h(d),this.numTaps=d.numTaps,this.reset()};pc.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},pc.prototype.touchstart=function(d,x,A){this.singleTap.touchstart(d,x,A)},pc.prototype.touchmove=function(d,x,A){this.singleTap.touchmove(d,x,A)},pc.prototype.touchend=function(d,x,A){var T=this.singleTap.touchend(d,x,A);if(T){var k=d.timeStamp-this.lastTime<500,U=!this.lastTap||this.lastTap.dist(T)<30;if(k&&U||this.reset(),this.count++,this.lastTime=d.timeStamp,this.lastTap=T,this.count===this.numTaps)return this.reset(),T}};var dc=function(){this._zoomIn=new pc({numTouches:1,numTaps:2}),this._zoomOut=new pc({numTouches:2,numTaps:1}),this.reset()};dc.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},dc.prototype.touchstart=function(d,x,A){this._zoomIn.touchstart(d,x,A),this._zoomOut.touchstart(d,x,A)},dc.prototype.touchmove=function(d,x,A){this._zoomIn.touchmove(d,x,A),this._zoomOut.touchmove(d,x,A)},dc.prototype.touchend=function(d,x,A){var T=this,k=this._zoomIn.touchend(d,x,A),U=this._zoomOut.touchend(d,x,A);return k?(this._active=!0,d.preventDefault(),setTimeout(function(){return T.reset()},0),{cameraAnimation:function(j){return j.easeTo({duration:300,zoom:j.getZoom()+1,around:j.unproject(k)},{originalEvent:d})}}):U?(this._active=!0,d.preventDefault(),setTimeout(function(){return T.reset()},0),{cameraAnimation:function(j){return j.easeTo({duration:300,zoom:j.getZoom()-1,around:j.unproject(U)},{originalEvent:d})}}):void 0},dc.prototype.touchcancel=function(){this.reset()},dc.prototype.enable=function(){this._enabled=!0},dc.prototype.disable=function(){this._enabled=!1,this.reset()},dc.prototype.isEnabled=function(){return this._enabled},dc.prototype.isActive=function(){return this._active};var hA={0:1,2:2},dr=function(d){this.reset(),this._clickTolerance=d.clickTolerance||1};dr.prototype.blur=function(){this.reset()},dr.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},dr.prototype._correctButton=function(d,x){return!1},dr.prototype._move=function(d,x){return{}},dr.prototype.mousedown=function(d,x){if(!this._lastPoint){var A=s.mouseButton(d);this._correctButton(d,A)&&(this._lastPoint=x,this._eventButton=A)}},dr.prototype.mousemoveWindow=function(d,x){var A=this._lastPoint;if(A){if(d.preventDefault(),function(T,k){var U=hA[k];return T.buttons===void 0||(T.buttons&U)!==U}(d,this._eventButton))this.reset();else if(this._moved||!(x.dist(A)<this._clickTolerance))return this._moved=!0,this._lastPoint=x,this._move(A,x)}},dr.prototype.mouseupWindow=function(d){this._lastPoint&&s.mouseButton(d)===this._eventButton&&(this._moved&&s.suppressClick(),this.reset())},dr.prototype.enable=function(){this._enabled=!0},dr.prototype.disable=function(){this._enabled=!1,this.reset()},dr.prototype.isEnabled=function(){return this._enabled},dr.prototype.isActive=function(){return this._active};var Pm=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.mousedown=function(A,T){d.prototype.mousedown.call(this,A,T),this._lastPoint&&(this._active=!0)},x.prototype._correctButton=function(A,T){return T===0&&!A.ctrlKey},x.prototype._move=function(A,T){return{around:T,panDelta:T.sub(A)}},x}(dr),Kh=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype._correctButton=function(A,T){return T===0&&A.ctrlKey||T===2},x.prototype._move=function(A,T){var k=.8*(T.x-A.x);if(k)return this._active=!0,{bearingDelta:k}},x.prototype.contextmenu=function(A){A.preventDefault()},x}(dr),Lu=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype._correctButton=function(A,T){return T===0&&A.ctrlKey||T===2},x.prototype._move=function(A,T){var k=-.5*(T.y-A.y);if(k)return this._active=!0,{pitchDelta:k}},x.prototype.contextmenu=function(A){A.preventDefault()},x}(dr),Uc=function(d){this._minTouches=1,this._clickTolerance=d.clickTolerance||1,this.reset()};Uc.prototype.reset=function(){this._active=!1,this._touches={},this._sum=new i.Point(0,0)},Uc.prototype.touchstart=function(d,x,A){return this._calculateTransform(d,x,A)},Uc.prototype.touchmove=function(d,x,A){if(this._active&&!(A.length<this._minTouches))return d.preventDefault(),this._calculateTransform(d,x,A)},Uc.prototype.touchend=function(d,x,A){this._calculateTransform(d,x,A),this._active&&A.length<this._minTouches&&this.reset()},Uc.prototype.touchcancel=function(){this.reset()},Uc.prototype._calculateTransform=function(d,x,A){A.length>0&&(this._active=!0);var T=Xf(A,x),k=new i.Point(0,0),U=new i.Point(0,0),j=0;for(var K in T){var oe=T[K],pe=this._touches[K];pe&&(k._add(oe),U._add(oe.sub(pe)),j++,T[K]=oe)}if(this._touches=T,!(j<this._minTouches)&&U.mag()){var Ee=U.div(j);if(this._sum._add(Ee),!(this._sum.mag()<this._clickTolerance))return{around:k.div(j),panDelta:Ee}}},Uc.prototype.enable=function(){this._enabled=!0},Uc.prototype.disable=function(){this._enabled=!1,this.reset()},Uc.prototype.isEnabled=function(){return this._enabled},Uc.prototype.isActive=function(){return this._active};var Za=function(){this.reset()};function Zh(d,x,A){for(var T=0;T<d.length;T++)if(d[T].identifier===A)return x[T]}function Ql(d,x){return Math.log(d/x)/Math.LN2}Za.prototype.reset=function(){this._active=!1,delete this._firstTwoTouches},Za.prototype._start=function(d){},Za.prototype._move=function(d,x,A){return{}},Za.prototype.touchstart=function(d,x,A){this._firstTwoTouches||A.length<2||(this._firstTwoTouches=[A[0].identifier,A[1].identifier],this._start([x[0],x[1]]))},Za.prototype.touchmove=function(d,x,A){if(this._firstTwoTouches){d.preventDefault();var T=this._firstTwoTouches,k=T[1],U=Zh(A,x,T[0]),j=Zh(A,x,k);if(U&&j){var K=this._aroundCenter?null:U.add(j).div(2);return this._move([U,j],K,d)}}},Za.prototype.touchend=function(d,x,A){if(this._firstTwoTouches){var T=this._firstTwoTouches,k=T[1],U=Zh(A,x,T[0]),j=Zh(A,x,k);U&&j||(this._active&&s.suppressClick(),this.reset())}},Za.prototype.touchcancel=function(){this.reset()},Za.prototype.enable=function(d){this._enabled=!0,this._aroundCenter=!!d&&d.around==="center"},Za.prototype.disable=function(){this._enabled=!1,this.reset()},Za.prototype.isEnabled=function(){return this._enabled},Za.prototype.isActive=function(){return this._active};var vs=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.reset=function(){d.prototype.reset.call(this),delete this._distance,delete this._startDistance},x.prototype._start=function(A){this._startDistance=this._distance=A[0].dist(A[1])},x.prototype._move=function(A,T){var k=this._distance;if(this._distance=A[0].dist(A[1]),this._active||!(Math.abs(Ql(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:Ql(this._distance,k),pinchAround:T}},x}(Za);function Jl(d,x){return 180*d.angleWith(x)/Math.PI}var fA=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.reset=function(){d.prototype.reset.call(this),delete this._minDiameter,delete this._startVector,delete this._vector},x.prototype._start=function(A){this._startVector=this._vector=A[0].sub(A[1]),this._minDiameter=A[0].dist(A[1])},x.prototype._move=function(A,T){var k=this._vector;if(this._vector=A[0].sub(A[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:Jl(this._vector,k),pinchAround:T}},x.prototype._isBelowThreshold=function(A){this._minDiameter=Math.min(this._minDiameter,A.mag());var T=25/(Math.PI*this._minDiameter)*360,k=Jl(A,this._startVector);return Math.abs(k)<T},x}(Za);function Qh(d){return Math.abs(d.y)>Math.abs(d.x)}var pA=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.reset=function(){d.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},x.prototype._start=function(A){this._lastPoints=A,Qh(A[0].sub(A[1]))&&(this._valid=!1)},x.prototype._move=function(A,T,k){var U=A[0].sub(this._lastPoints[0]),j=A[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(U,j,k.timeStamp),this._valid)return this._lastPoints=A,this._active=!0,{pitchDelta:(U.y+j.y)/2*-.5}},x.prototype.gestureBeginsVertically=function(A,T,k){if(this._valid!==void 0)return this._valid;var U=A.mag()>=2,j=T.mag()>=2;if(U||j){if(!U||!j)return this._firstMove===void 0&&(this._firstMove=k),k-this._firstMove<100&&void 0;var K=A.y>0==T.y>0;return Qh(A)&&Qh(T)&&K}},x}(Za),dA={panStep:100,bearingStep:15,pitchStep:10},tl=function(){var d=dA;this._panStep=d.panStep,this._bearingStep=d.bearingStep,this._pitchStep=d.pitchStep,this._rotationDisabled=!1};function Vc(d){return d*(2-d)}tl.prototype.blur=function(){this.reset()},tl.prototype.reset=function(){this._active=!1},tl.prototype.keydown=function(d){var x=this;if(!(d.altKey||d.ctrlKey||d.metaKey)){var A=0,T=0,k=0,U=0,j=0;switch(d.keyCode){case 61:case 107:case 171:case 187:A=1;break;case 189:case 109:case 173:A=-1;break;case 37:d.shiftKey?T=-1:(d.preventDefault(),U=-1);break;case 39:d.shiftKey?T=1:(d.preventDefault(),U=1);break;case 38:d.shiftKey?k=1:(d.preventDefault(),j=-1);break;case 40:d.shiftKey?k=-1:(d.preventDefault(),j=1);break;default:return}return this._rotationDisabled&&(T=0,k=0),{cameraAnimation:function(K){var oe=K.getZoom();K.easeTo({duration:300,easeId:"keyboardHandler",easing:Vc,zoom:A?Math.round(oe)+A*(d.shiftKey?2:1):oe,bearing:K.getBearing()+T*x._bearingStep,pitch:K.getPitch()+k*x._pitchStep,offset:[-U*x._panStep,-j*x._panStep],center:K.getCenter()},{originalEvent:d})}}}},tl.prototype.enable=function(){this._enabled=!0},tl.prototype.disable=function(){this._enabled=!1,this.reset()},tl.prototype.isEnabled=function(){return this._enabled},tl.prototype.isActive=function(){return this._active},tl.prototype.disableRotation=function(){this._rotationDisabled=!0},tl.prototype.enableRotation=function(){this._rotationDisabled=!1};var Zn=function(d,x){this._map=d,this._el=d.getCanvasContainer(),this._handler=x,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,i.bindAll(["_onTimeout"],this)};Zn.prototype.setZoomRate=function(d){this._defaultZoomRate=d},Zn.prototype.setWheelZoomRate=function(d){this._wheelZoomRate=d},Zn.prototype.isEnabled=function(){return!!this._enabled},Zn.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},Zn.prototype.isZooming=function(){return!!this._zooming},Zn.prototype.enable=function(d){this.isEnabled()||(this._enabled=!0,this._aroundCenter=d&&d.around==="center")},Zn.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Zn.prototype.wheel=function(d){if(this.isEnabled()){var x=d.deltaMode===i.window.WheelEvent.DOM_DELTA_LINE?40*d.deltaY:d.deltaY,A=i.browser.now(),T=A-(this._lastWheelEventTime||0);this._lastWheelEventTime=A,x!==0&&x%4.000244140625==0?this._type="wheel":x!==0&&Math.abs(x)<4?this._type="trackpad":T>400?(this._type=null,this._lastValue=x,this._timeout=setTimeout(this._onTimeout,40,d)):this._type||(this._type=Math.abs(T*x)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,x+=this._lastValue)),d.shiftKey&&x&&(x/=4),this._type&&(this._lastWheelEvent=d,this._delta-=x,this._active||this._start(d)),d.preventDefault()}},Zn.prototype._onTimeout=function(d){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(d)},Zn.prototype._start=function(d){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var x=s.mousePos(this._el,d);this._around=i.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(x)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},Zn.prototype.renderFrame=function(){var d=this;if(this._frameId&&(this._frameId=null,this.isActive())){var x=this._map.transform;if(this._delta!==0){var A=this._type==="wheel"&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,T=2/(1+Math.exp(-Math.abs(this._delta*A)));this._delta<0&&T!==0&&(T=1/T);var k=typeof this._targetZoom=="number"?x.zoomScale(this._targetZoom):x.scale;this._targetZoom=Math.min(x.maxZoom,Math.max(x.minZoom,x.scaleZoom(k*T))),this._type==="wheel"&&(this._startZoom=x.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var U,j=typeof this._targetZoom=="number"?this._targetZoom:x.zoom,K=this._startZoom,oe=this._easing,pe=!1;if(this._type==="wheel"&&K&&oe){var Ee=Math.min((i.browser.now()-this._lastWheelEventTime)/200,1),Ce=oe(Ee);U=i.number(K,j,Ce),Ee<1?this._frameId||(this._frameId=!0):pe=!0}else U=j,pe=!0;return this._active=!0,pe&&(this._active=!1,this._finishTimeout=setTimeout(function(){d._zooming=!1,d._handler._triggerRenderFrame(),delete d._targetZoom,delete d._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!pe,zoomDelta:U-x.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},Zn.prototype._smoothOutEasing=function(d){var x=i.ease;if(this._prevEase){var A=this._prevEase,T=(i.browser.now()-A.start)/A.duration,k=A.easing(T+.01)-A.easing(T),U=.27/Math.sqrt(k*k+1e-4)*.01,j=Math.sqrt(.0729-U*U);x=i.bezier(U,j,.25,1)}return this._prevEase={start:i.browser.now(),duration:d,easing:x},x},Zn.prototype.blur=function(){this.reset()},Zn.prototype.reset=function(){this._active=!1};var eu=function(d,x){this._clickZoom=d,this._tapZoom=x};eu.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},eu.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},eu.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},eu.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var rl=function(){this.reset()};rl.prototype.reset=function(){this._active=!1},rl.prototype.blur=function(){this.reset()},rl.prototype.dblclick=function(d,x){return d.preventDefault(),{cameraAnimation:function(A){A.easeTo({duration:300,zoom:A.getZoom()+(d.shiftKey?-1:1),around:A.unproject(x)},{originalEvent:d})}}},rl.prototype.enable=function(){this._enabled=!0},rl.prototype.disable=function(){this._enabled=!1,this.reset()},rl.prototype.isEnabled=function(){return this._enabled},rl.prototype.isActive=function(){return this._active};var ra=function(){this._tap=new pc({numTouches:1,numTaps:1}),this.reset()};ra.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},ra.prototype.touchstart=function(d,x,A){this._swipePoint||(this._tapTime&&d.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?A.length>0&&(this._swipePoint=x[0],this._swipeTouch=A[0].identifier):this._tap.touchstart(d,x,A))},ra.prototype.touchmove=function(d,x,A){if(this._tapTime){if(this._swipePoint){if(A[0].identifier!==this._swipeTouch)return;var T=x[0],k=T.y-this._swipePoint.y;return this._swipePoint=T,d.preventDefault(),this._active=!0,{zoomDelta:k/128}}}else this._tap.touchmove(d,x,A)},ra.prototype.touchend=function(d,x,A){this._tapTime?this._swipePoint&&A.length===0&&this.reset():this._tap.touchend(d,x,A)&&(this._tapTime=d.timeStamp)},ra.prototype.touchcancel=function(){this.reset()},ra.prototype.enable=function(){this._enabled=!0},ra.prototype.disable=function(){this._enabled=!1,this.reset()},ra.prototype.isEnabled=function(){return this._enabled},ra.prototype.isActive=function(){return this._active};var Jh=function(d,x,A){this._el=d,this._mousePan=x,this._touchPan=A};Jh.prototype.enable=function(d){this._inertiaOptions=d||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},Jh.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},Jh.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},Jh.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var sh=function(d,x,A){this._pitchWithRotate=d.pitchWithRotate,this._mouseRotate=x,this._mousePitch=A};sh.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},sh.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},sh.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},sh.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var Sl=function(d,x,A,T){this._el=d,this._touchZoom=x,this._touchRotate=A,this._tapDragZoom=T,this._rotationDisabled=!1,this._enabled=!0};Sl.prototype.enable=function(d){this._touchZoom.enable(d),this._rotationDisabled||this._touchRotate.enable(d),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},Sl.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},Sl.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},Sl.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},Sl.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},Sl.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var Us=function(d){return d.zoom||d.drag||d.pitch||d.rotate},id=function(d){function x(){d.apply(this,arguments)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x}(i.Event);function Qr(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta}var Ur=function(d,x){this._map=d,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Aa(d),this._bearingSnap=x.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(x),i.bindAll(["handleEvent","handleWindowEvent"],this);var A=this._el;this._listeners=[[A,"touchstart",{passive:!0}],[A,"touchmove",{passive:!1}],[A,"touchend",void 0],[A,"touchcancel",void 0],[A,"mousedown",void 0],[A,"mousemove",void 0],[A,"mouseup",void 0],[i.window.document,"mousemove",{capture:!0}],[i.window.document,"mouseup",void 0],[A,"mouseover",void 0],[A,"mouseout",void 0],[A,"dblclick",void 0],[A,"click",void 0],[A,"keydown",{capture:!1}],[A,"keyup",void 0],[A,"wheel",{passive:!1}],[A,"contextmenu",void 0],[i.window,"blur",void 0]];for(var T=0,k=this._listeners;T<k.length;T+=1){var U=k[T],j=U[0];s.addEventListener(j,U[1],j===i.window.document?this.handleWindowEvent:this.handleEvent,U[2])}};Ur.prototype.destroy=function(){for(var d=0,x=this._listeners;d<x.length;d+=1){var A=x[d],T=A[0];s.removeEventListener(T,A[1],T===i.window.document?this.handleWindowEvent:this.handleEvent,A[2])}},Ur.prototype._addDefaultHandlers=function(d){var x=this._map,A=x.getCanvasContainer();this._add("mapEvent",new xi(x,d));var T=x.boxZoom=new fo(x,d);this._add("boxZoom",T);var k=new dc,U=new rl;x.doubleClickZoom=new eu(U,k),this._add("tapZoom",k),this._add("clickZoom",U);var j=new ra;this._add("tapDragZoom",j);var K=x.touchPitch=new pA;this._add("touchPitch",K);var oe=new Kh(d),pe=new Lu(d);x.dragRotate=new sh(d,oe,pe),this._add("mouseRotate",oe,["mousePitch"]),this._add("mousePitch",pe,["mouseRotate"]);var Ee=new Pm(d),Ce=new Uc(d);x.dragPan=new Jh(A,Ee,Ce),this._add("mousePan",Ee),this._add("touchPan",Ce,["touchZoom","touchRotate"]);var Ie=new fA,Ve=new vs;x.touchZoomRotate=new Sl(A,Ve,Ie,j),this._add("touchRotate",Ie,["touchPan","touchZoom"]),this._add("touchZoom",Ve,["touchPan","touchRotate"]);var Fe=x.scrollZoom=new Zn(x,this);this._add("scrollZoom",Fe,["mousePan"]);var Ke=x.keyboard=new tl;this._add("keyboard",Ke),this._add("blockableMapEvent",new Tr(x));for(var De=0,$e=["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"];De<$e.length;De+=1){var nt=$e[De];d.interactive&&d[nt]&&x[nt].enable(d[nt])}},Ur.prototype._add=function(d,x,A){this._handlers.push({handlerName:d,handler:x,allowed:A}),this._handlersById[d]=x},Ur.prototype.stop=function(d){if(!this._updatingCamera){for(var x=0,A=this._handlers;x<A.length;x+=1)A[x].handler.reset();this._inertia.clear(),this._fireEvents({},{},d),this._changes=[]}},Ur.prototype.isActive=function(){for(var d=0,x=this._handlers;d<x.length;d+=1)if(x[d].handler.isActive())return!0;return!1},Ur.prototype.isZooming=function(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()},Ur.prototype.isRotating=function(){return!!this._eventsInProgress.rotate},Ur.prototype.isMoving=function(){return Boolean(Us(this._eventsInProgress))||this.isZooming()},Ur.prototype._blockedByActive=function(d,x,A){for(var T in d)if(T!==A&&(!x||x.indexOf(T)<0))return!0;return!1},Ur.prototype.handleWindowEvent=function(d){this.handleEvent(d,d.type+"Window")},Ur.prototype._getMapTouches=function(d){for(var x=[],A=0,T=d;A<T.length;A+=1){var k=T[A];this._el.contains(k.target)&&x.push(k)}return x},Ur.prototype.handleEvent=function(d,x){this._updatingCamera=!0;for(var A=d.type==="renderFrame"?void 0:d,T={needsRenderFrame:!1},k={},U={},j=d.touches?this._getMapTouches(d.touches):void 0,K=j?s.touchPos(this._el,j):s.mousePos(this._el,d),oe=0,pe=this._handlers;oe<pe.length;oe+=1){var Ee=pe[oe],Ce=Ee.handlerName,Ie=Ee.handler,Ve=Ee.allowed;if(Ie.isEnabled()){var Fe=void 0;this._blockedByActive(U,Ve,Ce)?Ie.reset():Ie[x||d.type]&&(Fe=Ie[x||d.type](d,K,j),this.mergeHandlerResult(T,k,Fe,Ce,A),Fe&&Fe.needsRenderFrame&&this._triggerRenderFrame()),(Fe||Ie.isActive())&&(U[Ce]=Ie)}}var Ke={};for(var De in this._previousActiveHandlers)U[De]||(Ke[De]=A);this._previousActiveHandlers=U,(Object.keys(Ke).length||Qr(T))&&(this._changes.push([T,k,Ke]),this._triggerRenderFrame()),(Object.keys(U).length||Qr(T))&&this._map._stop(!0),this._updatingCamera=!1;var $e=T.cameraAnimation;$e&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],$e(this._map))},Ur.prototype.mergeHandlerResult=function(d,x,A,T,k){if(A){i.extend(d,A);var U={handlerName:T,originalEvent:A.originalEvent||k};A.zoomDelta!==void 0&&(x.zoom=U),A.panDelta!==void 0&&(x.drag=U),A.pitchDelta!==void 0&&(x.pitch=U),A.bearingDelta!==void 0&&(x.rotate=U)}},Ur.prototype._applyChanges=function(){for(var d={},x={},A={},T=0,k=this._changes;T<k.length;T+=1){var U=k[T],j=U[0],K=U[1],oe=U[2];j.panDelta&&(d.panDelta=(d.panDelta||new i.Point(0,0))._add(j.panDelta)),j.zoomDelta&&(d.zoomDelta=(d.zoomDelta||0)+j.zoomDelta),j.bearingDelta&&(d.bearingDelta=(d.bearingDelta||0)+j.bearingDelta),j.pitchDelta&&(d.pitchDelta=(d.pitchDelta||0)+j.pitchDelta),j.around!==void 0&&(d.around=j.around),j.pinchAround!==void 0&&(d.pinchAround=j.pinchAround),j.noInertia&&(d.noInertia=j.noInertia),i.extend(x,K),i.extend(A,oe)}this._updateMapTransform(d,x,A),this._changes=[]},Ur.prototype._updateMapTransform=function(d,x,A){var T=this._map,k=T.transform;if(!Qr(d))return this._fireEvents(x,A,!0);var U=d.panDelta,j=d.zoomDelta,K=d.bearingDelta,oe=d.pitchDelta,pe=d.around,Ee=d.pinchAround;Ee!==void 0&&(pe=Ee),T._stop(!0),pe=pe||T.transform.centerPoint;var Ce=k.pointLocation(U?pe.sub(U):pe);K&&(k.bearing+=K),oe&&(k.pitch+=oe),j&&(k.zoom+=j),k.setLocationAtPoint(Ce,pe),this._map._update(),d.noInertia||this._inertia.record(d),this._fireEvents(x,A,!0)},Ur.prototype._fireEvents=function(d,x,A){var T=this,k=Us(this._eventsInProgress),U=Us(d),j={};for(var K in d)this._eventsInProgress[K]||(j[K+"start"]=d[K].originalEvent),this._eventsInProgress[K]=d[K];for(var oe in!k&&U&&this._fireEvent("movestart",U.originalEvent),j)this._fireEvent(oe,j[oe]);for(var pe in U&&this._fireEvent("move",U.originalEvent),d)this._fireEvent(pe,d[pe].originalEvent);var Ee,Ce={};for(var Ie in this._eventsInProgress){var Ve=this._eventsInProgress[Ie],Fe=Ve.handlerName,Ke=Ve.originalEvent;this._handlersById[Fe].isActive()||(delete this._eventsInProgress[Ie],Ce[Ie+"end"]=Ee=x[Fe]||Ke)}for(var De in Ce)this._fireEvent(De,Ce[De]);var $e=Us(this._eventsInProgress);if(A&&(k||U)&&!$e){this._updatingCamera=!0;var nt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),ft=function(Mt){return Mt!==0&&-T._bearingSnap<Mt&&Mt<T._bearingSnap};nt?(ft(nt.bearing||this._map.getBearing())&&(nt.bearing=0),this._map.easeTo(nt,{originalEvent:Ee})):(this._map.fire(new i.Event("moveend",{originalEvent:Ee})),ft(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1}},Ur.prototype._fireEvent=function(d,x){this._map.fire(new i.Event(d,x?{originalEvent:x}:{}))},Ur.prototype._requestFrame=function(){var d=this;return this._map.triggerRepaint(),this._map._renderTaskQueue.add(function(x){delete d._frameId,d.handleEvent(new id("renderFrame",{timeStamp:x})),d._applyChanges()})},Ur.prototype._triggerRenderFrame=function(){this._frameId===void 0&&(this._frameId=this._requestFrame())};var ah=function(d){function x(A,T){d.call(this),this._moving=!1,this._zooming=!1,this.transform=A,this._bearingSnap=T.bearingSnap,i.bindAll(["_renderFrameCallback"],this)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.getCenter=function(){return new i.LngLat(this.transform.center.lng,this.transform.center.lat)},x.prototype.setCenter=function(A,T){return this.jumpTo({center:A},T)},x.prototype.panBy=function(A,T,k){return A=i.Point.convert(A).mult(-1),this.panTo(this.transform.center,i.extend({offset:A},T),k)},x.prototype.panTo=function(A,T,k){return this.easeTo(i.extend({center:A},T),k)},x.prototype.getZoom=function(){return this.transform.zoom},x.prototype.setZoom=function(A,T){return this.jumpTo({zoom:A},T),this},x.prototype.zoomTo=function(A,T,k){return this.easeTo(i.extend({zoom:A},T),k)},x.prototype.zoomIn=function(A,T){return this.zoomTo(this.getZoom()+1,A,T),this},x.prototype.zoomOut=function(A,T){return this.zoomTo(this.getZoom()-1,A,T),this},x.prototype.getBearing=function(){return this.transform.bearing},x.prototype.setBearing=function(A,T){return this.jumpTo({bearing:A},T),this},x.prototype.getPadding=function(){return this.transform.padding},x.prototype.setPadding=function(A,T){return this.jumpTo({padding:A},T),this},x.prototype.rotateTo=function(A,T,k){return this.easeTo(i.extend({bearing:A},T),k)},x.prototype.resetNorth=function(A,T){return this.rotateTo(0,i.extend({duration:1e3},A),T),this},x.prototype.resetNorthPitch=function(A,T){return this.easeTo(i.extend({bearing:0,pitch:0,duration:1e3},A),T),this},x.prototype.snapToNorth=function(A,T){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(A,T):this},x.prototype.getPitch=function(){return this.transform.pitch},x.prototype.setPitch=function(A,T){return this.jumpTo({pitch:A},T),this},x.prototype.cameraForBounds=function(A,T){A=i.LngLatBounds.convert(A);var k=T&&T.bearing||0;return this._cameraForBoxAndBearing(A.getNorthWest(),A.getSouthEast(),k,T)},x.prototype._cameraForBoxAndBearing=function(A,T,k,U){var j={top:0,bottom:0,right:0,left:0};if(typeof(U=i.extend({padding:j,offset:[0,0],maxZoom:this.transform.maxZoom},U)).padding=="number"){var K=U.padding;U.padding={top:K,bottom:K,right:K,left:K}}U.padding=i.extend(j,U.padding);var oe=this.transform,pe=oe.padding,Ee=oe.project(i.LngLat.convert(A)),Ce=oe.project(i.LngLat.convert(T)),Ie=Ee.rotate(-k*Math.PI/180),Ve=Ce.rotate(-k*Math.PI/180),Fe=new i.Point(Math.max(Ie.x,Ve.x),Math.max(Ie.y,Ve.y)),Ke=new i.Point(Math.min(Ie.x,Ve.x),Math.min(Ie.y,Ve.y)),De=Fe.sub(Ke),$e=(oe.width-(pe.left+pe.right+U.padding.left+U.padding.right))/De.x,nt=(oe.height-(pe.top+pe.bottom+U.padding.top+U.padding.bottom))/De.y;if(!(nt<0||$e<0)){var ft=Math.min(oe.scaleZoom(oe.scale*Math.min($e,nt)),U.maxZoom),Mt=typeof U.offset.x=="number"?new i.Point(U.offset.x,U.offset.y):i.Point.convert(U.offset),xt=new i.Point((U.padding.left-U.padding.right)/2,(U.padding.top-U.padding.bottom)/2).rotate(k*Math.PI/180),It=Mt.add(xt).mult(oe.scale/oe.zoomScale(ft));return{center:oe.unproject(Ee.add(Ce).div(2).sub(It)),zoom:ft,bearing:k}}i.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.")},x.prototype.fitBounds=function(A,T,k){return this._fitInternal(this.cameraForBounds(A,T),T,k)},x.prototype.fitScreenCoordinates=function(A,T,k,U,j){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(i.Point.convert(A)),this.transform.pointLocation(i.Point.convert(T)),k,U),U,j)},x.prototype._fitInternal=function(A,T,k){return A?(delete(T=i.extend(A,T)).padding,T.linear?this.easeTo(T,k):this.flyTo(T,k)):this},x.prototype.jumpTo=function(A,T){this.stop();var k=this.transform,U=!1,j=!1,K=!1;return"zoom"in A&&k.zoom!==+A.zoom&&(U=!0,k.zoom=+A.zoom),A.center!==void 0&&(k.center=i.LngLat.convert(A.center)),"bearing"in A&&k.bearing!==+A.bearing&&(j=!0,k.bearing=+A.bearing),"pitch"in A&&k.pitch!==+A.pitch&&(K=!0,k.pitch=+A.pitch),A.padding==null||k.isPaddingEqual(A.padding)||(k.padding=A.padding),this.fire(new i.Event("movestart",T)).fire(new i.Event("move",T)),U&&this.fire(new i.Event("zoomstart",T)).fire(new i.Event("zoom",T)).fire(new i.Event("zoomend",T)),j&&this.fire(new i.Event("rotatestart",T)).fire(new i.Event("rotate",T)).fire(new i.Event("rotateend",T)),K&&this.fire(new i.Event("pitchstart",T)).fire(new i.Event("pitch",T)).fire(new i.Event("pitchend",T)),this.fire(new i.Event("moveend",T))},x.prototype.easeTo=function(A,T){var k=this;this._stop(!1,A.easeId),((A=i.extend({offset:[0,0],duration:500,easing:i.ease},A)).animate===!1||!A.essential&&i.browser.prefersReducedMotion)&&(A.duration=0);var U=this.transform,j=this.getZoom(),K=this.getBearing(),oe=this.getPitch(),pe=this.getPadding(),Ee="zoom"in A?+A.zoom:j,Ce="bearing"in A?this._normalizeBearing(A.bearing,K):K,Ie="pitch"in A?+A.pitch:oe,Ve="padding"in A?A.padding:U.padding,Fe=i.Point.convert(A.offset),Ke=U.centerPoint.add(Fe),De=U.pointLocation(Ke),$e=i.LngLat.convert(A.center||De);this._normalizeCenter($e);var nt,ft,Mt=U.project(De),xt=U.project($e).sub(Mt),It=U.zoomScale(Ee-j);A.around&&(nt=i.LngLat.convert(A.around),ft=U.locationPoint(nt));var qt={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=this._zooming||Ee!==j,this._rotating=this._rotating||K!==Ce,this._pitching=this._pitching||Ie!==oe,this._padding=!U.isPaddingEqual(Ve),this._easeId=A.easeId,this._prepareEase(T,A.noMoveStart,qt),this._ease(function(ir){if(k._zooming&&(U.zoom=i.number(j,Ee,ir)),k._rotating&&(U.bearing=i.number(K,Ce,ir)),k._pitching&&(U.pitch=i.number(oe,Ie,ir)),k._padding&&(U.interpolatePadding(pe,Ve,ir),Ke=U.centerPoint.add(Fe)),nt)U.setLocationAtPoint(nt,ft);else{var tr=U.zoomScale(U.zoom-j),Cr=Ee>j?Math.min(2,It):Math.max(.5,It),Jr=Math.pow(Cr,1-ir),on=U.unproject(Mt.add(xt.mult(ir*Jr)).mult(tr));U.setLocationAtPoint(U.renderWorldCopies?on.wrap():on,Ke)}k._fireMoveEvents(T)},function(ir){k._afterEase(T,ir)},A),this},x.prototype._prepareEase=function(A,T,k){k===void 0&&(k={}),this._moving=!0,T||k.moving||this.fire(new i.Event("movestart",A)),this._zooming&&!k.zooming&&this.fire(new i.Event("zoomstart",A)),this._rotating&&!k.rotating&&this.fire(new i.Event("rotatestart",A)),this._pitching&&!k.pitching&&this.fire(new i.Event("pitchstart",A))},x.prototype._fireMoveEvents=function(A){this.fire(new i.Event("move",A)),this._zooming&&this.fire(new i.Event("zoom",A)),this._rotating&&this.fire(new i.Event("rotate",A)),this._pitching&&this.fire(new i.Event("pitch",A))},x.prototype._afterEase=function(A,T){if(!this._easeId||!T||this._easeId!==T){delete this._easeId;var k=this._zooming,U=this._rotating,j=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,k&&this.fire(new i.Event("zoomend",A)),U&&this.fire(new i.Event("rotateend",A)),j&&this.fire(new i.Event("pitchend",A)),this.fire(new i.Event("moveend",A))}},x.prototype.flyTo=function(A,T){var k=this;if(!A.essential&&i.browser.prefersReducedMotion){var U=i.pick(A,["center","zoom","bearing","pitch","around"]);return this.jumpTo(U,T)}this.stop(),A=i.extend({offset:[0,0],speed:1.2,curve:1.42,easing:i.ease},A);var j=this.transform,K=this.getZoom(),oe=this.getBearing(),pe=this.getPitch(),Ee=this.getPadding(),Ce="zoom"in A?i.clamp(+A.zoom,j.minZoom,j.maxZoom):K,Ie="bearing"in A?this._normalizeBearing(A.bearing,oe):oe,Ve="pitch"in A?+A.pitch:pe,Fe="padding"in A?A.padding:j.padding,Ke=j.zoomScale(Ce-K),De=i.Point.convert(A.offset),$e=j.centerPoint.add(De),nt=j.pointLocation($e),ft=i.LngLat.convert(A.center||nt);this._normalizeCenter(ft);var Mt=j.project(nt),xt=j.project(ft).sub(Mt),It=A.curve,qt=Math.max(j.width,j.height),ir=qt/Ke,tr=xt.mag();if("minZoom"in A){var Cr=i.clamp(Math.min(A.minZoom,K,Ce),j.minZoom,j.maxZoom),Jr=qt/j.zoomScale(Cr-K);It=Math.sqrt(Jr/tr*2)}var on=It*It;function rn(dn){var ln=(ir*ir-qt*qt+(dn?-1:1)*on*on*tr*tr)/(2*(dn?ir:qt)*on*tr);return Math.log(Math.sqrt(ln*ln+1)-ln)}function fi(dn){return(Math.exp(dn)-Math.exp(-dn))/2}function Lr(dn){return(Math.exp(dn)+Math.exp(-dn))/2}var bn=rn(0),wn=function(dn){return Lr(bn)/Lr(bn+It*dn)},mn=function(dn){return qt*((Lr(bn)*(fi(ln=bn+It*dn)/Lr(ln))-fi(bn))/on)/tr;var ln},An=(rn(1)-bn)/It;if(Math.abs(tr)<1e-6||!isFinite(An)){if(Math.abs(qt-ir)<1e-6)return this.easeTo(A,T);var Ln=ir<qt?-1:1;An=Math.abs(Math.log(ir/qt))/It,mn=function(){return 0},wn=function(dn){return Math.exp(Ln*It*dn)}}return A.duration="duration"in A?+A.duration:1e3*An/("screenSpeed"in A?+A.screenSpeed/It:+A.speed),A.maxDuration&&A.duration>A.maxDuration&&(A.duration=0),this._zooming=!0,this._rotating=oe!==Ie,this._pitching=Ve!==pe,this._padding=!j.isPaddingEqual(Fe),this._prepareEase(T,!1),this._ease(function(dn){var ln=dn*An,Rs=1/wn(ln);j.zoom=dn===1?Ce:K+j.scaleZoom(Rs),k._rotating&&(j.bearing=i.number(oe,Ie,dn)),k._pitching&&(j.pitch=i.number(pe,Ve,dn)),k._padding&&(j.interpolatePadding(Ee,Fe,dn),$e=j.centerPoint.add(De));var Yi=dn===1?ft:j.unproject(Mt.add(xt.mult(mn(ln))).mult(Rs));j.setLocationAtPoint(j.renderWorldCopies?Yi.wrap():Yi,$e),k._fireMoveEvents(T)},function(){return k._afterEase(T)},A),this},x.prototype.isEasing=function(){return!!this._easeFrameId},x.prototype.stop=function(){return this._stop()},x.prototype._stop=function(A,T){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var k=this._onEaseEnd;delete this._onEaseEnd,k.call(this,T)}if(!A){var U=this.handlers;U&&U.stop(!1)}return this},x.prototype._ease=function(A,T,k){k.animate===!1||k.duration===0?(A(1),T()):(this._easeStart=i.browser.now(),this._easeOptions=k,this._onEaseFrame=A,this._onEaseEnd=T,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},x.prototype._renderFrameCallback=function(){var A=Math.min((i.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(A)),A<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},x.prototype._normalizeBearing=function(A,T){A=i.wrap(A,-180,180);var k=Math.abs(A-T);return Math.abs(A-360-T)<k&&(A-=360),Math.abs(A+360-T)<k&&(A+=360),A},x.prototype._normalizeCenter=function(A){var T=this.transform;if(T.renderWorldCopies&&!T.lngRange){var k=A.lng-T.center.lng;A.lng+=k>180?-360:k<-180?360:0}},x}(i.Evented),ka=function(d){d===void 0&&(d={}),this.options=d,i.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)};ka.prototype.getDefaultPosition=function(){return"bottom-right"},ka.prototype.onAdd=function(d){var x=this.options&&this.options.compact;return this._map=d,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=s.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=s.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),x&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),x===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},ka.prototype.onRemove=function(){s.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},ka.prototype._setElementTitle=function(d,x){var A=this._map._getUIString("AttributionControl."+x);d.title=A,d.setAttribute("aria-label",A)},ka.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"))},ka.prototype._updateEditLink=function(){var d=this._editLink;d||(d=this._editLink=this._container.querySelector(".mapbox-improve-map"));var x=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||i.config.ACCESS_TOKEN}];if(d){var A=x.reduce(function(T,k,U){return k.value&&(T+=k.key+"="+k.value+(U<x.length-1?"&":"")),T},"?");d.href=i.config.FEEDBACK_URL+"/"+A+(this._map._hash?this._map._hash.getHashString(!0):""),d.rel="noopener nofollow",this._setElementTitle(d,"MapFeedback")}},ka.prototype._updateData=function(d){!d||d.sourceDataType!=="metadata"&&d.sourceDataType!=="visibility"&&d.dataType!=="style"||(this._updateAttributions(),this._updateEditLink())},ka.prototype._updateAttributions=function(){if(this._map.style){var d=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?d=d.concat(this.options.customAttribution.map(function(K){return typeof K!="string"?"":K})):typeof this.options.customAttribution=="string"&&d.push(this.options.customAttribution)),this._map.style.stylesheet){var x=this._map.style.stylesheet;this.styleOwner=x.owner,this.styleId=x.id}var A=this._map.style.sourceCaches;for(var T in A){var k=A[T];if(k.used){var U=k.getSource();U.attribution&&d.indexOf(U.attribution)<0&&d.push(U.attribution)}}d.sort(function(K,oe){return K.length-oe.length});var j=(d=d.filter(function(K,oe){for(var pe=oe+1;pe<d.length;pe++)if(d[pe].indexOf(K)>=0)return!1;return!0})).join(" | ");j!==this._attribHTML&&(this._attribHTML=j,d.length?(this._innerContainer.innerHTML=j,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},ka.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")};var jc=function(){i.bindAll(["_updateLogo"],this),i.bindAll(["_updateCompact"],this)};jc.prototype.onAdd=function(d){this._map=d,this._container=s.create("div","mapboxgl-ctrl");var x=s.create("a","mapboxgl-ctrl-logo");return x.target="_blank",x.rel="noopener nofollow",x.href="https://www.mapbox.com/",x.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),x.setAttribute("rel","noopener nofollow"),this._container.appendChild(x),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},jc.prototype.onRemove=function(){s.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},jc.prototype.getDefaultPosition=function(){return"bottom-left"},jc.prototype._updateLogo=function(d){d&&d.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")},jc.prototype._logoRequired=function(){if(this._map.style){var d=this._map.style.sourceCaches;for(var x in d)if(d[x].getSource().mapbox_logo)return!0;return!1}},jc.prototype._updateCompact=function(){var d=this._container.children;if(d.length){var x=d[0];this._map.getCanvasContainer().offsetWidth<250?x.classList.add("mapboxgl-compact"):x.classList.remove("mapboxgl-compact")}};var Vs=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Vs.prototype.add=function(d){var x=++this._id;return this._queue.push({callback:d,id:x,cancelled:!1}),x},Vs.prototype.remove=function(d){for(var x=this._currentlyRunning,A=0,T=x?this._queue.concat(x):this._queue;A<T.length;A+=1){var k=T[A];if(k.id===d)return void(k.cancelled=!0)}},Vs.prototype.run=function(d){d===void 0&&(d=0);var x=this._currentlyRunning=this._queue;this._queue=[];for(var A=0,T=x;A<T.length;A+=1){var k=T[A];if(!k.cancelled&&(k.callback(d),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},Vs.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var Qa={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm"},mA=i.window.HTMLImageElement,Yf=i.window.HTMLElement,Ri=i.window.ImageBitmap,js={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},AA=function(d){function x(T){var k=this;if((T=i.extend({},js,T)).minZoom!=null&&T.maxZoom!=null&&T.minZoom>T.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(T.minPitch!=null&&T.maxPitch!=null&&T.minPitch>T.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(T.minPitch!=null&&T.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(T.maxPitch!=null&&T.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var U=new xr(T.minZoom,T.maxZoom,T.minPitch,T.maxPitch,T.renderWorldCopies);if(d.call(this,U,T),this._interactive=T.interactive,this._maxTileCacheSize=T.maxTileCacheSize,this._failIfMajorPerformanceCaveat=T.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=T.preserveDrawingBuffer,this._antialias=T.antialias,this._trackResize=T.trackResize,this._bearingSnap=T.bearingSnap,this._refreshExpiredTiles=T.refreshExpiredTiles,this._fadeDuration=T.fadeDuration,this._crossSourceCollisions=T.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=T.collectResourceTiming,this._renderTaskQueue=new Vs,this._controls=[],this._mapId=i.uniqueId(),this._locale=i.extend({},Qa,T.locale),this._clickTolerance=T.clickTolerance,this._requestManager=new i.RequestManager(T.transformRequest,T.accessToken),typeof T.container=="string"){if(this._container=i.window.document.getElementById(T.container),!this._container)throw new Error("Container '"+T.container+"' not found.")}else{if(!(T.container instanceof Yf))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=T.container}if(T.maxBounds&&this.setMaxBounds(T.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",function(){return k._update(!1)}),this.on("moveend",function(){return k._update(!1)}),this.on("zoom",function(){return k._update(!0)}),i.window!==void 0&&(i.window.addEventListener("online",this._onWindowOnline,!1),i.window.addEventListener("resize",this._onWindowResize,!1),i.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new Ur(this,T),this._hash=T.hash&&new Cn(typeof T.hash=="string"&&T.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:T.center,zoom:T.zoom,bearing:T.bearing,pitch:T.pitch}),T.bounds&&(this.resize(),this.fitBounds(T.bounds,i.extend({},T.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=T.localIdeographFontFamily,T.style&&this.setStyle(T.style,{localIdeographFontFamily:T.localIdeographFontFamily}),T.attributionControl&&this.addControl(new ka({customAttribution:T.customAttribution})),this.addControl(new jc,T.logoPosition),this.on("style.load",function(){k.transform.unmodified&&k.jumpTo(k.style.stylesheet)}),this.on("data",function(j){k._update(j.dataType==="style"),k.fire(new i.Event(j.dataType+"data",j))}),this.on("dataloading",function(j){k.fire(new i.Event(j.dataType+"dataloading",j))})}d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x;var A={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return x.prototype._getMapId=function(){return this._mapId},x.prototype.addControl=function(T,k){if(k===void 0&&(k=T.getDefaultPosition?T.getDefaultPosition():"top-right"),!T||!T.onAdd)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var U=T.onAdd(this);this._controls.push(T);var j=this._controlPositions[k];return k.indexOf("bottom")!==-1?j.insertBefore(U,j.firstChild):j.appendChild(U),this},x.prototype.removeControl=function(T){if(!T||!T.onRemove)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var k=this._controls.indexOf(T);return k>-1&&this._controls.splice(k,1),T.onRemove(this),this},x.prototype.hasControl=function(T){return this._controls.indexOf(T)>-1},x.prototype.resize=function(T){var k=this._containerDimensions(),U=k[0],j=k[1];if(U===this.transform.width&&j===this.transform.height)return this;this._resizeCanvas(U,j),this.transform.resize(U,j),this.painter.resize(U,j);var K=!this._moving;return K&&this.fire(new i.Event("movestart",T)).fire(new i.Event("move",T)),this.fire(new i.Event("resize",T)),K&&this.fire(new i.Event("moveend",T)),this},x.prototype.getBounds=function(){return this.transform.getBounds()},x.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},x.prototype.setMaxBounds=function(T){return this.transform.setMaxBounds(i.LngLatBounds.convert(T)),this._update()},x.prototype.setMinZoom=function(T){if((T=T??-2)>=-2&&T<=this.transform.maxZoom)return this.transform.minZoom=T,this._update(),this.getZoom()<T&&this.setZoom(T),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")},x.prototype.getMinZoom=function(){return this.transform.minZoom},x.prototype.setMaxZoom=function(T){if((T=T??22)>=this.transform.minZoom)return this.transform.maxZoom=T,this._update(),this.getZoom()>T&&this.setZoom(T),this;throw new Error("maxZoom must be greater than the current minZoom")},x.prototype.getMaxZoom=function(){return this.transform.maxZoom},x.prototype.setMinPitch=function(T){if((T=T??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(T>=0&&T<=this.transform.maxPitch)return this.transform.minPitch=T,this._update(),this.getPitch()<T&&this.setPitch(T),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")},x.prototype.getMinPitch=function(){return this.transform.minPitch},x.prototype.setMaxPitch=function(T){if((T=T??60)>60)throw new Error("maxPitch must be less than or equal to 60");if(T>=this.transform.minPitch)return this.transform.maxPitch=T,this._update(),this.getPitch()>T&&this.setPitch(T),this;throw new Error("maxPitch must be greater than the current minPitch")},x.prototype.getMaxPitch=function(){return this.transform.maxPitch},x.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},x.prototype.setRenderWorldCopies=function(T){return this.transform.renderWorldCopies=T,this._update()},x.prototype.project=function(T){return this.transform.locationPoint(i.LngLat.convert(T))},x.prototype.unproject=function(T){return this.transform.pointLocation(i.Point.convert(T))},x.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},x.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},x.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},x.prototype._createDelegatedListener=function(T,k,U){var j,K=this;if(T==="mouseenter"||T==="mouseover"){var oe=!1;return{layer:k,listener:U,delegates:{mousemove:function(Ee){var Ce=K.getLayer(k)?K.queryRenderedFeatures(Ee.point,{layers:[k]}):[];Ce.length?oe||(oe=!0,U.call(K,new xs(T,K,Ee.originalEvent,{features:Ce}))):oe=!1},mouseout:function(){oe=!1}}}}if(T==="mouseleave"||T==="mouseout"){var pe=!1;return{layer:k,listener:U,delegates:{mousemove:function(Ee){(K.getLayer(k)?K.queryRenderedFeatures(Ee.point,{layers:[k]}):[]).length?pe=!0:pe&&(pe=!1,U.call(K,new xs(T,K,Ee.originalEvent)))},mouseout:function(Ee){pe&&(pe=!1,U.call(K,new xs(T,K,Ee.originalEvent)))}}}}return{layer:k,listener:U,delegates:(j={},j[T]=function(Ee){var Ce=K.getLayer(k)?K.queryRenderedFeatures(Ee.point,{layers:[k]}):[];Ce.length&&(Ee.features=Ce,U.call(K,Ee),delete Ee.features)},j)}},x.prototype.on=function(T,k,U){if(U===void 0)return d.prototype.on.call(this,T,k);var j=this._createDelegatedListener(T,k,U);for(var K in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[T]=this._delegatedListeners[T]||[],this._delegatedListeners[T].push(j),j.delegates)this.on(K,j.delegates[K]);return this},x.prototype.once=function(T,k,U){if(U===void 0)return d.prototype.once.call(this,T,k);var j=this._createDelegatedListener(T,k,U);for(var K in j.delegates)this.once(K,j.delegates[K]);return this},x.prototype.off=function(T,k,U){var j=this;return U===void 0?d.prototype.off.call(this,T,k):(this._delegatedListeners&&this._delegatedListeners[T]&&function(K){for(var oe=K[T],pe=0;pe<oe.length;pe++){var Ee=oe[pe];if(Ee.layer===k&&Ee.listener===U){for(var Ce in Ee.delegates)j.off(Ce,Ee.delegates[Ce]);return oe.splice(pe,1),j}}}(this._delegatedListeners),this)},x.prototype.queryRenderedFeatures=function(T,k){if(!this.style)return[];var U;if(k!==void 0||T===void 0||T instanceof i.Point||Array.isArray(T)||(k=T,T=void 0),k=k||{},(T=T||[[0,0],[this.transform.width,this.transform.height]])instanceof i.Point||typeof T[0]=="number")U=[i.Point.convert(T)];else{var j=i.Point.convert(T[0]),K=i.Point.convert(T[1]);U=[j,new i.Point(K.x,j.y),K,new i.Point(j.x,K.y),j]}return this.style.queryRenderedFeatures(U,k,this.transform)},x.prototype.querySourceFeatures=function(T,k){return this.style.querySourceFeatures(T,k)},x.prototype.setStyle=function(T,k){return(k=i.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},k)).diff!==!1&&k.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&T?(this._diffStyle(T,k),this):(this._localIdeographFontFamily=k.localIdeographFontFamily,this._updateStyle(T,k))},x.prototype._getUIString=function(T){var k=this._locale[T];if(k==null)throw new Error("Missing UI string '"+T+"'");return k},x.prototype._updateStyle=function(T,k){return this.style&&(this.style.setEventedParent(null),this.style._remove()),T?(this.style=new Oa(this,k||{}),this.style.setEventedParent(this,{style:this.style}),typeof T=="string"?this.style.loadURL(T):this.style.loadJSON(T),this):(delete this.style,this)},x.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new Oa(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())},x.prototype._diffStyle=function(T,k){var U=this;if(typeof T=="string"){var j=this._requestManager.normalizeStyleURL(T),K=this._requestManager.transformRequest(j,i.ResourceType.Style);i.getJSON(K,function(oe,pe){oe?U.fire(new i.ErrorEvent(oe)):pe&&U._updateDiff(pe,k)})}else typeof T=="object"&&this._updateDiff(T,k)},x.prototype._updateDiff=function(T,k){try{this.style.setState(T)&&this._update(!0)}catch(U){i.warnOnce("Unable to perform style diff: "+(U.message||U.error||U)+". Rebuilding the style from scratch."),this._updateStyle(T,k)}},x.prototype.getStyle=function(){if(this.style)return this.style.serialize()},x.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():i.warnOnce("There is no style added to the map.")},x.prototype.addSource=function(T,k){return this._lazyInitEmptyStyle(),this.style.addSource(T,k),this._update(!0)},x.prototype.isSourceLoaded=function(T){var k=this.style&&this.style.sourceCaches[T];if(k!==void 0)return k.loaded();this.fire(new i.ErrorEvent(new Error("There is no source with ID '"+T+"'")))},x.prototype.areTilesLoaded=function(){var T=this.style&&this.style.sourceCaches;for(var k in T){var U=T[k]._tiles;for(var j in U){var K=U[j];if(K.state!=="loaded"&&K.state!=="errored")return!1}}return!0},x.prototype.addSourceType=function(T,k,U){return this._lazyInitEmptyStyle(),this.style.addSourceType(T,k,U)},x.prototype.removeSource=function(T){return this.style.removeSource(T),this._update(!0)},x.prototype.getSource=function(T){return this.style.getSource(T)},x.prototype.addImage=function(T,k,U){U===void 0&&(U={});var j=U.pixelRatio;j===void 0&&(j=1);var K=U.sdf;K===void 0&&(K=!1);var oe=U.stretchX,pe=U.stretchY,Ee=U.content;if(this._lazyInitEmptyStyle(),k instanceof mA||Ri&&k instanceof Ri){var Ce=i.browser.getImageData(k);this.style.addImage(T,{data:new i.RGBAImage({width:Ce.width,height:Ce.height},Ce.data),pixelRatio:j,stretchX:oe,stretchY:pe,content:Ee,sdf:K,version:0})}else{if(k.width===void 0||k.height===void 0)return this.fire(new i.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));var Ie=k;this.style.addImage(T,{data:new i.RGBAImage({width:k.width,height:k.height},new Uint8Array(k.data)),pixelRatio:j,stretchX:oe,stretchY:pe,content:Ee,sdf:K,version:0,userImage:Ie}),Ie.onAdd&&Ie.onAdd(this,T)}},x.prototype.updateImage=function(T,k){var U=this.style.getImage(T);if(!U)return this.fire(new i.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));var j=k instanceof mA||Ri&&k instanceof Ri?i.browser.getImageData(k):k,K=j.width,oe=j.height,pe=j.data;return K===void 0||oe===void 0?this.fire(new i.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))):K!==U.data.width||oe!==U.data.height?this.fire(new i.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))):(U.data.replace(pe,!(k instanceof mA||Ri&&k instanceof Ri)),void this.style.updateImage(T,U))},x.prototype.hasImage=function(T){return T?!!this.style.getImage(T):(this.fire(new i.ErrorEvent(new Error("Missing required image id"))),!1)},x.prototype.removeImage=function(T){this.style.removeImage(T)},x.prototype.loadImage=function(T,k){i.getImage(this._requestManager.transformRequest(T,i.ResourceType.Image),k)},x.prototype.listImages=function(){return this.style.listImages()},x.prototype.addLayer=function(T,k){return this._lazyInitEmptyStyle(),this.style.addLayer(T,k),this._update(!0)},x.prototype.moveLayer=function(T,k){return this.style.moveLayer(T,k),this._update(!0)},x.prototype.removeLayer=function(T){return this.style.removeLayer(T),this._update(!0)},x.prototype.getLayer=function(T){return this.style.getLayer(T)},x.prototype.setLayerZoomRange=function(T,k,U){return this.style.setLayerZoomRange(T,k,U),this._update(!0)},x.prototype.setFilter=function(T,k,U){return U===void 0&&(U={}),this.style.setFilter(T,k,U),this._update(!0)},x.prototype.getFilter=function(T){return this.style.getFilter(T)},x.prototype.setPaintProperty=function(T,k,U,j){return j===void 0&&(j={}),this.style.setPaintProperty(T,k,U,j),this._update(!0)},x.prototype.getPaintProperty=function(T,k){return this.style.getPaintProperty(T,k)},x.prototype.setLayoutProperty=function(T,k,U,j){return j===void 0&&(j={}),this.style.setLayoutProperty(T,k,U,j),this._update(!0)},x.prototype.getLayoutProperty=function(T,k){return this.style.getLayoutProperty(T,k)},x.prototype.setLight=function(T,k){return k===void 0&&(k={}),this._lazyInitEmptyStyle(),this.style.setLight(T,k),this._update(!0)},x.prototype.getLight=function(){return this.style.getLight()},x.prototype.setFeatureState=function(T,k){return this.style.setFeatureState(T,k),this._update()},x.prototype.removeFeatureState=function(T,k){return this.style.removeFeatureState(T,k),this._update()},x.prototype.getFeatureState=function(T){return this.style.getFeatureState(T)},x.prototype.getContainer=function(){return this._container},x.prototype.getCanvasContainer=function(){return this._canvasContainer},x.prototype.getCanvas=function(){return this._canvas},x.prototype._containerDimensions=function(){var T=0,k=0;return this._container&&(T=this._container.clientWidth||400,k=this._container.clientHeight||300),[T,k]},x.prototype._detectMissingCSS=function(){i.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&i.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")},x.prototype._setupContainer=function(){var T=this._container;T.classList.add("mapboxgl-map"),(this._missingCSSCanary=s.create("div","mapboxgl-canary",T)).style.visibility="hidden",this._detectMissingCSS();var k=this._canvasContainer=s.create("div","mapboxgl-canvas-container",T);this._interactive&&k.classList.add("mapboxgl-interactive"),this._canvas=s.create("canvas","mapboxgl-canvas",k),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");var U=this._containerDimensions();this._resizeCanvas(U[0],U[1]);var j=this._controlContainer=s.create("div","mapboxgl-control-container",T),K=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(oe){K[oe]=s.create("div","mapboxgl-ctrl-"+oe,j)}),this._container.addEventListener("scroll",this._onMapScroll,!1)},x.prototype._resizeCanvas=function(T,k){var U=i.browser.devicePixelRatio||1;this._canvas.width=U*T,this._canvas.height=U*k,this._canvas.style.width=T+"px",this._canvas.style.height=k+"px"},x.prototype._setupPainter=function(){var T=i.extend({},o.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),k=this._canvas.getContext("webgl",T)||this._canvas.getContext("experimental-webgl",T);k?(this.painter=new cr(k,this.transform),i.webpSupported.testSupport(k)):this.fire(new i.ErrorEvent(new Error("Failed to initialize WebGL")))},x.prototype._contextLost=function(T){T.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new i.Event("webglcontextlost",{originalEvent:T}))},x.prototype._contextRestored=function(T){this._setupPainter(),this.resize(),this._update(),this.fire(new i.Event("webglcontextrestored",{originalEvent:T}))},x.prototype._onMapScroll=function(T){if(T.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},x.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},x.prototype._update=function(T){return this.style?(this._styleDirty=this._styleDirty||T,this._sourcesDirty=!0,this.triggerRepaint(),this):this},x.prototype._requestRenderFrame=function(T){return this._update(),this._renderTaskQueue.add(T)},x.prototype._cancelRenderFrame=function(T){this._renderTaskQueue.remove(T)},x.prototype._render=function(T){var k,U=this,j=0,K=this.painter.context.extTimerQuery;if(this.listens("gpu-timing-frame")&&(k=K.createQueryEXT(),K.beginQueryEXT(K.TIME_ELAPSED_EXT,k),j=i.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(T),!this._removed){var oe=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var pe=this.transform.zoom,Ee=i.browser.now();this.style.zoomHistory.update(pe,Ee);var Ce=new i.EvaluationParameters(pe,{now:Ee,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),Ie=Ce.crossFadingFactor();Ie===1&&Ie===this._crossFadingFactor||(oe=!0,this._crossFadingFactor=Ie),this.style.update(Ce)}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer")}),this.fire(new i.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new i.Event("load"))),this.style&&(this.style.hasTransitions()||oe)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){var Ve=i.browser.now()-j;K.endQueryEXT(K.TIME_ELAPSED_EXT,k),setTimeout(function(){var De=K.getQueryObjectEXT(k,K.QUERY_RESULT_EXT)/1e6;K.deleteQueryEXT(k),U.fire(new i.Event("gpu-timing-frame",{cpuTime:Ve,gpuTime:De}))},50)}if(this.listens("gpu-timing-layer")){var Fe=this.painter.collectGpuTimers();setTimeout(function(){var De=U.painter.queryGpuTimers(Fe);U.fire(new i.Event("gpu-timing-layer",{layerTimes:De}))},50)}var Ke=this._sourcesDirty||this._styleDirty||this._placementDirty;return Ke||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new i.Event("idle")),!this._loaded||this._fullyLoaded||Ke||(this._fullyLoaded=!0),this}},x.prototype.remove=function(){this._hash&&this._hash.remove();for(var T=0,k=this._controls;T<k.length;T+=1)k[T].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),i.window!==void 0&&(i.window.removeEventListener("resize",this._onWindowResize,!1),i.window.removeEventListener("orientationchange",this._onWindowResize,!1),i.window.removeEventListener("online",this._onWindowOnline,!1));var U=this.painter.context.gl.getExtension("WEBGL_lose_context");U&&U.loseContext(),Ou(this._canvasContainer),Ou(this._controlContainer),Ou(this._missingCSSCanary),this._container.classList.remove("mapboxgl-map"),this._removed=!0,this.fire(new i.Event("remove"))},x.prototype.triggerRepaint=function(){var T=this;this.style&&!this._frame&&(this._frame=i.browser.frame(function(k){T._frame=null,T._render(k)}))},x.prototype._onWindowOnline=function(){this._update()},x.prototype._onWindowResize=function(T){this._trackResize&&this.resize({originalEvent:T})._update()},A.showTileBoundaries.get=function(){return!!this._showTileBoundaries},A.showTileBoundaries.set=function(T){this._showTileBoundaries!==T&&(this._showTileBoundaries=T,this._update())},A.showPadding.get=function(){return!!this._showPadding},A.showPadding.set=function(T){this._showPadding!==T&&(this._showPadding=T,this._update())},A.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},A.showCollisionBoxes.set=function(T){this._showCollisionBoxes!==T&&(this._showCollisionBoxes=T,T?this.style._generateCollisionBoxes():this._update())},A.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},A.showOverdrawInspector.set=function(T){this._showOverdrawInspector!==T&&(this._showOverdrawInspector=T,this._update())},A.repaint.get=function(){return!!this._repaint},A.repaint.set=function(T){this._repaint!==T&&(this._repaint=T,this.triggerRepaint())},A.vertices.get=function(){return!!this._vertices},A.vertices.set=function(T){this._vertices=T,this._update()},x.prototype._setCacheLimits=function(T,k){i.setCacheLimits(T,k)},A.version.get=function(){return i.version},Object.defineProperties(x.prototype,A),x}(ah);function Ou(d){d.parentNode&&d.parentNode.removeChild(d)}var od={showCompass:!0,showZoom:!0,visualizePitch:!1},nl=function(d){var x=this;this.options=i.extend({},od,d),this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",function(A){return A.preventDefault()}),this.options.showZoom&&(i.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",function(A){return x._map.zoomIn({},{originalEvent:A})}),s.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",function(A){return x._map.zoomOut({},{originalEvent:A})}),s.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(i.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",function(A){x.options.visualizePitch?x._map.resetNorthPitch({},{originalEvent:A}):x._map.resetNorth({},{originalEvent:A})}),this._compassIcon=s.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))};nl.prototype._updateZoomButtons=function(){var d=this._map.getZoom(),x=d===this._map.getMaxZoom(),A=d===this._map.getMinZoom();this._zoomInButton.disabled=x,this._zoomOutButton.disabled=A,this._zoomInButton.setAttribute("aria-disabled",x.toString()),this._zoomOutButton.setAttribute("aria-disabled",A.toString())},nl.prototype._rotateCompassArrow=function(){var d=this.options.visualizePitch?"scale("+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+") rotateX("+this._map.transform.pitch+"deg) rotateZ("+this._map.transform.angle*(180/Math.PI)+"deg)":"rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassIcon.style.transform=d},nl.prototype.onAdd=function(d){return this._map=d,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new mi(this._map,this._compass,this.options.visualizePitch)),this._container},nl.prototype.onRemove=function(){s.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map},nl.prototype._createButton=function(d,x){var A=s.create("button",d,this._container);return A.type="button",A.addEventListener("click",x),A},nl.prototype._setButtonTitle=function(d,x){var A=this._map._getUIString("NavigationControl."+x);d.title=A,d.setAttribute("aria-label",A)};var mi=function(d,x,A){A===void 0&&(A=!1),this._clickTolerance=10,this.element=x,this.mouseRotate=new Kh({clickTolerance:d.dragRotate._mouseRotate._clickTolerance}),this.map=d,A&&(this.mousePitch=new Lu({clickTolerance:d.dragRotate._mousePitch._clickTolerance})),i.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),s.addEventListener(x,"mousedown",this.mousedown),s.addEventListener(x,"touchstart",this.touchstart,{passive:!1}),s.addEventListener(x,"touchmove",this.touchmove),s.addEventListener(x,"touchend",this.touchend),s.addEventListener(x,"touchcancel",this.reset)};function $f(d,x,A){if(d=new i.LngLat(d.lng,d.lat),x){var T=new i.LngLat(d.lng-360,d.lat),k=new i.LngLat(d.lng+360,d.lat),U=A.locationPoint(d).distSqr(x);A.locationPoint(T).distSqr(x)<U?d=T:A.locationPoint(k).distSqr(x)<U&&(d=k)}for(;Math.abs(d.lng-A.center.lng)>180;){var j=A.locationPoint(d);if(j.x>=0&&j.y>=0&&j.x<=A.width&&j.y<=A.height)break;d.lng>A.center.lng?d.lng-=360:d.lng+=360}return d}mi.prototype.down=function(d,x){this.mouseRotate.mousedown(d,x),this.mousePitch&&this.mousePitch.mousedown(d,x),s.disableDrag()},mi.prototype.move=function(d,x){var A=this.map,T=this.mouseRotate.mousemoveWindow(d,x);if(T&&T.bearingDelta&&A.setBearing(A.getBearing()+T.bearingDelta),this.mousePitch){var k=this.mousePitch.mousemoveWindow(d,x);k&&k.pitchDelta&&A.setPitch(A.getPitch()+k.pitchDelta)}},mi.prototype.off=function(){var d=this.element;s.removeEventListener(d,"mousedown",this.mousedown),s.removeEventListener(d,"touchstart",this.touchstart,{passive:!1}),s.removeEventListener(d,"touchmove",this.touchmove),s.removeEventListener(d,"touchend",this.touchend),s.removeEventListener(d,"touchcancel",this.reset),this.offTemp()},mi.prototype.offTemp=function(){s.enableDrag(),s.removeEventListener(i.window,"mousemove",this.mousemove),s.removeEventListener(i.window,"mouseup",this.mouseup)},mi.prototype.mousedown=function(d){this.down(i.extend({},d,{ctrlKey:!0,preventDefault:function(){return d.preventDefault()}}),s.mousePos(this.element,d)),s.addEventListener(i.window,"mousemove",this.mousemove),s.addEventListener(i.window,"mouseup",this.mouseup)},mi.prototype.mousemove=function(d){this.move(d,s.mousePos(this.element,d))},mi.prototype.mouseup=function(d){this.mouseRotate.mouseupWindow(d),this.mousePitch&&this.mousePitch.mouseupWindow(d),this.offTemp()},mi.prototype.touchstart=function(d){d.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=s.touchPos(this.element,d.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return d.preventDefault()}},this._startPos))},mi.prototype.touchmove=function(d){d.targetTouches.length!==1?this.reset():(this._lastPos=s.touchPos(this.element,d.targetTouches)[0],this.move({preventDefault:function(){return d.preventDefault()}},this._lastPos))},mi.prototype.touchend=function(d){d.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()},mi.prototype.reset=function(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()};var tu={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Rm(d,x,A){var T=d.classList;for(var k in tu)T.remove("mapboxgl-"+A+"-anchor-"+k);T.add("mapboxgl-"+A+"-anchor-"+x)}var Kf,sd=function(d){function x(A,T){if(d.call(this),(A instanceof i.window.HTMLElement||T)&&(A=i.extend({element:A},T)),i.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=A&&A.anchor||"center",this._color=A&&A.color||"#3FB1CE",this._scale=A&&A.scale||1,this._draggable=A&&A.draggable||!1,this._clickTolerance=A&&A.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=A&&A.rotation||0,this._rotationAlignment=A&&A.rotationAlignment||"auto",this._pitchAlignment=A&&A.pitchAlignment&&A.pitchAlignment!=="auto"?A.pitchAlignment:this._rotationAlignment,A&&A.element)this._element=A.element,this._offset=i.Point.convert(A&&A.offset||[0,0]);else{this._defaultMarker=!0,this._element=s.create("div"),this._element.setAttribute("aria-label","Map marker");var k=s.createNS("http://www.w3.org/2000/svg","svg");k.setAttributeNS(null,"display","block"),k.setAttributeNS(null,"height","41px"),k.setAttributeNS(null,"width","27px"),k.setAttributeNS(null,"viewBox","0 0 27 41");var U=s.createNS("http://www.w3.org/2000/svg","g");U.setAttributeNS(null,"stroke","none"),U.setAttributeNS(null,"stroke-width","1"),U.setAttributeNS(null,"fill","none"),U.setAttributeNS(null,"fill-rule","evenodd");var j=s.createNS("http://www.w3.org/2000/svg","g");j.setAttributeNS(null,"fill-rule","nonzero");var K=s.createNS("http://www.w3.org/2000/svg","g");K.setAttributeNS(null,"transform","translate(3.0, 29.0)"),K.setAttributeNS(null,"fill","#000000");for(var oe=0,pe=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];oe<pe.length;oe+=1){var Ee=pe[oe],Ce=s.createNS("http://www.w3.org/2000/svg","ellipse");Ce.setAttributeNS(null,"opacity","0.04"),Ce.setAttributeNS(null,"cx","10.5"),Ce.setAttributeNS(null,"cy","5.80029008"),Ce.setAttributeNS(null,"rx",Ee.rx),Ce.setAttributeNS(null,"ry",Ee.ry),K.appendChild(Ce)}var Ie=s.createNS("http://www.w3.org/2000/svg","g");Ie.setAttributeNS(null,"fill",this._color);var Ve=s.createNS("http://www.w3.org/2000/svg","path");Ve.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),Ie.appendChild(Ve);var Fe=s.createNS("http://www.w3.org/2000/svg","g");Fe.setAttributeNS(null,"opacity","0.25"),Fe.setAttributeNS(null,"fill","#000000");var Ke=s.createNS("http://www.w3.org/2000/svg","path");Ke.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),Fe.appendChild(Ke);var De=s.createNS("http://www.w3.org/2000/svg","g");De.setAttributeNS(null,"transform","translate(6.0, 7.0)"),De.setAttributeNS(null,"fill","#FFFFFF");var $e=s.createNS("http://www.w3.org/2000/svg","g");$e.setAttributeNS(null,"transform","translate(8.0, 8.0)");var nt=s.createNS("http://www.w3.org/2000/svg","circle");nt.setAttributeNS(null,"fill","#000000"),nt.setAttributeNS(null,"opacity","0.25"),nt.setAttributeNS(null,"cx","5.5"),nt.setAttributeNS(null,"cy","5.5"),nt.setAttributeNS(null,"r","5.4999962");var ft=s.createNS("http://www.w3.org/2000/svg","circle");ft.setAttributeNS(null,"fill","#FFFFFF"),ft.setAttributeNS(null,"cx","5.5"),ft.setAttributeNS(null,"cy","5.5"),ft.setAttributeNS(null,"r","5.4999962"),$e.appendChild(nt),$e.appendChild(ft),j.appendChild(K),j.appendChild(Ie),j.appendChild(Fe),j.appendChild(De),j.appendChild($e),k.appendChild(j),k.setAttributeNS(null,"height",41*this._scale+"px"),k.setAttributeNS(null,"width",27*this._scale+"px"),this._element.appendChild(k),this._offset=i.Point.convert(A&&A.offset||[0,-14])}this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",function(Mt){Mt.preventDefault()}),this._element.addEventListener("mousedown",function(Mt){Mt.preventDefault()}),Rm(this._element,this._anchor,"marker"),this._popup=null}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.addTo=function(A){return this.remove(),this._map=A,A.getCanvasContainer().appendChild(this._element),A.on("move",this._update),A.on("moveend",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this},x.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),s.remove(this._element),this._popup&&this._popup.remove(),this},x.prototype.getLngLat=function(){return this._lngLat},x.prototype.setLngLat=function(A){return this._lngLat=i.LngLat.convert(A),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},x.prototype.getElement=function(){return this._element},x.prototype.setPopup=function(A){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),A){if(!("offset"in A.options)){var T=Math.sqrt(Math.pow(13.5,2)/2);A.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[T,-1*(24.6+T)],"bottom-right":[-T,-1*(24.6+T)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=A,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this},x.prototype._onKeyPress=function(A){var T=A.code,k=A.charCode||A.keyCode;T!=="Space"&&T!=="Enter"&&k!==32&&k!==13||this.togglePopup()},x.prototype._onMapClick=function(A){var T=A.originalEvent.target,k=this._element;this._popup&&(T===k||k.contains(T))&&this.togglePopup()},x.prototype.getPopup=function(){return this._popup},x.prototype.togglePopup=function(){var A=this._popup;return A?(A.isOpen()?A.remove():A.addTo(this._map),this):this},x.prototype._update=function(A){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=$f(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var T="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?T="rotateZ("+this._rotation+"deg)":this._rotationAlignment==="map"&&(T="rotateZ("+(this._rotation-this._map.getBearing())+"deg)");var k="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?k="rotateX(0deg)":this._pitchAlignment==="map"&&(k="rotateX("+this._map.getPitch()+"deg)"),A&&A.type!=="moveend"||(this._pos=this._pos.round()),s.setTransform(this._element,tu[this._anchor]+" translate("+this._pos.x+"px, "+this._pos.y+"px) "+k+" "+T)}},x.prototype.getOffset=function(){return this._offset},x.prototype.setOffset=function(A){return this._offset=i.Point.convert(A),this._update(),this},x.prototype._onMove=function(A){if(!this._isDragging){var T=this._clickTolerance||this._map._clickTolerance;this._isDragging=A.point.dist(this._pointerdownPos)>=T}this._isDragging&&(this._pos=A.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new i.Event("dragstart"))),this.fire(new i.Event("drag")))},x.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new i.Event("dragend")),this._state="inactive"},x.prototype._addDragHandler=function(A){this._element.contains(A.originalEvent.target)&&(A.preventDefault(),this._positionDelta=A.point.sub(this._pos).add(this._offset),this._pointerdownPos=A.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},x.prototype.setDraggable=function(A){return this._draggable=!!A,this._map&&(A?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},x.prototype.isDraggable=function(){return this._draggable},x.prototype.setRotation=function(A){return this._rotation=A||0,this._update(),this},x.prototype.getRotation=function(){return this._rotation},x.prototype.setRotationAlignment=function(A){return this._rotationAlignment=A||"auto",this._update(),this},x.prototype.getRotationAlignment=function(){return this._rotationAlignment},x.prototype.setPitchAlignment=function(A){return this._pitchAlignment=A&&A!=="auto"?A:this._rotationAlignment,this._update(),this},x.prototype.getPitchAlignment=function(){return this._pitchAlignment},x}(i.Evented),gA={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},Zf=0,Ps=!1,ad=function(d){function x(A){d.call(this),this.options=i.extend({},gA,A),i.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.onAdd=function(A){var T;return this._map=A,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),T=this._setupUI,Kf!==void 0?T(Kf):i.window.navigator.permissions!==void 0?i.window.navigator.permissions.query({name:"geolocation"}).then(function(k){T(Kf=k.state!=="denied")}):T(Kf=!!i.window.navigator.geolocation),this._container},x.prototype.onRemove=function(){this._geolocationWatchID!==void 0&&(i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),s.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Zf=0,Ps=!1},x.prototype._isOutOfMapMaxBounds=function(A){var T=this._map.getMaxBounds(),k=A.coords;return T&&(k.longitude<T.getWest()||k.longitude>T.getEast()||k.latitude<T.getSouth()||k.latitude>T.getNorth())},x.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},x.prototype._onSuccess=function(A){if(this._map){if(this._isOutOfMapMaxBounds(A))return this._setErrorState(),this.fire(new i.Event("outofmaxbounds",A)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=A,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(A),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(A),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("geolocate",A)),this._finish()}},x.prototype._updateCamera=function(A){var T=new i.LngLat(A.coords.longitude,A.coords.latitude),k=A.coords.accuracy,U=this._map.getBearing(),j=i.extend({bearing:U},this.options.fitBoundsOptions);this._map.fitBounds(T.toBounds(k),j,{geolocateSource:!0})},x.prototype._updateMarker=function(A){if(A){var T=new i.LngLat(A.coords.longitude,A.coords.latitude);this._accuracyCircleMarker.setLngLat(T).addTo(this._map),this._userLocationDotMarker.setLngLat(T).addTo(this._map),this._accuracy=A.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},x.prototype._updateCircleRadius=function(){var A=this._map._container.clientHeight/2,T=this._map.unproject([0,A]),k=this._map.unproject([1,A]),U=T.distanceTo(k),j=Math.ceil(2*this._accuracy/U);this._circleElement.style.width=j+"px",this._circleElement.style.height=j+"px"},x.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},x.prototype._onError=function(A){if(this._map){if(this.options.trackUserLocation)if(A.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var T=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=T,this._geolocateButton.setAttribute("aria-label",T),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(A.code===3&&Ps)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("error",A)),this._finish()}},x.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},x.prototype._setupUI=function(A){var T=this;if(this._container.addEventListener("contextmenu",function(j){return j.preventDefault()}),this._geolocateButton=s.create("button","mapboxgl-ctrl-geolocate",this._container),s.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",A===!1){i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var k=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=k,this._geolocateButton.setAttribute("aria-label",k)}else{var U=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=U,this._geolocateButton.setAttribute("aria-label",U)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=s.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new sd(this._dotElement),this._circleElement=s.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new sd({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",function(j){j.geolocateSource||T._watchState!=="ACTIVE_LOCK"||j.originalEvent&&j.originalEvent.type==="resize"||(T._watchState="BACKGROUND",T._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),T._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),T.fire(new i.Event("trackuserlocationend")))})},x.prototype.trigger=function(){if(!this._setup)return i.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new i.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Zf--,Ps=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new i.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new i.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){var A;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Zf>1?(A={maximumAge:6e5,timeout:0},Ps=!0):(A=this.options.positionOptions,Ps=!1),this._geolocationWatchID=i.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,A)}}else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},x.prototype._clearWatch=function(){i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},x}(i.Evented),mc={maxWidth:100,unit:"metric"},ch=function(d){this.options=i.extend({},mc,d),i.bindAll(["_onMove","setUnit"],this)};function Qf(d,x,A){var T=A&&A.maxWidth||100,k=d._container.clientHeight/2,U=d.unproject([0,k]),j=d.unproject([T,k]),K=U.distanceTo(j);if(A&&A.unit==="imperial"){var oe=3.2808*K;oe>5280?lh(x,T,oe/5280,d._getUIString("ScaleControl.Miles")):lh(x,T,oe,d._getUIString("ScaleControl.Feet"))}else A&&A.unit==="nautical"?lh(x,T,K/1852,d._getUIString("ScaleControl.NauticalMiles")):K>=1e3?lh(x,T,K/1e3,d._getUIString("ScaleControl.Kilometers")):lh(x,T,K,d._getUIString("ScaleControl.Meters"))}function lh(d,x,A,T){var k,U,j,K=(k=A,(U=Math.pow(10,(""+Math.floor(k)).length-1))*(j=(j=k/U)>=10?10:j>=5?5:j>=3?3:j>=2?2:j>=1?1:function(oe){var pe=Math.pow(10,Math.ceil(-Math.log(oe)/Math.LN10));return Math.round(oe*pe)/pe}(j)));d.style.width=x*(K/A)+"px",d.innerHTML=K+" "+T}ch.prototype.getDefaultPosition=function(){return"bottom-left"},ch.prototype._onMove=function(){Qf(this._map,this._container,this.options)},ch.prototype.onAdd=function(d){return this._map=d,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",d.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ch.prototype.onRemove=function(){s.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},ch.prototype.setUnit=function(d){this.options.unit=d,Qf(this._map,this._container,this.options)};var es=function(d){this._fullscreen=!1,d&&d.container&&(d.container instanceof i.window.HTMLElement?this._container=d.container:i.warnOnce("Full screen control 'container' must be a DOM element.")),i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in i.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in i.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in i.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in i.window.document&&(this._fullscreenchange="MSFullscreenChange")};es.prototype.onAdd=function(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},es.prototype.onRemove=function(){s.remove(this._controlContainer),this._map=null,i.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},es.prototype._checkFullscreenSupport=function(){return!!(i.window.document.fullscreenEnabled||i.window.document.mozFullScreenEnabled||i.window.document.msFullscreenEnabled||i.window.document.webkitFullscreenEnabled)},es.prototype._setupUI=function(){var d=this._fullscreenButton=s.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);s.create("span","mapboxgl-ctrl-icon",d).setAttribute("aria-hidden",!0),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),i.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},es.prototype._updateTitle=function(){var d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.title=d},es.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},es.prototype._isFullscreen=function(){return this._fullscreen},es.prototype._changeIcon=function(){(i.window.document.fullscreenElement||i.window.document.mozFullScreenElement||i.window.document.webkitFullscreenElement||i.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},es.prototype._onClickFullscreen=function(){this._isFullscreen()?i.window.document.exitFullscreen?i.window.document.exitFullscreen():i.window.document.mozCancelFullScreen?i.window.document.mozCancelFullScreen():i.window.document.msExitFullscreen?i.window.document.msExitFullscreen():i.window.document.webkitCancelFullScreen&&i.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Lm={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},ef=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),uh=function(d){function x(A){d.call(this),this.options=i.extend(Object.create(Lm),A),i.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return d&&(x.__proto__=d),(x.prototype=Object.create(d&&d.prototype)).constructor=x,x.prototype.addTo=function(A){return this._map&&this.remove(),this._map=A,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new i.Event("open")),this},x.prototype.isOpen=function(){return!!this._map},x.prototype.remove=function(){return this._content&&s.remove(this._content),this._container&&(s.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new i.Event("close")),this},x.prototype.getLngLat=function(){return this._lngLat},x.prototype.setLngLat=function(A){return this._lngLat=i.LngLat.convert(A),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},x.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},x.prototype.getElement=function(){return this._container},x.prototype.setText=function(A){return this.setDOMContent(i.window.document.createTextNode(A))},x.prototype.setHTML=function(A){var T,k=i.window.document.createDocumentFragment(),U=i.window.document.createElement("body");for(U.innerHTML=A;T=U.firstChild;)k.appendChild(T);return this.setDOMContent(k)},x.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},x.prototype.setMaxWidth=function(A){return this.options.maxWidth=A,this._update(),this},x.prototype.setDOMContent=function(A){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=s.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(A),this._createCloseButton(),this._update(),this._focusFirstElement(),this},x.prototype.addClassName=function(A){this._container&&this._container.classList.add(A)},x.prototype.removeClassName=function(A){this._container&&this._container.classList.remove(A)},x.prototype.setOffset=function(A){return this.options.offset=A,this._update(),this},x.prototype.toggleClassName=function(A){if(this._container)return this._container.classList.toggle(A)},x.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=s.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},x.prototype._onMouseUp=function(A){this._update(A.point)},x.prototype._onMouseMove=function(A){this._update(A.point)},x.prototype._onDrag=function(A){this._update(A.point)},x.prototype._update=function(A){var T=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=s.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=s.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach(function(Ce){return T._container.classList.add(Ce)}),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=$f(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||A)){var k=this._pos=this._trackPointer&&A?A:this._map.project(this._lngLat),U=this.options.anchor,j=function Ce(Ie){if(Ie){if(typeof Ie=="number"){var Ve=Math.round(Math.sqrt(.5*Math.pow(Ie,2)));return{center:new i.Point(0,0),top:new i.Point(0,Ie),"top-left":new i.Point(Ve,Ve),"top-right":new i.Point(-Ve,Ve),bottom:new i.Point(0,-Ie),"bottom-left":new i.Point(Ve,-Ve),"bottom-right":new i.Point(-Ve,-Ve),left:new i.Point(Ie,0),right:new i.Point(-Ie,0)}}if(Ie instanceof i.Point||Array.isArray(Ie)){var Fe=i.Point.convert(Ie);return{center:Fe,top:Fe,"top-left":Fe,"top-right":Fe,bottom:Fe,"bottom-left":Fe,"bottom-right":Fe,left:Fe,right:Fe}}return{center:i.Point.convert(Ie.center||[0,0]),top:i.Point.convert(Ie.top||[0,0]),"top-left":i.Point.convert(Ie["top-left"]||[0,0]),"top-right":i.Point.convert(Ie["top-right"]||[0,0]),bottom:i.Point.convert(Ie.bottom||[0,0]),"bottom-left":i.Point.convert(Ie["bottom-left"]||[0,0]),"bottom-right":i.Point.convert(Ie["bottom-right"]||[0,0]),left:i.Point.convert(Ie.left||[0,0]),right:i.Point.convert(Ie.right||[0,0])}}return Ce(new i.Point(0,0))}(this.options.offset);if(!U){var K,oe=this._container.offsetWidth,pe=this._container.offsetHeight;K=k.y+j.bottom.y<pe?["top"]:k.y>this._map.transform.height-pe?["bottom"]:[],k.x<oe/2?K.push("left"):k.x>this._map.transform.width-oe/2&&K.push("right"),U=K.length===0?"bottom":K.join("-")}var Ee=k.add(j[U]).round();s.setTransform(this._container,tu[U]+" translate("+Ee.x+"px,"+Ee.y+"px)"),Rm(this._container,U,"popup")}},x.prototype._focusFirstElement=function(){if(this.options.focusAfterOpen&&this._container){var A=this._container.querySelector(ef);A&&A.focus()}},x.prototype._onClose=function(){this.remove()},x}(i.Evented),hh={version:i.version,supported:o,setRTLTextPlugin:i.setRTLTextPlugin,getRTLTextPluginStatus:i.getRTLTextPluginStatus,Map:AA,NavigationControl:nl,GeolocateControl:ad,AttributionControl:ka,ScaleControl:ch,FullscreenControl:es,Popup:uh,Marker:sd,Style:Oa,LngLat:i.LngLat,LngLatBounds:i.LngLatBounds,Point:i.Point,MercatorCoordinate:i.MercatorCoordinate,Evented:i.Evented,config:i.config,prewarm:function(){Bt().acquire(Lt)},clearPrewarmedResources:function(){var d=Nr;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(Lt),Nr=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return i.config.ACCESS_TOKEN},set accessToken(d){i.config.ACCESS_TOKEN=d},get baseApiUrl(){return i.config.API_URL},set baseApiUrl(d){i.config.API_URL=d},get workerCount(){return Yt.workerCount},set workerCount(d){Yt.workerCount=d},get maxParallelImageRequests(){return i.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(d){i.config.MAX_PARALLEL_IMAGE_REQUESTS=d},clearStorage:function(d){i.clearTileCache(d)},workerUrl:""};return hh}),r})});var pk,CM,dk=We(()=>{CA();pk=class{stats=new Map;getStats(e){return this.get(e)}get(e){return this.stats.has(e)||this.stats.set(e,new ol({id:e})),this.stats.get(e)}},CM=new pk});var Dt,bd=We(()=>{B_();Dt=new au({id:"luma.gl"})});function Wm(t="id"){mk[t]=mk[t]||1;let e=mk[t]++;return`${t}-${e}`}var mk,Z2=We(()=>{mk={}});function $_e(t,e){let r={...e};for(let n in t)t[n]!==void 0&&(r[n]=t[n]);return r}var hi,Ol=We(()=>{Z2();hi=class{toString(){return`${this[Symbol.toStringTag]||this.constructor.name}:"${this.id}"`}id;props;userData={};_device;destroyed=!1;allocatedBytes=0;_attachedResources=new Set;constructor(e,r,n){if(!e)throw new Error("no device");this._device=e,this.props=$_e(r,n);let i=this.props.id!=="undefined"?this.props.id:Wm(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}destroy(){this.destroyResource()}delete(){return this.destroy(),this}getProps(){return this.props}attachResource(e){this._attachedResources.add(e)}detachResource(e){this._attachedResources.delete(e)}destroyAttachedResource(e){this._attachedResources.delete(e)&&e.destroy()}destroyAttachedResources(){for(let e of Object.values(this._attachedResources))e.destroy();this._attachedResources=new Set}destroyResource(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0}removeStats(){let e=this._device.statsManager.getStats("Resource Counts"),r=this[Symbol.toStringTag];e.get(`${r}s Active`).decrementCount()}trackAllocatedMemory(e,r=this[Symbol.toStringTag]){let n=this._device.statsManager.getStats("Resource Counts");n.get("GPU Memory").addCount(e),n.get(`${r} Memory`).addCount(e),this.allocatedBytes=e}trackDeallocatedMemory(e=this[Symbol.toStringTag]){let r=this._device.statsManager.getStats("Resource Counts");r.get("GPU Memory").subtractCount(this.allocatedBytes),r.get(`${e} Memory`).subtractCount(this.allocatedBytes),this.allocatedBytes=0}addStats(){let e=this._device.statsManager.getStats("Resource Counts"),r=this[Symbol.toStringTag];e.get("Resources Created").incrementCount(),e.get(`${r}s Created`).incrementCount(),e.get(`${r}s Active`).incrementCount()}};Dr(hi,"defaultProps",{id:"undefined",handle:void 0,userData:void 0})});var Q2,$n,IM=We(()=>{Ol();Q2=class extends hi{get[Symbol.toStringTag](){return"Buffer"}usage;indexType;updateTimestamp;constructor(e,r){let n={...r};(r.usage||0)&Q2.INDEX&&!r.indexType&&(r.data instanceof Uint32Array?n.indexType="uint32":r.data instanceof Uint16Array&&(n.indexType="uint16")),delete n.data,super(e,n,Q2.defaultProps),this.usage=n.usage||0,this.indexType=n.indexType,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createBuffer({...this.props,...e})}debugData=new ArrayBuffer(0);_setDebugData(e,r,n){let i=ArrayBuffer.isView(e)?e.buffer:e,o=Math.min(e?e.byteLength:n,Q2.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(o):r===0&&n===i.byteLength?this.debugData=i.slice(0,o):this.debugData=i.slice(r,r+o)}},$n=Q2;Dr($n,"INDEX",16),Dr($n,"VERTEX",32),Dr($n,"UNIFORM",64),Dr($n,"STORAGE",128),Dr($n,"INDIRECT",256),Dr($n,"QUERY_RESOLVE",512),Dr($n,"MAP_READ",1),Dr($n,"MAP_WRITE",2),Dr($n,"COPY_SRC",4),Dr($n,"COPY_DST",8),Dr($n,"DEBUG_DATA_MAX_LENGTH",32),Dr($n,"defaultProps",{...hi.defaultProps,usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",onMapped:void 0})});function J2(t){let[e,r,n]=gk[t],i=t.includes("norm"),o=!i&&!t.startsWith("float"),s=t.startsWith("s");return{signedType:e,primitiveType:r,byteLength:n,normalized:i,integer:o,signed:s}}function Ak(t){let e=t;switch(e){case"uint8":return"unorm8";case"sint8":return"snorm8";case"uint16":return"unorm16";case"sint16":return"snorm16";default:return e}}function RW(t,e){switch(e){case 1:return t;case 2:return t+t%2;default:return t+(4-t%4)%4}}function BA(t){let e=ArrayBuffer.isView(t)?t.constructor:t;if(e===Uint8ClampedArray)return"uint8";let r=Object.values(gk).find(n=>e===n[4]);if(!r)throw new Error(e.name);return r[0]}function kA(t){let[,,,,e]=gk[t];return e}var gk,eb=We(()=>{gk={uint8:["uint8","u32",1,!1,Uint8Array],sint8:["sint8","i32",1,!1,Int8Array],unorm8:["uint8","f32",1,!0,Uint8Array],snorm8:["sint8","f32",1,!0,Int8Array],uint16:["uint16","u32",2,!1,Uint16Array],sint16:["sint16","i32",2,!1,Int16Array],unorm16:["uint16","u32",2,!0,Uint16Array],snorm16:["sint16","i32",2,!0,Int16Array],float16:["float16","f16",2,!1,Uint16Array],float32:["float32","f32",4,!1,Float32Array],uint32:["uint32","u32",4,!1,Uint32Array],sint32:["sint32","i32",4,!1,Int32Array]}});function U_(t){let e;t.endsWith("-webgl")&&(t.replace("-webgl",""),e=!0);let[r,n]=t.split("x"),i=r,o=n?parseInt(n):1,s=J2(i),a={type:i,components:o,byteLength:s.byteLength*o,integer:s.integer,signed:s.signed,normalized:s.normalized};return e&&(a.webglOnly=!0),a}function LW(t,e,r){let n=r?Ak(t):t;switch(n){case"unorm8":return e===1?"unorm8":e===3?"unorm8x3-webgl":`${n}x${e}`;case"snorm8":case"uint8":case"sint8":case"uint16":case"sint16":case"unorm16":case"snorm16":case"float16":if(e===1||e===3)throw new Error(`size: ${e}`);return`${n}x${e}`;default:return e===1?n:`${n}x${e}`}}function yk(t,e,r){if(!e||e>4)throw new Error(`size ${e}`);let n=e,i=BA(t);return LW(i,n,r)}function OW(t){let e;switch(t.primitiveType){case"f32":e="float32";break;case"i32":e="sint32";break;case"u32":e="uint32";break;case"f16":return t.components<=2?"float16x2":"float16x4"}return t.components===1?e:`${e}x${t.components}`}var PM=We(()=>{eb()});function wk(t){let e=e1e[t];if(!e)throw new Error(`Unsupported texture format ${t}`);return e}var sl,Xo,Ap,K_e,RM,_k,LM,xk,Z_e,vk,tb,bk,OM,BW,Q_e,J_e,e1e,kW=We(()=>{sl="texture-compression-bc",Xo="texture-compression-astc",Ap="texture-compression-etc2",K_e="texture-compression-etc1-webgl",RM="texture-compression-pvrtc-webgl",_k="texture-compression-atc-webgl",LM="float32-renderable-webgl",xk="float16-renderable-webgl",Z_e="rgb9e5ufloat-renderable-webgl",vk="snorm8-renderable-webgl",tb="norm16-renderable-webgl",bk="snorm16-renderable-webgl",OM="float32-filterable",BW="float16-filterable-webgl";Q_e={r8unorm:{},rg8unorm:{},"rgb8unorm-webgl":{},rgba8unorm:{},"rgba8unorm-srgb":{},r8snorm:{render:vk},rg8snorm:{render:vk},"rgb8snorm-webgl":{},rgba8snorm:{render:vk},r8uint:{},rg8uint:{},rgba8uint:{},r8sint:{},rg8sint:{},rgba8sint:{},bgra8unorm:{},"bgra8unorm-srgb":{},r16unorm:{f:tb},rg16unorm:{render:tb},"rgb16unorm-webgl":{f:tb},rgba16unorm:{render:tb},r16snorm:{f:bk},rg16snorm:{render:bk},"rgb16snorm-webgl":{f:tb},rgba16snorm:{render:bk},r16uint:{},rg16uint:{},rgba16uint:{},r16sint:{},rg16sint:{},rgba16sint:{},r16float:{render:xk,filter:"float16-filterable-webgl"},rg16float:{render:xk,filter:BW},rgba16float:{render:xk,filter:BW},r32uint:{},rg32uint:{},rgba32uint:{},r32sint:{},rg32sint:{},rgba32sint:{},r32float:{render:LM,filter:OM},rg32float:{render:!1,filter:OM},"rgb32float-webgl":{render:LM,filter:OM},rgba32float:{render:LM,filter:OM},"rgba4unorm-webgl":{channels:"rgba",bitsPerChannel:[4,4,4,4],packed:!0},"rgb565unorm-webgl":{channels:"rgb",bitsPerChannel:[5,6,5,0],packed:!0},"rgb5a1unorm-webgl":{channels:"rgba",bitsPerChannel:[5,5,5,1],packed:!0},rgb9e5ufloat:{channels:"rgb",packed:!0,render:Z_e},rg11b10ufloat:{channels:"rgb",bitsPerChannel:[11,11,10,0],packed:!0,p:1,render:LM},rgb10a2unorm:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},rgb10a2uint:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},stencil8:{attachment:"stencil",bitsPerChannel:[8,0,0,0],dataType:"uint8"},depth16unorm:{attachment:"depth",bitsPerChannel:[16,0,0,0],dataType:"uint16"},depth24plus:{attachment:"depth",bitsPerChannel:[24,0,0,0],dataType:"uint32"},depth32float:{attachment:"depth",bitsPerChannel:[32,0,0,0],dataType:"float32"},"depth24plus-stencil8":{attachment:"depth-stencil",bitsPerChannel:[24,8,0,0],packed:!0},"depth32float-stencil8":{attachment:"depth-stencil",bitsPerChannel:[32,8,0,0],packed:!0}},J_e={"bc1-rgb-unorm-webgl":{f:sl},"bc1-rgb-unorm-srgb-webgl":{f:sl},"bc1-rgba-unorm":{f:sl},"bc1-rgba-unorm-srgb":{f:sl},"bc2-rgba-unorm":{f:sl},"bc2-rgba-unorm-srgb":{f:sl},"bc3-rgba-unorm":{f:sl},"bc3-rgba-unorm-srgb":{f:sl},"bc4-r-unorm":{f:sl},"bc4-r-snorm":{f:sl},"bc5-rg-unorm":{f:sl},"bc5-rg-snorm":{f:sl},"bc6h-rgb-ufloat":{f:sl},"bc6h-rgb-float":{f:sl},"bc7-rgba-unorm":{f:sl},"bc7-rgba-unorm-srgb":{f:sl},"etc2-rgb8unorm":{f:Ap},"etc2-rgb8unorm-srgb":{f:Ap},"etc2-rgb8a1unorm":{f:Ap},"etc2-rgb8a1unorm-srgb":{f:Ap},"etc2-rgba8unorm":{f:Ap},"etc2-rgba8unorm-srgb":{f:Ap},"eac-r11unorm":{f:Ap},"eac-r11snorm":{f:Ap},"eac-rg11unorm":{f:Ap},"eac-rg11snorm":{f:Ap},"astc-4x4-unorm":{f:Xo},"astc-4x4-unorm-srgb":{f:Xo},"astc-5x4-unorm":{f:Xo},"astc-5x4-unorm-srgb":{f:Xo},"astc-5x5-unorm":{f:Xo},"astc-5x5-unorm-srgb":{f:Xo},"astc-6x5-unorm":{f:Xo},"astc-6x5-unorm-srgb":{f:Xo},"astc-6x6-unorm":{f:Xo},"astc-6x6-unorm-srgb":{f:Xo},"astc-8x5-unorm":{f:Xo},"astc-8x5-unorm-srgb":{f:Xo},"astc-8x6-unorm":{f:Xo},"astc-8x6-unorm-srgb":{f:Xo},"astc-8x8-unorm":{f:Xo},"astc-8x8-unorm-srgb":{f:Xo},"astc-10x5-unorm":{f:Xo},"astc-10x5-unorm-srgb":{f:Xo},"astc-10x6-unorm":{f:Xo},"astc-10x6-unorm-srgb":{f:Xo},"astc-10x8-unorm":{f:Xo},"astc-10x8-unorm-srgb":{f:Xo},"astc-10x10-unorm":{f:Xo},"astc-10x10-unorm-srgb":{f:Xo},"astc-12x10-unorm":{f:Xo},"astc-12x10-unorm-srgb":{f:Xo},"astc-12x12-unorm":{f:Xo},"astc-12x12-unorm-srgb":{f:Xo},"pvrtc-rgb4unorm-webgl":{f:RM},"pvrtc-rgba4unorm-webgl":{f:RM},"pvrtc-rbg2unorm-webgl":{f:RM},"pvrtc-rgba2unorm-webgl":{f:RM},"etc1-rbg-unorm-webgl":{f:K_e},"atc-rgb-unorm-webgl":{f:_k},"atc-rgba-unorm-webgl":{f:_k},"atc-rgbai-unorm-webgl":{f:_k}},e1e={...Q_e,...J_e}});function DW(t){let e=n1e(t);if(wd.isCompressed(t)){e.channels="rgb",e.components=3,e.bytesPerPixel=1,e.srgb=!1,e.compressed=!0;let n=i1e(t);n&&(e.blockWidth=n.blockWidth,e.blockHeight=n.blockHeight)}let r=r1e.exec(t);if(r){let[,n,i,o,s,a]=r,l=`${o}${i}`,u=J2(l),f=u.byteLength*8,m=n.length,v=[f,m>=2?f:0,m>=3?f:0,m>=4?f:0];e={format:t,attachment:e.attachment,dataType:u.signedType,components:m,channels:n,integer:u.integer,signed:u.signed,normalized:u.normalized,bitsPerChannel:v,bytesPerPixel:u.byteLength*n.length,packed:e.packed,srgb:e.srgb},a==="-webgl"&&(e.webgl=!0),s==="-srgb"&&(e.srgb=!0)}return t.endsWith("-webgl")&&(e.webgl=!0),t.endsWith("-srgb")&&(e.srgb=!0),e}function n1e(t){let e=wk(t),r=e.bytesPerPixel||1,n=e.bitsPerChannel||[8,8,8,8];return delete e.bitsPerChannel,delete e.bytesPerPixel,delete e.f,delete e.render,delete e.filter,delete e.blend,delete e.store,{...e,format:t,attachment:e.attachment||"color",channels:e.channels||"r",components:e.components||e.channels?.length||1,bytesPerPixel:r,bitsPerChannel:n,dataType:e.dataType||"uint8",srgb:e.srgb??!1,packed:e.packed??!1,webgl:e.webgl??!1,integer:e.integer??!1,signed:e.signed??!1,normalized:e.normalized??!1,compressed:e.compressed??!1}}function i1e(t){let r=/.*-(\d+)x(\d+)-.*/.exec(t);if(r){let[,n,i]=r;return{blockWidth:Number(n),blockHeight:Number(i)}}return null}var t1e,r1e,BM,wd,Tk=We(()=>{eb();kW();t1e=["bc1","bc2","bc3","bc4","bc5","bc6","bc7","etc1","etc2","eac","atc","astc","pvrtc"],r1e=/^(r|rg|rgb|rgba|bgra)([0-9]*)([a-z]*)(-srgb)?(-webgl)?$/,BM=class{getInfo(e){return DW(e)}isColor(e){return e.startsWith("rgba")||e.startsWith("bgra")||e.startsWith("rgb")}isDepthStencil(e){return e.startsWith("depth")||e.startsWith("stencil")}isCompressed(e){return t1e.some(r=>e.startsWith(r))}getCapabilities(e){let r=wk(e),n={format:e,create:r.f??!0,render:r.render??!0,filter:r.filter??!0,blend:r.blend??!0,store:r.store??!0},i=DW(e),o=e.startsWith("depth")||e.startsWith("stencil"),s=i?.signed,a=i?.integer,l=i?.webgl;return n.render&&=!s,n.filter&&=!o&&!s&&!a&&!l,n}},wd=new BM});function NW(t){return typeof ImageData<"u"&&t instanceof ImageData||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement||typeof VideoFrame<"u"&&t instanceof VideoFrame||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas}function FW(t){if(typeof ImageData<"u"&&t instanceof ImageData||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)return{width:t.width,height:t.height};if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement)return{width:t.naturalWidth,height:t.naturalHeight};if(typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement)return{width:t.videoWidth,height:t.videoHeight};if(typeof VideoFrame<"u"&&t instanceof VideoFrame)return{width:t.displayWidth,height:t.displayHeight};throw new Error("Unknown image type")}var zW=We(()=>{});var rb,nb,Ek,cu,Mk=We(()=>{dk();bd();Z2();IM();PM();Tk();zW();rb=class{},nb=class{features;disabledFeatures;constructor(e=[],r){this.features=new Set(e),this.disabledFeatures=r||{}}*[Symbol.iterator](){yield*this.features}has(e){return!this.disabledFeatures?.[e]&&this.features.has(e)}},Ek=class{get[Symbol.toStringTag](){return"Device"}toString(){return`Device(${this.id})`}id;props;userData={};statsManager=CM;timestamp=0;_reused=!1;_lumaData={};_textureCaps={};constructor(e){this.props={...Ek.defaultProps,...e},this.id=this.props.id||Wm(this[Symbol.toStringTag].toLowerCase())}getVertexFormatInfo(e){return U_(e)}isVertexFormatSupported(e){return!0}getTextureFormatInfo(e){return wd.getInfo(e)}getTextureFormatCapabilities(e){let r=this._textureCaps[e];if(!r){let n=this._getDeviceTextureFormatCapabilities(e);r=this._getDeviceSpecificTextureFormatCapabilities(n),this._textureCaps[e]=r}return r}getMipLevelCount(e,r,n=1){let i=Math.max(e,r,n);return 1+Math.floor(Math.log2(i))}isExternalImage(e){return NW(e)}getExternalImageSize(e){return FW(e)}isTextureFormatSupported(e){return this.getTextureFormatCapabilities(e).create}isTextureFormatFilterable(e){return this.getTextureFormatCapabilities(e).filter}isTextureFormatRenderable(e){return this.getTextureFormatCapabilities(e).render}isTextureFormatCompressed(e){return wd.isCompressed(e)}pushDebugGroup(e){this.commandEncoder.pushDebugGroup(e)}popDebugGroup(){this.commandEncoder?.popDebugGroup()}insertDebugMarker(e){this.commandEncoder?.insertDebugMarker(e)}loseDevice(){return!1}incrementTimestamp(){return this.timestamp++}reportError(e,r,...n){return this.props.onError(e,r)?()=>{}:Dt.error(e.message,r,...n)}debug(){if(this.props.debug)debugger;else{let e=`'Type luma.log.set({debug: true}) in console to enable debug breakpoints',
|
|
506
|
-
or create a device with the 'debug: true' prop.`;Dt.once(0,e)()}}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}beginRenderPass(e){return this.commandEncoder.beginRenderPass(e)}beginComputePass(e){return this.commandEncoder.beginComputePass(e)}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,r){throw new Error("not implemented")}readPixelsToBufferWebGL(e,r){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,r){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}static _getCanvasContextProps(e){return e.createCanvasContext===!0?{}:e.createCanvasContext}_getDeviceTextureFormatCapabilities(e){let r=wd.getCapabilities(e),n=o=>(typeof o=="string"?this.features.has(o):o)??!0,i=n(r.create);return{format:e,create:i,render:i&&n(r.render),filter:i&&n(r.filter),blend:i&&n(r.blend),store:i&&n(r.store)}}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});let r={...e};if((e.usage||0)&$n.INDEX&&(e.indexType||(e.data instanceof Uint32Array?r.indexType="uint32":e.data instanceof Uint16Array&&(r.indexType="uint16")),!r.indexType))throw new Error("indices buffer content must be of type uint16 or uint32");return r}},cu=Ek;Dr(cu,"defaultProps",{id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,webgl:{},onError:(e,r)=>{},onResize:(e,r)=>{let[n,i]=e.getDevicePixelSize();Dt.log(1,`${e} resized => ${n}x${i}px`)()},onPositionChange:(e,r)=>{let[n,i]=e.getPosition();Dt.log(1,`${e} repositioned => ${n},${i}`)()},onVisibilityChange:e=>Dt.log(1,`${e} Visibility changed ${e.isVisible}`)(),onDevicePixelRatioChange:(e,r)=>Dt.log(1,`${e} DPR changed ${r.oldRatio} => ${e.devicePixelRatio}`)(),debug:Dt.get("debug")||void 0,debugShaders:Dt.get("debug-shaders")||void 0,debugFramebuffers:Boolean(Dt.get("debug-framebuffers")),debugFactories:Boolean(Dt.get("debug-factories")),debugWebGL:Boolean(Dt.get("debug-webgl")),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_reuseDevices:!1,_requestMaxLimits:!0,_cacheShaders:!1,_cachePipelines:!1,_cacheDestroyPolicy:"unused",_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_handle:void 0})});var o1e,UW,DM,kM,gp,VW=We(()=>{Mk();dk();bd();o1e="set luma.log.level=1 (or higher) to trace rendering",UW="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.",DM=class{stats=CM;log=Dt;VERSION="9.2.0";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw Dt.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),Dt.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");Dt.error("This version of luma.gl has already been initialized")()}Dt.log(1,`${this.VERSION} - ${o1e}`)(),globalThis.luma=this}async createDevice(e={}){let r={...DM.defaultProps,...e},n=this.selectAdapter(r.type,r.adapters);if(!n)throw new Error(UW);return r.waitForPageLoad&&await n.pageLoaded,await n.create(r)}async attachDevice(e,r){let n=this._getTypeFromHandle(e,r.adapters),i=n&&this.selectAdapter(n,r.adapters);if(!i)throw new Error(UW);return await i?.attach?.(e,r)}registerAdapters(e){for(let r of e)this.preregisteredAdapters.set(r.type,r)}getSupportedAdapters(e=[]){let r=this._getAdapterMap(e);return Array.from(r).map(([,n])=>n).filter(n=>n.isSupported?.()).map(n=>n.type)}getBestAvailableAdapterType(e=[]){let r=["webgpu","webgl","null"],n=this._getAdapterMap(e);for(let i of r)if(n.get(i)?.isSupported?.())return i;return null}selectAdapter(e,r=[]){let n=e;e==="best-available"&&(n=this.getBestAvailableAdapterType(r));let i=this._getAdapterMap(r);return n&&i.get(n)||null}enforceWebGL2(e=!0,r=[]){let i=this._getAdapterMap(r).get("webgl");i||Dt.warn("enforceWebGL2: webgl adapter not found")(),i?.enforceWebGL2?.(e)}setDefaultDeviceProps(e){Object.assign(DM.defaultProps,e)}_getAdapterMap(e=[]){let r=new Map(this.preregisteredAdapters);for(let n of e)r.set(n.type,n);return r}_getTypeFromHandle(e,r=[]){return e instanceof WebGL2RenderingContext?"webgl":typeof GPUDevice<"u"&&e instanceof GPUDevice||e?.queue?"webgpu":e===null?"null":(e instanceof WebGLRenderingContext?Dt.warn("WebGL1 is not supported",e)():Dt.warn("Unknown handle type",e)(),null)}},kM=DM;Dr(kM,"defaultProps",{...cu.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0});gp=new kM});function c1e(){return NM||(a1e()||typeof window>"u"?NM=Promise.resolve():NM=new Promise(t=>window.addEventListener("load",()=>t()))),NM}var ib,s1e,a1e,NM,jW=We(()=>{Nm();ib=class{get pageLoaded(){return c1e()}},s1e=Ll()&&typeof document<"u",a1e=()=>s1e&&document.readyState==="complete",NM=null});function HW(){let t,e;return{promise:new Promise((n,i)=>{t=n,e=i}),resolve:t,reject:e}}var WW=We(()=>{});function l1e(t){if(typeof t=="string"){let e=document.getElementById(t);if(!e)throw new Error(`${t} is not an HTML element`);return e}return t||document.body}function u1e(t){let e=document.getElementById(t);if(!DA.isHTMLCanvas(e))throw new Error("Object is not a canvas element");return e}function h1e(t){let{width:e,height:r}=t,n=document.createElement("canvas");n.id=Wm("lumagl-auto-created-canvas"),n.width=e||1,n.height=r||1,n.style.width=Number.isFinite(e)?`${e}px`:"100%",n.style.height=Number.isFinite(r)?`${r}px`:"100%",t?.visible||(n.style.visibility="hidden");let i=l1e(t?.container||null);return i.insertBefore(n,i.firstChild),n}function f1e(t,e,r,n,i){let o=t,s=qW(o[0],e,r),a=GW(o[1],e,n,i),l=qW(o[0]+1,e,r),u=l===r-1?l:l-1;l=GW(o[1]+1,e,n,i);let f;return i?(l=l===0?l:l+1,f=a,a=l):f=l===n-1?l:l-1,{x:s,y:a,width:Math.max(u-s+1,1),height:Math.max(f-a+1,1)}}function qW(t,e,r){return Math.min(Math.round(t*e),r-1)}function GW(t,e,r,n){return n?Math.max(0,r-1-Math.round(t*e)):Math.min(Math.round(t*e),r-1)}var V_,DA,XW=We(()=>{Nm();Z2();WW();V_=class{static isHTMLCanvas(e){return typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement}static isOffscreenCanvas(e){return typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas}id;props;canvas;htmlCanvas;offscreenCanvas;type;initialized;isInitialized=!1;isVisible=!0;cssWidth;cssHeight;devicePixelRatio;devicePixelWidth;devicePixelHeight;drawingBufferWidth;drawingBufferHeight;_initializedResolvers=HW();_resizeObserver;_intersectionObserver;_position;destroyed=!1;toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){if(this.props={...V_.defaultProps,...e},e=this.props,this.initialized=this._initializedResolvers.promise,Ll()?e.canvas?typeof e.canvas=="string"?this.canvas=u1e(e.canvas):this.canvas=e.canvas:this.canvas=h1e(e):this.canvas={width:e.width||1,height:e.height||1},V_.isHTMLCanvas(this.canvas)?(this.id=e.id||this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):V_.isOffscreenCanvas(this.canvas)?(this.id=e.id||"offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas):(this.id=e.id||"node-canvas-context",this.type="node"),this.cssWidth=this.htmlCanvas?.clientWidth||this.canvas.width,this.cssHeight=this.htmlCanvas?.clientHeight||this.canvas.height,this.devicePixelWidth=this.canvas.width,this.devicePixelHeight=this.canvas.height,this.drawingBufferWidth=this.canvas.width,this.drawingBufferHeight=this.canvas.height,this.devicePixelRatio=globalThis.devicePixelRatio||1,this._position=[0,0],V_.isHTMLCanvas(this.canvas)){this._intersectionObserver=new IntersectionObserver(r=>this._handleIntersection(r)),this._intersectionObserver.observe(this.canvas),this._resizeObserver=new ResizeObserver(r=>this._handleResize(r));try{this._resizeObserver.observe(this.canvas,{box:"device-pixel-content-box"})}catch{this._resizeObserver.observe(this.canvas,{box:"content-box"})}setTimeout(()=>this._observeDevicePixelRatio(),0),this.props.trackPosition&&this._trackPosition()}}destroy(){this.destroyed=!0}setProps(e){return"useDevicePixels"in e&&(this.props.useDevicePixels=e.useDevicePixels||!1,this._updateDrawingBufferSize()),this}getCSSSize(){return[this.cssWidth,this.cssHeight]}getPosition(){return this._position}getDevicePixelSize(){return[this.devicePixelWidth,this.devicePixelHeight]}getDrawingBufferSize(){return[this.drawingBufferWidth,this.drawingBufferHeight]}getMaxDrawingBufferSize(){let e=this.device.limits.maxTextureDimension2D;return[e,e]}setDrawingBufferSize(e,r){this.canvas.width=e,this.canvas.height=r,this.drawingBufferWidth=e,this.drawingBufferHeight=r}getDevicePixelRatio(){return typeof window<"u"&&window.devicePixelRatio||1}cssToDevicePixels(e,r=!0){let n=this.cssToDeviceRatio(),[i,o]=this.getDrawingBufferSize();return f1e(e,n,i,o,r)}getPixelSize(){return this.getDevicePixelSize()}getAspect(){let[e,r]=this.getDevicePixelSize();return e/r}cssToDeviceRatio(){try{let[e]=this.getDrawingBufferSize(),[r]=this.getCSSSize();return r?e/r:1}catch{return 1}}resize(e){this.setDrawingBufferSize(e.width,e.height)}_setAutoCreatedCanvasId(e){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=e)}_handleIntersection(e){let r=e.find(i=>i.target===this.canvas);if(!r)return;let n=r.isIntersecting;this.isVisible!==n&&(this.isVisible=n,this.device.props.onVisibilityChange(this))}_handleResize(e){let r=e.find(l=>l.target===this.canvas);if(!r)return;this.cssWidth=r.contentBoxSize[0].inlineSize,this.cssHeight=r.contentBoxSize[0].blockSize;let n=this.getDevicePixelSize(),i=r.devicePixelContentBoxSize?.[0].inlineSize||r.contentBoxSize[0].inlineSize*devicePixelRatio,o=r.devicePixelContentBoxSize?.[0].blockSize||r.contentBoxSize[0].blockSize*devicePixelRatio,[s,a]=this.getMaxDrawingBufferSize();this.devicePixelWidth=Math.max(1,Math.min(i,s)),this.devicePixelHeight=Math.max(1,Math.min(o,a)),this._updateDrawingBufferSize(),this.device.props.onResize(this,{oldPixelSize:n})}_updateDrawingBufferSize(){if(this.props.autoResize){if(typeof this.props.useDevicePixels=="number"){let e=this.props.useDevicePixels;this.setDrawingBufferSize(this.cssWidth*e,this.cssHeight*e)}else this.props.useDevicePixels?this.setDrawingBufferSize(this.devicePixelWidth,this.devicePixelHeight):this.setDrawingBufferSize(this.cssWidth,this.cssHeight);this._updateDevice()}this._initializedResolvers.resolve(),this.isInitialized=!0,this.updatePosition()}_observeDevicePixelRatio(){let e=this.devicePixelRatio;this.devicePixelRatio=window.devicePixelRatio,this.updatePosition(),this.device.props.onDevicePixelRatioChange(this,{oldRatio:e}),matchMedia(`(resolution: ${this.devicePixelRatio}dppx)`).addEventListener("change",()=>this._observeDevicePixelRatio(),{once:!0})}_trackPosition(e=100){let r=setInterval(()=>{this.destroyed?clearInterval(r):this.updatePosition()},e)}updatePosition(){let e=this.htmlCanvas?.getBoundingClientRect();if(e){let r=[e.left,e.top];if(this._position??=r,r[0]!==this._position[0]||r[1]!==this._position[1]){let i=this._position;this._position=r,this.device.props.onPositionChange?.(this,{oldPosition:i})}}}},DA=V_;Dr(DA,"defaultProps",{id:void 0,canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb",trackPosition:!1})});var FM,xh,Sk=We(()=>{Ol();FM=class extends hi{get[Symbol.toStringTag](){return"Sampler"}constructor(e,r){r=FM.normalizeProps(e,r),super(e,r,FM.defaultProps)}static normalizeProps(e,r){return r}},xh=FM;Dr(xh,"defaultProps",{...hi.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"none",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1})});var p1e,Td,Ki,Ck=We(()=>{Ol();Sk();bd();p1e={"1d":"1d","2d":"2d","2d-array":"2d",cube:"2d","cube-array":"2d","3d":"3d"},Td=class extends hi{dimension;baseDimension;format;width;height;depth;mipLevels;updateTimestamp;get[Symbol.toStringTag](){return"Texture"}toString(){return`Texture(${this.id},${this.format},${this.width}x${this.height})`}constructor(e,r){if(r=Td.normalizeProps(e,r),super(e,r,Td.defaultProps),this.dimension=this.props.dimension,this.baseDimension=p1e[this.dimension],this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.mipLevels=this.props.mipLevels,this.props.width===void 0||this.props.height===void 0)if(e.isExternalImage(r.data)){let n=e.getExternalImageSize(r.data);this.width=n?.width||1,this.height=n?.height||1}else this.width=1,this.height=1,(this.props.width===void 0||this.props.height===void 0)&&Dt.warn(`${this} created with undefined width or height. This is deprecated. Use AsyncTexture instead.`)();this.updateTimestamp=e.incrementTimestamp()}setSampler(e){this.sampler=e instanceof xh?e:this.device.createSampler(e)}clone(e){return this.device.createTexture({...this.props,...e})}static normalizeProps(e,r){let n={...r},{width:i,height:o}=n;return typeof i=="number"&&(n.width=Math.max(1,Math.ceil(i))),typeof o=="number"&&(n.height=Math.max(1,Math.ceil(o))),n}_initializeData(e){this.device.isExternalImage(e)?this.copyExternalImage({image:e,width:this.width,height:this.height,depth:this.depth,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1}):e&&this.copyImageData({data:e,mipLevel:0,x:0,y:0,z:0,aspect:"all"})}_normalizeCopyImageDataOptions(e){let{width:r,height:n,depth:i}=this,o={...Td.defaultCopyDataOptions,width:r,height:n,depth:i,...e},s=this.device.getTextureFormatInfo(this.format);if(!e.bytesPerRow&&!s.bytesPerPixel)throw new Error(`bytesPerRow must be provided for texture format ${this.format}`);return o.bytesPerRow=e.bytesPerRow||r*(s.bytesPerPixel||4),o.rowsPerImage=e.rowsPerImage||n,o}_normalizeCopyExternalImageOptions(e){let r=this.device.getExternalImageSize(e.image),n={...Td.defaultCopyExternalImageOptions,...r,...e};return n.width=Math.min(n.width,this.width-n.x),n.height=Math.min(n.height,this.height-n.y),n}},Ki=Td;Dr(Ki,"SAMPLE",4),Dr(Ki,"STORAGE",8),Dr(Ki,"RENDER",16),Dr(Ki,"COPY_SRC",1),Dr(Ki,"COPY_DST",2),Dr(Ki,"TEXTURE",4),Dr(Ki,"RENDER_ATTACHMENT",16),Dr(Ki,"defaultProps",{...hi.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",usage:Td.TEXTURE|Td.RENDER_ATTACHMENT|Td.COPY_DST,width:void 0,height:void 0,depth:1,mipLevels:1,samples:void 0,sampler:{},view:void 0}),Dr(Ki,"defaultCopyDataOptions",{data:void 0,byteOffset:0,bytesPerRow:void 0,rowsPerImage:void 0,mipLevel:0,x:0,y:0,z:0,aspect:"all"}),Dr(Ki,"defaultCopyExternalImageOptions",{image:void 0,sourceX:0,sourceY:0,width:void 0,height:void 0,depth:1,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1})});var Ik,qm,YW=We(()=>{Ol();Ik=class extends hi{get[Symbol.toStringTag](){return"TextureView"}constructor(e,r){super(e,r,Ik.defaultProps)}},qm=Ik;Dr(qm,"defaultProps",{...hi.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0})});function $W(t,e,r){let n="",i=e.split(/\r?\n/),o=t.slice().sort((s,a)=>s.lineNum-a.lineNum);switch(r?.showSourceCode||"no"){case"all":let s=0;for(let a=1;a<=i.length;a++)for(n+=KW(i[a-1],a,r);o.length>s&&o[s].lineNum===a;){let l=o[s++];n+=Pk(l,i,l.lineNum,{...r,inlineSource:!1})}for(;o.length>s;){let a=o[s++];n+=Pk(a,[],0,{...r,inlineSource:!1})}return n;case"issues":case"no":for(let a of t)n+=Pk(a,i,a.lineNum,{inlineSource:r?.showSourceCode!=="no"});return n}}function Pk(t,e,r,n){if(n?.inlineSource){let o=d1e(e,r),s=t.linePos>0?`${" ".repeat(t.linePos+5)}^^^
|
|
506
|
+
or create a device with the 'debug: true' prop.`;Dt.once(0,e)()}}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}beginRenderPass(e){return this.commandEncoder.beginRenderPass(e)}beginComputePass(e){return this.commandEncoder.beginComputePass(e)}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,r){throw new Error("not implemented")}readPixelsToBufferWebGL(e,r){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,r){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}static _getCanvasContextProps(e){return e.createCanvasContext===!0?{}:e.createCanvasContext}_getDeviceTextureFormatCapabilities(e){let r=wd.getCapabilities(e),n=o=>(typeof o=="string"?this.features.has(o):o)??!0,i=n(r.create);return{format:e,create:i,render:i&&n(r.render),filter:i&&n(r.filter),blend:i&&n(r.blend),store:i&&n(r.store)}}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});let r={...e};if((e.usage||0)&$n.INDEX&&(e.indexType||(e.data instanceof Uint32Array?r.indexType="uint32":e.data instanceof Uint16Array&&(r.indexType="uint16")),!r.indexType))throw new Error("indices buffer content must be of type uint16 or uint32");return r}},cu=Ek;Dr(cu,"defaultProps",{id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,webgl:{},onError:(e,r)=>{},onResize:(e,r)=>{let[n,i]=e.getDevicePixelSize();Dt.log(1,`${e} resized => ${n}x${i}px`)()},onPositionChange:(e,r)=>{let[n,i]=e.getPosition();Dt.log(1,`${e} repositioned => ${n},${i}`)()},onVisibilityChange:e=>Dt.log(1,`${e} Visibility changed ${e.isVisible}`)(),onDevicePixelRatioChange:(e,r)=>Dt.log(1,`${e} DPR changed ${r.oldRatio} => ${e.devicePixelRatio}`)(),debug:Dt.get("debug")||void 0,debugShaders:Dt.get("debug-shaders")||void 0,debugFramebuffers:Boolean(Dt.get("debug-framebuffers")),debugFactories:Boolean(Dt.get("debug-factories")),debugWebGL:Boolean(Dt.get("debug-webgl")),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_reuseDevices:!1,_requestMaxLimits:!0,_cacheShaders:!1,_cachePipelines:!1,_cacheDestroyPolicy:"unused",_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_handle:void 0})});var o1e,UW,DM,kM,gp,VW=We(()=>{Mk();dk();bd();o1e="set luma.log.level=1 (or higher) to trace rendering",UW="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.",DM=class{stats=CM;log=Dt;VERSION="9.2.2";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw Dt.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),Dt.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");Dt.error("This version of luma.gl has already been initialized")()}Dt.log(1,`${this.VERSION} - ${o1e}`)(),globalThis.luma=this}async createDevice(e={}){let r={...DM.defaultProps,...e},n=this.selectAdapter(r.type,r.adapters);if(!n)throw new Error(UW);return r.waitForPageLoad&&await n.pageLoaded,await n.create(r)}async attachDevice(e,r){let n=this._getTypeFromHandle(e,r.adapters),i=n&&this.selectAdapter(n,r.adapters);if(!i)throw new Error(UW);return await i?.attach?.(e,r)}registerAdapters(e){for(let r of e)this.preregisteredAdapters.set(r.type,r)}getSupportedAdapters(e=[]){let r=this._getAdapterMap(e);return Array.from(r).map(([,n])=>n).filter(n=>n.isSupported?.()).map(n=>n.type)}getBestAvailableAdapterType(e=[]){let r=["webgpu","webgl","null"],n=this._getAdapterMap(e);for(let i of r)if(n.get(i)?.isSupported?.())return i;return null}selectAdapter(e,r=[]){let n=e;e==="best-available"&&(n=this.getBestAvailableAdapterType(r));let i=this._getAdapterMap(r);return n&&i.get(n)||null}enforceWebGL2(e=!0,r=[]){let i=this._getAdapterMap(r).get("webgl");i||Dt.warn("enforceWebGL2: webgl adapter not found")(),i?.enforceWebGL2?.(e)}setDefaultDeviceProps(e){Object.assign(DM.defaultProps,e)}_getAdapterMap(e=[]){let r=new Map(this.preregisteredAdapters);for(let n of e)r.set(n.type,n);return r}_getTypeFromHandle(e,r=[]){return e instanceof WebGL2RenderingContext?"webgl":typeof GPUDevice<"u"&&e instanceof GPUDevice||e?.queue?"webgpu":e===null?"null":(e instanceof WebGLRenderingContext?Dt.warn("WebGL1 is not supported",e)():Dt.warn("Unknown handle type",e)(),null)}},kM=DM;Dr(kM,"defaultProps",{...cu.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0});gp=new kM});function c1e(){return NM||(a1e()||typeof window>"u"?NM=Promise.resolve():NM=new Promise(t=>window.addEventListener("load",()=>t()))),NM}var ib,s1e,a1e,NM,jW=We(()=>{Nm();ib=class{get pageLoaded(){return c1e()}},s1e=Ll()&&typeof document<"u",a1e=()=>s1e&&document.readyState==="complete",NM=null});function HW(){let t,e;return{promise:new Promise((n,i)=>{t=n,e=i}),resolve:t,reject:e}}var WW=We(()=>{});function l1e(t){if(typeof t=="string"){let e=document.getElementById(t);if(!e)throw new Error(`${t} is not an HTML element`);return e}return t||document.body}function u1e(t){let e=document.getElementById(t);if(!DA.isHTMLCanvas(e))throw new Error("Object is not a canvas element");return e}function h1e(t){let{width:e,height:r}=t,n=document.createElement("canvas");n.id=Wm("lumagl-auto-created-canvas"),n.width=e||1,n.height=r||1,n.style.width=Number.isFinite(e)?`${e}px`:"100%",n.style.height=Number.isFinite(r)?`${r}px`:"100%",t?.visible||(n.style.visibility="hidden");let i=l1e(t?.container||null);return i.insertBefore(n,i.firstChild),n}function f1e(t,e,r,n,i){let o=t,s=qW(o[0],e,r),a=GW(o[1],e,n,i),l=qW(o[0]+1,e,r),u=l===r-1?l:l-1;l=GW(o[1]+1,e,n,i);let f;return i?(l=l===0?l:l+1,f=a,a=l):f=l===n-1?l:l-1,{x:s,y:a,width:Math.max(u-s+1,1),height:Math.max(f-a+1,1)}}function qW(t,e,r){return Math.min(Math.round(t*e),r-1)}function GW(t,e,r,n){return n?Math.max(0,r-1-Math.round(t*e)):Math.min(Math.round(t*e),r-1)}var V_,DA,XW=We(()=>{Nm();Z2();WW();V_=class{static isHTMLCanvas(e){return typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement}static isOffscreenCanvas(e){return typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas}id;props;canvas;htmlCanvas;offscreenCanvas;type;initialized;isInitialized=!1;isVisible=!0;cssWidth;cssHeight;devicePixelRatio;devicePixelWidth;devicePixelHeight;drawingBufferWidth;drawingBufferHeight;_initializedResolvers=HW();_resizeObserver;_intersectionObserver;_position;destroyed=!1;toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){if(this.props={...V_.defaultProps,...e},e=this.props,this.initialized=this._initializedResolvers.promise,Ll()?e.canvas?typeof e.canvas=="string"?this.canvas=u1e(e.canvas):this.canvas=e.canvas:this.canvas=h1e(e):this.canvas={width:e.width||1,height:e.height||1},V_.isHTMLCanvas(this.canvas)?(this.id=e.id||this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):V_.isOffscreenCanvas(this.canvas)?(this.id=e.id||"offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas):(this.id=e.id||"node-canvas-context",this.type="node"),this.cssWidth=this.htmlCanvas?.clientWidth||this.canvas.width,this.cssHeight=this.htmlCanvas?.clientHeight||this.canvas.height,this.devicePixelWidth=this.canvas.width,this.devicePixelHeight=this.canvas.height,this.drawingBufferWidth=this.canvas.width,this.drawingBufferHeight=this.canvas.height,this.devicePixelRatio=globalThis.devicePixelRatio||1,this._position=[0,0],V_.isHTMLCanvas(this.canvas)){this._intersectionObserver=new IntersectionObserver(r=>this._handleIntersection(r)),this._intersectionObserver.observe(this.canvas),this._resizeObserver=new ResizeObserver(r=>this._handleResize(r));try{this._resizeObserver.observe(this.canvas,{box:"device-pixel-content-box"})}catch{this._resizeObserver.observe(this.canvas,{box:"content-box"})}setTimeout(()=>this._observeDevicePixelRatio(),0),this.props.trackPosition&&this._trackPosition()}}destroy(){this.destroyed=!0}setProps(e){return"useDevicePixels"in e&&(this.props.useDevicePixels=e.useDevicePixels||!1,this._updateDrawingBufferSize()),this}getCSSSize(){return[this.cssWidth,this.cssHeight]}getPosition(){return this._position}getDevicePixelSize(){return[this.devicePixelWidth,this.devicePixelHeight]}getDrawingBufferSize(){return[this.drawingBufferWidth,this.drawingBufferHeight]}getMaxDrawingBufferSize(){let e=this.device.limits.maxTextureDimension2D;return[e,e]}setDrawingBufferSize(e,r){this.canvas.width=e,this.canvas.height=r,this.drawingBufferWidth=e,this.drawingBufferHeight=r}getDevicePixelRatio(){return typeof window<"u"&&window.devicePixelRatio||1}cssToDevicePixels(e,r=!0){let n=this.cssToDeviceRatio(),[i,o]=this.getDrawingBufferSize();return f1e(e,n,i,o,r)}getPixelSize(){return this.getDevicePixelSize()}getAspect(){let[e,r]=this.getDevicePixelSize();return e/r}cssToDeviceRatio(){try{let[e]=this.getDrawingBufferSize(),[r]=this.getCSSSize();return r?e/r:1}catch{return 1}}resize(e){this.setDrawingBufferSize(e.width,e.height)}_setAutoCreatedCanvasId(e){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=e)}_handleIntersection(e){let r=e.find(i=>i.target===this.canvas);if(!r)return;let n=r.isIntersecting;this.isVisible!==n&&(this.isVisible=n,this.device.props.onVisibilityChange(this))}_handleResize(e){let r=e.find(l=>l.target===this.canvas);if(!r)return;this.cssWidth=r.contentBoxSize[0].inlineSize,this.cssHeight=r.contentBoxSize[0].blockSize;let n=this.getDevicePixelSize(),i=r.devicePixelContentBoxSize?.[0].inlineSize||r.contentBoxSize[0].inlineSize*devicePixelRatio,o=r.devicePixelContentBoxSize?.[0].blockSize||r.contentBoxSize[0].blockSize*devicePixelRatio,[s,a]=this.getMaxDrawingBufferSize();this.devicePixelWidth=Math.max(1,Math.min(i,s)),this.devicePixelHeight=Math.max(1,Math.min(o,a)),this._updateDrawingBufferSize(),this.device.props.onResize(this,{oldPixelSize:n})}_updateDrawingBufferSize(){if(this.props.autoResize){if(typeof this.props.useDevicePixels=="number"){let e=this.props.useDevicePixels;this.setDrawingBufferSize(this.cssWidth*e,this.cssHeight*e)}else this.props.useDevicePixels?this.setDrawingBufferSize(this.devicePixelWidth,this.devicePixelHeight):this.setDrawingBufferSize(this.cssWidth,this.cssHeight);this._updateDevice()}this._initializedResolvers.resolve(),this.isInitialized=!0,this.updatePosition()}_observeDevicePixelRatio(){let e=this.devicePixelRatio;this.devicePixelRatio=window.devicePixelRatio,this.updatePosition(),this.device.props.onDevicePixelRatioChange(this,{oldRatio:e}),matchMedia(`(resolution: ${this.devicePixelRatio}dppx)`).addEventListener("change",()=>this._observeDevicePixelRatio(),{once:!0})}_trackPosition(e=100){let r=setInterval(()=>{this.destroyed?clearInterval(r):this.updatePosition()},e)}updatePosition(){let e=this.htmlCanvas?.getBoundingClientRect();if(e){let r=[e.left,e.top];if(this._position??=r,r[0]!==this._position[0]||r[1]!==this._position[1]){let i=this._position;this._position=r,this.device.props.onPositionChange?.(this,{oldPosition:i})}}}},DA=V_;Dr(DA,"defaultProps",{id:void 0,canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb",trackPosition:!1})});var FM,xh,Sk=We(()=>{Ol();FM=class extends hi{get[Symbol.toStringTag](){return"Sampler"}constructor(e,r){r=FM.normalizeProps(e,r),super(e,r,FM.defaultProps)}static normalizeProps(e,r){return r}},xh=FM;Dr(xh,"defaultProps",{...hi.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"none",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1})});var p1e,Td,Ki,Ck=We(()=>{Ol();Sk();bd();p1e={"1d":"1d","2d":"2d","2d-array":"2d",cube:"2d","cube-array":"2d","3d":"3d"},Td=class extends hi{dimension;baseDimension;format;width;height;depth;mipLevels;updateTimestamp;get[Symbol.toStringTag](){return"Texture"}toString(){return`Texture(${this.id},${this.format},${this.width}x${this.height})`}constructor(e,r){if(r=Td.normalizeProps(e,r),super(e,r,Td.defaultProps),this.dimension=this.props.dimension,this.baseDimension=p1e[this.dimension],this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.mipLevels=this.props.mipLevels,this.props.width===void 0||this.props.height===void 0)if(e.isExternalImage(r.data)){let n=e.getExternalImageSize(r.data);this.width=n?.width||1,this.height=n?.height||1}else this.width=1,this.height=1,(this.props.width===void 0||this.props.height===void 0)&&Dt.warn(`${this} created with undefined width or height. This is deprecated. Use AsyncTexture instead.`)();this.updateTimestamp=e.incrementTimestamp()}setSampler(e){this.sampler=e instanceof xh?e:this.device.createSampler(e)}clone(e){return this.device.createTexture({...this.props,...e})}static normalizeProps(e,r){let n={...r},{width:i,height:o}=n;return typeof i=="number"&&(n.width=Math.max(1,Math.ceil(i))),typeof o=="number"&&(n.height=Math.max(1,Math.ceil(o))),n}_initializeData(e){this.device.isExternalImage(e)?this.copyExternalImage({image:e,width:this.width,height:this.height,depth:this.depth,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1}):e&&this.copyImageData({data:e,mipLevel:0,x:0,y:0,z:0,aspect:"all"})}_normalizeCopyImageDataOptions(e){let{width:r,height:n,depth:i}=this,o={...Td.defaultCopyDataOptions,width:r,height:n,depth:i,...e},s=this.device.getTextureFormatInfo(this.format);if(!e.bytesPerRow&&!s.bytesPerPixel)throw new Error(`bytesPerRow must be provided for texture format ${this.format}`);return o.bytesPerRow=e.bytesPerRow||r*(s.bytesPerPixel||4),o.rowsPerImage=e.rowsPerImage||n,o}_normalizeCopyExternalImageOptions(e){let r=this.device.getExternalImageSize(e.image),n={...Td.defaultCopyExternalImageOptions,...r,...e};return n.width=Math.min(n.width,this.width-n.x),n.height=Math.min(n.height,this.height-n.y),n}},Ki=Td;Dr(Ki,"SAMPLE",4),Dr(Ki,"STORAGE",8),Dr(Ki,"RENDER",16),Dr(Ki,"COPY_SRC",1),Dr(Ki,"COPY_DST",2),Dr(Ki,"TEXTURE",4),Dr(Ki,"RENDER_ATTACHMENT",16),Dr(Ki,"defaultProps",{...hi.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",usage:Td.TEXTURE|Td.RENDER_ATTACHMENT|Td.COPY_DST,width:void 0,height:void 0,depth:1,mipLevels:1,samples:void 0,sampler:{},view:void 0}),Dr(Ki,"defaultCopyDataOptions",{data:void 0,byteOffset:0,bytesPerRow:void 0,rowsPerImage:void 0,mipLevel:0,x:0,y:0,z:0,aspect:"all"}),Dr(Ki,"defaultCopyExternalImageOptions",{image:void 0,sourceX:0,sourceY:0,width:void 0,height:void 0,depth:1,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1})});var Ik,qm,YW=We(()=>{Ol();Ik=class extends hi{get[Symbol.toStringTag](){return"TextureView"}constructor(e,r){super(e,r,Ik.defaultProps)}},qm=Ik;Dr(qm,"defaultProps",{...hi.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0})});function $W(t,e,r){let n="",i=e.split(/\r?\n/),o=t.slice().sort((s,a)=>s.lineNum-a.lineNum);switch(r?.showSourceCode||"no"){case"all":let s=0;for(let a=1;a<=i.length;a++)for(n+=KW(i[a-1],a,r);o.length>s&&o[s].lineNum===a;){let l=o[s++];n+=Pk(l,i,l.lineNum,{...r,inlineSource:!1})}for(;o.length>s;){let a=o[s++];n+=Pk(a,[],0,{...r,inlineSource:!1})}return n;case"issues":case"no":for(let a of t)n+=Pk(a,i,a.lineNum,{inlineSource:r?.showSourceCode!=="no"});return n}}function Pk(t,e,r,n){if(n?.inlineSource){let o=d1e(e,r),s=t.linePos>0?`${" ".repeat(t.linePos+5)}^^^
|
|
507
507
|
`:"";return`
|
|
508
508
|
${o}${s}${t.type.toUpperCase()}: ${t.message}
|
|
509
509
|
|
|
@@ -513,7 +513,7 @@ ${o}${s}${t.type.toUpperCase()}: ${t.message}
|
|
|
513
513
|
<code style="user-select:text;"><pre>
|
|
514
514
|
${o}
|
|
515
515
|
</pre></code>`,a.style.top="10px",a.style.left="10px",a.style.position="absolute",a.style.zIndex="9999",a.style.width="100%",a.style.textAlign="left",document.body.appendChild(a),document.getElementsByClassName("luma-compiler-log-error")[0]?.scrollIntoView(),a.onclick=()=>{let u=`data:text/plain,${encodeURIComponent(this.source)}`;navigator.clipboard.writeText(u)}}},Gm=Rk;Dr(Gm,"defaultProps",{...hi.defaultProps,language:"auto",stage:void 0,source:"",sourceMap:null,entryPoint:"main",debugShaders:void 0})});var Lk,yp,JW=We(()=>{Ol();Ck();bd();Lk=class extends hi{get[Symbol.toStringTag](){return"Framebuffer"}width;height;constructor(e,r={}){super(e,r,Lk.defaultProps),this.width=this.props.width,this.height=this.props.height}clone(e){let r=this.colorAttachments.map(i=>i.texture.clone(e)),n=this.depthStencilAttachment&&this.depthStencilAttachment.texture.clone(e);return this.device.createFramebuffer({...this.props,colorAttachments:r,depthStencilAttachment:n})}resize(e){let r=!e;if(e){let[n,i]=Array.isArray(e)?e:[e.width,e.height];r=r||i!==this.height||n!==this.width,this.width=n,this.height=i}r&&(Dt.log(2,`Resizing framebuffer ${this.id} to ${this.width}x${this.height}`)(),this.resizeAttachments(this.width,this.height))}autoCreateAttachmentTextures(){if(this.props.colorAttachments.length===0&&!this.props.depthStencilAttachment)throw new Error("Framebuffer has noattachments");this.colorAttachments=this.props.colorAttachments.map((r,n)=>{if(typeof r=="string"){let i=this.createColorTexture(r,n);return this.attachResource(i),i.view}return r instanceof Ki?r.view:r});let e=this.props.depthStencilAttachment;if(e)if(typeof e=="string"){let r=this.createDepthStencilTexture(e);this.attachResource(r),this.depthStencilAttachment=r.view}else e instanceof Ki?this.depthStencilAttachment=e.view:this.depthStencilAttachment=e}createColorTexture(e,r){return this.device.createTexture({id:`${this.id}-color-attachment-${r}`,usage:Ki.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height,sampler:{magFilter:"linear",minFilter:"linear"}})}createDepthStencilTexture(e){return this.device.createTexture({id:`${this.id}-depth-stencil-attachment`,usage:Ki.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}resizeAttachments(e,r){for(let n=0;n<this.colorAttachments.length;++n)if(this.colorAttachments[n]){let i=this.colorAttachments[n].texture.clone({width:e,height:r});this.destroyAttachedResource(this.colorAttachments[n]),this.colorAttachments[n]=i.view,this.attachResource(i.view)}if(this.depthStencilAttachment){let n=this.depthStencilAttachment.texture.clone({width:e,height:r});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=n.view,this.attachResource(n)}this.updateAttachments()}},yp=Lk;Dr(yp,"defaultProps",{...hi.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null})});var Ok,vh,eq=We(()=>{Ol();Ok=class extends hi{get[Symbol.toStringTag](){return"RenderPipeline"}shaderLayout;bufferLayout;linkStatus="pending";hash="";constructor(e,r){super(e,r,Ok.defaultProps),this.shaderLayout=this.props.shaderLayout,this.bufferLayout=this.props.bufferLayout||[]}},vh=Ok;Dr(vh,"defaultProps",{...hi.defaultProps,vs:null,vertexEntryPoint:"vertexMain",vsConstants:{},fs:null,fragmentEntryPoint:"fragmentMain",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",colorAttachmentFormats:void 0,depthStencilAttachmentFormat:void 0,parameters:{},bindings:{},uniforms:{}})});var NA,Ed,tq=We(()=>{Ol();NA=class extends hi{get[Symbol.toStringTag](){return"RenderPass"}constructor(e,r){r=NA.normalizeProps(e,r),super(e,r,NA.defaultProps)}static normalizeProps(e,r){return r}},Ed=NA;Dr(Ed,"defaultClearColor",[0,0,0,1]),Dr(Ed,"defaultClearDepth",1),Dr(Ed,"defaultClearStencil",0),Dr(Ed,"defaultProps",{...hi.defaultProps,framebuffer:null,parameters:void 0,clearColor:NA.defaultClearColor,clearColors:void 0,clearDepth:NA.defaultClearDepth,clearStencil:NA.defaultClearStencil,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0})});var Bk,FA,rq=We(()=>{Ol();Bk=class extends hi{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";shaderLayout;constructor(e,r){super(e,r,Bk.defaultProps),this.shaderLayout=r.shaderLayout}},FA=Bk;Dr(FA,"defaultProps",{...hi.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0})});var kk,j_,nq=We(()=>{Ol();kk=class extends hi{get[Symbol.toStringTag](){return"CommandEncoder"}constructor(e,r){super(e,r,kk.defaultProps)}},j_=kk;Dr(j_,"defaultProps",{...hi.defaultProps,measureExecutionTime:void 0})});var Dk,H_,iq=We(()=>{Ol();Dk=class extends hi{get[Symbol.toStringTag](){return"CommandBuffer"}constructor(e,r){super(e,r,Dk.defaultProps)}},H_=Dk;Dr(H_,"defaultProps",{...hi.defaultProps})});function ob(t){return v1e[t]}function Nk(t){let[e,r]=x1e[t],n=e==="i32"||e==="u32",i=e!=="u32",o=_1e[e]*r;return{primitiveType:e,components:r,byteLength:o,integer:n,signed:i}}var _1e,x1e,v1e,b1e,htt,zM=We(()=>{_1e={f32:4,f16:2,i32:4,u32:4},x1e={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},v1e={f32:{type:"f32",components:1},f16:{type:"f16",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<f16>":{type:"f16",components:2},"vec3<f16>":{type:"f16",components:3},"vec4<f16>":{type:"f16",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16},"mat2x2<f16>":{type:"f16",components:4},"mat2x3<f16>":{type:"f16",components:6},"mat2x4<f16>":{type:"f16",components:8},"mat3x2<f16>":{type:"f16",components:6},"mat3x3<f16>":{type:"f16",components:9},"mat3x4<f16>":{type:"f16",components:12},"mat4x2<f16>":{type:"f16",components:8},"mat4x3<f16>":{type:"f16",components:12},"mat4x4<f16>":{type:"f16",components:16},"mat2x2<i32>":{type:"i32",components:4},"mat2x3<i32>":{type:"i32",components:6},"mat2x4<i32>":{type:"i32",components:8},"mat3x2<i32>":{type:"i32",components:6},"mat3x3<i32>":{type:"i32",components:9},"mat3x4<i32>":{type:"i32",components:12},"mat4x2<i32>":{type:"i32",components:8},"mat4x3<i32>":{type:"i32",components:12},"mat4x4<i32>":{type:"i32",components:16},"mat2x2<u32>":{type:"u32",components:4},"mat2x3<u32>":{type:"u32",components:6},"mat2x4<u32>":{type:"u32",components:8},"mat3x2<u32>":{type:"u32",components:6},"mat3x3<u32>":{type:"u32",components:9},"mat3x4<u32>":{type:"u32",components:12},"mat4x2<u32>":{type:"u32",components:8},"mat4x3<u32>":{type:"u32",components:12},"mat4x4<u32>":{type:"u32",components:16}},b1e={vec2i:"vec2<i32>",vec3i:"vec3<i32>",vec4i:"vec4<i32>",vec2u:"vec2<u32>",vec3u:"vec3<u32>",vec4u:"vec4<u32>",vec2f:"vec2<f32>",vec3f:"vec3<f32>",vec4f:"vec4<f32>",vec2h:"vec2<f16>",vec3h:"vec3<f16>",vec4h:"vec4<f16>"},htt={...b1e,mat2x2f:"mat2x2<f32>",mat2x3f:"mat2x3<f32>",mat2x4f:"mat2x4<f32>",mat3x2f:"mat3x2<f32>",mat3x3f:"mat3x3<f32>",mat3x4f:"mat3x4<f32>",mat4x2f:"mat4x2<f32>",mat4x3f:"mat4x3<f32>",mat4x4f:"mat4x4<f32>",mat2x2i:"mat2x2<i32>",mat2x3i:"mat2x3<i32>",mat2x4i:"mat2x4<i32>",mat3x2i:"mat3x2<i32>",mat3x3i:"mat3x3<i32>",mat3x4i:"mat3x4<i32>",mat4x2i:"mat4x2<i32>",mat4x3i:"mat4x3<i32>",mat4x4i:"mat4x4<i32>",mat2x2u:"mat2x2<u32>",mat2x3u:"mat2x3<u32>",mat2x4u:"mat2x4<u32>",mat3x2u:"mat3x2<u32>",mat3x3u:"mat3x3<u32>",mat3x4u:"mat3x4<u32>",mat4x2u:"mat4x2<u32>",mat4x3u:"mat4x3<u32>",mat4x4u:"mat4x4<u32>",mat2x2h:"mat2x2<f16>",mat2x3h:"mat2x3<f16>",mat2x4h:"mat2x4<f16>",mat3x2h:"mat3x2<f16>",mat3x3h:"mat3x3<f16>",mat3x4h:"mat3x4<f16>",mat4x2h:"mat4x2<f16>",mat4x3h:"mat4x3<f16>",mat4x4h:"mat4x4<f16>"}});function UM(t,e){let r={};for(let n of t.attributes){let i=w1e(t,e,n.name);i&&(r[n.name]=i)}return r}function oq(t,e,r=16){let n=UM(t,e),i=new Array(r).fill(null);for(let o of Object.values(n))i[o.location]=o;return i}function w1e(t,e,r){let n=T1e(t,r),i=E1e(e,r);if(!n)return null;let o=Nk(n.type),s=OW(o),a=i?.vertexFormat||s,l=U_(a);return{attributeName:i?.attributeName||n.name,bufferName:i?.bufferName||n.name,location:n.location,shaderType:n.type,primitiveType:o.primitiveType,shaderComponents:o.components,vertexFormat:a,bufferDataType:l.type,bufferComponents:l.components,normalized:l.normalized,integer:o.integer,stepMode:i?.stepMode||n.stepMode||"vertex",byteOffset:i?.byteOffset||0,byteStride:i?.byteStride||0}}function T1e(t,e){let r=t.attributes.find(n=>n.name===e);return r||Dt.warn(`shader layout attribute "${e}" not present in shader`),r||null}function E1e(t,e){M1e(t);let r=S1e(t,e);return r||(r=C1e(t,e),r)?r:(Dt.warn(`layout for attribute "${e}" not present in buffer layout`),null)}function M1e(t){for(let e of t)(e.attributes&&e.format||!e.attributes&&!e.format)&&Dt.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`)}function S1e(t,e){for(let r of t)if(r.format&&r.name===e)return{attributeName:r.name,bufferName:e,stepMode:r.stepMode,vertexFormat:r.format,byteOffset:0,byteStride:r.byteStride||0};return null}function C1e(t,e){for(let r of t){let n=r.byteStride;if(typeof r.byteStride!="number")for(let o of r.attributes||[]){let s=U_(o.format);n+=s.byteLength}let i=r.attributes?.find(o=>o.attribute===e);if(i)return{attributeName:i.attribute,bufferName:r.name,stepMode:r.stepMode,vertexFormat:i.format,byteOffset:i.byteOffset,byteStride:n}}return null}var Fk=We(()=>{bd();zM();PM()});var zk,W_,sq=We(()=>{Fk();Ol();zk=class extends hi{get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(e,r){super(e,r,zk.defaultProps),this.maxVertexAttributes=e.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null),this.attributeInfos=oq(r.shaderLayout,r.bufferLayout,this.maxVertexAttributes)}setConstantWebGL(e,r){this.device.reportError(new Error("constant attributes not supported"),this)()}},W_=zk;Dr(W_,"defaultProps",{...hi.defaultProps,shaderLayout:void 0,bufferLayout:[]})});var Uk,q_,aq=We(()=>{Ol();Uk=class extends hi{get[Symbol.toStringTag](){return"TransformFeedback"}constructor(e,r){super(e,r,Uk.defaultProps)}},q_=Uk;Dr(q_,"defaultProps",{...hi.defaultProps,layout:void 0,buffers:{}})});var Vk,G_,cq=We(()=>{Ol();Vk=class extends hi{get[Symbol.toStringTag](){return"QuerySet"}constructor(e,r){super(e,r,Vk.defaultProps)}},G_=Vk;Dr(G_,"defaultProps",{...hi.defaultProps,type:void 0,count:void 0})});function jk(t){return(!VM||VM.byteLength<t)&&(VM=new ArrayBuffer(t)),VM}function Hk(t,e){let r=jk(t.BYTES_PER_ELEMENT*e);return new t(r,0,e)}var VM,Wk=We(()=>{});function I1e(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function X_(t){return Array.isArray(t)?t.length===0||typeof t[0]=="number":I1e(t)}var qk=We(()=>{});var P1e,jM,lq=We(()=>{eb();zM();Wk();qk();bd();P1e=1024,jM=class{layout={};byteLength;constructor(e,r={}){let n=0;for(let[o,s]of Object.entries(e)){let a=ob(s),{type:l,components:u}=a,f=u*(r?.[o]??1);n=RW(n,f);let m=n;n+=f,this.layout[o]={type:l,size:f,offset:m}}n+=(4-n%4)%4;let i=n*4;this.byteLength=Math.max(i,P1e)}getData(e){let r=jk(this.byteLength),n={i32:new Int32Array(r),u32:new Uint32Array(r),f32:new Float32Array(r),f16:new Uint16Array(r)};for(let[i,o]of Object.entries(e)){let s=this.layout[i];if(!s){Dt.warn(`Supplied uniform value ${i} not present in uniform block layout`)();continue}let{type:a,size:l,offset:u}=s,f=n[a];if(l===1){if(typeof o!="number"&&typeof o!="boolean"){Dt.warn(`Supplied value for single component uniform ${i} is not a number: ${o}`)();continue}f[u]=Number(o)}else{if(!X_(o)){Dt.warn(`Supplied value for multi component / array uniform ${i} is not a numeric array: ${o}`)();continue}f.set(o,u)}}return new Uint8Array(r,0,this.byteLength)}has(e){return Boolean(this.layout[e])}get(e){return this.layout[e]}}});function uq(t,e,r=16){if(t!==e)return!1;let n=t,i=e;if(!X_(n))return!1;if(X_(i)&&n.length===i.length){for(let o=0;o<n.length;++o)if(i[o]!==n[o])return!1}return!0}function hq(t){return X_(t)?t.slice():t}var fq=We(()=>{qk()});var HM,pq=We(()=>{fq();HM=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name||"unnamed",e?.name&&e?.shaderLayout){let r=e?.shaderLayout.bindings?.find(i=>i.type==="uniform"&&i.name===e?.name);if(!r)throw new Error(e?.name);let n=r;for(let i of n.uniforms||[])this.bindingLayout[i.name]=i}}setUniforms(e){for(let[r,n]of Object.entries(e))this._setUniform(r,n),this.needsRedraw||this.setNeedsRedraw(`${this.name}.${r}=${n}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,r){uq(this.uniforms[e],r)||(this.uniforms[e]=hq(r),this.modifiedUniforms[e]=!0,this.modified=!0)}}});var sb,dq=We(()=>{IM();bd();pq();lq();sb=class{uniformBlocks=new Map;uniformBufferLayouts=new Map;uniformBuffers=new Map;constructor(e){for(let[r,n]of Object.entries(e)){let i=r,o=new jM(n.uniformTypes??{},n.uniformSizes??{});this.uniformBufferLayouts.set(i,o);let s=new HM({name:r});s.setUniforms(n.defaultUniforms||{}),this.uniformBlocks.set(i,s)}}destroy(){for(let e of this.uniformBuffers.values())e.destroy()}setUniforms(e){for(let[r,n]of Object.entries(e))this.uniformBlocks.get(r)?.setUniforms(n);this.updateUniformBuffers()}getUniformBufferByteLength(e){return this.uniformBufferLayouts.get(e)?.byteLength||0}getUniformBufferData(e){let r=this.uniformBlocks.get(e)?.getAllUniforms()||{};return this.uniformBufferLayouts.get(e)?.getData(r)}createUniformBuffer(e,r,n){n&&this.setUniforms(n);let i=this.getUniformBufferByteLength(r),o=e.createBuffer({usage:$n.UNIFORM|$n.COPY_DST,byteLength:i}),s=this.getUniformBufferData(r);return o.write(s),o}getManagedUniformBuffer(e,r){if(!this.uniformBuffers.get(r)){let n=this.getUniformBufferByteLength(r),i=e.createBuffer({usage:$n.UNIFORM|$n.COPY_DST,byteLength:n});this.uniformBuffers.set(r,i)}return this.uniformBuffers.get(r)}updateUniformBuffers(){let e=!1;for(let r of this.uniformBlocks.keys()){let n=this.updateUniformBuffer(r);e||=n}return e&&Dt.log(3,`UniformStore.updateUniformBuffers(): ${e}`)(),e}updateUniformBuffer(e){let r=this.uniformBlocks.get(e),n=this.uniformBuffers.get(e),i=!1;if(n&&r?.needsRedraw){i||=r.needsRedraw;let o=this.getUniformBufferData(e);n=this.uniformBuffers.get(e),n?.write(o);let s=this.uniformBlocks.get(e)?.getAllUniforms();Dt.log(4,`Writing to uniform buffer ${String(e)}`,o,s)()}return i}}});var Fn=We(()=>{VW();jW();Mk();XW();IM();Ck();YW();QW();Sk();JW();eq();tq();rq();nq();iq();sq();aq();cq();dq();eb();zM();PM();Tk();bd();Wk();Fk()});function WX(t=!0){let e=HTMLCanvasElement.prototype;if(!t&&e.originalGetContext){e.getContext=e.originalGetContext,e.originalGetContext=void 0;return}e.originalGetContext=e.getContext,e.getContext=function(r,n){if(r==="webgl"||r==="experimental-webgl"){let i=this.originalGetContext("webgl2",n);return i instanceof HTMLElement&&HTe(i),i}return this.originalGetContext(r,n)}}function HTe(t){t.getExtension("EXT_color_buffer_float");let e={...zTe,WEBGL_disjoint_timer_query:t.getExtension("EXT_disjoint_timer_query_webgl2"),WEBGL_draw_buffers:UTe(t),OES_vertex_array_object:VTe(t),ANGLE_instanced_arrays:jTe(t)},r=t.getExtension;t.getExtension=function(i){let o=r.call(t,i);return o||(i in e?e[i]:null)};let n=t.getSupportedExtensions;t.getSupportedExtensions=function(){return(n.apply(t)||[])?.concat(Object.keys(e))}}var zTe,UTe,VTe,jTe,qX=We(()=>{zTe={WEBGL_depth_texture:{UNSIGNED_INT_24_8_WEBGL:34042},OES_element_index_uint:{},OES_texture_float:{},OES_texture_half_float:{HALF_FLOAT_OES:5131},EXT_color_buffer_float:{},OES_standard_derivatives:{FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723},EXT_frag_depth:{},EXT_blend_minmax:{MIN_EXT:32775,MAX_EXT:32776},EXT_shader_texture_lod:{}},UTe=t=>({drawBuffersWEBGL(e){return t.drawBuffers(e)},COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067}),VTe=t=>({VERTEX_ARRAY_BINDING_OES:34229,createVertexArrayOES(){return t.createVertexArray()},deleteVertexArrayOES(e){return t.deleteVertexArray(e)},isVertexArrayOES(e){return t.isVertexArray(e)},bindVertexArrayOES(e){return t.bindVertexArray(e)}}),jTe=t=>({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,drawArraysInstancedANGLE(...e){return t.drawArraysInstanced(...e)},drawElementsInstancedANGLE(...e){return t.drawElementsInstanced(...e)},vertexAttribDivisorANGLE(...e){return t.vertexAttribDivisor(...e)}})});async function gC(t,e){let r=document.getElementsByTagName("head")[0];if(!r)throw new Error("loadScript");let n=document.createElement("script");return n.setAttribute("type","text/javascript"),n.setAttribute("src",t),e&&(n.id=e),new Promise((i,o)=>{n.onload=i,n.onerror=s=>o(new Error(`Unable to load script '${t}': ${s}`)),r.appendChild(n)})}var NN=We(()=>{});async function XX(t){if(!globalThis.SPECTOR)try{await gC(t.debugSpectorJSUrl||yC.debugSpectorJSUrl)}catch(e){Dt.warn(String(e))}}function YX(t){if(t={...yC,...t},!t.debugSpectorJS)return null;if(!Uu&&globalThis.SPECTOR&&!globalThis.luma?.spector){Dt.probe(WTe,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:e}=globalThis.SPECTOR;Uu=new e,globalThis.luma&&(globalThis.luma.spector=Uu)}if(!Uu)return null;if(GX||(GX=!0,Uu.spyCanvases(),Uu?.onCaptureStarted.add(e=>Dt.info("Spector capture started:",e)()),Uu?.onCapture.add(e=>{Dt.info("Spector capture complete:",e)(),Uu?.getResultUI(),Uu?.resultView.display(),Uu?.resultView.addCapture(e)})),t.gl){let e=t.gl,r=e.device;Uu?.startCapture(t.gl,500),e.device=r,new Promise(n=>setTimeout(n,2e3)).then(n=>{Dt.info("Spector capture stopped after 2 seconds")(),Uu?.stopCapture()})}return Uu}var WTe,Uu,GX,yC,FN=We(()=>{Fn();NN();WTe=1,Uu=null,GX=!1,yC={debugSpectorJS:Dt.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0}});function KX(t){return t.luma=t.luma||{},t.luma}async function ZX(){Ll()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await gC(qTe))}function QX(t,e={}){return e.debugWebGL||e.traceWebGL?XTe(t,e):GTe(t)}function GTe(t){let e=KX(t);return e.realContext?e.realContext:t}function XTe(t,e){if(!globalThis.WebGLDebugUtils)return Dt.warn("webgl-debug not loaded")(),t;let r=KX(t);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...pp,...t});let n=globalThis.WebGLDebugUtils.makeDebugContext(t,YTe.bind(null,e),$Te.bind(null,e));for(let s in pp)!(s in n)&&typeof pp[s]=="number"&&(n[s]=pp[s]);class i{}Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.setPrototypeOf(i,n);let o=Object.create(i);return r.realContext=t,r.debugContext=o,o.debug=!0,o}function $X(t,e){e=Array.from(e).map(n=>n===void 0?"undefined":n);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,e);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${t}(${r})`}function YTe(t,e,r,n){n=Array.from(n).map(a=>a===void 0?"undefined":a);let i=globalThis.WebGLDebugUtils.glEnumToString(e),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),s=`${i} in gl.${r}(${o})`;Dt.error(s)();debugger}function $Te(t,e,r){let n="";Dt.level>=1&&(n=$X(e,r),t.traceWebGL&&Dt.log(1,n)());for(let i of r)if(i===void 0){n=n||$X(e,r);debugger}}var qTe,zN=We(()=>{Fn();YB();Nm();NN();qTe="https://unpkg.com/webgl-debug@2.0.1/index.js"});function UN(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function la(t,e,r){return e[t]!==void 0?e[t]:r[t]}var aw,Ha,JX,Vu,eY,sw,tY,rY,VN,Sp,jN,nY,HN=We(()=>{aw={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},Ha=(t,e,r)=>e?t.enable(r):t.disable(r),JX=(t,e,r)=>t.hint(r,e),Vu=(t,e,r)=>t.pixelStorei(r,e),eY=(t,e,r)=>{let n=r===36006?36009:36008;return t.bindFramebuffer(n,e)},sw=(t,e,r)=>{let i={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];t.bindBuffer(i,e)};tY={[3042]:Ha,[32773]:(t,e)=>t.blendColor(...e),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(t,e)=>t.clearColor(...e),[3107]:(t,e)=>t.colorMask(...e),[2884]:Ha,[2885]:(t,e)=>t.cullFace(e),[2929]:Ha,[2931]:(t,e)=>t.clearDepth(e),[2932]:(t,e)=>t.depthFunc(e),[2928]:(t,e)=>t.depthRange(...e),[2930]:(t,e)=>t.depthMask(e),[3024]:Ha,[35723]:JX,[35725]:(t,e)=>t.useProgram(e),[36007]:(t,e)=>t.bindRenderbuffer(36161,e),[36389]:(t,e)=>t.bindTransformFeedback?.(36386,e),[34229]:(t,e)=>t.bindVertexArray(e),[36006]:eY,[36010]:eY,[34964]:sw,[36662]:sw,[36663]:sw,[35053]:sw,[35055]:sw,[2886]:(t,e)=>t.frontFace(e),[33170]:JX,[2849]:(t,e)=>t.lineWidth(e),[32823]:Ha,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:Ha,[32926]:Ha,[32928]:Ha,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:Ha,[3088]:(t,e)=>t.scissor(...e),[2960]:Ha,[2961]:(t,e)=>t.clearStencil(e),[2968]:(t,e)=>t.stencilMaskSeparate(1028,e),[36005]:(t,e)=>t.stencilMaskSeparate(1029,e),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(t,e)=>t.viewport(...e),[34383]:Ha,[10754]:Ha,[12288]:Ha,[12289]:Ha,[12290]:Ha,[12291]:Ha,[12292]:Ha,[12293]:Ha,[12294]:Ha,[12295]:Ha,[3333]:Vu,[3317]:Vu,[37440]:Vu,[37441]:Vu,[37443]:Vu,[3330]:Vu,[3332]:Vu,[3331]:Vu,[3314]:Vu,[32878]:Vu,[3316]:Vu,[3315]:Vu,[32877]:Vu,framebuffer:(t,e)=>{let r=e&&"handle"in e?e.handle:e;return t.bindFramebuffer(36160,r)},blend:(t,e)=>e?t.enable(3042):t.disable(3042),blendColor:(t,e)=>t.blendColor(...e),blendEquation:(t,e)=>{let r=typeof e=="number"?[e,e]:e;t.blendEquationSeparate(...r)},blendFunc:(t,e)=>{let r=e?.length===2?[...e,...e]:e;t.blendFuncSeparate(...r)},clearColor:(t,e)=>t.clearColor(...e),clearDepth:(t,e)=>t.clearDepth(e),clearStencil:(t,e)=>t.clearStencil(e),colorMask:(t,e)=>t.colorMask(...e),cull:(t,e)=>e?t.enable(2884):t.disable(2884),cullFace:(t,e)=>t.cullFace(e),depthTest:(t,e)=>e?t.enable(2929):t.disable(2929),depthFunc:(t,e)=>t.depthFunc(e),depthMask:(t,e)=>t.depthMask(e),depthRange:(t,e)=>t.depthRange(...e),dither:(t,e)=>e?t.enable(3024):t.disable(3024),derivativeHint:(t,e)=>{t.hint(35723,e)},frontFace:(t,e)=>t.frontFace(e),mipmapHint:(t,e)=>t.hint(33170,e),lineWidth:(t,e)=>t.lineWidth(e),polygonOffsetFill:(t,e)=>e?t.enable(32823):t.disable(32823),polygonOffset:(t,e)=>t.polygonOffset(...e),sampleCoverage:(t,e)=>t.sampleCoverage(e[0],e[1]||!1),scissorTest:(t,e)=>e?t.enable(3089):t.disable(3089),scissor:(t,e)=>t.scissor(...e),stencilTest:(t,e)=>e?t.enable(2960):t.disable(2960),stencilMask:(t,e)=>{e=UN(e)?e:[e,e];let[r,n]=e;t.stencilMaskSeparate(1028,r),t.stencilMaskSeparate(1029,n)},stencilFunc:(t,e)=>{e=UN(e)&&e.length===3?[...e,...e]:e;let[r,n,i,o,s,a]=e;t.stencilFuncSeparate(1028,r,n,i),t.stencilFuncSeparate(1029,o,s,a)},stencilOp:(t,e)=>{e=UN(e)&&e.length===3?[...e,...e]:e;let[r,n,i,o,s,a]=e;t.stencilOpSeparate(1028,r,n,i),t.stencilOpSeparate(1029,o,s,a)},viewport:(t,e)=>t.viewport(...e)};rY={blendEquation:(t,e,r)=>t.blendEquationSeparate(la(32777,e,r),la(34877,e,r)),blendFunc:(t,e,r)=>t.blendFuncSeparate(la(32969,e,r),la(32968,e,r),la(32971,e,r),la(32970,e,r)),polygonOffset:(t,e,r)=>t.polygonOffset(la(32824,e,r),la(10752,e,r)),sampleCoverage:(t,e,r)=>t.sampleCoverage(la(32938,e,r),la(32939,e,r)),stencilFuncFront:(t,e,r)=>t.stencilFuncSeparate(1028,la(2962,e,r),la(2967,e,r),la(2963,e,r)),stencilFuncBack:(t,e,r)=>t.stencilFuncSeparate(1029,la(34816,e,r),la(36003,e,r),la(36004,e,r)),stencilOpFront:(t,e,r)=>t.stencilOpSeparate(1028,la(2964,e,r),la(2965,e,r),la(2966,e,r)),stencilOpBack:(t,e,r)=>t.stencilOpSeparate(1029,la(34817,e,r),la(34818,e,r),la(34819,e,r))},VN={enable:(t,e)=>t({[e]:!0}),disable:(t,e)=>t({[e]:!1}),pixelStorei:(t,e,r)=>t({[e]:r}),hint:(t,e,r)=>t({[e]:r}),useProgram:(t,e)=>t({[35725]:e}),bindRenderbuffer:(t,e,r)=>t({[36007]:r}),bindTransformFeedback:(t,e,r)=>t({[36389]:r}),bindVertexArray:(t,e)=>t({[34229]:e}),bindFramebuffer:(t,e,r)=>{switch(e){case 36160:return t({[36006]:r,[36010]:r});case 36009:return t({[36006]:r});case 36008:return t({[36010]:r});default:return null}},bindBuffer:(t,e,r)=>{let n={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[e];return n?t({[n]:r}):{valueChanged:!0}},blendColor:(t,e,r,n,i)=>t({[32773]:new Float32Array([e,r,n,i])}),blendEquation:(t,e)=>t({[32777]:e,[34877]:e}),blendEquationSeparate:(t,e,r)=>t({[32777]:e,[34877]:r}),blendFunc:(t,e,r)=>t({[32969]:e,[32968]:r,[32971]:e,[32970]:r}),blendFuncSeparate:(t,e,r,n,i)=>t({[32969]:e,[32968]:r,[32971]:n,[32970]:i}),clearColor:(t,e,r,n,i)=>t({[3106]:new Float32Array([e,r,n,i])}),clearDepth:(t,e)=>t({[2931]:e}),clearStencil:(t,e)=>t({[2961]:e}),colorMask:(t,e,r,n,i)=>t({[3107]:[e,r,n,i]}),cullFace:(t,e)=>t({[2885]:e}),depthFunc:(t,e)=>t({[2932]:e}),depthRange:(t,e,r)=>t({[2928]:new Float32Array([e,r])}),depthMask:(t,e)=>t({[2930]:e}),frontFace:(t,e)=>t({[2886]:e}),lineWidth:(t,e)=>t({[2849]:e}),polygonOffset:(t,e,r)=>t({[32824]:e,[10752]:r}),sampleCoverage:(t,e,r)=>t({[32938]:e,[32939]:r}),scissor:(t,e,r,n,i)=>t({[3088]:new Int32Array([e,r,n,i])}),stencilMask:(t,e)=>t({[2968]:e,[36005]:e}),stencilMaskSeparate:(t,e,r)=>t({[e===1028?2968:36005]:r}),stencilFunc:(t,e,r,n)=>t({[2962]:e,[2967]:r,[2963]:n,[34816]:e,[36003]:r,[36004]:n}),stencilFuncSeparate:(t,e,r,n,i)=>t({[e===1028?2962:34816]:r,[e===1028?2967:36003]:n,[e===1028?2963:36004]:i}),stencilOp:(t,e,r,n)=>t({[2964]:e,[2965]:r,[2966]:n,[34817]:e,[34818]:r,[34819]:n}),stencilOpSeparate:(t,e,r,n,i)=>t({[e===1028?2964:34817]:r,[e===1028?2965:34818]:n,[e===1028?2966:34819]:i}),viewport:(t,e,r,n,i)=>t({[2978]:[e,r,n,i]})},Sp=(t,e)=>t.isEnabled(e),jN={[3042]:Sp,[2884]:Sp,[2929]:Sp,[3024]:Sp,[32823]:Sp,[32926]:Sp,[32928]:Sp,[3089]:Sp,[2960]:Sp,[35977]:Sp},nY=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068])});function yf(t,e){if(KTe(e))return;let r={};for(let i in e){let o=Number(i),s=tY[i];s&&(typeof s=="string"?r[s]=!0:s(t,e[i],o))}let n=t.state&&t.state.cache;if(n)for(let i in r){let o=rY[i];o(t,e,n)}}function _C(t,e=aw){if(typeof e=="number"){let i=e,o=jN[i];return o?o(t,i):t.getParameter(i)}let r=Array.isArray(e)?e:Object.keys(e),n={};for(let i of r){let o=jN[i];n[i]=o?o(t,Number(i)):t.getParameter(Number(i))}return n}function iY(t){yf(t,aw)}function KTe(t){for(let e in t)return!1;return!0}var w1=We(()=>{HN()});function sY(t,e){if(t===e)return!0;if(oY(t)&&oY(e)&&t.length===e.length){for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}return!1}function oY(t){return Array.isArray(t)||ArrayBuffer.isView(t)}var aY=We(()=>{});function cY(t,e){let r=t[e].bind(t);t[e]=function(i){if(i===void 0||nY.has(i))return r(i);let o=_f.get(t);return i in o.cache||(o.cache[i]=r(i)),o.enable?o.cache[i]:r(i)},Object.defineProperty(t[e],"name",{value:`${e}-from-cache`,configurable:!1})}function ZTe(t,e,r){if(!t[e])return;let n=t[e].bind(t);t[e]=function(...o){let s=_f.get(t),{valueChanged:a,oldValue:l}=r(s._updateCache,...o);return a&&n(...o),l},Object.defineProperty(t[e],"name",{value:`${e}-to-cache`,configurable:!1})}function QTe(t){let e=t.useProgram.bind(t);t.useProgram=function(n){let i=_f.get(t);i.program!==n&&(e(n),i.program=n)}}var _f,WN=We(()=>{w1();aY();HN();_f=class{static get(e){return e.state}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(e,r){this.gl=e,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){let e=this.stateStack[this.stateStack.length-1];yf(this.gl,e),this.stateStack.pop()}trackState(e,r){if(this.cache=r?.copyState?_C(e):Object.assign({},aw),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.state=this,QTe(e);for(let n in VN){let i=VN[n];ZTe(e,n,i)}cY(e,"getParameter"),cY(e,"isEnabled")}_updateCache(e){let r=!1,n,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in e){let s=e[o],a=this.cache[o];sY(s,a)||(r=!0,n=a,i&&!(o in i)&&(i[o]=a),this.cache[o]=s)}return{valueChanged:r,oldValue:n}}}});function lY(t,e,r){let n="",i={preserveDrawingBuffer:!0,...r},o=null;if(o||=t.getContext("webgl2",i),i.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow."),!o&&!r.failIfMajorPerformanceCaveat&&(i.failIfMajorPerformanceCaveat=!1,o=t.getContext("webgl2",i),o.luma||={},o.luma.softwareRenderer=!0),o||(o=t.getContext("webgl",{}),o&&(o=null,n||="Your browser only supports WebGL1")),!o)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);let{onContextLost:s,onContextRestored:a}=e;return t.addEventListener("webglcontextlost",l=>s(l),!1),t.addEventListener("webglcontextrestored",l=>a(l),!1),o.luma||={},o}var uY=We(()=>{});function Cp(t,e,r){return r[e]===void 0&&(r[e]=t.getExtension(e)||null),r[e]}var cw=We(()=>{});function hY(t,e){let r=t.getParameter(7936),n=t.getParameter(7937);Cp(t,"WEBGL_debug_renderer_info",e);let i=e.WEBGL_debug_renderer_info,o=t.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),s=t.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),a=o||r,l=s||n,u=t.getParameter(7938),f=fY(a,l),m=JTe(a,l),v=e3e(a,l);return{type:"webgl",gpu:f,gpuType:v,gpuBackend:m,vendor:a,renderer:l,version:u,shadingLanguage:"glsl",shadingLanguageVersion:300}}function fY(t,e){return/NVIDIA/i.exec(t)||/NVIDIA/i.exec(e)?"nvidia":/INTEL/i.exec(t)||/INTEL/i.exec(e)?"intel":/Apple/i.exec(t)||/Apple/i.exec(e)?"apple":/AMD/i.exec(t)||/AMD/i.exec(e)||/ATI/i.exec(t)||/ATI/i.exec(e)?"amd":/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e)?"software":"unknown"}function JTe(t,e){return/Metal/i.exec(t)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(t)||/ANGLE/i.exec(e)?"opengl":"unknown"}function e3e(t,e){if(/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e))return"cpu";switch(fY(t,e)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}var pY=We(()=>{cw()});function xC(t){switch(t){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(t))}var qN=We(()=>{});function AY(t){return t in vC}function gY(t,e,r){return(vC[e]||[]).every(i=>Cp(t,i,r))}function yY(t,e,r){let n=e.create,i=GN[e.format];return i?.gl===void 0&&(n=!1),i?.x&&(n=n&&Boolean(Cp(t,i.x,r))),{format:e.format,create:n&&e.create,render:n&&e.render,filter:n&&e.filter,blend:n&&e.blend,store:n&&e.store}}function bC(t){let e=GN[t],r=c3e(t),n=wd.getInfo(t);return n.compressed&&(e.dataFormat=r),{internalFormat:r,format:e?.dataFormat||a3e(n.channels,n.integer,n.normalized,r),type:n.dataType?xC(n.dataType):e?.types?.[0]||5121,compressed:n.compressed||!1}}function _Y(t){switch(wd.getInfo(t).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${t}`)}}function a3e(t,e,r,n){if(n===6408||n===6407)return n;switch(t){case"r":return e&&!r?36244:6403;case"rg":return e&&!r?33320:33319;case"rgb":return e&&!r?36248:6407;case"rgba":return e&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function c3e(t){let r=GN[t]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${t}`);return r}var lw,uw,T1,E1,t3e,r3e,n3e,i3e,o3e,dY,mY,s3e,vC,GN,M1=We(()=>{Fn();cw();qN();lw="WEBGL_compressed_texture_s3tc",uw="WEBGL_compressed_texture_s3tc_srgb",T1="EXT_texture_compression_rgtc",E1="EXT_texture_compression_bptc",t3e="WEBGL_compressed_texture_etc",r3e="WEBGL_compressed_texture_astc",n3e="WEBGL_compressed_texture_etc1",i3e="WEBGL_compressed_texture_pvrtc",o3e="WEBGL_compressed_texture_atc",dY="EXT_texture_norm16",mY="EXT_render_snorm",s3e="EXT_color_buffer_float",vC={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat-renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[mY],"norm16-renderable-webgl":[dY],"snorm16-renderable-webgl":[dY,mY],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[lw,uw,T1,E1],"texture-compression-bc5-webgl":[T1],"texture-compression-bc7-webgl":[E1],"texture-compression-etc2":[t3e],"texture-compression-astc":[r3e],"texture-compression-etc1-webgl":[n3e],"texture-compression-pvrtc-webgl":[i3e],"texture-compression-atc-webgl":[o3e]};GN={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0},r16unorm:{gl:33322,rb:!0},r16snorm:{gl:36760},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0},rg16unorm:{gl:33324},rg16snorm:{gl:36761},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326},rgb9e5ufloat:{gl:35901},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852},"rgb16snorm-webgl":{gl:36762},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842},rgba16unorm:{gl:32859,rb:!0},rgba16snorm:{gl:36763},"rgb32float-webgl":{gl:34837,x:s3e,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:lw},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:uw},"bc1-rgba-unorm":{gl:33777,x:lw},"bc1-rgba-unorm-srgb":{gl:35916,x:uw},"bc2-rgba-unorm":{gl:33778,x:lw},"bc2-rgba-unorm-srgb":{gl:35918,x:uw},"bc3-rgba-unorm":{gl:33779,x:lw},"bc3-rgba-unorm-srgb":{gl:35919,x:uw},"bc4-r-unorm":{gl:36283,x:T1},"bc4-r-snorm":{gl:36284,x:T1},"bc5-rg-unorm":{gl:36285,x:T1},"bc5-rg-snorm":{gl:36286,x:T1},"bc6h-rgb-ufloat":{gl:36495,x:E1},"bc6h-rgb-float":{gl:36494,x:E1},"bc7-rgba-unorm":{gl:36492,x:E1},"bc7-rgba-unorm-srgb":{gl:36493,x:E1},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37819},"astc-10x5-unorm-srgb":{gl:37851},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rbg2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var xY,wC,vY=We(()=>{Fn();cw();M1();xY={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},wC=class extends nb{gl;extensions;testedFeatures=new Set;constructor(e,r,n){super([],n),this.gl=e,this.extensions=r,Cp(e,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let e=this.getFeatures();for(let r of e)this.has(r)&&(yield r);return[]}has(e){return this.disabledFeatures?.[e]?!1:(this.testedFeatures.has(e)||(this.testedFeatures.add(e),AY(e)&&gY(this.gl,e,this.extensions)&&this.features.add(e),this.getWebGLFeature(e)&&this.features.add(e)),this.features.has(e))}initializeFeatures(){let e=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of e)this.has(r)}getFeatures(){return[...Object.keys(xY),...Object.keys(vC)]}getWebGLFeature(e){let r=xY[e];return Boolean(typeof r=="string"?Cp(this.gl,r,this.extensions):r)}}});var TC,bY=We(()=>{Fn();TC=class extends rb{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(e){super(),this.gl=e}getParameter(e){return this.limits[e]===void 0&&(this.limits[e]=this.gl.getParameter(e)),this.limits[e]||0}}});function l3e(t){return t<34069?t+34069:t}function u3e(t){switch(t){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${t}`}}var Ip,EC=We(()=>{Fn();M1();Ip=class extends yp{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(e,r){super(e,r);let n=r.handle===null;this.device=e,this.gl=e.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),n||(e._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.autoCreateAttachmentTextures(),this.updateAttachments())}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let e=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let n=this.colorAttachments[r];if(n){let i=36064+r;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){let r=_Y(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${u3e(r)}`)}this.gl.bindFramebuffer(36160,e)}_attachTextureView(e,r){let{gl:n}=this.device,{texture:i}=r,o=r.props.baseMipLevel,s=r.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,e,i.handle,o,s);break;case 34067:let a=l3e(s);n.framebufferTexture2D(36160,e,a,i.handle,o);break;case 3553:n.framebufferTexture2D(36160,e,3553,i.handle,o);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}}});var MC,wY=We(()=>{Fn();EC();MC=class extends DA{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(e,r){super(r),this.device=e,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._updateDevice()}getCurrentFramebuffer(){return this._framebuffer=this._framebuffer||new Ip(this.device,{handle:null}),this._framebuffer}_updateDevice(){}}});function TY(t="id"){XN[t]=XN[t]||1;let e=XN[t]++;return`${t}-${e}`}var XN,EY=We(()=>{XN={}});function h3e(t){return t&$n.INDEX?34963:t&$n.VERTEX?34962:t&$n.UNIFORM?35345:34962}function f3e(t){return t&$n.INDEX||t&$n.VERTEX?35044:t&$n.UNIFORM?35048:35044}var xf,SC=We(()=>{Fn();xf=class extends $n{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(e,r={}){super(e,r),this.device=e,this.gl=this.device.gl;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),e._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=h3e(this.props.usage),this.glUsage=f3e(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}_initWithData(e,r=0,n=e.byteLength+r){let i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,r,e),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(e,r,n),this.trackAllocatedMemory(n)}_initWithByteLength(e){let r=e;e===0&&(r=new Float32Array(0));let n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.trackAllocatedMemory(e),this}write(e,r=0){let n=ArrayBuffer.isView(e)?e:new Uint8Array(e),i=0,o=void 0,s=36663;this.gl.bindBuffer(s,this.handle),i!==0||o!==void 0?this.gl.bufferSubData(s,r,n,i,o):this.gl.bufferSubData(s,r,n),this.gl.bindBuffer(s,null),this._setDebugData(e,r,e.byteLength)}async mapAndWriteAsync(e,r=0,n=this.byteLength-r){let i=new ArrayBuffer(n);await e(i,"copied"),this.write(i,r)}async readAsync(e=0,r){return this.readSyncWebGL(e,r)}async mapAndReadAsync(e,r=0,n){let i=await this.readAsync(r,n);return await e(i.buffer,"copied")}readSyncWebGL(e=0,r){r=r??this.byteLength-e;let n=new Uint8Array(r),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,n,i,r),this.gl.bindBuffer(36662,null),this._setDebugData(n,e,r),n}}});function SY(t){let e=t.split(/\r?\n/),r=[];for(let n of e){if(n.length<=1)continue;let i=n.split(":");if(i.length===2){let[m,v]=i;r.push({message:v.trim(),type:MY(m),lineNum:0,linePos:0});continue}let[o,s,a,...l]=i,u=parseInt(a,10);isNaN(u)&&(u=0);let f=parseInt(s,10);isNaN(f)&&(f=0),r.push({message:l.join(":").trim(),type:MY(o),lineNum:u,linePos:f})}return r}function MY(t){let e=["warning","error","info"],r=t.toLowerCase();return e.includes(r)?r:"info"}var CY=We(()=>{});var CC,IY=We(()=>{Fn();CY();CC=class extends Gm{device;handle;constructor(e,r){switch(super(e,r),this.device=e,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}e._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let e=this.device.gl.getShaderInfoLog(this.handle);return e?SY(e):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}async _compile(e){e=e.startsWith("#version ")?e:`#version 300 es
|
|
516
|
-
${e}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,e),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Dt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Dt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async i=>await new Promise(o=>setTimeout(o,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}});function RY(t,e,r,n){if(A3e(e))return n(t);let i=t;i.pushState();try{return p3e(t,e),yf(i.gl,r),n(t)}finally{i.popState()}}function p3e(t,e){let r=t,{gl:n}=r;if(e.cullMode)switch(e.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(e.frontFace&&n.frontFace(cg("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&n.enable(34383),e.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&t.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,s=cg("provokingVertex",e.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(s)}if((e.polygonMode||e.polygonOffsetLine)&&t.features.has("polygon-mode-webgl")){if(e.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,s=cg("polygonMode",e.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,s),o?.polygonModeWEBGL(1029,s)}e.polygonOffsetLine&&n.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&n.enable(12288),e.clipDistance1&&n.enable(12289),e.clipDistance2&&n.enable(12290),e.clipDistance3&&n.enable(12291),e.clipDistance4&&n.enable(12292),e.clipDistance5&&n.enable(12293),e.clipDistance6&&n.enable(12294),e.clipDistance7&&n.enable(12295)),e.depthWriteEnabled!==void 0&&n.depthMask(m3e("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(PC("depthCompare",e.depthCompare))),e.stencilWriteMask){let i=e.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(e.stencilReadMask&&Dt.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let i=e.stencilReadMask||4294967295,o=PC("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,o,0,i),n.stencilFuncSeparate(1029,o,0,i)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let i=YN("stencilPassOperation",e.stencilPassOperation),o=YN("stencilFailOperation",e.stencilFailOperation),s=YN("stencilDepthFailOperation",e.stencilDepthFailOperation);n.stencilOpSeparate(1028,o,s,i),n.stencilOpSeparate(1029,o,s,i)}switch(e.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(e.blendColorOperation||e.blendAlphaOperation){let i=PY("blendColorOperation",e.blendColorOperation||"add"),o=PY("blendAlphaOperation",e.blendAlphaOperation||"add");n.blendEquationSeparate(i,o);let s=IC("blendColorSrcFactor",e.blendColorSrcFactor||"one"),a=IC("blendColorDstFactor",e.blendColorDstFactor||"zero"),l=IC("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),u=IC("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");n.blendFuncSeparate(s,a,l,u)}}function PC(t,e){return cg(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function YN(t,e){return cg(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function PY(t,e){return cg(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function IC(t,e,r="color"){return cg(t,e,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function d3e(t,e){return`Illegal parameter ${e} for ${t}`}function cg(t,e,r){if(!(e in r))throw new Error(d3e(t,e));return r[e]}function m3e(t,e){return e}function A3e(t){let e=!0;for(let r in t){e=!1;break}return e}var $N=We(()=>{Fn();w1()});function RC(t){let e={};return t.addressModeU&&(e[10242]=KN(t.addressModeU)),t.addressModeV&&(e[10243]=KN(t.addressModeV)),t.addressModeW&&(e[32882]=KN(t.addressModeW)),t.magFilter&&(e[10240]=ZN(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=g3e(t.minFilter||"linear",t.mipmapFilter)),t.lodMinClamp!==void 0&&(e[33082]=t.lodMinClamp),t.lodMaxClamp!==void 0&&(e[33083]=t.lodMaxClamp),t.type==="comparison-sampler"&&(e[34892]=34894),t.compare&&(e[34893]=PC("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function KN(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function ZN(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function g3e(t,e="none"){if(!e)return ZN(t);switch(e){case"none":return ZN(t);case"nearest":switch(t){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(t){case"nearest":return 9986;case"linear":return 9987}}}var QN=We(()=>{$N()});var LC,LY=We(()=>{Fn();QN();LC=class extends xh{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=RC(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(let[r,n]of Object.entries(e)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function a0(t,e,r){if(y3e(e))return r(t);let{nocatch:n=!0}=e,i=_f.get(t);i.push(),yf(t,e);let o;if(n)o=r(t),i.pop();else try{o=r(t)}finally{i.pop()}return o}function y3e(t){for(let e in t)return!1;return!0}var OC=We(()=>{w1();WN()});var Pp,JN=We(()=>{Fn();Pp=class extends qm{device;gl;handle;texture;constructor(e,r){super(e,{...Ki.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function _3e(t){switch(t){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(t)}function OY(t,e,r){return e==="cube"?34069+r:t}var Rp,BC=We(()=>{Fn();M1();QN();OC();JN();Rp=class extends Ki{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;constructor(e,r){super(e,r),this.device=e,this.gl=this.device.gl;let n=bC(this.props.format);this.glTarget=_3e(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:o,height:s,depth:a,mipLevels:l,glTarget:u,glInternalFormat:f}=this;switch(i){case"2d":case"cube":this.gl.texStorage2D(u,l,f,o,s);break;case"2d-array":case"3d":this.gl.texStorage3D(u,l,f,o,s,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data),this.setSampler(this.props.sampler),this.view=new Pp(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}createView(e){return new Pp(this.device,{...e,texture:this})}setSampler(e={}){super.setSampler(e);let r=RC(this.sampler.props);this._setSamplerParameters(r)}copyImageData(e){let r=this._normalizeCopyImageDataOptions(e),n=r.data,{width:i,height:o,depth:s}=this,{mipLevel:a=0,byteOffset:l=0,x:u=0,y:f=0,z:m=0}=r,{glFormat:v,glType:E,compressed:S}=this,L=OY(this.glTarget,this.dimension,s),O=this.compressed?{}:{[3314]:r.bytesPerRow,[32878]:r.rowsPerImage};this.gl.bindTexture(L,this.handle),a0(this.gl,O,()=>{switch(this.dimension){case"2d":case"cube":S?this.gl.compressedTexSubImage2D(L,a,u,f,i,o,v,n,l):this.gl.texSubImage2D(L,a,u,f,i,o,v,E,n,l);break;case"2d-array":case"3d":S?this.gl.compressedTexSubImage3D(L,a,u,f,m,i,o,s,v,n,l):this.gl.texSubImage3D(L,a,u,f,m,i,o,s,v,E,n,l);break;default:}}),this.gl.bindTexture(L,null)}copyExternalImage(e){let r=this._normalizeCopyExternalImageOptions(e);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:o,depth:s,mipLevel:a,x:l,y:u,z:f,width:m,height:v}=r,E=OY(this.glTarget,this.dimension,s),S=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),a0(this.gl,S,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(E,a,l,u,m,v,n,i,o);break;case"2d-array":case"3d":this.gl.texSubImage3D(E,a,l,u,f,m,v,s,n,i,o);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}generateMipmapsWebGL(e){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Dt.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!e?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Dt.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(e){Dt.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(e)){let i=Number(r),o=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,o);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,o);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,o);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,o);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,this.handle),e}_unbind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,null),e}}});function BY(t){return v3e[t]}function kC(t){return x3e[t]}function kY(t){return Boolean(NY[t])}function DY(t){return NY[t]}var x3e,NY,v3e,eF=We(()=>{x3e={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},NY={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},v3e={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function FY(t,e){let r={attributes:[],bindings:[]};r.attributes=b3e(t,e);let n=E3e(t,e);for(let a of n){let l=a.uniforms.map(u=>({name:u.name,format:u.format,byteOffset:u.byteOffset,byteStride:u.byteStride,arrayLength:u.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:l})}let i=T3e(t,e),o=0;for(let a of i)if(kY(a.type)){let{viewDimension:l,sampleType:u}=DY(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:o,viewDimension:l,sampleType:u}),a.textureUnit=o,o+=1}i.length&&(r.uniforms=i);let s=w3e(t,e);return s?.length&&(r.varyings=s),r}function b3e(t,e){let r=[],n=t.getProgramParameter(e,35721);for(let i=0;i<n;i++){let o=t.getActiveAttrib(e,i);if(!o)throw new Error("activeInfo");let{name:s,type:a}=o,l=t.getAttribLocation(e,s);if(l>=0){let u=kC(a),f=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:l,stepMode:f,type:u})}}return r.sort((i,o)=>i.location-o.location),r}function w3e(t,e){let r=[],n=t.getProgramParameter(e,35971);for(let i=0;i<n;i++){let o=t.getTransformFeedbackVarying(e,i);if(!o)throw new Error("activeInfo");let{name:s,type:a,size:l}=o,u=kC(a),{type:f,components:m}=ob(u);r.push({location:i,name:s,type:f,size:l*m})}return r.sort((i,o)=>i.location-o.location),r}function T3e(t,e){let r=[],n=t.getProgramParameter(e,35718);for(let i=0;i<n;i++){let o=t.getActiveUniform(e,i);if(!o)throw new Error("activeInfo");let{name:s,size:a,type:l}=o,{name:u,isArray:f}=M3e(s),m=t.getUniformLocation(e,u),v={location:m,name:u,size:a,type:l,isArray:f};if(r.push(v),v.size>1)for(let E=0;E<v.size;E++){let S=`${u}[${E}]`;m=t.getUniformLocation(e,S);let L={...v,name:S,location:m};r.push(L)}}return r}function E3e(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),n=[],i=t.getProgramParameter(e,35382);for(let o=0;o<i;o++){let s={name:t.getActiveUniformBlockName(e,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},a=r(o,35395)||[],l=t.getActiveUniforms(e,a,35383),u=t.getActiveUniforms(e,a,35384),f=t.getActiveUniforms(e,a,35387),m=t.getActiveUniforms(e,a,35388);for(let v=0;v<s.uniformCount;++v){let E=t.getActiveUniform(e,a[v]);if(!E)throw new Error("activeInfo");let S=kC(l[v]);s.uniforms.push({name:E.name,format:S,type:l[v],arrayLength:u[v],byteOffset:f[v],byteStride:m[v]})}n.push(s)}return n.sort((o,s)=>o.location-s.location),n}function M3e(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${t}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}var zY=We(()=>{Fn();eF()});function UY(t,e,r,n){let i=t,o=n;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof n!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,n);case 5126:return t.uniform1fv(e,s);case 35664:return t.uniform2fv(e,s);case 35665:return t.uniform3fv(e,s);case 35666:return t.uniform4fv(e,s);case 5124:return t.uniform1iv(e,s);case 35667:return t.uniform2iv(e,s);case 35668:return t.uniform3iv(e,s);case 35669:return t.uniform4iv(e,s);case 35670:return t.uniform1iv(e,s);case 35671:return t.uniform2iv(e,s);case 35672:return t.uniform3iv(e,s);case 35673:return t.uniform4iv(e,s);case 5125:return i.uniform1uiv(e,s,1);case 36294:return i.uniform2uiv(e,s,2);case 36295:return i.uniform3uiv(e,s,3);case 36296:return i.uniform4uiv(e,s,4);case 35674:return t.uniformMatrix2fv(e,!1,s);case 35675:return t.uniformMatrix3fv(e,!1,s);case 35676:return t.uniformMatrix4fv(e,!1,s);case 35685:return i.uniformMatrix2x3fv(e,!1,s);case 35686:return i.uniformMatrix2x4fv(e,!1,s);case 35687:return i.uniformMatrix3x2fv(e,!1,s);case 35688:return i.uniformMatrix3x4fv(e,!1,s);case 35689:return i.uniformMatrix4x2fv(e,!1,s);case 35690:return i.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}var VY=We(()=>{});function jY(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(t)}}function HY(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(t)}}var tF=We(()=>{});function S3e(t,e){let r={...t,attributes:t.attributes.map(n=>({...n}))};for(let n of e?.attributes||[]){let i=r.attributes.find(o=>o.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):Dt.warn(`shader layout attribute ${n.name} not present in shader`)}return r}var WY,DC,qY=We(()=>{Fn();zY();$N();VY();SC();EC();BC();JN();tF();WY=4,DC=class extends vh{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.vs=r.vs,this.fs=r.fs;let{varyings:n,bufferMode:i=35981}=r;n&&n.length>0&&(this.varyings=n,this.device.gl.transformFeedbackVaryings(this.handle,n,i)),this._linkShaders(),Dt.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=FY(this.device.gl,this.handle),Dt.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=r.shaderLayout?S3e(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.handle&&(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.destroyed=!0,this.handle.destroyed=!0,this.handle=null)}setBindings(e,r){for(let[n,i]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===n)||this.shaderLayout.bindings.find(s=>s.name===`${n}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(a=>`"${a.name}"`).join(", ");r?.disableWarnings||Dt.warn(`No binding "${n}" in render pipeline "${this.id}", expected one of ${s}`,i)();continue}switch(i||Dt.warn(`Unsetting binding "${n}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(i instanceof xf)&&!(i.buffer instanceof xf))throw new Error("buffer value");break;case"texture":if(!(i instanceof Pp||i instanceof Rp||i instanceof Ip))throw new Error(`${this} Bad texture binding for ${n}`);break;case"sampler":Dt.warn(`Ignoring sampler ${n}`)();break;default:throw new Error(o.type)}this.bindings[n]=i}}draw(e){let{renderPass:r,parameters:n=this.props.parameters,topology:i=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:a,isInstanced:l=!1,firstVertex:u=0,transformFeedback:f}=e,m=jY(i),v=Boolean(o.indexBuffer),E=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return Dt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable())return Dt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let S=r;return RY(this.device,n,S.glParameters,()=>{v&&l?this.device.gl.drawElementsInstanced(m,s||0,E,u,a||0):v?this.device.gl.drawElements(m,s||0,E,u):l?this.device.gl.drawArraysInstanced(m,u,s||0,a||0):this.device.gl.drawArrays(m,u,s||0),f&&f.end()}),o.unbindAfterRender(r),!0}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Dt.time(WY,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Dt.timeEnd(WY,`linkProgram for ${this.id}`)(),Dt.level,!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}Dt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Dt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(e){switch(e){case"success":return;default:let r=e==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${e}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}async _waitForLinkComplete(){let e=async i=>await new Promise(o=>setTimeout(o,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let r of this.shaderLayout.bindings)!this.bindings[r.name]&&!this.bindings[r.name.replace(/Uniforms$/,"")]&&(Dt.warn(`Binding ${r.name} not found in ${this.id}`)(),e=!1);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,n=0;for(let i of this.shaderLayout.bindings){let o=this.bindings[i.name]||this.bindings[i.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${i.name} in ${this.id}`);switch(i.type){case"uniform":let{name:s}=i,a=e.getUniformBlockIndex(this.handle,s);if(a===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,n,a),o instanceof xf?e.bindBufferBase(35345,n,o.handle):e.bindBufferRange(35345,n,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),n+=1;break;case"texture":if(!(o instanceof Pp||o instanceof Rp||o instanceof Ip))throw new Error("texture");let l;if(o instanceof Pp)l=o.texture;else if(o instanceof Rp)l=o;else if(o instanceof Ip&&o.colorAttachments[0]instanceof Pp)Dt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(l.glTarget,l.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${i.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:n,type:i,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&UY(this.device.gl,n,i,s)}}}});function C3e(t,e){let r=e.sourceBuffer,n=e.destinationBuffer;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,n.handle),t.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),t.gl.bindBuffer(36662,null),t.gl.bindBuffer(36663,null)}function I3e(t,e){throw new Error("Not implemented")}function P3e(t,e){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:o=e.sourceTexture.width,height:s=e.sourceTexture.height,depthOrArrayLayers:a=0,origin:l=[0,0],destinationBuffer:u,byteOffset:f=0,bytesPerRow:m,rowsPerImage:v}=e;if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==0||m||v)throw new Error("not implemented");let{framebuffer:E,destroyFramebuffer:S}=GY(r),L;try{let O=u,q=o||E.width,G=s||E.height,H=bC(E.colorAttachments[0].texture.props.format),Y=H.format,te=H.type;t.gl.bindBuffer(35051,O.handle),L=t.gl.bindFramebuffer(36160,E.handle),t.gl.readPixels(l[0],l[1],q,G,Y,te,f)}finally{t.gl.bindBuffer(35051,null),L!==void 0&&t.gl.bindFramebuffer(36160,L),S&&E.destroy()}}function R3e(t,e){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:o=[0,0],destinationTexture:s}=e,{width:a=e.destinationTexture.width,height:l=e.destinationTexture.height}=e,{framebuffer:u,destroyFramebuffer:f}=GY(r),[m,v]=i,[E,S,L]=o,O=t.gl.bindFramebuffer(36160,u.handle),q,G;if(s instanceof Rp)q=s,a=Number.isFinite(a)?a:q.width,l=Number.isFinite(l)?l:q.height,q._bind(0),G=q.glTarget;else throw new Error("invalid destination");switch(G){case 3553:case 34067:t.gl.copyTexSubImage2D(G,n,E,S,m,v,a,l);break;case 35866:case 32879:t.gl.copyTexSubImage3D(G,n,E,S,L,m,v,a,l);break;default:}q&&q._unbind(),t.gl.bindFramebuffer(36160,O),f&&u.destroy()}function GY(t){if(t instanceof Ki){let{width:e,height:r,id:n}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${n}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var NC,XY=We(()=>{Fn();BC();M1();NC=class extends H_{device;handle=null;commands=[];constructor(e){super(e,{}),this.device=e}_executeCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":C3e(this.device,r.options);break;case"copy-buffer-to-texture":I3e(this.device,r.options);break;case"copy-texture-to-buffer":P3e(this.device,r.options);break;case"copy-texture-to-texture":R3e(this.device,r.options);break;default:throw new Error(r.name)}}}});var L3e,FC,YY=We(()=>{Fn();OC();w1();L3e=[1,2,4,8],FC=class extends Ed{device;handle=null;glParameters={};constructor(e,r){super(e,r),this.device=e;let n;if(!r?.parameters?.viewport)if(r?.framebuffer){let{width:o,height:s}=r.framebuffer;n=[0,0,o,s]}else{let[o,s]=e.getDefaultCanvasContext().getDrawingBufferSize();n=[0,0,o,s]}this.device.pushState(),this.setParameters({viewport:n,...this.props.parameters});let i=this.props.framebuffer;if(this.props.framebuffer&&i?.handle){let o=this.props.framebuffer.colorAttachments.map((s,a)=>36064+a);this.device.gl.drawBuffers(o)}else this.device.gl.drawBuffers([1029]);this.clear()}end(){this.device.popState()}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(r.viewport=e.viewport.slice(0,4),r.depthRange=[e.viewport[4],e.viewport[5]]):r.viewport=e.viewport),e.scissorRect&&(r.scissorTest=!0,r.scissor=e.scissorRect),e.blendConstant&&(r.blendColor=e.blendConstant),e.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),r[2967]=e.stencilReference),"colorMask"in e&&(r.colorMask=L3e.map(n=>Boolean(n&e.colorMask))),this.glParameters=r,yf(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,e.clearStencil=this.props.clearStencil),r!==0&&a0(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){a0(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,e,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var hw,$Y=We(()=>{Fn();XY();YY();hw=class extends j_{device;handle=null;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new NC(e)}destroy(){}finish(){return this.commandBuffer}beginRenderPass(e){return new FC(this.device,e)}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,r,n){}}});function KY(t){let{target:e,source:r,start:n=0,count:i=1}=t,o=r.length,s=i*o,a=0;for(let l=n;a<o;a++)e[l++]=r[a];for(;a<s;)a<s-a?(e.copyWithin(n+a,n,n+a),a*=2):(e.copyWithin(n+a,n,n+s-a),a=s);return t.target}var ZY=We(()=>{});function O3e(t){return Array.isArray(t)?new Float32Array(t):t}function B3e(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var S1,QY=We(()=>{Fn();Nm();qN();ZY();S1=class extends W_{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return mB()==="Chrome"}constructor(e,r){super(e,r),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){let r=e;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(e,r){let n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:o,stride:s,offset:a,normalized:l,integer:u,divisor:f}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),u?this.device.gl.vertexAttribIPointer(e,i,o,s,a):this.device.gl.vertexAttribPointer(e,i,o,l,s,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,f||0),this.attributes[e]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,r){this._enable(e,!1),this.attributes[e]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){let r=this.attributes[e];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(e,r)}}_getAccessor(e){let r=this.attributeInfos[e];if(!r)throw new Error(`Unknown attribute location ${e}`);let n=xC(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let i=S1.isConstantAttributeZeroSupported(this.device)||e!==0;(r||i)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,r){let n=O3e(r),i=n.byteLength*e,o=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),s||=!B3e(n,this.bufferValue),s){let a=Hk(r.constructor,o);KY({target:a,source:n,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function JY(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var zC,e$=We(()=>{Fn();fw();tF();zC=class extends q_{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,r){super(e,r),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(HY(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in e)this.setBuffer(r,e[r])})}setBuffer(e,r){let n=this._getVaryingIndex(e),{buffer:i,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(n<0){this.unusedBuffers[e]=i,Dt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[n]={buffer:i,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(n,i,s,o)}getBuffer(e){if(JY(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return r>=0?this.buffers[r]:null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let r;return this._bound?r=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof xf)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(JY(e))return Number(e);for(let r of this.layout.varyings||[])if(e===r.name)return r.location;return-1}_bindBuffers(){for(let e in this.buffers){let{buffer:r,byteLength:n,byteOffset:i}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,i,n)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,n=0,i){let o=r&&r.handle;!o||i===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,n,i)}}});var UC,t$=We(()=>{Fn();UC=class extends G_{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(e,r){if(super(e,r),this.device=e,r.count>1)throw new Error("WebGL QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n,Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(e){return this._begin(e?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(e){this._queryPending||(this.target=e,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let e=this.device.gl.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(e=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((n,i)=>{let o=()=>{this.isResultAvailable()?(n(this.getResult()),this._pollingPromise=null):r++>e?(i("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}}});function rF(t){switch(t){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function r$(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var n$=We(()=>{});function i$(t){return k3e[t]}var k3e,o$=We(()=>{k3e={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function s$(t,e){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=e||{},{target:o=null,sourceWidth:s,sourceHeight:a,sourceDepth:l,sourceFormat:u,sourceType:f}=e||{},{framebuffer:m,deleteFramebuffer:v}=c$(t),{gl:E,handle:S}=m;s||=m.width,a||=m.height;let L=m.colorAttachments[i]?.texture;if(!L)throw new Error(`Invalid framebuffer attachment ${i}`);l=L?.depth||1,u||=L?.glFormat||6408,f||=L?.glType||5121,o=N3e(o,f,u,s,a,l);let O=BA(o);f=f||BY(O);let q=E.bindFramebuffer(36160,S);return E.readBuffer(36064+i),E.readPixels(r,n,s,a,u,f,o),E.readBuffer(36064),E.bindFramebuffer(36160,q||null),v&&m.destroy(),o}function a$(t,e){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:a,sourceHeight:l,sourceType:u}=e||{},{framebuffer:f,deleteFramebuffer:m}=c$(t);a=a||f.width,l=l||f.height;let v=f;u=u||5121;let E=r;if(!E){let L=rF(o),O=r$(u),q=s+a*l*L*O;E=v.device.createBuffer({byteLength:q})}let S=t.device.createCommandEncoder();return S.copyTextureToBuffer({sourceTexture:t,width:a,height:l,origin:[n,i],destinationBuffer:E,byteOffset:s}),S.destroy(),m&&f.destroy(),E}function c$(t){return t instanceof yp?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:D3e(t),deleteFramebuffer:!0}}function D3e(t,e){let{device:r,width:n,height:i,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:n,height:i,colorAttachments:[t]})}function N3e(t,e,r,n,i,o){if(t)return t;e||=5121;let s=i$(e),a=kA(s),l=rF(r);return new a(n*i*l)}var l$=We(()=>{Fn();eF();n$();o$()});var nF={};Uo(nF,{WebGLDevice:()=>Lp});function F3e(t,e,r){switch(r.length){case 1:t.gl.vertexAttrib1fv(e,r);break;case 2:t.gl.vertexAttrib2fv(e,r);break;case 3:t.gl.vertexAttrib3fv(e,r);break;case 4:t.gl.vertexAttrib4fv(e,r);break;default:}}function z3e(t,e,r){t.gl.vertexAttribI4iv(e,r)}function U3e(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function V3e(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var Lp,VC=We(()=>{Fn();WN();uY();pY();vY();bY();wY();FN();zN();M1();EY();SC();IY();LY();BC();EC();qY();$Y();QY();e$();t$();l$();w1();OC();cw();Lp=class extends cu{type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;_extensions={};_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(e){switch(e){case"unorm8x4-bgra":return!1;default:return!0}}constructor(e){super({...e,id:e.id||TY("webgl-device")});let r=cu._getCanvasContextProps(e);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl?.device;if(n)throw new Error(`WebGL context already attached to device ${n.id}`);this.canvasContext=new MC(this,r),this.lost=new Promise(f=>{this._resolveContextLost=f});let i={...e.webgl};r.alphaMode==="premultiplied"&&(i.premultipliedAlpha=!0),e.powerPreference!==void 0&&(i.powerPreference=e.powerPreference);let s=this.props._handle||lY(this.canvasContext.canvas,{onContextLost:f=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:f=>console.log("WebGL context restored")},i);if(!s)throw new Error("WebGL context creation failed");if(n=s.device,n){if(e._reuseDevices)return Dt.log(1,`Not creating a new Device, instead returning a reference to Device ${n.id} already attached to WebGL context`,n)(),n._reused=!0,n;throw new Error(`WebGL context already attached to device ${n.id}`)}this.handle=s,this.gl=s,this.spectorJS=YX({...this.props,gl:this.handle}),this.gl.device=this,this.gl._version=2,this.info=hY(this.gl,this._extensions),this.limits=new TC(this.gl),this.features=new wC(this.gl,this._extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new _f(this.gl,{log:(...f)=>Dt.log(1,...f)()}).trackState(this.gl,{copyState:!1});let l=e.debugWebGL||e.debug,u=e.debugWebGL;l&&(this.gl=QX(this.gl,{debugWebGL:l,traceWebGL:u}),Dt.warn("WebGL debug mode activated. Performance reduced.")(),e.debugWebGL&&(Dt.level=Math.max(Dt.level,1))),this.commandEncoder=new hw(this,{id:`${this}-command-encoder`})}destroy(){!this.props._reuseDevices&&!this._reused&&delete this.gl.device}get isLost(){return this.gl.isContextLost()}getTextureByteAlignment(){return 4}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._normalizeBufferProps(e);return new xf(this,r)}createTexture(e){return new Rp(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new LC(this,e)}createShader(e){return new CC(this,e)}createFramebuffer(e){return new Ip(this,e)}createVertexArray(e){return new S1(this,e)}createTransformFeedback(e){return new zC(this,e)}createQuerySet(e){return new UC(this,e)}createRenderPipeline(e){return new DC(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(e={}){return new hw(this,e)}submit(e){e||(e=this.commandEncoder.finish(),this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:`${this.id}-default-encoder`})),e._executeCommands()}readPixelsToArrayWebGL(e,r){return s$(e,r)}readPixelsToBufferWebGL(e,r){return a$(e,r)}setParametersWebGL(e){yf(this.gl,e)}getParametersWebGL(e){return _C(this.gl,e)}withParametersWebGL(e,r){return a0(this.gl,e,r)}resetWebGL(){Dt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),iY(this.gl)}_getDeviceSpecificTextureFormatCapabilities(e){return yY(this.gl,e,this._extensions)}loseDevice(){let e=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(e=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){_f.get(this.gl).push()}popState(){_f.get(this.gl).pop()}getGLKey(e,r){let n=Number(e);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(e)}getGLKeys(e){let r={emptyIfUnknown:!0};return Object.entries(e).reduce((n,[i,o])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${o}:${this.getGLKey(o,r)}`,n),{})}setConstantAttributeWebGL(e,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[e];switch(i&&V3e(i,r)&&Dt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:F3e(this,e,r);break;case Int32Array:z3e(this,e,r);break;case Uint32Array:U3e(this,e,r);break;default:throw new Error("constant")}}getExtension(e){return Cp(this.gl,e,this._extensions),this._extensions}_setWebGLDebugMetadata(e,r,n){e.luma=r;let i={props:n.spector,id:n.spector.id};e.__SPECTOR_Metadata=i}}});function j3e(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}var jC,iF,pw,u$=We(()=>{Fn();qX();FN();zN();jC=1,iF=class extends ib{type="webgl";constructor(){super(),cu.defaultProps={...cu.defaultProps,...yC}}enforceWebGL2(e){WX(e)}isSupported(){return typeof WebGL2RenderingContext<"u"}isDeviceHandle(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:(typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext&&Dt.warn("WebGL1 is not supported",e)(),!1)}async attach(e){let{WebGLDevice:r}=await Promise.resolve().then(()=>(VC(),nF));if(e instanceof r)return e;if(e?.device instanceof r)return e.device;if(!j3e(e))throw new Error("Invalid WebGL2RenderingContext");return new r({_handle:e,createCanvasContext:{canvas:e.canvas,autoResize:!1}})}async create(e={}){let{WebGLDevice:r}=await Promise.resolve().then(()=>(VC(),nF));Dt.groupCollapsed(jC,"WebGLDevice created")();try{let n=[];(e.debugWebGL||e.debug)&&n.push(ZX()),e.debugSpectorJS&&n.push(XX(e));let i=await Promise.allSettled(n);for(let a of i)a.status==="rejected"&&Dt.error(`Failed to initialize debug libraries ${a.reason}`)();let o=new r(e),s=`${o._reused?"Reusing":"Created"} device with WebGL2 ${o.props.debug?"debug ":""}context: ${o.info.vendor}, ${o.info.renderer} for canvas: ${o.canvasContext.id}`;return Dt.probe(jC,s)(),Dt.table(jC,o.info)(),o}finally{Dt.groupEnd(jC)()}}};pw=new iF});var fw=We(()=>{u$();VC();SC()});var JK=Qt((fvt,LF)=>{"use strict";LF.exports=_I;LF.exports.default=_I;function _I(t,e,r){r=r||2;var n=e&&e.length,i=n?e[0]*r:t.length,o=KK(t,0,i,r,!0),s=[];if(!o||o.next===o.prev)return s;var a,l,u,f,m,v,E;if(n&&(o=VMe(t,e,o,r)),t.length>80*r){a=u=t[0],l=f=t[1];for(var S=r;S<i;S+=r)m=t[S],v=t[S+1],m<a&&(a=m),v<l&&(l=v),m>u&&(u=m),v>f&&(f=v);E=Math.max(u-a,f-l),E=E!==0?32767/E:0}return $w(o,s,r,a,l,E,0),s}function KK(t,e,r,n,i){var o,s;if(i===RF(t,e,r,n)>0)for(o=e;o<r;o+=n)s=$K(o,t[o],t[o+1],s);else for(o=r-n;o>=e;o-=n)s=$K(o,t[o],t[o+1],s);return s&&xI(s,s.next)&&(Zw(s),s=s.next),s}function xg(t,e){if(!t)return t;e||(e=t);var r=t,n;do if(n=!1,!r.steiner&&(xI(r,r.next)||Xs(r.prev,r,r.next)===0)){if(Zw(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function $w(t,e,r,n,i,o,s){if(t){!s&&o&&GMe(t,n,i,o);for(var a=t,l,u;t.prev!==t.next;){if(l=t.prev,u=t.next,o?FMe(t,n,i,o):NMe(t)){e.push(l.i/r|0),e.push(t.i/r|0),e.push(u.i/r|0),Zw(t),t=u.next,a=u.next;continue}if(t=u,t===a){s?s===1?(t=zMe(xg(t),e,r),$w(t,e,r,n,i,o,2)):s===2&&UMe(t,e,r,n,i,o):$w(xg(t),e,r,n,i,o,1);break}}}}function NMe(t){var e=t.prev,r=t,n=t.next;if(Xs(e,r,n)>=0)return!1;for(var i=e.x,o=r.x,s=n.x,a=e.y,l=r.y,u=n.y,f=i<o?i<s?i:s:o<s?o:s,m=a<l?a<u?a:u:l<u?l:u,v=i>o?i>s?i:s:o>s?o:s,E=a>l?a>u?a:u:l>u?l:u,S=n.next;S!==e;){if(S.x>=f&&S.x<=v&&S.y>=m&&S.y<=E&&k1(i,a,o,l,s,u,S.x,S.y)&&Xs(S.prev,S,S.next)>=0)return!1;S=S.next}return!0}function FMe(t,e,r,n){var i=t.prev,o=t,s=t.next;if(Xs(i,o,s)>=0)return!1;for(var a=i.x,l=o.x,u=s.x,f=i.y,m=o.y,v=s.y,E=a<l?a<u?a:u:l<u?l:u,S=f<m?f<v?f:v:m<v?m:v,L=a>l?a>u?a:u:l>u?l:u,O=f>m?f>v?f:v:m>v?m:v,q=IF(E,S,e,r,n),G=IF(L,O,e,r,n),H=t.prevZ,Y=t.nextZ;H&&H.z>=q&&Y&&Y.z<=G;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&k1(a,f,l,m,u,v,H.x,H.y)&&Xs(H.prev,H,H.next)>=0||(H=H.prevZ,Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&k1(a,f,l,m,u,v,Y.x,Y.y)&&Xs(Y.prev,Y,Y.next)>=0))return!1;Y=Y.nextZ}for(;H&&H.z>=q;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&k1(a,f,l,m,u,v,H.x,H.y)&&Xs(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;Y&&Y.z<=G;){if(Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&k1(a,f,l,m,u,v,Y.x,Y.y)&&Xs(Y.prev,Y,Y.next)>=0)return!1;Y=Y.nextZ}return!0}function zMe(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!xI(i,o)&&ZK(i,n,n.next,o)&&Kw(i,o)&&Kw(o,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(o.i/r|0),Zw(n),Zw(n.next),n=t=o),n=n.next}while(n!==t);return xg(n)}function UMe(t,e,r,n,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&$Me(s,a)){var l=QK(s,a);s=xg(s,s.next),l=xg(l,l.next),$w(s,e,r,n,i,o,0),$w(l,e,r,n,i,o,0);return}a=a.next}s=s.next}while(s!==t)}function VMe(t,e,r,n){var i=[],o,s,a,l,u;for(o=0,s=e.length;o<s;o++)a=e[o]*n,l=o<s-1?e[o+1]*n:t.length,u=KK(t,a,l,n,!1),u===u.next&&(u.steiner=!0),i.push(YMe(u));for(i.sort(jMe),o=0;o<i.length;o++)r=HMe(i[o],r);return r}function jMe(t,e){return t.x-e.x}function HMe(t,e){var r=WMe(t,e);if(!r)return e;var n=QK(r,t);return xg(n,n.next),xg(r,r.next)}function WMe(t,e){var r=e,n=t.x,i=t.y,o=-1/0,s;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var a=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=n&&a>o&&(o=a,s=r.x<r.next.x?r:r.next,a===n))return s}r=r.next}while(r!==e);if(!s)return null;var l=s,u=s.x,f=s.y,m=1/0,v;r=s;do n>=r.x&&r.x>=u&&n!==r.x&&k1(i<f?n:o,i,u,f,i<f?o:n,i,r.x,r.y)&&(v=Math.abs(i-r.y)/(n-r.x),Kw(r,t)&&(v<m||v===m&&(r.x>s.x||r.x===s.x&&qMe(s,r)))&&(s=r,m=v)),r=r.next;while(r!==l);return s}function qMe(t,e){return Xs(t.prev,t,e.prev)<0&&Xs(e.next,t,t.next)<0}function GMe(t,e,r,n){var i=t;do i.z===0&&(i.z=IF(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,XMe(i)}function XMe(t){var e,r,n,i,o,s,a,l,u=1;do{for(r=t,t=null,o=null,s=0;r;){for(s++,n=r,a=0,e=0;e<u&&(a++,n=n.nextZ,!!n);e++);for(l=u;a>0||l>0&&n;)a!==0&&(l===0||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,l--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(s>1);return t}function IF(t,e,r,n,i){return t=(t-r)*i|0,e=(e-n)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function YMe(t){var e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function k1(t,e,r,n,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(n-a)>=(r-s)*(e-a)&&(r-s)*(o-a)>=(i-s)*(n-a)}function $Me(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!KMe(t,e)&&(Kw(t,e)&&Kw(e,t)&&ZMe(t,e)&&(Xs(t.prev,t,e.prev)||Xs(t,e.prev,e))||xI(t,e)&&Xs(t.prev,t,t.next)>0&&Xs(e.prev,e,e.next)>0)}function Xs(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function xI(t,e){return t.x===e.x&&t.y===e.y}function ZK(t,e,r,n){var i=yI(Xs(t,e,r)),o=yI(Xs(t,e,n)),s=yI(Xs(r,n,t)),a=yI(Xs(r,n,e));return!!(i!==o&&s!==a||i===0&&gI(t,r,e)||o===0&&gI(t,n,e)||s===0&&gI(r,t,n)||a===0&&gI(r,e,n))}function gI(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function yI(t){return t>0?1:t<0?-1:0}function KMe(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&ZK(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Kw(t,e){return Xs(t.prev,t,t.next)<0?Xs(t,e,t.next)>=0&&Xs(t,t.prev,e)>=0:Xs(t,e,t.prev)<0||Xs(t,t.next,e)<0}function ZMe(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function QK(t,e){var r=new PF(t.i,t.x,t.y),n=new PF(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function $K(t,e,r,n){var i=new PF(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Zw(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function PF(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}_I.deviation=function(t,e,r,n){var i=e&&e.length,o=i?e[0]*r:t.length,s=Math.abs(RF(t,0,o,r));if(i)for(var a=0,l=e.length;a<l;a++){var u=e[a]*r,f=a<l-1?e[a+1]*r:t.length;s-=Math.abs(RF(t,u,f,r))}var m=0;for(a=0;a<n.length;a+=3){var v=n[a]*r,E=n[a+1]*r,S=n[a+2]*r;m+=Math.abs((t[v]-t[S])*(t[E+1]-t[v+1])-(t[v]-t[E])*(t[S+1]-t[v+1]))}return s===0&&m===0?0:Math.abs((m-s)/s)};function RF(t,e,r,n){for(var i=0,o=e,s=r-n;o<r;o+=n)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}_I.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)r.vertices.push(t[i][o][s]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}});var vP=Qt(Gd=>{"use strict";var ete=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",xLe=ete+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",tte="["+ete+"]["+xLe+"]*",vLe=new RegExp("^"+tte+"$"),bLe=function(t,e){let r=[],n=e.exec(t);for(;n;){let i=[];i.startIndex=e.lastIndex-n[0].length;let o=n.length;for(let s=0;s<o;s++)i.push(n[s]);r.push(i),n=e.exec(t)}return r},wLe=function(t){let e=vLe.exec(t);return!(e===null||typeof e>"u")};Gd.isExist=function(t){return typeof t<"u"};Gd.isEmptyObject=function(t){return Object.keys(t).length===0};Gd.merge=function(t,e,r){if(e){let n=Object.keys(e),i=n.length;for(let o=0;o<i;o++)r==="strict"?t[n[o]]=[e[n[o]]]:t[n[o]]=e[n[o]]}};Gd.getValue=function(t){return Gd.isExist(t)?t:""};Gd.isName=wLe;Gd.getAllMatches=bLe;Gd.nameRegexp=tte});var l6=Qt(ste=>{"use strict";var c6=vP(),TLe={allowBooleanAttributes:!1,unpairedTags:[]};ste.validate=function(t,e){e=Object.assign({},TLe,e);let r=[],n=!1,i=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let o=0;o<t.length;o++)if(t[o]==="<"&&t[o+1]==="?"){if(o+=2,o=nte(t,o),o.err)return o}else if(t[o]==="<"){let s=o;if(o++,t[o]==="!"){o=ite(t,o);continue}else{let a=!1;t[o]==="/"&&(a=!0,o++);let l="";for(;o<t.length&&t[o]!==">"&&t[o]!==" "&&t[o]!==" "&&t[o]!==`
|
|
516
|
+
${e}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,e),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Dt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Dt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async i=>await new Promise(o=>setTimeout(o,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}});function RY(t,e,r,n){if(A3e(e))return n(t);let i=t;i.pushState();try{return p3e(t,e),yf(i.gl,r),n(t)}finally{i.popState()}}function p3e(t,e){let r=t,{gl:n}=r;if(e.cullMode)switch(e.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(e.frontFace&&n.frontFace(cg("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&n.enable(34383),e.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&t.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,s=cg("provokingVertex",e.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(s)}if((e.polygonMode||e.polygonOffsetLine)&&t.features.has("polygon-mode-webgl")){if(e.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,s=cg("polygonMode",e.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,s),o?.polygonModeWEBGL(1029,s)}e.polygonOffsetLine&&n.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&n.enable(12288),e.clipDistance1&&n.enable(12289),e.clipDistance2&&n.enable(12290),e.clipDistance3&&n.enable(12291),e.clipDistance4&&n.enable(12292),e.clipDistance5&&n.enable(12293),e.clipDistance6&&n.enable(12294),e.clipDistance7&&n.enable(12295)),e.depthWriteEnabled!==void 0&&n.depthMask(m3e("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(PC("depthCompare",e.depthCompare))),e.stencilWriteMask){let i=e.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(e.stencilReadMask&&Dt.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let i=e.stencilReadMask||4294967295,o=PC("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,o,0,i),n.stencilFuncSeparate(1029,o,0,i)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let i=YN("stencilPassOperation",e.stencilPassOperation),o=YN("stencilFailOperation",e.stencilFailOperation),s=YN("stencilDepthFailOperation",e.stencilDepthFailOperation);n.stencilOpSeparate(1028,o,s,i),n.stencilOpSeparate(1029,o,s,i)}switch(e.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(e.blendColorOperation||e.blendAlphaOperation){let i=PY("blendColorOperation",e.blendColorOperation||"add"),o=PY("blendAlphaOperation",e.blendAlphaOperation||"add");n.blendEquationSeparate(i,o);let s=IC("blendColorSrcFactor",e.blendColorSrcFactor||"one"),a=IC("blendColorDstFactor",e.blendColorDstFactor||"zero"),l=IC("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),u=IC("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");n.blendFuncSeparate(s,a,l,u)}}function PC(t,e){return cg(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function YN(t,e){return cg(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function PY(t,e){return cg(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function IC(t,e,r="color"){return cg(t,e,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function d3e(t,e){return`Illegal parameter ${e} for ${t}`}function cg(t,e,r){if(!(e in r))throw new Error(d3e(t,e));return r[e]}function m3e(t,e){return e}function A3e(t){let e=!0;for(let r in t){e=!1;break}return e}var $N=We(()=>{Fn();w1()});function RC(t){let e={};return t.addressModeU&&(e[10242]=KN(t.addressModeU)),t.addressModeV&&(e[10243]=KN(t.addressModeV)),t.addressModeW&&(e[32882]=KN(t.addressModeW)),t.magFilter&&(e[10240]=ZN(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=g3e(t.minFilter||"linear",t.mipmapFilter)),t.lodMinClamp!==void 0&&(e[33082]=t.lodMinClamp),t.lodMaxClamp!==void 0&&(e[33083]=t.lodMaxClamp),t.type==="comparison-sampler"&&(e[34892]=34894),t.compare&&(e[34893]=PC("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function KN(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function ZN(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function g3e(t,e="none"){if(!e)return ZN(t);switch(e){case"none":return ZN(t);case"nearest":switch(t){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(t){case"nearest":return 9986;case"linear":return 9987}}}var QN=We(()=>{$N()});var LC,LY=We(()=>{Fn();QN();LC=class extends xh{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=RC(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(let[r,n]of Object.entries(e)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function a0(t,e,r){if(y3e(e))return r(t);let{nocatch:n=!0}=e,i=_f.get(t);i.push(),yf(t,e);let o;if(n)o=r(t),i.pop();else try{o=r(t)}finally{i.pop()}return o}function y3e(t){for(let e in t)return!1;return!0}var OC=We(()=>{w1();WN()});var Pp,JN=We(()=>{Fn();Pp=class extends qm{device;gl;handle;texture;constructor(e,r){super(e,{...Ki.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function _3e(t){switch(t){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(t)}function OY(t,e,r){return e==="cube"?34069+r:t}var Rp,BC=We(()=>{Fn();M1();QN();OC();JN();Rp=class extends Ki{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;constructor(e,r){super(e,r),this.device=e,this.gl=this.device.gl;let n=bC(this.props.format);this.glTarget=_3e(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:o,height:s,depth:a,mipLevels:l,glTarget:u,glInternalFormat:f}=this;switch(i){case"2d":case"cube":this.gl.texStorage2D(u,l,f,o,s);break;case"2d-array":case"3d":this.gl.texStorage3D(u,l,f,o,s,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data),this.setSampler(this.props.sampler),this.view=new Pp(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}createView(e){return new Pp(this.device,{...e,texture:this})}setSampler(e={}){super.setSampler(e);let r=RC(this.sampler.props);this._setSamplerParameters(r)}copyImageData(e){let r=this._normalizeCopyImageDataOptions(e),n=r.data,{width:i,height:o,depth:s}=this,{mipLevel:a=0,byteOffset:l=0,x:u=0,y:f=0,z:m=0}=r,{glFormat:v,glType:E,compressed:S}=this,L=OY(this.glTarget,this.dimension,s),O=this.compressed?{}:{[3314]:r.bytesPerRow,[32878]:r.rowsPerImage};this.gl.bindTexture(L,this.handle),a0(this.gl,O,()=>{switch(this.dimension){case"2d":case"cube":S?this.gl.compressedTexSubImage2D(L,a,u,f,i,o,v,n,l):this.gl.texSubImage2D(L,a,u,f,i,o,v,E,n,l);break;case"2d-array":case"3d":S?this.gl.compressedTexSubImage3D(L,a,u,f,m,i,o,s,v,n,l):this.gl.texSubImage3D(L,a,u,f,m,i,o,s,v,E,n,l);break;default:}}),this.gl.bindTexture(L,null)}copyExternalImage(e){let r=this._normalizeCopyExternalImageOptions(e);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:o,depth:s,mipLevel:a,x:l,y:u,z:f,width:m,height:v}=r,E=OY(this.glTarget,this.dimension,s),S=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),a0(this.gl,S,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(E,a,l,u,m,v,n,i,o);break;case"2d-array":case"3d":this.gl.texSubImage3D(E,a,l,u,f,m,v,s,n,i,o);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}generateMipmapsWebGL(e){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Dt.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!e?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Dt.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(e){Dt.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(e)){let i=Number(r),o=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,o);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,o);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,o);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,o);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,this.handle),e}_unbind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,null),e}}});function BY(t){return v3e[t]}function kC(t){return x3e[t]}function kY(t){return Boolean(NY[t])}function DY(t){return NY[t]}var x3e,NY,v3e,eF=We(()=>{x3e={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},NY={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},v3e={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function FY(t,e){let r={attributes:[],bindings:[]};r.attributes=b3e(t,e);let n=E3e(t,e);for(let a of n){let l=a.uniforms.map(u=>({name:u.name,format:u.format,byteOffset:u.byteOffset,byteStride:u.byteStride,arrayLength:u.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:l})}let i=T3e(t,e),o=0;for(let a of i)if(kY(a.type)){let{viewDimension:l,sampleType:u}=DY(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:o,viewDimension:l,sampleType:u}),a.textureUnit=o,o+=1}i.length&&(r.uniforms=i);let s=w3e(t,e);return s?.length&&(r.varyings=s),r}function b3e(t,e){let r=[],n=t.getProgramParameter(e,35721);for(let i=0;i<n;i++){let o=t.getActiveAttrib(e,i);if(!o)throw new Error("activeInfo");let{name:s,type:a}=o,l=t.getAttribLocation(e,s);if(l>=0){let u=kC(a),f=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:l,stepMode:f,type:u})}}return r.sort((i,o)=>i.location-o.location),r}function w3e(t,e){let r=[],n=t.getProgramParameter(e,35971);for(let i=0;i<n;i++){let o=t.getTransformFeedbackVarying(e,i);if(!o)throw new Error("activeInfo");let{name:s,type:a,size:l}=o,u=kC(a),{type:f,components:m}=ob(u);r.push({location:i,name:s,type:f,size:l*m})}return r.sort((i,o)=>i.location-o.location),r}function T3e(t,e){let r=[],n=t.getProgramParameter(e,35718);for(let i=0;i<n;i++){let o=t.getActiveUniform(e,i);if(!o)throw new Error("activeInfo");let{name:s,size:a,type:l}=o,{name:u,isArray:f}=M3e(s),m=t.getUniformLocation(e,u),v={location:m,name:u,size:a,type:l,isArray:f};if(r.push(v),v.size>1)for(let E=0;E<v.size;E++){let S=`${u}[${E}]`;m=t.getUniformLocation(e,S);let L={...v,name:S,location:m};r.push(L)}}return r}function E3e(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),n=[],i=t.getProgramParameter(e,35382);for(let o=0;o<i;o++){let s={name:t.getActiveUniformBlockName(e,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},a=r(o,35395)||[],l=t.getActiveUniforms(e,a,35383),u=t.getActiveUniforms(e,a,35384),f=t.getActiveUniforms(e,a,35387),m=t.getActiveUniforms(e,a,35388);for(let v=0;v<s.uniformCount;++v){let E=t.getActiveUniform(e,a[v]);if(!E)throw new Error("activeInfo");let S=kC(l[v]);s.uniforms.push({name:E.name,format:S,type:l[v],arrayLength:u[v],byteOffset:f[v],byteStride:m[v]})}n.push(s)}return n.sort((o,s)=>o.location-s.location),n}function M3e(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${t}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}var zY=We(()=>{Fn();eF()});function UY(t,e,r,n){let i=t,o=n;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof n!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,n);case 5126:return t.uniform1fv(e,s);case 35664:return t.uniform2fv(e,s);case 35665:return t.uniform3fv(e,s);case 35666:return t.uniform4fv(e,s);case 5124:return t.uniform1iv(e,s);case 35667:return t.uniform2iv(e,s);case 35668:return t.uniform3iv(e,s);case 35669:return t.uniform4iv(e,s);case 35670:return t.uniform1iv(e,s);case 35671:return t.uniform2iv(e,s);case 35672:return t.uniform3iv(e,s);case 35673:return t.uniform4iv(e,s);case 5125:return i.uniform1uiv(e,s,1);case 36294:return i.uniform2uiv(e,s,2);case 36295:return i.uniform3uiv(e,s,3);case 36296:return i.uniform4uiv(e,s,4);case 35674:return t.uniformMatrix2fv(e,!1,s);case 35675:return t.uniformMatrix3fv(e,!1,s);case 35676:return t.uniformMatrix4fv(e,!1,s);case 35685:return i.uniformMatrix2x3fv(e,!1,s);case 35686:return i.uniformMatrix2x4fv(e,!1,s);case 35687:return i.uniformMatrix3x2fv(e,!1,s);case 35688:return i.uniformMatrix3x4fv(e,!1,s);case 35689:return i.uniformMatrix4x2fv(e,!1,s);case 35690:return i.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}var VY=We(()=>{});function jY(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(t)}}function HY(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(t)}}var tF=We(()=>{});function S3e(t,e){let r={...t,attributes:t.attributes.map(n=>({...n}))};for(let n of e?.attributes||[]){let i=r.attributes.find(o=>o.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):Dt.warn(`shader layout attribute ${n.name} not present in shader`)}return r}var WY,DC,qY=We(()=>{Fn();zY();$N();VY();SC();EC();BC();JN();tF();WY=4,DC=class extends vh{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.vs=r.vs,this.fs=r.fs;let{varyings:n,bufferMode:i=35981}=r;n&&n.length>0&&(this.varyings=n,this.device.gl.transformFeedbackVaryings(this.handle,n,i)),this._linkShaders(),Dt.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=FY(this.device.gl,this.handle),Dt.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=r.shaderLayout?S3e(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.handle&&(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.destroyed=!0,this.handle.destroyed=!0,this.handle=null)}setBindings(e,r){for(let[n,i]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===n)||this.shaderLayout.bindings.find(s=>s.name===`${n}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(a=>`"${a.name}"`).join(", ");r?.disableWarnings||Dt.warn(`No binding "${n}" in render pipeline "${this.id}", expected one of ${s}`,i)();continue}switch(i||Dt.warn(`Unsetting binding "${n}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(i instanceof xf)&&!(i.buffer instanceof xf))throw new Error("buffer value");break;case"texture":if(!(i instanceof Pp||i instanceof Rp||i instanceof Ip))throw new Error(`${this} Bad texture binding for ${n}`);break;case"sampler":Dt.warn(`Ignoring sampler ${n}`)();break;default:throw new Error(o.type)}this.bindings[n]=i}}draw(e){let{renderPass:r,parameters:n=this.props.parameters,topology:i=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:a,isInstanced:l=!1,firstVertex:u=0,transformFeedback:f}=e,m=jY(i),v=Boolean(o.indexBuffer),E=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return Dt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable())return Dt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let S=r;return RY(this.device,n,S.glParameters,()=>{v&&l?this.device.gl.drawElementsInstanced(m,s||0,E,u,a||0):v?this.device.gl.drawElements(m,s||0,E,u):l?this.device.gl.drawArraysInstanced(m,u,s||0,a||0):this.device.gl.drawArrays(m,u,s||0),f&&f.end()}),o.unbindAfterRender(r),!0}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Dt.time(WY,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Dt.timeEnd(WY,`linkProgram for ${this.id}`)(),Dt.level,!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}Dt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Dt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(e){switch(e){case"success":return;default:let r=e==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${e}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}async _waitForLinkComplete(){let e=async i=>await new Promise(o=>setTimeout(o,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let r of this.shaderLayout.bindings)!this.bindings[r.name]&&!this.bindings[r.name.replace(/Uniforms$/,"")]&&(Dt.warn(`Binding ${r.name} not found in ${this.id}`)(),e=!1);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,n=0;for(let i of this.shaderLayout.bindings){let o=this.bindings[i.name]||this.bindings[i.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${i.name} in ${this.id}`);switch(i.type){case"uniform":let{name:s}=i,a=e.getUniformBlockIndex(this.handle,s);if(a===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,n,a),o instanceof xf?e.bindBufferBase(35345,n,o.handle):e.bindBufferRange(35345,n,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),n+=1;break;case"texture":if(!(o instanceof Pp||o instanceof Rp||o instanceof Ip))throw new Error("texture");let l;if(o instanceof Pp)l=o.texture;else if(o instanceof Rp)l=o;else if(o instanceof Ip&&o.colorAttachments[0]instanceof Pp)Dt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(l.glTarget,l.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${i.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:n,type:i,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&UY(this.device.gl,n,i,s)}}}});function C3e(t,e){let r=e.sourceBuffer,n=e.destinationBuffer;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,n.handle),t.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),t.gl.bindBuffer(36662,null),t.gl.bindBuffer(36663,null)}function I3e(t,e){throw new Error("Not implemented")}function P3e(t,e){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:o=e.sourceTexture.width,height:s=e.sourceTexture.height,depthOrArrayLayers:a=0,origin:l=[0,0],destinationBuffer:u,byteOffset:f=0,bytesPerRow:m,rowsPerImage:v}=e;if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==0||m||v)throw new Error("not implemented");let{framebuffer:E,destroyFramebuffer:S}=GY(r),L;try{let O=u,q=o||E.width,G=s||E.height,H=bC(E.colorAttachments[0].texture.props.format),Y=H.format,te=H.type;t.gl.bindBuffer(35051,O.handle),L=t.gl.bindFramebuffer(36160,E.handle),t.gl.readPixels(l[0],l[1],q,G,Y,te,f)}finally{t.gl.bindBuffer(35051,null),L!==void 0&&t.gl.bindFramebuffer(36160,L),S&&E.destroy()}}function R3e(t,e){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:o=[0,0],destinationTexture:s}=e,{width:a=e.destinationTexture.width,height:l=e.destinationTexture.height}=e,{framebuffer:u,destroyFramebuffer:f}=GY(r),[m,v]=i,[E,S,L]=o,O=t.gl.bindFramebuffer(36160,u.handle),q,G;if(s instanceof Rp)q=s,a=Number.isFinite(a)?a:q.width,l=Number.isFinite(l)?l:q.height,q._bind(0),G=q.glTarget;else throw new Error("invalid destination");switch(G){case 3553:case 34067:t.gl.copyTexSubImage2D(G,n,E,S,m,v,a,l);break;case 35866:case 32879:t.gl.copyTexSubImage3D(G,n,E,S,L,m,v,a,l);break;default:}q&&q._unbind(),t.gl.bindFramebuffer(36160,O),f&&u.destroy()}function GY(t){if(t instanceof Ki){let{width:e,height:r,id:n}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${n}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var NC,XY=We(()=>{Fn();BC();M1();NC=class extends H_{device;handle=null;commands=[];constructor(e){super(e,{}),this.device=e}_executeCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":C3e(this.device,r.options);break;case"copy-buffer-to-texture":I3e(this.device,r.options);break;case"copy-texture-to-buffer":P3e(this.device,r.options);break;case"copy-texture-to-texture":R3e(this.device,r.options);break;default:throw new Error(r.name)}}}});var L3e,FC,YY=We(()=>{Fn();OC();w1();L3e=[1,2,4,8],FC=class extends Ed{device;handle=null;glParameters={};constructor(e,r){super(e,r),this.device=e;let n;if(!r?.parameters?.viewport)if(r?.framebuffer){let{width:o,height:s}=r.framebuffer;n=[0,0,o,s]}else{let[o,s]=e.getDefaultCanvasContext().getDrawingBufferSize();n=[0,0,o,s]}this.device.pushState(),this.setParameters({viewport:n,...this.props.parameters});let i=this.props.framebuffer;if(this.props.framebuffer&&i?.handle){let o=this.props.framebuffer.colorAttachments.map((s,a)=>36064+a);this.device.gl.drawBuffers(o)}else this.device.gl.drawBuffers([1029]);this.clear()}end(){this.device.popState()}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(r.viewport=e.viewport.slice(0,4),r.depthRange=[e.viewport[4],e.viewport[5]]):r.viewport=e.viewport),e.scissorRect&&(r.scissorTest=!0,r.scissor=e.scissorRect),e.blendConstant&&(r.blendColor=e.blendConstant),e.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),r[2967]=e.stencilReference),"colorMask"in e&&(r.colorMask=L3e.map(n=>Boolean(n&e.colorMask))),this.glParameters=r,yf(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,e.clearStencil=this.props.clearStencil),r!==0&&a0(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){a0(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,e,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var hw,$Y=We(()=>{Fn();XY();YY();hw=class extends j_{device;handle=null;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new NC(e)}destroy(){}finish(){return this.commandBuffer}beginRenderPass(e){return new FC(this.device,e)}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,r,n){}}});function KY(t){let{target:e,source:r,start:n=0,count:i=1}=t,o=r.length,s=i*o,a=0;for(let l=n;a<o;a++)e[l++]=r[a];for(;a<s;)a<s-a?(e.copyWithin(n+a,n,n+a),a*=2):(e.copyWithin(n+a,n,n+s-a),a=s);return t.target}var ZY=We(()=>{});function O3e(t){return Array.isArray(t)?new Float32Array(t):t}function B3e(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var S1,QY=We(()=>{Fn();Nm();qN();ZY();S1=class extends W_{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return mB()==="Chrome"}constructor(e,r){super(e,r),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){let r=e;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(e,r){let n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:o,stride:s,offset:a,normalized:l,integer:u,divisor:f}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),u?this.device.gl.vertexAttribIPointer(e,i,o,s,a):this.device.gl.vertexAttribPointer(e,i,o,l,s,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,f||0),this.attributes[e]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,r){this._enable(e,!1),this.attributes[e]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){let r=this.attributes[e];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(e,r)}}_getAccessor(e){let r=this.attributeInfos[e];if(!r)throw new Error(`Unknown attribute location ${e}`);let n=xC(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let i=S1.isConstantAttributeZeroSupported(this.device)||e!==0;(r||i)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,r){let n=O3e(r),i=n.byteLength*e,o=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),s||=!B3e(n,this.bufferValue),s){let a=Hk(r.constructor,o);KY({target:a,source:n,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function JY(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var zC,e$=We(()=>{Fn();fw();tF();zC=class extends q_{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,r){super(e,r),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(HY(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in e)this.setBuffer(r,e[r])})}setBuffer(e,r){let n=this._getVaryingIndex(e),{buffer:i,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(n<0){this.unusedBuffers[e]=i,Dt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[n]={buffer:i,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(n,i,s,o)}getBuffer(e){if(JY(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return r>=0?this.buffers[r]:null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let r;return this._bound?r=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof xf)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(JY(e))return Number(e);for(let r of this.layout.varyings||[])if(e===r.name)return r.location;return-1}_bindBuffers(){for(let e in this.buffers){let{buffer:r,byteLength:n,byteOffset:i}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,i,n)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,n=0,i){let o=r&&r.handle;!o||i===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,n,i)}}});var UC,t$=We(()=>{Fn();UC=class extends G_{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(e,r){if(super(e,r),this.device=e,r.count>1)throw new Error("WebGL QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n,Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(e){return this._begin(e?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(e){this._queryPending||(this.target=e,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let e=this.device.gl.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(e=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((n,i)=>{let o=()=>{this.isResultAvailable()?(n(this.getResult()),this._pollingPromise=null):r++>e?(i("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}}});function rF(t){switch(t){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function r$(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var n$=We(()=>{});function i$(t){return k3e[t]}var k3e,o$=We(()=>{k3e={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function s$(t,e){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=e||{},{target:o=null,sourceWidth:s,sourceHeight:a,sourceDepth:l,sourceFormat:u,sourceType:f}=e||{},{framebuffer:m,deleteFramebuffer:v}=c$(t),{gl:E,handle:S}=m;s||=m.width,a||=m.height;let L=m.colorAttachments[i]?.texture;if(!L)throw new Error(`Invalid framebuffer attachment ${i}`);l=L?.depth||1,u||=L?.glFormat||6408,f||=L?.glType||5121,o=N3e(o,f,u,s,a,l);let O=BA(o);f=f||BY(O);let q=E.bindFramebuffer(36160,S);return E.readBuffer(36064+i),E.readPixels(r,n,s,a,u,f,o),E.readBuffer(36064),E.bindFramebuffer(36160,q||null),v&&m.destroy(),o}function a$(t,e){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:a,sourceHeight:l,sourceType:u}=e||{},{framebuffer:f,deleteFramebuffer:m}=c$(t);a=a||f.width,l=l||f.height;let v=f;u=u||5121;let E=r;if(!E){let L=rF(o),O=r$(u),q=s+a*l*L*O;E=v.device.createBuffer({byteLength:q})}let S=t.device.createCommandEncoder();return S.copyTextureToBuffer({sourceTexture:t,width:a,height:l,origin:[n,i],destinationBuffer:E,byteOffset:s}),S.destroy(),m&&f.destroy(),E}function c$(t){return t instanceof yp?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:D3e(t),deleteFramebuffer:!0}}function D3e(t,e){let{device:r,width:n,height:i,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:n,height:i,colorAttachments:[t]})}function N3e(t,e,r,n,i,o){if(t)return t;e||=5121;let s=i$(e),a=kA(s),l=rF(r);return new a(n*i*l)}var l$=We(()=>{Fn();eF();n$();o$()});var nF={};Uo(nF,{WebGLDevice:()=>Lp});function F3e(t,e,r){switch(r.length){case 1:t.gl.vertexAttrib1fv(e,r);break;case 2:t.gl.vertexAttrib2fv(e,r);break;case 3:t.gl.vertexAttrib3fv(e,r);break;case 4:t.gl.vertexAttrib4fv(e,r);break;default:}}function z3e(t,e,r){t.gl.vertexAttribI4iv(e,r)}function U3e(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function V3e(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var Lp,VC=We(()=>{Fn();WN();uY();pY();vY();bY();wY();FN();zN();M1();EY();SC();IY();LY();BC();EC();qY();$Y();QY();e$();t$();l$();w1();OC();cw();Lp=class extends cu{type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;_extensions={};_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(e){switch(e){case"unorm8x4-bgra":return!1;default:return!0}}constructor(e){super({...e,id:e.id||TY("webgl-device")});let r=cu._getCanvasContextProps(e);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl?.device;if(n)throw new Error(`WebGL context already attached to device ${n.id}`);this.canvasContext=new MC(this,r),this.lost=new Promise(f=>{this._resolveContextLost=f});let i={...e.webgl};r.alphaMode==="premultiplied"&&(i.premultipliedAlpha=!0),e.powerPreference!==void 0&&(i.powerPreference=e.powerPreference);let s=this.props._handle||lY(this.canvasContext.canvas,{onContextLost:f=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:f=>console.log("WebGL context restored")},i);if(!s)throw new Error("WebGL context creation failed");if(n=s.device,n){if(e._reuseDevices)return Dt.log(1,`Not creating a new Device, instead returning a reference to Device ${n.id} already attached to WebGL context`,n)(),n._reused=!0,n;throw new Error(`WebGL context already attached to device ${n.id}`)}this.handle=s,this.gl=s,this.spectorJS=YX({...this.props,gl:this.handle}),this.gl.device=this,this.gl._version=2,this.info=hY(this.gl,this._extensions),this.limits=new TC(this.gl),this.features=new wC(this.gl,this._extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new _f(this.gl,{log:(...f)=>Dt.log(1,...f)()}).trackState(this.gl,{copyState:!1});let l=e.debugWebGL||e.debug,u=e.debugWebGL;l&&(this.gl=QX(this.gl,{debugWebGL:l,traceWebGL:u}),Dt.warn("WebGL debug mode activated. Performance reduced.")(),e.debugWebGL&&(Dt.level=Math.max(Dt.level,1))),this.commandEncoder=new hw(this,{id:`${this}-command-encoder`})}destroy(){!this.props._reuseDevices&&!this._reused&&delete this.gl.device}get isLost(){return this.gl.isContextLost()}getTextureByteAlignment(){return 4}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._normalizeBufferProps(e);return new xf(this,r)}createTexture(e){return new Rp(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new LC(this,e)}createShader(e){return new CC(this,e)}createFramebuffer(e){return new Ip(this,e)}createVertexArray(e){return new S1(this,e)}createTransformFeedback(e){return new zC(this,e)}createQuerySet(e){return new UC(this,e)}createRenderPipeline(e){return new DC(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(e={}){return new hw(this,e)}submit(e){e||(e=this.commandEncoder.finish(),this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:`${this.id}-default-encoder`})),e._executeCommands()}readPixelsToArrayWebGL(e,r){return s$(e,r)}readPixelsToBufferWebGL(e,r){return a$(e,r)}setParametersWebGL(e){yf(this.gl,e)}getParametersWebGL(e){return _C(this.gl,e)}withParametersWebGL(e,r){return a0(this.gl,e,r)}resetWebGL(){Dt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),iY(this.gl)}_getDeviceSpecificTextureFormatCapabilities(e){return yY(this.gl,e,this._extensions)}loseDevice(){let e=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(e=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){_f.get(this.gl).push()}popState(){_f.get(this.gl).pop()}getGLKey(e,r){let n=Number(e);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(e)}getGLKeys(e){let r={emptyIfUnknown:!0};return Object.entries(e).reduce((n,[i,o])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${o}:${this.getGLKey(o,r)}`,n),{})}setConstantAttributeWebGL(e,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[e];switch(i&&V3e(i,r)&&Dt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:F3e(this,e,r);break;case Int32Array:z3e(this,e,r);break;case Uint32Array:U3e(this,e,r);break;default:throw new Error("constant")}}getExtension(e){return Cp(this.gl,e,this._extensions),this._extensions}_setWebGLDebugMetadata(e,r,n){e.luma=r;let i={props:n.spector,id:n.spector.id};e.__SPECTOR_Metadata=i}}});function j3e(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}var jC,iF,pw,u$=We(()=>{Fn();qX();FN();zN();jC=1,iF=class extends ib{type="webgl";constructor(){super(),cu.defaultProps={...cu.defaultProps,...yC}}enforceWebGL2(e){WX(e)}isSupported(){return typeof WebGL2RenderingContext<"u"}isDeviceHandle(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:(typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext&&Dt.warn("WebGL1 is not supported",e)(),!1)}async attach(e,r={}){let{WebGLDevice:n}=await Promise.resolve().then(()=>(VC(),nF));if(e instanceof n)return e;if(e?.device instanceof n)return e.device;if(!j3e(e))throw new Error("Invalid WebGL2RenderingContext");let i=r.createCanvasContext===!0?{}:r.createCanvasContext;return new n({...r,_handle:e,createCanvasContext:{canvas:e.canvas,autoResize:!1,...i}})}async create(e={}){let{WebGLDevice:r}=await Promise.resolve().then(()=>(VC(),nF));Dt.groupCollapsed(jC,"WebGLDevice created")();try{let n=[];(e.debugWebGL||e.debug)&&n.push(ZX()),e.debugSpectorJS&&n.push(XX(e));let i=await Promise.allSettled(n);for(let a of i)a.status==="rejected"&&Dt.error(`Failed to initialize debug libraries ${a.reason}`)();let o=new r(e),s=`${o._reused?"Reusing":"Created"} device with WebGL2 ${o.props.debug?"debug ":""}context: ${o.info.vendor}, ${o.info.renderer} for canvas: ${o.canvasContext.id}`;return Dt.probe(jC,s)(),Dt.table(jC,o.info)(),o}finally{Dt.groupEnd(jC)()}}};pw=new iF});var fw=We(()=>{u$();VC();SC()});var JK=Qt((fvt,LF)=>{"use strict";LF.exports=_I;LF.exports.default=_I;function _I(t,e,r){r=r||2;var n=e&&e.length,i=n?e[0]*r:t.length,o=KK(t,0,i,r,!0),s=[];if(!o||o.next===o.prev)return s;var a,l,u,f,m,v,E;if(n&&(o=VMe(t,e,o,r)),t.length>80*r){a=u=t[0],l=f=t[1];for(var S=r;S<i;S+=r)m=t[S],v=t[S+1],m<a&&(a=m),v<l&&(l=v),m>u&&(u=m),v>f&&(f=v);E=Math.max(u-a,f-l),E=E!==0?32767/E:0}return $w(o,s,r,a,l,E,0),s}function KK(t,e,r,n,i){var o,s;if(i===RF(t,e,r,n)>0)for(o=e;o<r;o+=n)s=$K(o,t[o],t[o+1],s);else for(o=r-n;o>=e;o-=n)s=$K(o,t[o],t[o+1],s);return s&&xI(s,s.next)&&(Zw(s),s=s.next),s}function xg(t,e){if(!t)return t;e||(e=t);var r=t,n;do if(n=!1,!r.steiner&&(xI(r,r.next)||Xs(r.prev,r,r.next)===0)){if(Zw(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function $w(t,e,r,n,i,o,s){if(t){!s&&o&&GMe(t,n,i,o);for(var a=t,l,u;t.prev!==t.next;){if(l=t.prev,u=t.next,o?FMe(t,n,i,o):NMe(t)){e.push(l.i/r|0),e.push(t.i/r|0),e.push(u.i/r|0),Zw(t),t=u.next,a=u.next;continue}if(t=u,t===a){s?s===1?(t=zMe(xg(t),e,r),$w(t,e,r,n,i,o,2)):s===2&&UMe(t,e,r,n,i,o):$w(xg(t),e,r,n,i,o,1);break}}}}function NMe(t){var e=t.prev,r=t,n=t.next;if(Xs(e,r,n)>=0)return!1;for(var i=e.x,o=r.x,s=n.x,a=e.y,l=r.y,u=n.y,f=i<o?i<s?i:s:o<s?o:s,m=a<l?a<u?a:u:l<u?l:u,v=i>o?i>s?i:s:o>s?o:s,E=a>l?a>u?a:u:l>u?l:u,S=n.next;S!==e;){if(S.x>=f&&S.x<=v&&S.y>=m&&S.y<=E&&k1(i,a,o,l,s,u,S.x,S.y)&&Xs(S.prev,S,S.next)>=0)return!1;S=S.next}return!0}function FMe(t,e,r,n){var i=t.prev,o=t,s=t.next;if(Xs(i,o,s)>=0)return!1;for(var a=i.x,l=o.x,u=s.x,f=i.y,m=o.y,v=s.y,E=a<l?a<u?a:u:l<u?l:u,S=f<m?f<v?f:v:m<v?m:v,L=a>l?a>u?a:u:l>u?l:u,O=f>m?f>v?f:v:m>v?m:v,q=IF(E,S,e,r,n),G=IF(L,O,e,r,n),H=t.prevZ,Y=t.nextZ;H&&H.z>=q&&Y&&Y.z<=G;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&k1(a,f,l,m,u,v,H.x,H.y)&&Xs(H.prev,H,H.next)>=0||(H=H.prevZ,Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&k1(a,f,l,m,u,v,Y.x,Y.y)&&Xs(Y.prev,Y,Y.next)>=0))return!1;Y=Y.nextZ}for(;H&&H.z>=q;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&k1(a,f,l,m,u,v,H.x,H.y)&&Xs(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;Y&&Y.z<=G;){if(Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&k1(a,f,l,m,u,v,Y.x,Y.y)&&Xs(Y.prev,Y,Y.next)>=0)return!1;Y=Y.nextZ}return!0}function zMe(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!xI(i,o)&&ZK(i,n,n.next,o)&&Kw(i,o)&&Kw(o,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(o.i/r|0),Zw(n),Zw(n.next),n=t=o),n=n.next}while(n!==t);return xg(n)}function UMe(t,e,r,n,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&$Me(s,a)){var l=QK(s,a);s=xg(s,s.next),l=xg(l,l.next),$w(s,e,r,n,i,o,0),$w(l,e,r,n,i,o,0);return}a=a.next}s=s.next}while(s!==t)}function VMe(t,e,r,n){var i=[],o,s,a,l,u;for(o=0,s=e.length;o<s;o++)a=e[o]*n,l=o<s-1?e[o+1]*n:t.length,u=KK(t,a,l,n,!1),u===u.next&&(u.steiner=!0),i.push(YMe(u));for(i.sort(jMe),o=0;o<i.length;o++)r=HMe(i[o],r);return r}function jMe(t,e){return t.x-e.x}function HMe(t,e){var r=WMe(t,e);if(!r)return e;var n=QK(r,t);return xg(n,n.next),xg(r,r.next)}function WMe(t,e){var r=e,n=t.x,i=t.y,o=-1/0,s;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var a=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=n&&a>o&&(o=a,s=r.x<r.next.x?r:r.next,a===n))return s}r=r.next}while(r!==e);if(!s)return null;var l=s,u=s.x,f=s.y,m=1/0,v;r=s;do n>=r.x&&r.x>=u&&n!==r.x&&k1(i<f?n:o,i,u,f,i<f?o:n,i,r.x,r.y)&&(v=Math.abs(i-r.y)/(n-r.x),Kw(r,t)&&(v<m||v===m&&(r.x>s.x||r.x===s.x&&qMe(s,r)))&&(s=r,m=v)),r=r.next;while(r!==l);return s}function qMe(t,e){return Xs(t.prev,t,e.prev)<0&&Xs(e.next,t,t.next)<0}function GMe(t,e,r,n){var i=t;do i.z===0&&(i.z=IF(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,XMe(i)}function XMe(t){var e,r,n,i,o,s,a,l,u=1;do{for(r=t,t=null,o=null,s=0;r;){for(s++,n=r,a=0,e=0;e<u&&(a++,n=n.nextZ,!!n);e++);for(l=u;a>0||l>0&&n;)a!==0&&(l===0||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,l--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,u*=2}while(s>1);return t}function IF(t,e,r,n,i){return t=(t-r)*i|0,e=(e-n)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function YMe(t){var e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function k1(t,e,r,n,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(n-a)>=(r-s)*(e-a)&&(r-s)*(o-a)>=(i-s)*(n-a)}function $Me(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!KMe(t,e)&&(Kw(t,e)&&Kw(e,t)&&ZMe(t,e)&&(Xs(t.prev,t,e.prev)||Xs(t,e.prev,e))||xI(t,e)&&Xs(t.prev,t,t.next)>0&&Xs(e.prev,e,e.next)>0)}function Xs(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function xI(t,e){return t.x===e.x&&t.y===e.y}function ZK(t,e,r,n){var i=yI(Xs(t,e,r)),o=yI(Xs(t,e,n)),s=yI(Xs(r,n,t)),a=yI(Xs(r,n,e));return!!(i!==o&&s!==a||i===0&&gI(t,r,e)||o===0&&gI(t,n,e)||s===0&&gI(r,t,n)||a===0&&gI(r,e,n))}function gI(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function yI(t){return t>0?1:t<0?-1:0}function KMe(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&ZK(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Kw(t,e){return Xs(t.prev,t,t.next)<0?Xs(t,e,t.next)>=0&&Xs(t,t.prev,e)>=0:Xs(t,e,t.prev)<0||Xs(t,t.next,e)<0}function ZMe(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function QK(t,e){var r=new PF(t.i,t.x,t.y),n=new PF(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function $K(t,e,r,n){var i=new PF(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Zw(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function PF(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}_I.deviation=function(t,e,r,n){var i=e&&e.length,o=i?e[0]*r:t.length,s=Math.abs(RF(t,0,o,r));if(i)for(var a=0,l=e.length;a<l;a++){var u=e[a]*r,f=a<l-1?e[a+1]*r:t.length;s-=Math.abs(RF(t,u,f,r))}var m=0;for(a=0;a<n.length;a+=3){var v=n[a]*r,E=n[a+1]*r,S=n[a+2]*r;m+=Math.abs((t[v]-t[S])*(t[E+1]-t[v+1])-(t[v]-t[E])*(t[S+1]-t[v+1]))}return s===0&&m===0?0:Math.abs((m-s)/s)};function RF(t,e,r,n){for(var i=0,o=e,s=r-n;o<r;o+=n)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}_I.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)r.vertices.push(t[i][o][s]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}});var vP=Qt(Gd=>{"use strict";var ete=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",xLe=ete+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",tte="["+ete+"]["+xLe+"]*",vLe=new RegExp("^"+tte+"$"),bLe=function(t,e){let r=[],n=e.exec(t);for(;n;){let i=[];i.startIndex=e.lastIndex-n[0].length;let o=n.length;for(let s=0;s<o;s++)i.push(n[s]);r.push(i),n=e.exec(t)}return r},wLe=function(t){let e=vLe.exec(t);return!(e===null||typeof e>"u")};Gd.isExist=function(t){return typeof t<"u"};Gd.isEmptyObject=function(t){return Object.keys(t).length===0};Gd.merge=function(t,e,r){if(e){let n=Object.keys(e),i=n.length;for(let o=0;o<i;o++)r==="strict"?t[n[o]]=[e[n[o]]]:t[n[o]]=e[n[o]]}};Gd.getValue=function(t){return Gd.isExist(t)?t:""};Gd.isName=wLe;Gd.getAllMatches=bLe;Gd.nameRegexp=tte});var l6=Qt(ste=>{"use strict";var c6=vP(),TLe={allowBooleanAttributes:!1,unpairedTags:[]};ste.validate=function(t,e){e=Object.assign({},TLe,e);let r=[],n=!1,i=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let o=0;o<t.length;o++)if(t[o]==="<"&&t[o+1]==="?"){if(o+=2,o=nte(t,o),o.err)return o}else if(t[o]==="<"){let s=o;if(o++,t[o]==="!"){o=ite(t,o);continue}else{let a=!1;t[o]==="/"&&(a=!0,o++);let l="";for(;o<t.length&&t[o]!==">"&&t[o]!==" "&&t[o]!==" "&&t[o]!==`
|
|
517
517
|
`&&t[o]!=="\r";o++)l+=t[o];if(l=l.trim(),l[l.length-1]==="/"&&(l=l.substring(0,l.length-1),o--),!LLe(l)){let m;return l.trim().length===0?m="Invalid space after '<'.":m="Tag '"+l+"' is an invalid name.",ba("InvalidTag",m,jl(t,o))}let u=SLe(t,o);if(u===!1)return ba("InvalidAttr","Attributes for '"+l+"' have open quote.",jl(t,o));let f=u.value;if(o=u.index,f[f.length-1]==="/"){let m=o-f.length;f=f.substring(0,f.length-1);let v=ote(f,e);if(v===!0)n=!0;else return ba(v.err.code,v.err.msg,jl(t,m+v.err.line))}else if(a)if(u.tagClosed){if(f.trim().length>0)return ba("InvalidTag","Closing tag '"+l+"' can't have attributes or invalid starting.",jl(t,s));if(r.length===0)return ba("InvalidTag","Closing tag '"+l+"' has not been opened.",jl(t,s));{let m=r.pop();if(l!==m.tagName){let v=jl(t,m.tagStartPos);return ba("InvalidTag","Expected closing tag '"+m.tagName+"' (opened in line "+v.line+", col "+v.col+") instead of closing tag '"+l+"'.",jl(t,s))}r.length==0&&(i=!0)}}else return ba("InvalidTag","Closing tag '"+l+"' doesn't have proper closing.",jl(t,o));else{let m=ote(f,e);if(m!==!0)return ba(m.err.code,m.err.msg,jl(t,o-f.length+m.err.line));if(i===!0)return ba("InvalidXml","Multiple possible root nodes found.",jl(t,o));e.unpairedTags.indexOf(l)!==-1||r.push({tagName:l,tagStartPos:s}),n=!0}for(o++;o<t.length;o++)if(t[o]==="<")if(t[o+1]==="!"){o++,o=ite(t,o);continue}else if(t[o+1]==="?"){if(o=nte(t,++o),o.err)return o}else break;else if(t[o]==="&"){let m=PLe(t,o);if(m==-1)return ba("InvalidChar","char '&' is not expected.",jl(t,o));o=m}else if(i===!0&&!rte(t[o]))return ba("InvalidXml","Extra text at the end",jl(t,o));t[o]==="<"&&o--}}else{if(rte(t[o]))continue;return ba("InvalidChar","char '"+t[o]+"' is not expected.",jl(t,o))}if(n){if(r.length==1)return ba("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",jl(t,r[0].tagStartPos));if(r.length>0)return ba("InvalidXml","Invalid '"+JSON.stringify(r.map(o=>o.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return ba("InvalidXml","Start tag expected.",1);return!0};function rte(t){return t===" "||t===" "||t===`
|
|
518
518
|
`||t==="\r"}function nte(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return ba("InvalidXml","XML declaration allowed only at the start of the document.",jl(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function ite(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var ELe='"',MLe="'";function SLe(t,e){let r="",n="",i=!1;for(;e<t.length;e++){if(t[e]===ELe||t[e]===MLe)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){i=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:i}}var CLe=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function ote(t,e){let r=c6.getAllMatches(t,CLe),n={};for(let i=0;i<r.length;i++){if(r[i][1].length===0)return ba("InvalidAttr","Attribute '"+r[i][2]+"' has no space in starting.",MT(r[i]));if(r[i][3]!==void 0&&r[i][4]===void 0)return ba("InvalidAttr","Attribute '"+r[i][2]+"' is without value.",MT(r[i]));if(r[i][3]===void 0&&!e.allowBooleanAttributes)return ba("InvalidAttr","boolean attribute '"+r[i][2]+"' is not allowed.",MT(r[i]));let o=r[i][2];if(!RLe(o))return ba("InvalidAttr","Attribute '"+o+"' is an invalid name.",MT(r[i]));if(!n.hasOwnProperty(o))n[o]=1;else return ba("InvalidAttr","Attribute '"+o+"' is repeated.",MT(r[i]))}return!0}function ILe(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function PLe(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,ILe(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function ba(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function RLe(t){return c6.isName(t)}function LLe(t){return c6.isName(t)}function jl(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function MT(t){return t.startIndex+t[1].length}});var cte=Qt(u6=>{var ate={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t}},OLe=function(t){return Object.assign({},ate,t)};u6.buildOptions=OLe;u6.defaultOptions=ate});var ute=Qt((g3t,lte)=>{"use strict";var h6=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,[":@"]:e[":@"]}):this.child.push({[e.tagname]:e.child})}};lte.exports=h6});var fte=Qt((y3t,hte)=>{var BLe=vP();function kLe(t,e){let r={};if(t[e+3]==="O"&&t[e+4]==="C"&&t[e+5]==="T"&&t[e+6]==="Y"&&t[e+7]==="P"&&t[e+8]==="E"){e=e+9;let n=1,i=!1,o=!1,s="";for(;e<t.length;e++)if(t[e]==="<"&&!o){if(i&&FLe(t,e))e+=7,[entityName,val,e]=DLe(t,e+1),val.indexOf("&")===-1&&(r[jLe(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(i&&zLe(t,e))e+=8;else if(i&&ULe(t,e))e+=8;else if(i&&VLe(t,e))e+=9;else if(NLe)o=!0;else throw new Error("Invalid DOCTYPE");n++,s=""}else if(t[e]===">"){if(o?t[e-1]==="-"&&t[e-2]==="-"&&(o=!1,n--):n--,n===0)break}else t[e]==="["?i=!0:s+=t[e];if(n!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:r,i:e}}function DLe(t,e){let r="";for(;e<t.length&&t[e]!=="'"&&t[e]!=='"';e++)r+=t[e];if(r=r.trim(),r.indexOf(" ")!==-1)throw new Error("External entites are not supported");let n=t[e++],i="";for(;e<t.length&&t[e]!==n;e++)i+=t[e];return[r,i,e]}function NLe(t,e){return t[e+1]==="!"&&t[e+2]==="-"&&t[e+3]==="-"}function FLe(t,e){return t[e+1]==="!"&&t[e+2]==="E"&&t[e+3]==="N"&&t[e+4]==="T"&&t[e+5]==="I"&&t[e+6]==="T"&&t[e+7]==="Y"}function zLe(t,e){return t[e+1]==="!"&&t[e+2]==="E"&&t[e+3]==="L"&&t[e+4]==="E"&&t[e+5]==="M"&&t[e+6]==="E"&&t[e+7]==="N"&&t[e+8]==="T"}function ULe(t,e){return t[e+1]==="!"&&t[e+2]==="A"&&t[e+3]==="T"&&t[e+4]==="T"&&t[e+5]==="L"&&t[e+6]==="I"&&t[e+7]==="S"&&t[e+8]==="T"}function VLe(t,e){return t[e+1]==="!"&&t[e+2]==="N"&&t[e+3]==="O"&&t[e+4]==="T"&&t[e+5]==="A"&&t[e+6]==="T"&&t[e+7]==="I"&&t[e+8]==="O"&&t[e+9]==="N"}function jLe(t){if(BLe.isName(t))return t;throw new Error(`Invalid entity name ${t}`)}hte.exports=kLe});var dte=Qt((_3t,pte)=>{var HLe=/^[-+]?0x[a-fA-F0-9]+$/,WLe=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var qLe={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function GLe(t,e={}){if(e=Object.assign({},qLe,e),!t||typeof t!="string")return t;let r=t.trim();if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(e.hex&&HLe.test(r))return Number.parseInt(r,16);{let n=WLe.exec(r);if(n){let i=n[1],o=n[2],s=XLe(n[3]),a=n[4]||n[6];if(!e.leadingZeros&&o.length>0&&i&&r[2]!==".")return t;if(!e.leadingZeros&&o.length>0&&!i&&r[1]!==".")return t;{let l=Number(r),u=""+l;return u.search(/[eE]/)!==-1||a?e.eNotation?l:t:r.indexOf(".")!==-1?u==="0"&&s===""||u===s||i&&u==="-"+s?l:t:o?s===u||i+s===u?l:t:r===u||r===i+u?l:t}}else return t}}function XLe(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substr(0,t.length-1))),t}pte.exports=GLe});var gte=Qt((x3t,Ate)=>{"use strict";var mte=vP(),ST=ute(),YLe=fte(),$Le=dte(),f6=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(r,n)=>String.fromCharCode(Number.parseInt(n,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(r,n)=>String.fromCharCode(Number.parseInt(n,16))}},this.addExternalEntities=KLe,this.parseXml=t4e,this.parseTextData=ZLe,this.resolveNameSpace=QLe,this.buildAttributesMap=e4e,this.isItStopNode=o4e,this.replaceEntitiesValue=n4e,this.readStopNodeData=a4e,this.saveTextToParentTag=i4e,this.addChild=r4e}};function KLe(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:t[n]}}}function ZLe(t,e,r,n,i,o,s){if(t!==void 0&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){s||(t=this.replaceEntitiesValue(t));let a=this.options.tagValueProcessor(e,t,r,i,o);return a==null?t:typeof a!=typeof t||a!==t?a:this.options.trimValues?d6(t,this.options.parseTagValue,this.options.numberParseOptions):t.trim()===t?d6(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function QLe(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var JLe=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function e4e(t,e,r){if(!this.options.ignoreAttributes&&typeof t=="string"){let n=mte.getAllMatches(t,JLe),i=n.length,o={};for(let s=0;s<i;s++){let a=this.resolveNameSpace(n[s][1]),l=n[s][4],u=this.options.attributeNamePrefix+a;if(a.length)if(this.options.transformAttributeName&&(u=this.options.transformAttributeName(u)),u==="__proto__"&&(u="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l);let f=this.options.attributeValueProcessor(a,l,e);f==null?o[u]=l:typeof f!=typeof l||f!==l?o[u]=f:o[u]=d6(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(o[u]=!0)}if(!Object.keys(o).length)return;if(this.options.attributesGroupName){let s={};return s[this.options.attributesGroupName]=o,s}return o}}var t4e=function(t){t=t.replace(/\r\n?/g,`
|
|
519
519
|
`);let e=new ST("!xml"),r=e,n="",i="";for(let o=0;o<t.length;o++)if(t[o]==="<")if(t[o+1]==="/"){let a=Cg(t,">",o,"Closing Tag is not closed."),l=t.substring(o+2,a).trim();if(this.options.removeNSPrefix){let m=l.indexOf(":");m!==-1&&(l=l.substr(m+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&(n=this.saveTextToParentTag(n,r,i));let u=i.substring(i.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let f=0;u&&this.options.unpairedTags.indexOf(u)!==-1?(f=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):f=i.lastIndexOf("."),i=i.substring(0,f),r=this.tagsNodeStack.pop(),n="",o=a}else if(t[o+1]==="?"){let a=p6(t,o,!1,"?>");if(!a)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,i),!(this.options.ignoreDeclaration&&a.tagName==="?xml"||this.options.ignorePiTags)){let l=new ST(a.tagName);l.add(this.options.textNodeName,""),a.tagName!==a.tagExp&&a.attrExpPresent&&(l[":@"]=this.buildAttributesMap(a.tagExp,i,a.tagName)),this.addChild(r,l,i)}o=a.closeIndex+1}else if(t.substr(o+1,3)==="!--"){let a=Cg(t,"-->",o+4,"Comment is not closed.");if(this.options.commentPropName){let l=t.substring(o+4,a-2);n=this.saveTextToParentTag(n,r,i),r.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}o=a}else if(t.substr(o+1,2)==="!D"){let a=YLe(t,o);this.docTypeEntities=a.entities,o=a.i}else if(t.substr(o+1,2)==="!["){let a=Cg(t,"]]>",o,"CDATA is not closed.")-2,l=t.substring(o+9,a);n=this.saveTextToParentTag(n,r,i);let u=this.parseTextData(l,r.tagname,i,!0,!1,!0,!0);u==null&&(u=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):r.add(this.options.textNodeName,u),o=a+2}else{let a=p6(t,o,this.options.removeNSPrefix),l=a.tagName,u=a.rawTagName,f=a.tagExp,m=a.attrExpPresent,v=a.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,i,!1));let E=r;if(E&&this.options.unpairedTags.indexOf(E.tagname)!==-1&&(r=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),l!==e.tagname&&(i+=i?"."+l:l),this.isItStopNode(this.options.stopNodes,i,l)){let S="";if(f.length>0&&f.lastIndexOf("/")===f.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),f=l):f=f.substr(0,f.length-1),o=a.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)o=a.closeIndex;else{let O=this.readStopNodeData(t,u,v+1);if(!O)throw new Error(`Unexpected end of ${u}`);o=O.i,S=O.tagContent}let L=new ST(l);l!==f&&m&&(L[":@"]=this.buildAttributesMap(f,i,l)),S&&(S=this.parseTextData(S,l,i,!0,m,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),L.add(this.options.textNodeName,S),this.addChild(r,L,i)}else{if(f.length>0&&f.lastIndexOf("/")===f.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),f=l):f=f.substr(0,f.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));let S=new ST(l);l!==f&&m&&(S[":@"]=this.buildAttributesMap(f,i,l)),this.addChild(r,S,i),i=i.substr(0,i.lastIndexOf("."))}else{let S=new ST(l);this.tagsNodeStack.push(r),l!==f&&m&&(S[":@"]=this.buildAttributesMap(f,i,l)),this.addChild(r,S,i),r=S}n="",o=v}}else n+=t[o];return e.child};function r4e(t,e,r){let n=this.options.updateTag(e.tagname,r,e[":@"]);n===!1||(typeof n=="string"&&(e.tagname=n),t.addChild(e))}var n4e=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){let r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(let e in this.lastEntities){let r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){let r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function i4e(t,e,r,n){return t&&(n===void 0&&(n=Object.keys(e.child).length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function o4e(t,e,r){let n="*."+r;for(let i in t){let o=t[i];if(n===o||e===o)return!0}return!1}function s4e(t,e,r=">"){let n,i="";for(let o=e;o<t.length;o++){let s=t[o];if(n)s===n&&(n="");else if(s==='"'||s==="'")n=s;else if(s===r[0])if(r[1]){if(t[o+1]===r[1])return{data:i,index:o}}else return{data:i,index:o};else s===" "&&(s=" ");i+=s}}function Cg(t,e,r,n){let i=t.indexOf(e,r);if(i===-1)throw new Error(n);return i+e.length-1}function p6(t,e,r,n=">"){let i=s4e(t,e+1,n);if(!i)return;let o=i.data,s=i.index,a=o.search(/\s/),l=o,u=!0;a!==-1&&(l=o.substring(0,a),o=o.substring(a+1).trimStart());let f=l;if(r){let m=l.indexOf(":");m!==-1&&(l=l.substr(m+1),u=l!==i.data.substr(m+1))}return{tagName:l,tagExp:o,closeIndex:s,attrExpPresent:u,rawTagName:f}}function a4e(t,e,r){let n=r,i=1;for(;r<t.length;r++)if(t[r]==="<")if(t[r+1]==="/"){let o=Cg(t,">",r,`${e} is not closed`);if(t.substring(r+2,o).trim()===e&&(i--,i===0))return{tagContent:t.substring(n,r),i:o};r=o}else if(t[r+1]==="?")r=Cg(t,"?>",r+1,"StopNode is not closed.");else if(t.substr(r+1,3)==="!--")r=Cg(t,"-->",r+3,"StopNode is not closed.");else if(t.substr(r+1,2)==="![")r=Cg(t,"]]>",r,"StopNode is not closed.")-2;else{let o=p6(t,r,">");o&&((o&&o.tagName)===e&&o.tagExp[o.tagExp.length-1]!=="/"&&i++,r=o.closeIndex)}}function d6(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:$Le(t,r)}else return mte.isExist(t)?t:""}Ate.exports=f6});var xte=Qt(_te=>{"use strict";function c4e(t,e){return yte(t,e)}function yte(t,e,r){let n,i={};for(let o=0;o<t.length;o++){let s=t[o],a=l4e(s),l="";if(r===void 0?l=a:l=r+"."+a,a===e.textNodeName)n===void 0?n=s[a]:n+=""+s[a];else{if(a===void 0)continue;if(s[a]){let u=yte(s[a],e,l),f=h4e(u,e);s[":@"]?u4e(u,s[":@"],l,e):Object.keys(u).length===1&&u[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?u=u[e.textNodeName]:Object.keys(u).length===0&&(e.alwaysCreateTextNode?u[e.textNodeName]="":u=""),i[a]!==void 0&&i.hasOwnProperty(a)?(Array.isArray(i[a])||(i[a]=[i[a]]),i[a].push(u)):e.isArray(a,l,f)?i[a]=[u]:i[a]=u}}}return typeof n=="string"?n.length>0&&(i[e.textNodeName]=n):n!==void 0&&(i[e.textNodeName]=n),i}function l4e(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function u4e(t,e,r,n){if(e){let i=Object.keys(e),o=i.length;for(let s=0;s<o;s++){let a=i[s];n.isArray(a,r+"."+a,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function h4e(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}_te.prettify=c4e});var bte=Qt((b3t,vte)=>{var{buildOptions:f4e}=cte(),p4e=gte(),{prettify:d4e}=xte(),m4e=l6(),m6=class{constructor(e){this.externalEntities={},this.options=f4e(e)}parse(e,r){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let o=m4e.validate(e,r);if(o!==!0)throw Error(`${o.err.msg}:${o.err.line}:${o.err.col}`)}let n=new p4e(this.options);n.addExternalEntities(this.externalEntities);let i=n.parseXml(e);return this.options.preserveOrder||i===void 0?i:d4e(i,this.options)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}};vte.exports=m6});var Ste=Qt((w3t,Mte)=>{var A4e=`
|
|
@@ -549,7 +549,7 @@ __p+='`),u}),o+=`';
|
|
|
549
549
|
} catch (error) {
|
|
550
550
|
console.error(error);
|
|
551
551
|
throw error;
|
|
552
|
-
}`}function bB(t,e=!0,r){let n=r||new Set;if(t){if(tH(t))n.add(t);else if(tH(t.buffer))n.add(t.buffer);else if(!ArrayBuffer.isView(t)){if(e&&typeof t=="object")for(let i in t)bB(t[i],e,n)}}return r===void 0?Array.from(n):[]}function tH(t){return t?t instanceof ArrayBuffer||typeof MessagePort<"u"&&t instanceof MessagePort||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas:!1}var wB=()=>{},Fm=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&bc||typeof k_<"u"&&!bc}constructor(e){let{name:r,source:n,url:i}=e;Gc(n||i),this.name=r,this.source=n,this.url=i,this.onMessage=wB,this.onError=o=>console.log(o),this.worker=bc?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=wB,this.onError=wB,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,r){r=r||bB(e),this.worker.postMessage(e,r)}_getErrorFromErrorEvent(e){let r="Failed to load ";return r+=`worker ${this.name} from ${this.url}. `,e.message&&(r+=`${e.message} in `),e.lineno&&(r+=`:${e.lineno}:${e.colno}`),new Error(r)}_createBrowserWorker(){this._loadableURL=Jj({source:this.source,url:this.url});let e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error("No data received"))},e.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},e.onmessageerror=r=>console.error(r),e}_createNodeWorker(){let e;if(this.url){let n=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;e=new k_(n,{eval:!1})}else if(this.source)e=new k_(this.source,{eval:!0});else throw new Error("no worker");return e.on("message",r=>{this.onMessage(r)}),e.on("error",r=>{this.onError(r)}),e.on("exit",r=>{}),e}};var N2=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return Fm.isSupported()}constructor(e){this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach(e=>e.destroy()),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},e.name!==void 0&&(this.name=e.name),e.maxConcurrency!==void 0&&(this.maxConcurrency=e.maxConcurrency),e.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=e.maxMobileConcurrency),e.reuseWorkers!==void 0&&(this.reuseWorkers=e.reuseWorkers),e.onDebug!==void 0&&(this.onDebug=e.onDebug)}async startJob(e,r=(i,o,s)=>i.done(s),n=(i,o)=>i.error(o)){let i=new Promise(o=>(this.jobQueue.push({name:e,onMessage:r,onError:n,onStart:o}),this));return this._startQueuedJob(),await i}async _startQueuedJob(){if(!this.jobQueue.length)return;let e=this._getAvailableWorker();if(!e)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:"Starting job",name:r.name,workerThread:e,backlog:this.jobQueue.length});let n=new D2(r.name,e);e.onMessage=i=>r.onMessage(n,i.type,i.payload),e.onError=i=>r.onError(n,i),r.onStart(n);try{await n.result}catch(i){console.error(`Worker exception: ${i}`)}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){!bc||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let e=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new Fm({name:e,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Qj?this.maxMobileConcurrency:this.maxConcurrency}};var sye={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},EA=class{props;workerPools=new Map;static isSupported(){return Fm.isSupported()}static getWorkerFarm(e={}){return EA._workerFarm=EA._workerFarm||new EA({}),EA._workerFarm.setProps(e),EA._workerFarm}constructor(e){this.props={...sye},this.setProps(e),this.workerPools=new Map}destroy(){for(let e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(e){let{name:r,source:n,url:i}=e,o=this.workerPools.get(r);return o||(o=new N2({name:r,source:n,url:i}),o.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,o)),o}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},zm=EA;Dr(zm,"_workerFarm");function TB(t,e={}){let r=e[t.id]||{},n=bc?`${t.id}-worker.js`:`${t.id}-worker-node.js`,i=r.workerUrl;if(!i&&t.id==="compression"&&(i=e.workerUrl),e._workerType==="test"&&(bc?i=`modules/${t.module}/dist/${n}`:i=`modules/${t.module}/src/workers/${t.id}-worker-node.ts`),!i){let o=t.version;o==="latest"&&(o=Kj);let s=o?`@${o}`:"";i=`https://unpkg.com/@loaders.gl/${t.module}${s}/dist/${n}`}return Gc(i),i}function EB(t,e=B2){Gc(t,"no worker provided");let r=t.version;return!(!e||!r)}var MB={};async function fp(t,e=null,r={},n=null){return e&&(t=rH(t,e,r,n)),MB[t]=MB[t]||aye(t),await MB[t]}function rH(t,e,r={},n=null){if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let i=r.modules||{};return i[n]?i[n]:bc?r.CDN?(Gc(r.CDN.startsWith("http")),`${r.CDN}/${e}@${B2}/dist/libs/${n}`):k2?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function aye(t){if(t.endsWith("wasm"))return await lye(t);if(!bc)try{let{requireFromFile:r}=globalThis.loaders||{};return await r?.(t)}catch(r){return console.error(r),null}if(k2)return importScripts(t);let e=await uye(t);return cye(e,t)}function cye(t,e){if(!bc){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(k2)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function lye(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};return bc||!e||t.startsWith("http")?await(await fetch(t)).arrayBuffer():await e(t)}async function uye(t){let{readFileAsText:e}=globalThis.loaders||{};return bc||!e||t.startsWith("http")?await(await fetch(t)).text():await e(t)}function SB(t,e){return!zm.isSupported()||!bc&&!e?._nodeWorkers?!1:t.worker&&e?.worker}async function CB(t,e,r,n,i){let o=t.id,s=TB(t,r),l=zm.getWorkerFarm(r).getWorkerPool({name:o,url:s});r=JSON.parse(JSON.stringify(r)),n=JSON.parse(JSON.stringify(n||{}));let u=await l.startJob("process-on-worker",hye.bind(null,i));return u.postMessage("process",{input:e,options:r,context:n}),await(await u.result).result}async function hye(t,e,r,n){switch(r){case"done":e.done(n);break;case"error":e.error(new Error(n.error));break;case"process":let{id:i,input:o,options:s}=n;try{let a=await t(o,s);e.postMessage("done",{id:i,result:a})}catch(a){let l=a instanceof Error?a.message:"unknown error";e.postMessage("error",{id:i,error:l})}break;default:console.warn(`parse-with-worker unknown message ${r}`)}}function iH(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?nH(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?nH(t,0,e):""}function nH(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),i="";for(let o=0;o<r;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function IB(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${iH(t)}"`)}}function PB(t,e,r){if(r=r||t.byteLength,t.byteLength<r||e.byteLength<r)return!1;let n=new Uint8Array(t),i=new Uint8Array(e);for(let o=0;o<n.length;++o)if(n[o]!==i[o])return!1;return!0}function RB(...t){return oH(t)}function oH(t){let e=t.map(o=>o instanceof ArrayBuffer?new Uint8Array(o):o),r=e.reduce((o,s)=>o+s.byteLength,0),n=new Uint8Array(r),i=0;for(let o of e)n.set(o,i),i+=o.byteLength;return n.buffer}function F2(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((s,a)=>s+a.length,0),i=new r(n),o=0;for(let s of e)i.set(s,o),o+=s.length;return i}function MA(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Um(t,e){return Bi(t>=0),Bi(e>0),t+(e-1)&~(e-1)}function LB(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let i=t.byteOffset,o=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,i,o)}return e.set(n,r),r+Um(n.byteLength,4)}async function OB(t){let e=[];for await(let r of t)e.push(r);return RB(...e)}CA();var fye="Queued Requests",pye="Active Requests",dye="Cancelled Requests",mye="Queued Requests Ever",Aye="Active Requests Ever",gye={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Vm=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...gye,...e},this.stats=new ol({id:this.props.id}),this.stats.get(fye),this.stats.get(pye),this.stats.get(dye),this.stats.get(mye),this.stats.get(Aye)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},i=new Promise(o=>(n.resolve=o,n));return this.requestQueue.push(n),this.requestMap.set(e,i),this._issueNewRequests(),i}_issueRequest(e){let{handle:r,resolve:n}=e,i=!1,o=()=>{i||(i=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:o}):Promise.resolve({done:o})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var yye="",aH={};function DB(t){for(let e in aH)if(t.startsWith(e)){let r=aH[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${yye}${t}`),t}function cH(t){return t&&typeof t=="object"&&t.isBuffer}function dM(t){if(cH(t))return t;if(t instanceof ArrayBuffer)return t;if(ArrayBuffer.isView(t))return t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);if(typeof t=="string"){let e=t;return new TextEncoder().encode(e).buffer}if(t&&typeof t=="object"&&t._toArrayBuffer)return t._toArrayBuffer();throw new Error("toArrayBuffer")}var ku={};Uo(ku,{dirname:()=>xye,filename:()=>_ye,join:()=>vye,resolve:()=>bye});function lH(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function _ye(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):""}function xye(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function vye(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function bye(...t){let e=[];for(let o=0;o<t.length;o++)e[o]=t[o];let r="",n=!1,i;for(let o=e.length-1;o>=-1&&!n;o--){let s;o>=0?s=e[o]:(i===void 0&&(i=lH()),s=i),s.length!==0&&(r=`${s}/${r}`,n=s.charCodeAt(0)===U2)}return r=wye(r,!n),n?`/${r}`:r.length>0?r:"."}var U2=47,NB=46;function wye(t,e){let r="",n=-1,i=0,o,s=!1;for(let a=0;a<=t.length;++a){if(a<t.length)o=t.charCodeAt(a);else{if(o===U2)break;o=U2}if(o===U2){if(!(n===a-1||i===1))if(n!==a-1&&i===2){if(r.length<2||!s||r.charCodeAt(r.length-1)!==NB||r.charCodeAt(r.length-2)!==NB){if(r.length>2){let l=r.length-1,u=l;for(;u>=0&&r.charCodeAt(u)!==U2;--u);if(u!==l){r=u===-1?"":r.slice(0,u),n=a,i=0,s=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,i=0,s=!1;continue}}e&&(r.length>0?r+="/..":r="..",s=!0)}else{let l=t.slice(n+1,a);r.length>0?r+=`/${l}`:r=l,s=!1}n=a,i=0}else o===NB&&i!==-1?++i:i=-1}return r}var mM=class{fetch;loadOptions;_needsRefresh=!0;props;constructor(e){this.props={...e},this.loadOptions={...e.loadOptions},this.fetch=Tye(this.loadOptions)}setProps(e){this.props=Object.assign(this.props,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function Tye(t){let e=t?.fetch;if(e&&typeof e=="function")return(n,i)=>e(n,i);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}var gh=class extends mM{};Dr(gh,"type","template"),Dr(gh,"testURL",e=>!1);var Eye=t=>typeof t=="boolean",V2=t=>typeof t=="function",IA=t=>t!==null&&typeof t=="object",FB=t=>IA(t)&&t.constructor==={}.constructor;var uH=t=>Boolean(t)&&typeof t[Symbol.iterator]=="function",hH=t=>t&&typeof t[Symbol.asyncIterator]=="function";var yh=t=>typeof Response<"u"&&t instanceof Response||t&&t.arrayBuffer&&t.text&&t.json;var _h=t=>typeof Blob<"u"&&t instanceof Blob,fH=t=>t&&typeof t=="object"&&t.isBuffer;var Mye=t=>typeof ReadableStream<"u"&&t instanceof ReadableStream||IA(t)&&V2(t.tee)&&V2(t.cancel)&&V2(t.getReader);var Sye=t=>IA(t)&&V2(t.read)&&V2(t.pipe)&&Eye(t.readable),AM=t=>Mye(t)||Sye(t);var gM=class extends Error{constructor(e,r){super(e),this.reason=r.reason,this.url=r.url,this.response=r.response}reason;url;response};var Cye=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Iye=/^([-\w.]+\/[-\w.+]+)/;function zB(t,e){return t.toLowerCase()===e.toLowerCase()}function pH(t){let e=Iye.exec(t);return e?e[1]:t}function UB(t){let e=Cye.exec(t);return e?e[1]:""}var dH=/\?.*/;function mH(t){let e=t.match(dH);return e&&e[0]}function D_(t){return t.replace(dH,"")}function AH(t){if(t.length<50)return t;let e=t.slice(t.length-15);return`${t.substr(0,32)}...${e}`}function PA(t){return yh(t)?t.url:_h(t)?t.name||"":typeof t=="string"?t:""}function j2(t){if(yh(t)){let e=t,r=e.headers.get("content-type")||"",n=D_(e.url);return pH(r)||UB(n)}return _h(t)?t.type||"":typeof t=="string"?UB(t):""}function gH(t){return yh(t)?t.headers["content-length"]||-1:_h(t)?t.size:typeof t=="string"?t.length:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?t.byteLength:-1}async function yM(t){if(yh(t))return t;let e={},r=gH(t);r>=0&&(e["content-length"]=String(r));let n=PA(t),i=j2(t);i&&(e["content-type"]=i);let o=await Rye(t);o&&(e["x-first-bytes"]=o),typeof t=="string"&&(t=new TextEncoder().encode(t));let s=new Response(t,{headers:e});return Object.defineProperty(s,"url",{value:n}),s}async function yH(t){if(!t.ok)throw await Pye(t)}async function Pye(t){let e=AH(t.url),r=`Failed to fetch resource (${t.status}) ${t.statusText}: ${e}`;r=r.length>100?`${r.slice(0,100)}...`:r;let n={reason:t.statusText,url:t.url,response:t};try{let i=t.headers.get("Content-Type");n.reason=i?.includes("application/json")?await t.json():t.text()}catch{}return new gM(r,n)}async function Rye(t){if(typeof t=="string")return`data:,${t.slice(0,5)}`;if(t instanceof Blob){let r=t.slice(0,5);return await new Promise(n=>{let i=new FileReader;i.onload=o=>n(o?.target?.result),i.readAsDataURL(r)})}if(t instanceof ArrayBuffer){let r=t.slice(0,5);return`data:base64,${Lye(r)}`}return null}function Lye(t){let e="",r=new Uint8Array(t);for(let n=0;n<r.byteLength;n++)e+=String.fromCharCode(r[n]);return btoa(e)}function Oye(t){return!Bye(t)&&!kye(t)}function Bye(t){return t.startsWith("http:")||t.startsWith("https:")}function kye(t){return t.startsWith("data:")}async function N_(t,e){if(typeof t=="string"){let r=DB(t);return Oye(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,e):await fetch(r,e)}return await yM(t)}B_();var VB=new au({id:"loaders.gl"}),_M=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},xM=class{console;constructor(){this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};var jB={fetch:null,mimeType:void 0,nothrow:!1,log:new xM,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:vd,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},_H={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function HB(){globalThis.loaders=globalThis.loaders||{};let{loaders:t}=globalThis;return t._state||(t._state={}),t._state}function WB(){let t=HB();return t.globalOptions=t.globalOptions||{...jB},t.globalOptions}function bH(t,e,r,n){return r=r||[],r=Array.isArray(r)?r:[r],Dye(t,r),Fye(e,t,n)}function Dye(t,e){xH(t,null,jB,_H,e);for(let r of e){let n=t&&t[r.id]||{},i=r.options&&r.options[r.id]||{},o=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};xH(n,r.id,i,o,e)}}function xH(t,e,r,n,i){let o=e||"Top level",s=e?`${e}.`:"";for(let a in t){let l=!e&&IA(t[a]),u=a==="baseUri"&&!e,f=a==="workerUrl"&&e;if(!(a in r)&&!u&&!f){if(a in n)VB.warn(`${o} loader option '${s}${a}' no longer supported, use '${n[a]}'`)();else if(!l){let m=Nye(a,i);VB.warn(`${o} loader option '${s}${a}' not recognized. ${m}`)()}}}}function Nye(t,e){let r=t.toLowerCase(),n="";for(let i of e)for(let o in i.options){if(t===o)return`Did you mean '${i.id}.${o}'?`;let s=o.toLowerCase();(r.startsWith(s)||s.startsWith(r))&&(n=n||`Did you mean '${i.id}.${o}'?`)}return n}function Fye(t,e,r){let i={...t.options||{}};return zye(i,r),i.log===null&&(i.log=new _M),vH(i,WB()),vH(i,e),i}function vH(t,e){for(let r in e)if(r in e){let n=e[r];FB(n)&&FB(t[r])?t[r]={...t[r],...e[r]}:t[r]=e[r]}}function zye(t,e){e&&!("baseUri"in t)&&(t.baseUri=e)}function H2(t){return t?(Array.isArray(t)&&(t=t[0]),Array.isArray(t?.extensions)):!1}function W2(t){Bi(t,"null loader"),Bi(H2(t),"invalid loader");let e;return Array.isArray(t)&&(e=t[1],t=t[0],t={...t,options:{...t.options,...e}}),(t?.parseTextSync||t?.parseText)&&(t.text=!0),t.text||(t.binary=!0),t}var wH=()=>{let t=HB();return t.loaderRegistry=t.loaderRegistry||[],t.loaderRegistry};function RA(t){let e=wH();t=Array.isArray(t)?t:[t];for(let r of t){let n=W2(r);e.find(i=>n===i)||e.unshift(n)}}function TH(){return wH()}B_();var EH=new au({id:"loaders.gl"});var Uye=/\.([^.]+)$/;async function CH(t,e=[],r,n){if(!IH(t))return null;let i=MH(t,e,{...r,nothrow:!0},n);if(i)return i;if(_h(t)&&(t=await t.slice(0,10).arrayBuffer(),i=MH(t,e,r,n)),!i&&!r?.nothrow)throw new Error(PH(t));return i}function MH(t,e=[],r,n){if(!IH(t))return null;if(e&&!Array.isArray(e))return W2(e);let i=[];e&&(i=i.concat(e)),r?.ignoreRegisteredLoaders||i.push(...TH()),jye(i);let o=Vye(t,i,r,n);if(!o&&!r?.nothrow)throw new Error(PH(t));return o}function Vye(t,e,r,n){let i=PA(t),o=j2(t),s=D_(i)||n?.url,a=null,l="";return r?.mimeType&&(a=qB(e,r?.mimeType),l=`match forced by supplied MIME type ${r?.mimeType}`),a=a||Hye(e,s),l=l||(a?`matched url ${s}`:""),a=a||qB(e,o),l=l||(a?`matched MIME type ${o}`:""),a=a||qye(e,t),l=l||(a?`matched initial data ${RH(t)}`:""),r?.fallbackMimeType&&(a=a||qB(e,r?.fallbackMimeType),l=l||(a?`matched fallback MIME type ${o}`:"")),l&&EH.log(1,`selectLoader selected ${a?.name}: ${l}.`),a}function IH(t){return!(t instanceof Response&&t.status===204)}function PH(t){let e=PA(t),r=j2(t),n="No valid loader found (";n+=e?`${ku.filename(e)}, `:"no url provided, ",n+=`MIME type: ${r?`"${r}"`:"not provided"}, `;let i=t?RH(t):"";return n+=i?` first bytes: "${i}"`:"first bytes: not available",n+=")",n}function jye(t){for(let e of t)W2(e)}function Hye(t,e){let r=e&&Uye.exec(e),n=r&&r[1];return n?Wye(t,n):null}function Wye(t,e){e=e.toLowerCase();for(let r of t)for(let n of r.extensions)if(n.toLowerCase()===e)return r;return null}function qB(t,e){for(let r of t)if(r.mimeTypes?.some(n=>zB(e,n))||zB(e,`application/x.${r.id}`))return r;return null}function qye(t,e){if(!e)return null;for(let r of t)if(typeof e=="string"){if(Gye(e,r))return r}else if(ArrayBuffer.isView(e)){if(SH(e.buffer,e.byteOffset,r))return r}else if(e instanceof ArrayBuffer&&SH(e,0,r))return r;return null}function Gye(t,e){return e.testText?e.testText(t):(Array.isArray(e.tests)?e.tests:[e.tests]).some(n=>t.startsWith(n))}function SH(t,e,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(i=>Xye(t,e,r,i))}function Xye(t,e,r,n){if(n instanceof ArrayBuffer)return PB(n,t,n.byteLength);switch(typeof n){case"function":return n(t);case"string":let i=GB(t,e,n.length);return n===i;default:return!1}}function RH(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?GB(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?GB(t,0,e):""}function GB(t,e,r){if(t.byteLength<e+r)return"";let n=new DataView(t),i="";for(let o=0;o<r;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function*LH(t,e){let r=e?.chunkSize||262144,n=0,i=new TextEncoder;for(;n<t.length;){let o=Math.min(t.length-n,r),s=t.slice(n,n+o);n+=o,yield i.encode(s)}}function*OH(t,e={}){let{chunkSize:r=262144}=e,n=0;for(;n<t.byteLength;){let i=Math.min(t.byteLength-n,r),o=new ArrayBuffer(i),s=new Uint8Array(t,n,i);new Uint8Array(o).set(s),n+=i,yield o}}async function*BH(t,e){let r=e?.chunkSize||1048576,n=0;for(;n<t.size;){let i=n+r,o=await t.slice(n,i).arrayBuffer();n=i,yield o}}function XB(t,e){return vd?Yye(t,e):$ye(t,e)}async function*Yye(t,e){let r=t.getReader(),n;try{for(;;){let i=n||r.read();e?._streamReadAhead&&(n=r.read());let{done:o,value:s}=await i;if(o)return;yield dM(s)}}catch{r.releaseLock()}}async function*$ye(t,e){for await(let r of t)yield dM(r)}function kH(t,e){if(typeof t=="string")return LH(t,e);if(t instanceof ArrayBuffer)return OH(t,e);if(_h(t))return BH(t,e);if(AM(t))return XB(t,e);if(yh(t))return XB(t.body,e);throw new Error("makeIterator")}var DH="Cannot convert supplied data type";function Kye(t,e,r){if(e.text&&typeof t=="string")return t;if(fH(t)&&(t=t.buffer),t instanceof ArrayBuffer){let n=t;return e.text&&!e.binary?new TextDecoder("utf8").decode(n):n}if(ArrayBuffer.isView(t)){if(e.text&&!e.binary)return new TextDecoder("utf8").decode(t);let n=t.buffer,i=t.byteLength||t.length;return(t.byteOffset!==0||i!==n.byteLength)&&(n=n.slice(t.byteOffset,t.byteOffset+i)),n}throw new Error(DH)}async function NH(t,e,r){let n=t instanceof ArrayBuffer||ArrayBuffer.isView(t);if(typeof t=="string"||n)return Kye(t,e,r);if(_h(t)&&(t=await yM(t)),yh(t)){let i=t;return await yH(i),e.binary?await i.arrayBuffer():await i.text()}if(AM(t)&&(t=kH(t,r)),uH(t)||hH(t))return OB(t);throw new Error(DH)}function vM(t,e){let r=WB(),n=t||r;return typeof n.fetch=="function"?n.fetch:IA(n.fetch)?i=>N_(i,n.fetch):e?.fetch?e?.fetch:N_}function FH(t,e,r){if(r)return r;let n={fetch:vM(e,t),...t};if(n.url){let i=D_(n.url);n.baseUrl=i,n.queryString=mH(n.url),n.filename=ku.filename(i),n.baseUrl=ku.dirname(i)}return Array.isArray(n.loaders)||(n.loaders=null),n}function zH(t,e){if(t&&!Array.isArray(t))return t;let r;if(t&&(r=Array.isArray(t)?t:[t]),e&&e.loaders){let n=Array.isArray(e.loaders)?e.loaders:[e.loaders];r=r?[...r,...n]:n}return r&&r.length?r:void 0}async function jm(t,e,r,n){e&&!Array.isArray(e)&&!H2(e)&&(n=void 0,r=e,e=void 0),t=await t,r=r||{};let i=PA(t),s=zH(e,n),a=await CH(t,s,r);return a?(r=bH(r,a,s,i),n=FH({url:i,_parse:jm,loaders:s},r,n||null),await Zye(a,t,r,n)):null}async function Zye(t,e,r,n){if(EB(t),r=O2(t.options,r),yh(e)){let o=e,{ok:s,redirected:a,status:l,statusText:u,type:f,url:m}=o,v=Object.fromEntries(o.headers.entries());n.response={headers:v,ok:s,redirected:a,status:l,statusText:u,type:f,url:m}}e=await NH(e,t,r);let i=t;if(i.parseTextSync&&typeof e=="string")return i.parseTextSync(e,r,n);if(SB(t,r))return await CB(t,e,r,n,jm);if(i.parseText&&typeof e=="string")return await i.parseText(e,r,n);if(i.parse)return await i.parse(e,r,n);throw Gc(!i.parseSync),new Error(`${t.id} loader - no parser found and worker is disabled`)}async function za(t,e,r,n){let i,o;!Array.isArray(e)&&!H2(e)?(i=[],o=e,n=void 0):(i=e,o=r);let s=vM(o),a=t;return typeof t=="string"&&(a=await s(t)),_h(t)&&(a=await s(t)),Array.isArray(i)?await jm(a,i,o):await jm(a,i,o)}YB();var VH,jH,WH={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function bM(){return document.createElement("div")}function Qye(t){if(!t.picked)return null;if(t.object===VH)return jH;let e={html:e_e(t.object),style:WH};return jH=e,VH=t.object,e}var Jye=new Set(["position","index"]);function e_e(t){let e=bM();for(let r in t){if(Jye.has(r))continue;let n=bM();n.className="header",n.textContent=r;let i=bM();i.className="value",i.textContent=r_e(t[r]);let o=bM();t_e(o,n,i),o.appendChild(n),o.appendChild(i),e.appendChild(o)}return e.innerHTML}function t_e(t,e,r){Object.assign(e.style,{fontWeight:700,marginRight:"10px",flex:"1 1 0%"}),Object.assign(r.style,{flex:"none",maxWidth:"250px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Object.assign(t.style,{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"stretch"})}function r_e(t){let e;if(Array.isArray(t)&&t.length>4)e=`Array<${t.length}>`;else if(typeof t=="string")e=t;else if(typeof t=="number")e=String(t);else try{e=JSON.stringify(t)}catch{e="<Non-Serializable Object>"}let r=50;return e.length>r&&(e=e.slice(0,r)),e}function HH(t,e){let r,n=t,i="properties",o=/{[^}]*}/g,s=l=>l.replace(/[{}]/g,""),a=[...new Set(t.match(o).map(s))];for(let l of a){if(l.includes(".")){r=e;let u=l.split(".");for(let f of u)if(r.hasOwnProperty(f))r=r[f];else{r=void 0;break}}else e.hasOwnProperty(l)?r=e[l]:e[i]&&e[i].hasOwnProperty(l)?r=e[i][l]:r=void 0;n=n.replaceAll(`{${l}}`,r)}return n}function $B(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||WH};return t.html?r.html=HH(t.html,e.object):r.text=HH(t.text,e.object),r}:Qye:null}function qH(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function GH(t,e){let r=document.createElement("div");return r.style.width=Number.isFinite(t)?`${t}px`:t,r.style.height=`${e}px`,r.style.position="relative",r}var YH=vc(XH()),n_e="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",QB=YH.default;function $H(t=n_e){qH(t)}function KH(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var JB={};function ZH(t){if(!JB[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),JB[t]=new Promise(n=>{e.onload=n})}return JB[t]}var QH="4.2.1";var i_e=globalThis.loaders?.parseImageNode,ek=typeof Image<"u",tk=typeof ImageBitmap<"u",o_e=Boolean(i_e),rk=vd?!0:o_e;function JH(t){switch(t){case"auto":return tk||ek||rk;case"imagebitmap":return tk;case"image":return ek;case"data":return rk;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function eW(){if(tk)return"imagebitmap";if(ek)return"image";if(rk)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function tW(t){let e=s_e(t);if(!e)throw new Error("Not an image");return e}function q2(t){switch(tW(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function s_e(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var a_e=/^data:image\/svg\+xml/,c_e=/\.svg((\?|#).*)?$/;function wM(t){return t&&(a_e.test(t)||c_e.test(t))}function rW(t,e){if(wM(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return nk(t,e)}function nk(t,e){if(wM(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function TM(t,e,r){let n=rW(t,r),i=self.URL||self.webkitURL,o=typeof n!="string"&&i.createObjectURL(n);try{return await l_e(o||n,e)}finally{o&&i.revokeObjectURL(o)}}async function l_e(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,i)=>{try{r.onload=()=>n(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}var u_e={},nW=!0;async function iW(t,e,r){let n;wM(r)?n=await TM(t,e,r):n=nk(t,r);let i=e&&e.imagebitmap;return await h_e(n,i)}async function h_e(t,e=null){if((f_e(e)||!nW)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),nW=!1}return await createImageBitmap(t)}function f_e(t){for(let e in t||u_e)return!1;return!0}function oW(t){return!A_e(t,"ftyp",4)||!(t[8]&96)?null:p_e(t)}function p_e(t){switch(d_e(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function d_e(t,e,r){return String.fromCharCode(...t.slice(e,r))}function m_e(t){return[...t].map(e=>e.charCodeAt(0))}function A_e(t,e,r=0){let n=m_e(e);for(let i=0;i<n.length;++i)if(n[i]!==t[i+r])return!1;return!0}var dp=!1,G2=!0;function LA(t){let e=X2(t);return y_e(e)||v_e(e)||__e(e)||x_e(e)||g_e(e)}function g_e(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=oW(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function y_e(t){let e=X2(t);return e.byteLength>=24&&e.getUint32(0,dp)===2303741511?{mimeType:"image/png",width:e.getUint32(16,dp),height:e.getUint32(20,dp)}:null}function __e(t){let e=X2(t);return e.byteLength>=10&&e.getUint32(0,dp)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,G2),height:e.getUint16(8,G2)}:null}function x_e(t){let e=X2(t);return e.byteLength>=14&&e.getUint16(0,dp)===16973&&e.getUint32(2,G2)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,G2),height:e.getUint32(22,G2)}:null}function v_e(t){let e=X2(t);if(!(e.byteLength>=3&&e.getUint16(0,dp)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:i}=b_e(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,dp);if(i.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,dp),width:e.getUint16(o+7,dp)};if(!n.has(s))return null;o+=2,o+=e.getUint16(o,dp)}return null}function b_e(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function X2(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function sW(t,e){let{mimeType:r}=LA(t)||{},n=globalThis.loaders?.parseImageNode;return Bi(n),await n(t,r)}async function aW(t,e,r){e=e||{};let i=(e.image||{}).type||"auto",{url:o}=r||{},s=w_e(i),a;switch(s){case"imagebitmap":a=await iW(t,e,o);break;case"image":a=await TM(t,e,o);break;case"data":a=await sW(t,e);break;default:Bi(!1)}return i==="data"&&(a=q2(a)),a}function w_e(t){switch(t){case"auto":case"data":return eW();default:return JH(t),t}}var T_e=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],E_e=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],M_e={image:{type:"auto",decode:!0}},mp={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:QH,mimeTypes:E_e,extensions:T_e,parse:aW,tests:[t=>Boolean(LA(new DataView(t)))],options:M_e};var ik={};function ok(t){if(ik[t]===void 0){let e=vd?C_e(t):S_e(t);ik[t]=e}return ik[t]}function S_e(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function C_e(t){switch(t){case"image/avif":case"image/webp":return I_e(t);default:return!0}}function I_e(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}B_();var P_e=new au({id:"deck"}),Ar=P_e;var sk={};function cW(t){sk=t}function sa(t,e,r,n){Ar.level>0&&sk[t]&&sk[t].call(null,e,r,n)}function R_e(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var lW={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:R_e,parseTextSync:JSON.parse};function L_e(){let t="9.2.0-beta.3",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(Ar.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:Ar,_registerLoggers:cW},RA([lW,[mp,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var EM=L_e();function MM(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var ak={number:{type:"number",validate(t,e){return Number.isFinite(t)&&typeof e=="object"&&(e.max===void 0||t<=e.max)&&(e.min===void 0||t>=e.min)}},array:{type:"array",validate(t,e){return Array.isArray(t)||ArrayBuffer.isView(t)}}};function hW(t){let e={};for(let[r,n]of Object.entries(t))e[r]=O_e(n);return e}function O_e(t){let e=uW(t);if(e!=="object")return{value:t,...ak[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...ak[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=uW(t.value),{...t,...ak[e],type:e}):{type:"object",value:null};throw new Error("props")}function uW(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var fW=`#ifdef MODULE_LOGDEPTH
|
|
552
|
+
}`}function bB(t,e=!0,r){let n=r||new Set;if(t){if(tH(t))n.add(t);else if(tH(t.buffer))n.add(t.buffer);else if(!ArrayBuffer.isView(t)){if(e&&typeof t=="object")for(let i in t)bB(t[i],e,n)}}return r===void 0?Array.from(n):[]}function tH(t){return t?t instanceof ArrayBuffer||typeof MessagePort<"u"&&t instanceof MessagePort||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas:!1}var wB=()=>{},Fm=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&bc||typeof k_<"u"&&!bc}constructor(e){let{name:r,source:n,url:i}=e;Gc(n||i),this.name=r,this.source=n,this.url=i,this.onMessage=wB,this.onError=o=>console.log(o),this.worker=bc?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=wB,this.onError=wB,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,r){r=r||bB(e),this.worker.postMessage(e,r)}_getErrorFromErrorEvent(e){let r="Failed to load ";return r+=`worker ${this.name} from ${this.url}. `,e.message&&(r+=`${e.message} in `),e.lineno&&(r+=`:${e.lineno}:${e.colno}`),new Error(r)}_createBrowserWorker(){this._loadableURL=Jj({source:this.source,url:this.url});let e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error("No data received"))},e.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},e.onmessageerror=r=>console.error(r),e}_createNodeWorker(){let e;if(this.url){let n=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;e=new k_(n,{eval:!1})}else if(this.source)e=new k_(this.source,{eval:!0});else throw new Error("no worker");return e.on("message",r=>{this.onMessage(r)}),e.on("error",r=>{this.onError(r)}),e.on("exit",r=>{}),e}};var N2=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return Fm.isSupported()}constructor(e){this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach(e=>e.destroy()),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},e.name!==void 0&&(this.name=e.name),e.maxConcurrency!==void 0&&(this.maxConcurrency=e.maxConcurrency),e.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=e.maxMobileConcurrency),e.reuseWorkers!==void 0&&(this.reuseWorkers=e.reuseWorkers),e.onDebug!==void 0&&(this.onDebug=e.onDebug)}async startJob(e,r=(i,o,s)=>i.done(s),n=(i,o)=>i.error(o)){let i=new Promise(o=>(this.jobQueue.push({name:e,onMessage:r,onError:n,onStart:o}),this));return this._startQueuedJob(),await i}async _startQueuedJob(){if(!this.jobQueue.length)return;let e=this._getAvailableWorker();if(!e)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:"Starting job",name:r.name,workerThread:e,backlog:this.jobQueue.length});let n=new D2(r.name,e);e.onMessage=i=>r.onMessage(n,i.type,i.payload),e.onError=i=>r.onError(n,i),r.onStart(n);try{await n.result}catch(i){console.error(`Worker exception: ${i}`)}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){!bc||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let e=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new Fm({name:e,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Qj?this.maxMobileConcurrency:this.maxConcurrency}};var sye={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},EA=class{props;workerPools=new Map;static isSupported(){return Fm.isSupported()}static getWorkerFarm(e={}){return EA._workerFarm=EA._workerFarm||new EA({}),EA._workerFarm.setProps(e),EA._workerFarm}constructor(e){this.props={...sye},this.setProps(e),this.workerPools=new Map}destroy(){for(let e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(e){let{name:r,source:n,url:i}=e,o=this.workerPools.get(r);return o||(o=new N2({name:r,source:n,url:i}),o.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,o)),o}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},zm=EA;Dr(zm,"_workerFarm");function TB(t,e={}){let r=e[t.id]||{},n=bc?`${t.id}-worker.js`:`${t.id}-worker-node.js`,i=r.workerUrl;if(!i&&t.id==="compression"&&(i=e.workerUrl),e._workerType==="test"&&(bc?i=`modules/${t.module}/dist/${n}`:i=`modules/${t.module}/src/workers/${t.id}-worker-node.ts`),!i){let o=t.version;o==="latest"&&(o=Kj);let s=o?`@${o}`:"";i=`https://unpkg.com/@loaders.gl/${t.module}${s}/dist/${n}`}return Gc(i),i}function EB(t,e=B2){Gc(t,"no worker provided");let r=t.version;return!(!e||!r)}var MB={};async function fp(t,e=null,r={},n=null){return e&&(t=rH(t,e,r,n)),MB[t]=MB[t]||aye(t),await MB[t]}function rH(t,e,r={},n=null){if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let i=r.modules||{};return i[n]?i[n]:bc?r.CDN?(Gc(r.CDN.startsWith("http")),`${r.CDN}/${e}@${B2}/dist/libs/${n}`):k2?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function aye(t){if(t.endsWith("wasm"))return await lye(t);if(!bc)try{let{requireFromFile:r}=globalThis.loaders||{};return await r?.(t)}catch(r){return console.error(r),null}if(k2)return importScripts(t);let e=await uye(t);return cye(e,t)}function cye(t,e){if(!bc){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(k2)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function lye(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};return bc||!e||t.startsWith("http")?await(await fetch(t)).arrayBuffer():await e(t)}async function uye(t){let{readFileAsText:e}=globalThis.loaders||{};return bc||!e||t.startsWith("http")?await(await fetch(t)).text():await e(t)}function SB(t,e){return!zm.isSupported()||!bc&&!e?._nodeWorkers?!1:t.worker&&e?.worker}async function CB(t,e,r,n,i){let o=t.id,s=TB(t,r),l=zm.getWorkerFarm(r).getWorkerPool({name:o,url:s});r=JSON.parse(JSON.stringify(r)),n=JSON.parse(JSON.stringify(n||{}));let u=await l.startJob("process-on-worker",hye.bind(null,i));return u.postMessage("process",{input:e,options:r,context:n}),await(await u.result).result}async function hye(t,e,r,n){switch(r){case"done":e.done(n);break;case"error":e.error(new Error(n.error));break;case"process":let{id:i,input:o,options:s}=n;try{let a=await t(o,s);e.postMessage("done",{id:i,result:a})}catch(a){let l=a instanceof Error?a.message:"unknown error";e.postMessage("error",{id:i,error:l})}break;default:console.warn(`parse-with-worker unknown message ${r}`)}}function iH(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?nH(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?nH(t,0,e):""}function nH(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),i="";for(let o=0;o<r;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function IB(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${iH(t)}"`)}}function PB(t,e,r){if(r=r||t.byteLength,t.byteLength<r||e.byteLength<r)return!1;let n=new Uint8Array(t),i=new Uint8Array(e);for(let o=0;o<n.length;++o)if(n[o]!==i[o])return!1;return!0}function RB(...t){return oH(t)}function oH(t){let e=t.map(o=>o instanceof ArrayBuffer?new Uint8Array(o):o),r=e.reduce((o,s)=>o+s.byteLength,0),n=new Uint8Array(r),i=0;for(let o of e)n.set(o,i),i+=o.byteLength;return n.buffer}function F2(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((s,a)=>s+a.length,0),i=new r(n),o=0;for(let s of e)i.set(s,o),o+=s.length;return i}function MA(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Um(t,e){return Bi(t>=0),Bi(e>0),t+(e-1)&~(e-1)}function LB(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let i=t.byteOffset,o=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,i,o)}return e.set(n,r),r+Um(n.byteLength,4)}async function OB(t){let e=[];for await(let r of t)e.push(r);return RB(...e)}CA();var fye="Queued Requests",pye="Active Requests",dye="Cancelled Requests",mye="Queued Requests Ever",Aye="Active Requests Ever",gye={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Vm=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...gye,...e},this.stats=new ol({id:this.props.id}),this.stats.get(fye),this.stats.get(pye),this.stats.get(dye),this.stats.get(mye),this.stats.get(Aye)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},i=new Promise(o=>(n.resolve=o,n));return this.requestQueue.push(n),this.requestMap.set(e,i),this._issueNewRequests(),i}_issueRequest(e){let{handle:r,resolve:n}=e,i=!1,o=()=>{i||(i=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:o}):Promise.resolve({done:o})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var yye="",aH={};function DB(t){for(let e in aH)if(t.startsWith(e)){let r=aH[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${yye}${t}`),t}function cH(t){return t&&typeof t=="object"&&t.isBuffer}function dM(t){if(cH(t))return t;if(t instanceof ArrayBuffer)return t;if(ArrayBuffer.isView(t))return t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);if(typeof t=="string"){let e=t;return new TextEncoder().encode(e).buffer}if(t&&typeof t=="object"&&t._toArrayBuffer)return t._toArrayBuffer();throw new Error("toArrayBuffer")}var ku={};Uo(ku,{dirname:()=>xye,filename:()=>_ye,join:()=>vye,resolve:()=>bye});function lH(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function _ye(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):""}function xye(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function vye(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function bye(...t){let e=[];for(let o=0;o<t.length;o++)e[o]=t[o];let r="",n=!1,i;for(let o=e.length-1;o>=-1&&!n;o--){let s;o>=0?s=e[o]:(i===void 0&&(i=lH()),s=i),s.length!==0&&(r=`${s}/${r}`,n=s.charCodeAt(0)===U2)}return r=wye(r,!n),n?`/${r}`:r.length>0?r:"."}var U2=47,NB=46;function wye(t,e){let r="",n=-1,i=0,o,s=!1;for(let a=0;a<=t.length;++a){if(a<t.length)o=t.charCodeAt(a);else{if(o===U2)break;o=U2}if(o===U2){if(!(n===a-1||i===1))if(n!==a-1&&i===2){if(r.length<2||!s||r.charCodeAt(r.length-1)!==NB||r.charCodeAt(r.length-2)!==NB){if(r.length>2){let l=r.length-1,u=l;for(;u>=0&&r.charCodeAt(u)!==U2;--u);if(u!==l){r=u===-1?"":r.slice(0,u),n=a,i=0,s=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,i=0,s=!1;continue}}e&&(r.length>0?r+="/..":r="..",s=!0)}else{let l=t.slice(n+1,a);r.length>0?r+=`/${l}`:r=l,s=!1}n=a,i=0}else o===NB&&i!==-1?++i:i=-1}return r}var mM=class{fetch;loadOptions;_needsRefresh=!0;props;constructor(e){this.props={...e},this.loadOptions={...e.loadOptions},this.fetch=Tye(this.loadOptions)}setProps(e){this.props=Object.assign(this.props,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function Tye(t){let e=t?.fetch;if(e&&typeof e=="function")return(n,i)=>e(n,i);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}var gh=class extends mM{};Dr(gh,"type","template"),Dr(gh,"testURL",e=>!1);var Eye=t=>typeof t=="boolean",V2=t=>typeof t=="function",IA=t=>t!==null&&typeof t=="object",FB=t=>IA(t)&&t.constructor==={}.constructor;var uH=t=>Boolean(t)&&typeof t[Symbol.iterator]=="function",hH=t=>t&&typeof t[Symbol.asyncIterator]=="function";var yh=t=>typeof Response<"u"&&t instanceof Response||t&&t.arrayBuffer&&t.text&&t.json;var _h=t=>typeof Blob<"u"&&t instanceof Blob,fH=t=>t&&typeof t=="object"&&t.isBuffer;var Mye=t=>typeof ReadableStream<"u"&&t instanceof ReadableStream||IA(t)&&V2(t.tee)&&V2(t.cancel)&&V2(t.getReader);var Sye=t=>IA(t)&&V2(t.read)&&V2(t.pipe)&&Eye(t.readable),AM=t=>Mye(t)||Sye(t);var gM=class extends Error{constructor(e,r){super(e),this.reason=r.reason,this.url=r.url,this.response=r.response}reason;url;response};var Cye=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Iye=/^([-\w.]+\/[-\w.+]+)/;function zB(t,e){return t.toLowerCase()===e.toLowerCase()}function pH(t){let e=Iye.exec(t);return e?e[1]:t}function UB(t){let e=Cye.exec(t);return e?e[1]:""}var dH=/\?.*/;function mH(t){let e=t.match(dH);return e&&e[0]}function D_(t){return t.replace(dH,"")}function AH(t){if(t.length<50)return t;let e=t.slice(t.length-15);return`${t.substr(0,32)}...${e}`}function PA(t){return yh(t)?t.url:_h(t)?t.name||"":typeof t=="string"?t:""}function j2(t){if(yh(t)){let e=t,r=e.headers.get("content-type")||"",n=D_(e.url);return pH(r)||UB(n)}return _h(t)?t.type||"":typeof t=="string"?UB(t):""}function gH(t){return yh(t)?t.headers["content-length"]||-1:_h(t)?t.size:typeof t=="string"?t.length:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?t.byteLength:-1}async function yM(t){if(yh(t))return t;let e={},r=gH(t);r>=0&&(e["content-length"]=String(r));let n=PA(t),i=j2(t);i&&(e["content-type"]=i);let o=await Rye(t);o&&(e["x-first-bytes"]=o),typeof t=="string"&&(t=new TextEncoder().encode(t));let s=new Response(t,{headers:e});return Object.defineProperty(s,"url",{value:n}),s}async function yH(t){if(!t.ok)throw await Pye(t)}async function Pye(t){let e=AH(t.url),r=`Failed to fetch resource (${t.status}) ${t.statusText}: ${e}`;r=r.length>100?`${r.slice(0,100)}...`:r;let n={reason:t.statusText,url:t.url,response:t};try{let i=t.headers.get("Content-Type");n.reason=i?.includes("application/json")?await t.json():t.text()}catch{}return new gM(r,n)}async function Rye(t){if(typeof t=="string")return`data:,${t.slice(0,5)}`;if(t instanceof Blob){let r=t.slice(0,5);return await new Promise(n=>{let i=new FileReader;i.onload=o=>n(o?.target?.result),i.readAsDataURL(r)})}if(t instanceof ArrayBuffer){let r=t.slice(0,5);return`data:base64,${Lye(r)}`}return null}function Lye(t){let e="",r=new Uint8Array(t);for(let n=0;n<r.byteLength;n++)e+=String.fromCharCode(r[n]);return btoa(e)}function Oye(t){return!Bye(t)&&!kye(t)}function Bye(t){return t.startsWith("http:")||t.startsWith("https:")}function kye(t){return t.startsWith("data:")}async function N_(t,e){if(typeof t=="string"){let r=DB(t);return Oye(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,e):await fetch(r,e)}return await yM(t)}B_();var VB=new au({id:"loaders.gl"}),_M=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},xM=class{console;constructor(){this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};var jB={fetch:null,mimeType:void 0,nothrow:!1,log:new xM,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:vd,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},_H={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function HB(){globalThis.loaders=globalThis.loaders||{};let{loaders:t}=globalThis;return t._state||(t._state={}),t._state}function WB(){let t=HB();return t.globalOptions=t.globalOptions||{...jB},t.globalOptions}function bH(t,e,r,n){return r=r||[],r=Array.isArray(r)?r:[r],Dye(t,r),Fye(e,t,n)}function Dye(t,e){xH(t,null,jB,_H,e);for(let r of e){let n=t&&t[r.id]||{},i=r.options&&r.options[r.id]||{},o=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};xH(n,r.id,i,o,e)}}function xH(t,e,r,n,i){let o=e||"Top level",s=e?`${e}.`:"";for(let a in t){let l=!e&&IA(t[a]),u=a==="baseUri"&&!e,f=a==="workerUrl"&&e;if(!(a in r)&&!u&&!f){if(a in n)VB.warn(`${o} loader option '${s}${a}' no longer supported, use '${n[a]}'`)();else if(!l){let m=Nye(a,i);VB.warn(`${o} loader option '${s}${a}' not recognized. ${m}`)()}}}}function Nye(t,e){let r=t.toLowerCase(),n="";for(let i of e)for(let o in i.options){if(t===o)return`Did you mean '${i.id}.${o}'?`;let s=o.toLowerCase();(r.startsWith(s)||s.startsWith(r))&&(n=n||`Did you mean '${i.id}.${o}'?`)}return n}function Fye(t,e,r){let i={...t.options||{}};return zye(i,r),i.log===null&&(i.log=new _M),vH(i,WB()),vH(i,e),i}function vH(t,e){for(let r in e)if(r in e){let n=e[r];FB(n)&&FB(t[r])?t[r]={...t[r],...e[r]}:t[r]=e[r]}}function zye(t,e){e&&!("baseUri"in t)&&(t.baseUri=e)}function H2(t){return t?(Array.isArray(t)&&(t=t[0]),Array.isArray(t?.extensions)):!1}function W2(t){Bi(t,"null loader"),Bi(H2(t),"invalid loader");let e;return Array.isArray(t)&&(e=t[1],t=t[0],t={...t,options:{...t.options,...e}}),(t?.parseTextSync||t?.parseText)&&(t.text=!0),t.text||(t.binary=!0),t}var wH=()=>{let t=HB();return t.loaderRegistry=t.loaderRegistry||[],t.loaderRegistry};function RA(t){let e=wH();t=Array.isArray(t)?t:[t];for(let r of t){let n=W2(r);e.find(i=>n===i)||e.unshift(n)}}function TH(){return wH()}B_();var EH=new au({id:"loaders.gl"});var Uye=/\.([^.]+)$/;async function CH(t,e=[],r,n){if(!IH(t))return null;let i=MH(t,e,{...r,nothrow:!0},n);if(i)return i;if(_h(t)&&(t=await t.slice(0,10).arrayBuffer(),i=MH(t,e,r,n)),!i&&!r?.nothrow)throw new Error(PH(t));return i}function MH(t,e=[],r,n){if(!IH(t))return null;if(e&&!Array.isArray(e))return W2(e);let i=[];e&&(i=i.concat(e)),r?.ignoreRegisteredLoaders||i.push(...TH()),jye(i);let o=Vye(t,i,r,n);if(!o&&!r?.nothrow)throw new Error(PH(t));return o}function Vye(t,e,r,n){let i=PA(t),o=j2(t),s=D_(i)||n?.url,a=null,l="";return r?.mimeType&&(a=qB(e,r?.mimeType),l=`match forced by supplied MIME type ${r?.mimeType}`),a=a||Hye(e,s),l=l||(a?`matched url ${s}`:""),a=a||qB(e,o),l=l||(a?`matched MIME type ${o}`:""),a=a||qye(e,t),l=l||(a?`matched initial data ${RH(t)}`:""),r?.fallbackMimeType&&(a=a||qB(e,r?.fallbackMimeType),l=l||(a?`matched fallback MIME type ${o}`:"")),l&&EH.log(1,`selectLoader selected ${a?.name}: ${l}.`),a}function IH(t){return!(t instanceof Response&&t.status===204)}function PH(t){let e=PA(t),r=j2(t),n="No valid loader found (";n+=e?`${ku.filename(e)}, `:"no url provided, ",n+=`MIME type: ${r?`"${r}"`:"not provided"}, `;let i=t?RH(t):"";return n+=i?` first bytes: "${i}"`:"first bytes: not available",n+=")",n}function jye(t){for(let e of t)W2(e)}function Hye(t,e){let r=e&&Uye.exec(e),n=r&&r[1];return n?Wye(t,n):null}function Wye(t,e){e=e.toLowerCase();for(let r of t)for(let n of r.extensions)if(n.toLowerCase()===e)return r;return null}function qB(t,e){for(let r of t)if(r.mimeTypes?.some(n=>zB(e,n))||zB(e,`application/x.${r.id}`))return r;return null}function qye(t,e){if(!e)return null;for(let r of t)if(typeof e=="string"){if(Gye(e,r))return r}else if(ArrayBuffer.isView(e)){if(SH(e.buffer,e.byteOffset,r))return r}else if(e instanceof ArrayBuffer&&SH(e,0,r))return r;return null}function Gye(t,e){return e.testText?e.testText(t):(Array.isArray(e.tests)?e.tests:[e.tests]).some(n=>t.startsWith(n))}function SH(t,e,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(i=>Xye(t,e,r,i))}function Xye(t,e,r,n){if(n instanceof ArrayBuffer)return PB(n,t,n.byteLength);switch(typeof n){case"function":return n(t);case"string":let i=GB(t,e,n.length);return n===i;default:return!1}}function RH(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?GB(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?GB(t,0,e):""}function GB(t,e,r){if(t.byteLength<e+r)return"";let n=new DataView(t),i="";for(let o=0;o<r;o++)i+=String.fromCharCode(n.getUint8(e+o));return i}function*LH(t,e){let r=e?.chunkSize||262144,n=0,i=new TextEncoder;for(;n<t.length;){let o=Math.min(t.length-n,r),s=t.slice(n,n+o);n+=o,yield i.encode(s)}}function*OH(t,e={}){let{chunkSize:r=262144}=e,n=0;for(;n<t.byteLength;){let i=Math.min(t.byteLength-n,r),o=new ArrayBuffer(i),s=new Uint8Array(t,n,i);new Uint8Array(o).set(s),n+=i,yield o}}async function*BH(t,e){let r=e?.chunkSize||1048576,n=0;for(;n<t.size;){let i=n+r,o=await t.slice(n,i).arrayBuffer();n=i,yield o}}function XB(t,e){return vd?Yye(t,e):$ye(t,e)}async function*Yye(t,e){let r=t.getReader(),n;try{for(;;){let i=n||r.read();e?._streamReadAhead&&(n=r.read());let{done:o,value:s}=await i;if(o)return;yield dM(s)}}catch{r.releaseLock()}}async function*$ye(t,e){for await(let r of t)yield dM(r)}function kH(t,e){if(typeof t=="string")return LH(t,e);if(t instanceof ArrayBuffer)return OH(t,e);if(_h(t))return BH(t,e);if(AM(t))return XB(t,e);if(yh(t))return XB(t.body,e);throw new Error("makeIterator")}var DH="Cannot convert supplied data type";function Kye(t,e,r){if(e.text&&typeof t=="string")return t;if(fH(t)&&(t=t.buffer),t instanceof ArrayBuffer){let n=t;return e.text&&!e.binary?new TextDecoder("utf8").decode(n):n}if(ArrayBuffer.isView(t)){if(e.text&&!e.binary)return new TextDecoder("utf8").decode(t);let n=t.buffer,i=t.byteLength||t.length;return(t.byteOffset!==0||i!==n.byteLength)&&(n=n.slice(t.byteOffset,t.byteOffset+i)),n}throw new Error(DH)}async function NH(t,e,r){let n=t instanceof ArrayBuffer||ArrayBuffer.isView(t);if(typeof t=="string"||n)return Kye(t,e,r);if(_h(t)&&(t=await yM(t)),yh(t)){let i=t;return await yH(i),e.binary?await i.arrayBuffer():await i.text()}if(AM(t)&&(t=kH(t,r)),uH(t)||hH(t))return OB(t);throw new Error(DH)}function vM(t,e){let r=WB(),n=t||r;return typeof n.fetch=="function"?n.fetch:IA(n.fetch)?i=>N_(i,n.fetch):e?.fetch?e?.fetch:N_}function FH(t,e,r){if(r)return r;let n={fetch:vM(e,t),...t};if(n.url){let i=D_(n.url);n.baseUrl=i,n.queryString=mH(n.url),n.filename=ku.filename(i),n.baseUrl=ku.dirname(i)}return Array.isArray(n.loaders)||(n.loaders=null),n}function zH(t,e){if(t&&!Array.isArray(t))return t;let r;if(t&&(r=Array.isArray(t)?t:[t]),e&&e.loaders){let n=Array.isArray(e.loaders)?e.loaders:[e.loaders];r=r?[...r,...n]:n}return r&&r.length?r:void 0}async function jm(t,e,r,n){e&&!Array.isArray(e)&&!H2(e)&&(n=void 0,r=e,e=void 0),t=await t,r=r||{};let i=PA(t),s=zH(e,n),a=await CH(t,s,r);return a?(r=bH(r,a,s,i),n=FH({url:i,_parse:jm,loaders:s},r,n||null),await Zye(a,t,r,n)):null}async function Zye(t,e,r,n){if(EB(t),r=O2(t.options,r),yh(e)){let o=e,{ok:s,redirected:a,status:l,statusText:u,type:f,url:m}=o,v=Object.fromEntries(o.headers.entries());n.response={headers:v,ok:s,redirected:a,status:l,statusText:u,type:f,url:m}}e=await NH(e,t,r);let i=t;if(i.parseTextSync&&typeof e=="string")return i.parseTextSync(e,r,n);if(SB(t,r))return await CB(t,e,r,n,jm);if(i.parseText&&typeof e=="string")return await i.parseText(e,r,n);if(i.parse)return await i.parse(e,r,n);throw Gc(!i.parseSync),new Error(`${t.id} loader - no parser found and worker is disabled`)}async function za(t,e,r,n){let i,o;!Array.isArray(e)&&!H2(e)?(i=[],o=e,n=void 0):(i=e,o=r);let s=vM(o),a=t;return typeof t=="string"&&(a=await s(t)),_h(t)&&(a=await s(t)),Array.isArray(i)?await jm(a,i,o):await jm(a,i,o)}YB();var VH,jH,WH={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function bM(){return document.createElement("div")}function Qye(t){if(!t.picked)return null;if(t.object===VH)return jH;let e={html:e_e(t.object),style:WH};return jH=e,VH=t.object,e}var Jye=new Set(["position","index"]);function e_e(t){let e=bM();for(let r in t){if(Jye.has(r))continue;let n=bM();n.className="header",n.textContent=r;let i=bM();i.className="value",i.textContent=r_e(t[r]);let o=bM();t_e(o,n,i),o.appendChild(n),o.appendChild(i),e.appendChild(o)}return e.innerHTML}function t_e(t,e,r){Object.assign(e.style,{fontWeight:700,marginRight:"10px",flex:"1 1 0%"}),Object.assign(r.style,{flex:"none",maxWidth:"250px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Object.assign(t.style,{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"stretch"})}function r_e(t){let e;if(Array.isArray(t)&&t.length>4)e=`Array<${t.length}>`;else if(typeof t=="string")e=t;else if(typeof t=="number")e=String(t);else try{e=JSON.stringify(t)}catch{e="<Non-Serializable Object>"}let r=50;return e.length>r&&(e=e.slice(0,r)),e}function HH(t,e){let r,n=t,i="properties",o=/{[^}]*}/g,s=l=>l.replace(/[{}]/g,""),a=[...new Set(t.match(o).map(s))];for(let l of a){if(l.includes(".")){r=e;let u=l.split(".");for(let f of u)if(r.hasOwnProperty(f))r=r[f];else{r=void 0;break}}else e.hasOwnProperty(l)?r=e[l]:e[i]&&e[i].hasOwnProperty(l)?r=e[i][l]:r=void 0;n=n.replaceAll(`{${l}}`,r)}return n}function $B(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||WH};return t.html?r.html=HH(t.html,e.object):r.text=HH(t.text,e.object),r}:Qye:null}function qH(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function GH(t,e){let r=document.createElement("div");return r.style.width=Number.isFinite(t)?`${t}px`:t,r.style.height=`${e}px`,r.style.position="relative",r}var YH=vc(XH()),n_e="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",QB=YH.default;function $H(t=n_e){qH(t)}function KH(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var JB={};function ZH(t){if(!JB[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),JB[t]=new Promise(n=>{e.onload=n})}return JB[t]}var QH="4.2.1";var i_e=globalThis.loaders?.parseImageNode,ek=typeof Image<"u",tk=typeof ImageBitmap<"u",o_e=Boolean(i_e),rk=vd?!0:o_e;function JH(t){switch(t){case"auto":return tk||ek||rk;case"imagebitmap":return tk;case"image":return ek;case"data":return rk;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function eW(){if(tk)return"imagebitmap";if(ek)return"image";if(rk)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function tW(t){let e=s_e(t);if(!e)throw new Error("Not an image");return e}function q2(t){switch(tW(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function s_e(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var a_e=/^data:image\/svg\+xml/,c_e=/\.svg((\?|#).*)?$/;function wM(t){return t&&(a_e.test(t)||c_e.test(t))}function rW(t,e){if(wM(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return nk(t,e)}function nk(t,e){if(wM(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function TM(t,e,r){let n=rW(t,r),i=self.URL||self.webkitURL,o=typeof n!="string"&&i.createObjectURL(n);try{return await l_e(o||n,e)}finally{o&&i.revokeObjectURL(o)}}async function l_e(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,i)=>{try{r.onload=()=>n(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}var u_e={},nW=!0;async function iW(t,e,r){let n;wM(r)?n=await TM(t,e,r):n=nk(t,r);let i=e&&e.imagebitmap;return await h_e(n,i)}async function h_e(t,e=null){if((f_e(e)||!nW)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),nW=!1}return await createImageBitmap(t)}function f_e(t){for(let e in t||u_e)return!1;return!0}function oW(t){return!A_e(t,"ftyp",4)||!(t[8]&96)?null:p_e(t)}function p_e(t){switch(d_e(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function d_e(t,e,r){return String.fromCharCode(...t.slice(e,r))}function m_e(t){return[...t].map(e=>e.charCodeAt(0))}function A_e(t,e,r=0){let n=m_e(e);for(let i=0;i<n.length;++i)if(n[i]!==t[i+r])return!1;return!0}var dp=!1,G2=!0;function LA(t){let e=X2(t);return y_e(e)||v_e(e)||__e(e)||x_e(e)||g_e(e)}function g_e(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=oW(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function y_e(t){let e=X2(t);return e.byteLength>=24&&e.getUint32(0,dp)===2303741511?{mimeType:"image/png",width:e.getUint32(16,dp),height:e.getUint32(20,dp)}:null}function __e(t){let e=X2(t);return e.byteLength>=10&&e.getUint32(0,dp)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,G2),height:e.getUint16(8,G2)}:null}function x_e(t){let e=X2(t);return e.byteLength>=14&&e.getUint16(0,dp)===16973&&e.getUint32(2,G2)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,G2),height:e.getUint32(22,G2)}:null}function v_e(t){let e=X2(t);if(!(e.byteLength>=3&&e.getUint16(0,dp)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:i}=b_e(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,dp);if(i.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,dp),width:e.getUint16(o+7,dp)};if(!n.has(s))return null;o+=2,o+=e.getUint16(o,dp)}return null}function b_e(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function X2(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function sW(t,e){let{mimeType:r}=LA(t)||{},n=globalThis.loaders?.parseImageNode;return Bi(n),await n(t,r)}async function aW(t,e,r){e=e||{};let i=(e.image||{}).type||"auto",{url:o}=r||{},s=w_e(i),a;switch(s){case"imagebitmap":a=await iW(t,e,o);break;case"image":a=await TM(t,e,o);break;case"data":a=await sW(t,e);break;default:Bi(!1)}return i==="data"&&(a=q2(a)),a}function w_e(t){switch(t){case"auto":case"data":return eW();default:return JH(t),t}}var T_e=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],E_e=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],M_e={image:{type:"auto",decode:!0}},mp={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:QH,mimeTypes:E_e,extensions:T_e,parse:aW,tests:[t=>Boolean(LA(new DataView(t)))],options:M_e};var ik={};function ok(t){if(ik[t]===void 0){let e=vd?C_e(t):S_e(t);ik[t]=e}return ik[t]}function S_e(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function C_e(t){switch(t){case"image/avif":case"image/webp":return I_e(t);default:return!0}}function I_e(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}B_();var P_e=new au({id:"deck"}),Ar=P_e;var sk={};function cW(t){sk=t}function sa(t,e,r,n){Ar.level>0&&sk[t]&&sk[t].call(null,e,r,n)}function R_e(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var lW={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:R_e,parseTextSync:JSON.parse};function L_e(){let t="9.2.0-beta.4",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(Ar.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:Ar,_registerLoggers:cW},RA([lW,[mp,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var EM=L_e();function MM(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var ak={number:{type:"number",validate(t,e){return Number.isFinite(t)&&typeof e=="object"&&(e.max===void 0||t<=e.max)&&(e.min===void 0||t>=e.min)}},array:{type:"array",validate(t,e){return Array.isArray(t)||ArrayBuffer.isView(t)}}};function hW(t){let e={};for(let[r,n]of Object.entries(t))e[r]=O_e(n);return e}function O_e(t){let e=uW(t);if(e!=="object")return{value:t,...ak[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...ak[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=uW(t.value),{...t,...ak[e],type:e}):{type:"object",value:null};throw new Error("props")}function uW(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var fW=`#ifdef MODULE_LOGDEPTH
|
|
553
553
|
logdepth_adjustPosition(gl_Position);
|
|
554
554
|
#endif
|
|
555
555
|
`,pW=`#ifdef MODULE_MATERIAL
|
|
@@ -2969,7 +2969,7 @@ void main() {
|
|
|
2969
2969
|
void main() {
|
|
2970
2970
|
fragColor = ${t}(texSrc, screen.texSize, coordinate);
|
|
2971
2971
|
}
|
|
2972
|
-
`;function yTe(t,e){if(e.filter){let r=typeof e.filter=="string"?e.filter:`${t.name}_filterColor_ext`;return ATe(r)}if(e.sampler){let r=typeof e.sampler=="string"?e.sampler:`${t.name}_sampleColor`;return gTe(r)}return""}var _Te={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant",blendAlphaDstFactor:"zero"},Nd=class extends df{constructor(){super(...arguments),this._colorEncoderState=null}render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):super.render(e)}_drawPickingBuffer({layers:e,layerFilter:r,views:n,viewports:i,onViewportActive:o,pickingFBO:s,deviceRect:{x:a,y:l,width:u,height:f},cullRect:m,effects:v,pass:E="picking",pickZ:S,shaderModuleProps:L}){this.pickZ=S;let O=this._resetColorEncoder(S),q=[a,l,u,f],G=super.render({target:s,layers:e,layerFilter:r,views:n,viewports:i,onViewportActive:o,cullRect:m,effects:v?.filter(Y=>Y.useInPicking),pass:E,isPicking:!0,shaderModuleProps:L,clearColor:[0,0,0,0],colorMask:15,scissorRect:q});return this._colorEncoderState=null,{decodePickingColor:O&&vTe.bind(null,O),stats:G}}shouldDrawLayer(e){let{pickable:r,operation:n}=e.props;return r&&n.includes("draw")||n.includes("terrain")||n.includes("mask")}getShaderModuleProps(e,r,n){return{picking:{isActive:1,isAttribute:this.pickZ},lighting:{enabled:!1}}}getLayerParameters(e,r,n){let i={...e.props.parameters},{pickable:o,operation:s}=e.props;return!this._colorEncoderState||s.includes("terrain")?i.blend=!1:o&&s.includes("draw")&&(Object.assign(i,_Te),i.blend=!0,i.blendColor=xTe(this._colorEncoderState,e,n)),i}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function xTe(t,e,r){let{byLayer:n,byAlpha:i}=t,o,s=n.get(e);return s?(s.viewports.push(r),o=s.a):(o=n.size+1,o<=255?(s={a:o,layer:e,viewports:[r]},n.set(e,s),i[o]=s):(Ar.warn("Too many pickable layers, only picking the first 255")(),o=0)),[0,0,0,o/255]}function vTe(t,e){let r=t.byAlpha[e[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(e)}}var s0={NO_STATE:"Awaiting state",MATCHED:"Matched. State transferred from previous layer",INITIALIZED:"Initialized",AWAITING_GC:"Discarded. Awaiting garbage collection",AWAITING_FINALIZATION:"No longer matched. Awaiting garbage collection",FINALIZED:"Finalized! Awaiting garbage collection"},x1=Symbol.for("component"),Rh=Symbol.for("propTypes"),lC=Symbol.for("deprecatedProps"),Fd=Symbol.for("asyncPropDefaults"),Ep=Symbol.for("asyncPropOriginal"),Af=Symbol.for("asyncPropResolved");function Mp(t,e=()=>!0){return Array.isArray(t)?UX(t,e,[]):e(t)?[t]:[]}function UX(t,e,r){let n=-1;for(;++n<t.length;){let i=t[n];Array.isArray(i)?UX(i,e,r):e(i)&&r.push(i)}return r}function uC({target:t,source:e,start:r=0,count:n=1}){let i=e.length,o=n*i,s=0;for(let a=r;s<i;s++)t[a++]=e[s];for(;s<o;)s<o-s?(t.copyWithin(r+s,r,r+s),s*=2):(t.copyWithin(r+s,r,r+o-s),s=o);return t}CA();var Zb=class{constructor(e,r,n){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=n,this.setData(r)}subscribe(e){this._subscribers.add(e)}unsubscribe(e){this._subscribers.delete(e)}inUse(){return this._subscribers.size>0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(e,r){if(e===this._data&&!r)return;this._data=e;let n=++this._loadCount,i=e;typeof e=="string"&&(i=za(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then(o=>{this._loadCount===n&&(this.isLoaded=!0,this._error=void 0,this._content=o)}).catch(o=>{this._loadCount===n&&(this.isLoaded=!0,this._error=o||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=e);for(let o of this._subscribers)o.onChange(this.getData())}};var Qb=class{constructor(e){this.protocol=e.protocol||"resource://",this._context={device:e.device,gl:e.device?.gl,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(e){return e.startsWith(this.protocol)?!0:e in this._resources}add({resourceId:e,data:r,forceUpdate:n=!1,persistent:i=!0}){let o=this._resources[e];o?o.setData(r,n):(o=new Zb(e,r,this._context),this._resources[e]=o),o.persistent=i}remove(e){let r=this._resources[e];r&&(r.delete(),delete this._resources[e])}unsubscribe({consumerId:e}){let r=this._consumers[e];if(r){for(let n in r){let i=r[n],o=this._resources[i.resourceId];o&&o.unsubscribe(i)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:r,consumerId:n,requestId:i="default"}){let{_resources:o,protocol:s}=this;e.startsWith(s)&&(e=e.replace(s,""),o[e]||this.add({resourceId:e,data:null,persistent:!1}));let a=o[e];if(this._track(n,i,a,r),a)return a.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let e in this._resources)this._resources[e].delete()}_track(e,r,n,i){let o=this._consumers,s=o[e]=o[e]||{},a=s[r],l=a&&a.resourceId&&this._resources[a.resourceId];l&&(l.unsubscribe(a),this.prune()),n&&(a?(a.onChange=i,a.resourceId=n.id):a={onChange:i,resourceId:n.id},s[r]=a,n.subscribe(a))}_prune(){this._pruneRequest=null;for(let e of Object.keys(this._resources)){let r=this._resources[e];!r.persistent&&!r.inUse()&&(r.delete(),delete this._resources[e])}}};var bTe="layerManager.setLayers",wTe="layerManager.activateViewport",rg=class{constructor(e,r){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=a=>{sa(wTe,this,a),a&&(this.context.viewport=a)};let{deck:n,stats:i,viewport:o,timeline:s}=r||{};this.layers=[],this.resourceManager=new Qb({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:n,shaderAssembler:eC(e?.info?.shadingLanguage||"glsl"),defaultShaderModules:[iN],renderPass:void 0,stats:i||new ol({id:"deck.gl"}),viewport:o||new Va({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:s||new JA,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(let e of this.layers)this._finalizeLayer(e)}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);for(let n of this.layers){let i=n.getNeedsRedraw(e);r=r||i}return r}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._defaultShaderModulesChanged?"shader modules changed":this._needsUpdate}setNeedsRedraw(e){this._needsRedraw=this._needsRedraw||e}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e}getLayers({layerIds:e}={}){return e?this.layers.filter(r=>e.find(n=>r.id.indexOf(n)===0)):this.layers}setProps(e){"debug"in e&&(this._debug=e.debug),"userData"in e&&(this.context.userData=e.userData),"layers"in e&&(this._nextLayers=e.layers),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,r){sa(bTe,this,r,e),this._lastRenderedLayers=e;let n=Mp(e,Boolean);for(let i of n)i.context=this.context;this._updateLayers(this.layers,n)}updateLayers(){let e=this.needsUpdate();e&&(this.setNeedsRedraw(`updating layers: ${e}`),this.setLayers(this._nextLayers||this._lastRenderedLayers,e)),this._nextLayers=null}addDefaultShaderModule(e){let{defaultShaderModules:r}=this.context;r.find(n=>n.name===e.name)||(r.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){let{defaultShaderModules:r}=this.context,n=r.findIndex(i=>i.name===e.name);n>=0&&(r.splice(n,1),this._defaultShaderModulesChanged=!0)}_handleError(e,r,n){n.raiseError(r,`${e} of ${n}`)}_updateLayers(e,r){let n={};for(let s of e)n[s.id]?Ar.warn(`Multiple old layers with same id ${s.id}`)():n[s.id]=s;if(this._defaultShaderModulesChanged){for(let s of e)s.setNeedsUpdate(),s.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let i=[];this._updateSublayersRecursively(r,n,i),this._finalizeOldLayers(n);let o=!1;for(let s of i)if(s.hasUniformTransition()){o=`Uniform transition in ${s}`;break}this._needsUpdate=o,this.layers=i}_updateSublayersRecursively(e,r,n){for(let i of e){i.context=this.context;let o=r[i.id];o===null&&Ar.warn(`Multiple new layers with same id ${i.id}`)(),r[i.id]=null;let s=null;try{this._debug&&o!==i&&i.validateProps(),o?(this._transferLayerState(o,i),this._updateLayer(i)):this._initializeLayer(i),n.push(i),s=i.isComposite?i.getSubLayers():null}catch(a){this._handleError("matching",a,i)}s&&this._updateSublayersRecursively(s,r,n)}}_finalizeOldLayers(e){for(let r in e){let n=e[r];n&&this._finalizeLayer(n)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=s0.INITIALIZED}catch(r){this._handleError("initialization",r,e)}}_transferLayerState(e,r){r._transferState(e),r.lifecycle=s0.MATCHED,r!==e&&(e.lifecycle=s0.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(r){this._handleError("update",r,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=s0.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=s0.FINALIZED}catch(r){this._handleError("finalization",r,e)}}};function Gi(t,e,r){if(t===e)return!0;if(!r||!t||!e)return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!Gi(t[n],e[n],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let o of n)if(!e.hasOwnProperty(o)||!Gi(t[o],e[o],r-1))return!1;return!0}return!1}var Jb=class{constructor(e){this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=e.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=e.eventManager,this._eventCallbacks={onViewStateChange:e.onViewStateChange,onInteractionStateChange:e.onInteractionStateChange},Object.seal(this),this.setProps(e)}finalize(){for(let e in this.controllers){let r=this.controllers[e];r&&r.finalize()}this.controllers={}}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}updateViewStates(){for(let e in this.controllers){let r=this.controllers[e];r&&r.updateTransition()}}getViewports(e){return e?this._viewports.filter(r=>r.containsPixel(e)):this._viewports}getViews(){let e={};return this.views.forEach(r=>{e[r.id]=r}),e}getView(e){return this.views.find(r=>r.id===e)}getViewState(e){let r=typeof e=="string"?this.getView(e):e,n=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(n):n}getViewport(e){return this._viewportMap[e]}unproject(e,r){let n=this.getViewports(),i={x:e[0],y:e[1]};for(let o=n.length-1;o>=0;--o){let s=n[o];if(s.containsPixel(i)){let a=e.slice();return a[0]-=s.x,a[1]-=s.y,s.unproject(a,r)}}return null}setProps(e){e.views&&this._setViews(e.views),e.viewState&&this._setViewState(e.viewState),("width"in e||"height"in e)&&this._setSize(e.width,e.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(e,r){(e!==this.width||r!==this.height)&&(this.width=e,this.height=r,this.setNeedsUpdate("Size changed"))}_setViews(e){e=Mp(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?(!Gi(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):Ar.warn("missing `viewState` or `initialViewState`")()}_createController(e,r){let n=r.type;return new n({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._eventCallbacks.onViewStateChange,onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:o=>this.getView(e.id)?.makeViewport({viewState:o,width:this.width,height:this.height})})}_updateController(e,r,n,i){let o=e.controller;if(o&&n){let s={...r,...o,id:e.id,x:n.x,y:n.y,width:n.width,height:n.height};return(!i||i.constructor!==o.type)&&(i=this._createController(e,s)),i&&i.setProps(s),i}return null}_rebuildViewports(){let{views:e}=this,r=this.controllers;this._viewports=[],this.controllers={};let n=!1;for(let i=e.length;i--;){let o=e[i],s=this.getViewState(o),a=o.makeViewport({viewState:s,width:this.width,height:this.height}),l=r[o.id],u=Boolean(o.controller);u&&!l&&(n=!0),(n||!u)&&l&&(l.finalize(),l=null),this.controllers[o.id]=this._updateController(o,s,a,l),a&&this._viewports.unshift(a)}for(let i in r){let o=r[i];o&&!this.controllers[i]&&o.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(e=>{e.id&&(this._viewportMap[e.id]=this._viewportMap[e.id]||e)})}_diffViews(e,r){return e.length!==r.length?!0:e.some((n,i)=>!e[i].equals(r[i]))}};var TTe=/([0-9]+\.?[0-9]*)(%|px)/;function zd(t){switch(typeof t){case"number":return{position:t,relative:!1};case"string":let e=TTe.exec(t);if(e&&e.length>=3){let r=e[2]==="%",n=parseFloat(e[1]);return{position:r?n/100:n,relative:r}}default:throw new Error(`Could not parse position string ${t}`)}}function Ud(t,e){return t.relative?Math.round(t.position*e):t.position}var Nl=class{constructor(e){let{id:r,x:n=0,y:i=0,width:o="100%",height:s="100%",padding:a=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=zd(n),this._y=zd(i),this._width=zd(o),this._height=zd(s),this._padding=a&&{left:zd(a.left||0),right:zd(a.right||0),top:zd(a.top||0),bottom:zd(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.constructor===e.constructor&&Gi(this.props,e.props,2)}clone(e){let r=this.constructor;return new r({...this.props,...e})}makeViewport({width:e,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:e,height:r});if(!i.height||!i.width)return null;let o=this.getViewportType(n);return new o({...n,...this.props,...i})}getViewStateId(){let{viewState:e}=this.props;return typeof e=="string"?e:e?.id||this.id}filterViewState(e){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;let r={...e};for(let n in this.props.viewState)n!=="id"&&(r[n]=this.props.viewState[n]);return r}return e}getDimensions({width:e,height:r}){let n={x:Ud(this._x,e),y:Ud(this._y,r),width:Ud(this._width,e),height:Ud(this._height,r)};return this._padding&&(n.padding={left:Ud(this._padding.left,e),top:Ud(this._padding.top,r),right:Ud(this._padding.right,e),bottom:Ud(this._padding.bottom,r)}),n}get controller(){let e=this.props.controller;return e?e===!0?{type:this.ControllerType}:typeof e=="function"?{type:e}:{type:this.ControllerType,...e}:null}};var gf=class{constructor(e){this._inProgress=!1,this._handle=null,this.time=0,this.settings={duration:0},this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:e,settings:r}=this;this._handle=e.addChannel({delay:e.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var VX=()=>{},ew={BREAK:1,SNAP_TO_END:2,IGNORE:3},ETe=t=>t,MTe=ew.BREAK,tw=class{constructor(e){this._onTransitionUpdate=r=>{let{time:n,settings:{interpolator:i,startProps:o,endProps:s,duration:a,easing:l}}=r,u=l(n/a),f=i.interpolateProps(o,s,u);this.propsInTransition=this.getControllerState({...this.props,...f}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new gf(e.timeline),this.onViewStateChange=e.onViewStateChange||VX,this.onStateChange=e.onStateChange||VX}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){let{interruption:o,endProps:s}=this.transition.settings;i={...n,...o===ew.SNAP_TO_END?s:this.propsInTransition||n}}this._triggerTransition(i,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:n}=e;return(r>0||r==="auto")&&Boolean(n)}_isUpdateDueToCurrentTransition(e){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition):!1}_shouldIgnoreViewportChange(e,r){return this.transition.inProgress?this.transition.settings.interruption===ew.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let n=this.getControllerState(e),i=this.getControllerState(r).shortestPathFrom(n),o=r.transitionInterpolator,s=o.getDuration?o.getDuration(e,r):r.transitionDuration;if(s===0)return;let a=o.initializeProps(e,i);this.propsInTransition={};let l={duration:s,easing:r.transitionEasing||ETe,interpolator:o,interruption:r.transitionInterruption||MTe,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(l),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(r)}}};function ps(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Vd=class{constructor(e){let{compare:r,extract:n,required:i}=e;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(e,r){for(let n of this._propsToCompare)if(!(n in e)||!(n in r)||!ic(e[n],r[n]))return!1;return!0}initializeProps(e,r){let n={},i={};for(let o of this._propsToExtract)(o in e||o in r)&&(n[o]=e[o],i[o]=r[o]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let n=e[r];ps(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var STe=["longitude","latitude","zoom","bearing","pitch"],CTe=["longitude","latitude","zoom"],Gs=class extends Vd{constructor(e={}){let r=Array.isArray(e)?e:e.transitionProps,n=Array.isArray(e)?{}:e;n.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:STe,required:CTe},super(n.transitionProps),this.opts=n}initializeProps(e,r){let n=super.initializeProps(e,r),{makeViewport:i,around:o}=this.opts;if(i&&o){let s=i(e),a=i(r),l=s.unproject(o);n.start.around=o,Object.assign(n.end,{around:a.project(l),aroundPosition:l,width:r.width,height:r.height})}return n}interpolateProps(e,r,n){let i={};for(let o of this._propsToExtract)i[o]=nc(e[o]||0,r[o]||0,n);if(r.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...r,...i});Object.assign(i,o.panByPosition(r.aroundPosition,nc(e.around,r.around,n)))}return i}};var jd={transitionDuration:0},ITe=300,hC=t=>1-(1-t)*(1-t),v1={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],KEYBOARD:["keydown"]},ng={},Fl=class{constructor(e){this.state={},this._events={},this._interactionState={isDragging:!1},this._customEvents=[],this._eventStartBlocked=null,this._panMove=!1,this.invertPan=!1,this.dragMode="rotate",this.inertia=0,this.scrollZoom=!0,this.dragPan=!0,this.dragRotate=!0,this.doubleClickZoom=!0,this.touchZoom=!0,this.touchRotate=!1,this.keyboard=!0,this.transitionManager=new tw({...e,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(let e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;let r=this._eventStartBlocked;switch(e.type){case"panstart":return r?!1:this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return r?!1:this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"multipanstart":return r?!1:this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){let{x:r,y:n}=this.props,{offsetCenter:i}=e;return[i.x-r,i.y-n]}isPointInBounds(e,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let o=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return o&&r&&r.stopPropagation(),o}isFunctionKeyPressed(e){let{srcEvent:r}=e;return Boolean(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=r}setProps(e){e.dragMode&&(this.dragMode=e.dragMode),this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);let{inertia:r}=e;this.inertia=Number.isFinite(r)?r:r===!0?ITe:0;let{scrollZoom:n=!0,dragPan:i=!0,dragRotate:o=!0,doubleClickZoom:s=!0,touchZoom:a=!0,touchRotate:l=!1,keyboard:u=!0}=e,f=Boolean(this.onViewStateChange);this.toggleEvents(v1.WHEEL,f&&n),this.toggleEvents(v1.PAN,f),this.toggleEvents(v1.PINCH,f&&(a||l)),this.toggleEvents(v1.MULTI_PAN,f&&l),this.toggleEvents(v1.DOUBLE_CLICK,f&&s),this.toggleEvents(v1.KEYBOARD,f&&u),this.scrollZoom=n,this.dragPan=i,this.dragRotate=o,this.doubleClickZoom=s,this.touchZoom=a,this.touchRotate=l,this.keyboard=u}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(e,r=null,n={}){let i={...e.getViewportProps(),...r},o=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),o){let s=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:s,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=this.controllerState[n?"panStart":"rotateStart"]({pos:r});return this._panMove=n,this.updateViewport(i,jd,{isDragging:!0}),!0}_onPan(e){return this.isDragging()?this._panMove?this._onPanMove(e):this._onPanRotate(e):!1}_onPanEnd(e){return this.isDragging()?this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e):!1}_onPanMove(e){if(!this.dragPan)return!1;let r=this.getCenter(e),n=this.controllerState.pan({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],o=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState.panEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),n=this.controllerState.rotate({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],o=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;e.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:o}=e,s=2/(1+Math.exp(-Math.abs(o*n)));o<0&&s!==0&&(s=1/s);let a=i?{...this._getTransitionProps({around:r}),transitionDuration:250}:jd,l=this.controllerState.zoom({pos:r,scale:s});return this.updateViewport(l,a,{isZooming:!0,isPanning:!0}),!0}_onMultiPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.rotateStart({pos:r});return this.updateViewport(n,jd,{isDragging:!0}),!0}_onMultiPan(e){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(e);r[0]-=e.deltaX;let n=this.controllerState.rotate({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isRotating:!0}),!0}_onMultiPanEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&e.velocityY){let n=this.getCenter(e),i=[n[0],n[1]+=e.velocityY*r/2],o=this.controllerState.rotate({pos:i});this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return ng._startPinchRotation=e.rotation,ng._lastPinchEvent=e,this.updateViewport(n,jd,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=e,i=this.getCenter(e);r=r.zoom({pos:i,scale:n})}if(this.touchRotate){let{rotation:n}=e;r=r.rotate({deltaAngleX:ng._startPinchRotation-n})}return this.updateViewport(r,jd,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),ng._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=ng;if(this.touchZoom&&r&&n&&e.scale!==n.scale){let i=this.getCenter(e),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),a=(s-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),l=Math.pow(2,s+a*r/2);o=o.zoom({pos:i,scale:l}).zoomEnd(),this.updateViewport(o,{...this._getTransitionProps({around:i}),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return ng._startPinchRotation=null,ng._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:r,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:o,rotateSpeedY:s}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,l,u={};switch(e.srcEvent.code){case"Minus":l=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),u.isZooming=!0;break;case"Equal":l=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),u.isZooming=!0;break;case"ArrowLeft":r?(l=a.rotateLeft(o),u.isRotating=!0):(l=a.moveLeft(i),u.isPanning=!0);break;case"ArrowRight":r?(l=a.rotateRight(o),u.isRotating=!0):(l=a.moveRight(i),u.isPanning=!0);break;case"ArrowUp":r?(l=a.rotateUp(s),u.isRotating=!0):(l=a.moveUp(i),u.isPanning=!0);break;case"ArrowDown":r?(l=a.rotateDown(s),u.isRotating=!0):(l=a.moveDown(i),u.isPanning=!0);break;default:return!1}return this.updateViewport(l,this._getTransitionProps(),u),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?jd:e?{...r,transitionInterpolator:new Gs({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Hd=class{constructor(e,r){this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var jX=5,PTe=1.2,rw=class extends Hd{constructor(e){let{width:r,height:n,latitude:i,longitude:o,zoom:s,bearing:a=0,pitch:l=0,altitude:u=1.5,position:f=[0,0,0],maxZoom:m=20,minZoom:v=0,maxPitch:E=60,minPitch:S=0,startPanLngLat:L,startZoomLngLat:O,startRotatePos:q,startBearing:G,startPitch:H,startZoom:Y,normalize:te=!0}=e;ps(Number.isFinite(o)),ps(Number.isFinite(i)),ps(Number.isFinite(s)),super({width:r,height:n,latitude:i,longitude:o,zoom:s,bearing:a,pitch:l,altitude:u,maxZoom:m,minZoom:v,maxPitch:E,minPitch:S,normalize:te,position:f},{startPanLngLat:L,startZoomLngLat:O,startRotatePos:q,startBearing:G,startPitch:H,startZoom:Y}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:r}){let n=this.getState().startPanLngLat||this._unproject(r);if(!n)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startBearing:o,startPitch:s}=this.getState();if(!i||o===void 0||s===void 0)return this;let a;return e?a=this._getNewRotation(e,i,s,o):a={bearing:o+r,pitch:s+n},this._getUpdatedState(a)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:e}){return this._getUpdatedState({startZoomLngLat:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:n}){let{startZoom:i,startZoomLngLat:o}=this.getState();if(o||(i=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let{maxZoom:s,minZoom:a}=this.getViewportProps(),l=i+Math.log2(n);l=mo(l,a,s);let u=this.makeViewport({...this.getViewportProps(),zoom:l});return this._getUpdatedState({zoom:l,...u.panByPosition(o,e)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(e=2){return this._zoomFromCenter(e)}zoomOut(e=2){return this._zoomFromCenter(1/e)}moveLeft(e=100){return this._panFromCenter([e,0])}moveRight(e=100){return this._panFromCenter([-e,0])}moveUp(e=100){return this._panFromCenter([0,e])}moveDown(e=100){return this._panFromCenter([0,-e])}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:o}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(o-r.longitude)>180&&(n.longitude=o<0?o+360:o-360),n}applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i}=e;e.zoom=mo(i,n,r);let{maxPitch:o,minPitch:s,pitch:a}=e;e.pitch=mo(a,s,o);let{normalize:l=!0}=e;return l&&Object.assign(e,_N(e)),e}_zoomFromCenter(e){let{width:r,height:n}=this.getViewportProps();return this.zoom({pos:[r/2,n/2],scale:e})}_panFromCenter(e){let{width:r,height:n}=this.getViewportProps();return this.pan({startPos:[r/2,n/2],pos:[r/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}_unproject(e){let r=this.makeViewport(this.getViewportProps());return e&&r.unproject(e)}_getNewRotation(e,r,n,i){let o=e[0]-r[0],s=e[1]-r[1],a=e[1],l=r[1],{width:u,height:f}=this.getViewportProps(),m=o/u,v=0;s>0?Math.abs(f-l)>jX&&(v=s/(l-f)*PTe):s<0&&l>jX&&(v=1-a/l),v=mo(v,-1,1);let{minPitch:E,maxPitch:S}=this.getViewportProps(),L=i+180*m,O=n;return v>0?O=n+v*(S-n):v<0&&(O=n-v*(E-n)),{pitch:O,bearing:L}}},ig=class extends Fl{constructor(){super(...arguments),this.ControllerState=rw,this.transition={transitionDuration:300,transitionInterpolator:new Gs({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})},this.dragMode="pan"}setProps(e){e.position=e.position||[0,0,0];let r=this.props;super.setProps(e),(!r||r.height!==e.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...e,...this.state}))}};var fC=class extends Nl{constructor(e={}){super(e)}getViewportType(){return ll}get ControllerType(){return ig}};fC.displayName="MapView";var b1=fC;var RTe=new i0;function LTe(t,e){let r=t.order??1/0,n=e.order??1/0;return r-n}var nw=class{constructor(e){this._resolvedEffects=[],this._defaultEffects=[],this.effects=[],this._context=e,this._needsRedraw="Initial render",this._setEffects([])}addDefaultEffect(e){let r=this._defaultEffects;if(!r.find(n=>n.id===e.id)){let n=r.findIndex(i=>LTe(i,e)>0);n<0?r.push(e):r.splice(n,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&(Gi(e.effects,this.effects,1)||this._setEffects(e.effects))}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}getEffects(){return this._resolvedEffects}_setEffects(e){let r={};for(let i of this.effects)r[i.id]=i;let n=[];for(let i of e){let o=r[i.id],s=i;o&&o!==i?o.setProps?(o.setProps(i.props),s=o):o.cleanup(this._context):o||i.setup(this._context),n.push(s),delete r[i.id]}for(let i in r)r[i].cleanup(this._context);this.effects=n,this._resolvedEffects=n.concat(this._defaultEffects),e.some(i=>i instanceof i0)||this._resolvedEffects.push(RTe),this._needsRedraw="effects changed"}finalize(){for(let e of this._resolvedEffects)e.cleanup(this._context);this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}};var iw=class extends df{shouldDrawLayer(e){let{operation:r}=e.props;return r.includes("draw")||r.includes("terrain")}};var OTe="deckRenderer.renderLayers",og=class{constructor(e){this.device=e,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new iw(e),this.pickLayersPass=new Nd(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(e){this.layerFilter!==e.layerFilter&&(this.layerFilter=e.layerFilter,this._needsRedraw="layerFilter changed"),this.drawPickingColors!==e.drawPickingColors&&(this.drawPickingColors=e.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(e){if(!e.viewports.length)return;let r=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,n={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};n.effects&&this._preRender(n.effects,n);let i=this.lastPostProcessEffect?this.renderBuffers[0]:n.target;this.lastPostProcessEffect&&(n.clearColor=[0,0,0,0],n.clearCanvas=!0);let o=r.render({...n,target:i});n.effects&&(this.lastPostProcessEffect&&(n.clearCanvas=e.clearCanvas===void 0?!0:e.clearCanvas),this._postRender(n.effects,n)),this.renderCount++,sa(OTe,this,o,e)}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}finalize(){let{renderBuffers:e}=this;for(let r of e)r.delete();e.length=0}_preRender(e,r){this.lastPostProcessEffect=null,r.preRenderStats=r.preRenderStats||{};for(let n of e)r.preRenderStats[n.id]=n.preRender(r),n.postRender&&(this.lastPostProcessEffect=n.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:e}=this,r=this.device.canvasContext.getDrawingBufferSize(),[n,i]=r;e.length===0&&[0,1].map(o=>{let s=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"},width:n,height:i});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${o}`,colorAttachments:[s]}))});for(let o of e)o.resize(r)}_postRender(e,r){let{renderBuffers:n}=this,i={...r,inputBuffer:n[0],swapBuffer:n[1]};for(let o of e)if(o.postRender){i.target=o.id===this.lastPostProcessEffect?r.target:void 0;let s=o.postRender(i);i.inputBuffer=s,i.swapBuffer=s===n[0]?n[1]:n[0]}}};var BTe={pickedColor:null,pickedObjectIndex:-1};function BN({pickedColors:t,decodePickingColor:e,deviceX:r,deviceY:n,deviceRadius:i,deviceRect:o}){let{x:s,y:a,width:l,height:u}=o,f=i*i,m=-1,v=0;for(let E=0;E<u;E++){let S=E+a-n,L=S*S;if(L>f)v+=4*l;else for(let O=0;O<l;O++){if(t[v+3]-1>=0){let G=O+s-r,H=G*G+L;H<=f&&(f=H,m=v)}v+=4}}if(m>=0){let E=t.slice(m,m+4),S=e(E);if(S){let L=Math.floor(m/4/l),O=m/4-L*l;return{...S,pickedColor:E,pickedX:s+O,pickedY:a+L}}Ar.error("Picked non-existent layer. Is picking buffer corrupt?")()}return BTe}function kN({pickedColors:t,decodePickingColor:e}){let r=new Map;if(t){for(let n=0;n<t.length;n+=4)if(t[n+3]-1>=0){let o=t.slice(n,n+4),s=o.join(",");if(!r.has(s)){let a=e(o);a?r.set(s,{...a,color:o}):Ar.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(r.values())}function pC({pickInfo:t,viewports:e,pixelRatio:r,x:n,y:i,z:o}){let s=e[0];e.length>1&&(s=kTe(t?.pickedViewports||e,{x:n,y:i}));let a;if(s){let l=[n-s.x,i-s.y];o!==void 0&&(l[2]=o),a=s.unproject(l)}return{color:null,layer:null,viewport:s,index:-1,picked:!1,x:n,y:i,pixel:[n,i],coordinate:a,devicePixel:t&&"pickedX"in t?[t.pickedX,t.pickedY]:void 0,pixelRatio:r}}function DN(t){let{pickInfo:e,lastPickedInfo:r,mode:n,layers:i}=t,{pickedColor:o,pickedLayer:s,pickedObjectIndex:a}=e,l=s?[s]:[];if(n==="hover"){let m=r.index,v=r.layerId,E=s?s.props.id:null;if(E!==v||a!==m){if(E!==v){let S=i.find(L=>L.props.id===v);S&&l.unshift(S)}r.layerId=E,r.index=a,r.info=null}}let u=pC(t),f=new Map;return f.set(null,u),l.forEach(m=>{let v={...u};m===s&&(v.color=o,v.index=a,v.picked=!0),v=dC({layer:m,info:v,mode:n});let E=v.layer;m===s&&n==="hover"&&(r.info=v),f.set(E.id,v),n==="hover"&&E.updateAutoHighlight(v)}),f}function dC({layer:t,info:e,mode:r}){for(;t&&e;){let n=e.layer||null;e.sourceLayer=n,e.layer=t,e=t.getPickingInfo({info:e,mode:r,sourceLayer:n}),t=t.parent}return e}function kTe(t,e){for(let r=t.length-1;r>=0;r--){let n=t[r];if(n.containsPixel(e))return n}return t[0]}var ow=class{constructor(e){this._pickable=!0,this.device=e,this.pickLayersPass=new Nd(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.destroy(),this.depthFBO&&this.depthFBO.destroy()}pickObjectAsync(e){return this._pickClosestObjectAsync(e)}pickObjectsAsync(e){return this._pickVisibleObjectsAsync(e)}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:r,layers:n,viewports:i},o=this.lastPickedInfo.info){let s=o&&o.layer&&o.layer.id,a=o&&o.viewport&&o.viewport.id,l=s?n.find(v=>v.id===s):null,u=a&&i.find(v=>v.id===a)||i[0],f=u&&u.unproject([e-u.x,r-u.y]);return{...o,...{x:e,y:r,viewport:u,coordinate:f,layer:l}}}_resizeBuffer(){if(!this.pickingFBO&&(this.pickingFBO=this.device.createFramebuffer({colorAttachments:["rgba8unorm"],depthStencilAttachment:"depth16unorm"}),this.device.isTextureFormatRenderable("rgba32float"))){let r=this.device.createFramebuffer({colorAttachments:["rgba32float"],depthStencilAttachment:"depth16unorm"});this.depthFBO=r}let{canvas:e}=this.device.getDefaultCanvasContext();this.pickingFBO?.resize({width:e.width,height:e.height}),this.depthFBO?.resize({width:e.width,height:e.height})}_getPickable(e){if(this._pickable===!1)return null;let r=e.filter(n=>this.pickLayersPass.shouldDrawLayer(n)&&!n.isComposite);return r.length?r:null}async _pickClosestObjectAsync({layers:e,views:r,viewports:n,x:i,y:o,radius:s=0,depth:a=1,mode:l="query",unproject3D:u,onViewportActive:f,effects:m}){let v=this.device.canvasContext.cssToDeviceRatio(),E=this._getPickable(e);if(!E||n.length===0)return{result:[],emptyInfo:pC({viewports:n,x:i,y:o,pixelRatio:v})};this._resizeBuffer();let S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=[S.x+Math.floor(S.width/2),S.y+Math.floor(S.height/2)],O=Math.round(s*v),{width:q,height:G}=this.pickingFBO,H=this._getPickingRect({deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceWidth:q,deviceHeight:G}),Y={x:i-s,y:o-s,width:s*2+1,height:s*2+1},te,D=[],le=new Set;for(let ie=0;ie<a;ie++){let J;if(H){let me=this._drawAndSample({layers:E,views:r,viewports:n,onViewportActive:f,deviceRect:H,cullRect:Y,effects:m,pass:`picking:${l}`});J=BN({...me,deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceRect:H})}else J={pickedColor:null,pickedObjectIndex:-1};let X;if(J.pickedLayer&&u&&this.depthFBO){let{pickedColors:me}=this._drawAndSample({layers:[J.pickedLayer],views:r,viewports:n,onViewportActive:f,deviceRect:{x:J.pickedX,y:J.pickedY,width:1,height:1},cullRect:Y,effects:m,pass:`picking:${l}:z`},!0);me[3]&&(X=me[0])}J.pickedLayer&&ie+1<a&&(le.add(J.pickedLayer),J.pickedLayer.disablePickingIndex(J.pickedObjectIndex)),te=DN({pickInfo:J,lastPickedInfo:this.lastPickedInfo,mode:l,layers:E,viewports:n,x:i,y:o,z:X,pixelRatio:v});for(let me of te.values())me.layer&&D.push(me);if(!J.pickedColor)break}for(let ie of le)ie.restorePickingColors();return{result:D,emptyInfo:te.get(null)}}_pickClosestObject({layers:e,views:r,viewports:n,x:i,y:o,radius:s=0,depth:a=1,mode:l="query",unproject3D:u,onViewportActive:f,effects:m}){let v=this.device.canvasContext.cssToDeviceRatio(),E=this._getPickable(e);if(!E||n.length===0)return{result:[],emptyInfo:pC({viewports:n,x:i,y:o,pixelRatio:v})};this._resizeBuffer();let S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=[S.x+Math.floor(S.width/2),S.y+Math.floor(S.height/2)],O=Math.round(s*v),{width:q,height:G}=this.pickingFBO,H=this._getPickingRect({deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceWidth:q,deviceHeight:G}),Y={x:i-s,y:o-s,width:s*2+1,height:s*2+1},te,D=[],le=new Set;for(let ie=0;ie<a;ie++){let J;if(H){let me=this._drawAndSample({layers:E,views:r,viewports:n,onViewportActive:f,deviceRect:H,cullRect:Y,effects:m,pass:`picking:${l}`});J=BN({...me,deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceRect:H})}else J={pickedColor:null,pickedObjectIndex:-1};let X;if(J.pickedLayer&&u&&this.depthFBO){let{pickedColors:me}=this._drawAndSample({layers:[J.pickedLayer],views:r,viewports:n,onViewportActive:f,deviceRect:{x:J.pickedX,y:J.pickedY,width:1,height:1},cullRect:Y,effects:m,pass:`picking:${l}:z`},!0);me[3]&&(X=me[0])}J.pickedLayer&&ie+1<a&&(le.add(J.pickedLayer),J.pickedLayer.disablePickingIndex(J.pickedObjectIndex)),te=DN({pickInfo:J,lastPickedInfo:this.lastPickedInfo,mode:l,layers:E,viewports:n,x:i,y:o,z:X,pixelRatio:v});for(let me of te.values())me.layer&&D.push(me);if(!J.pickedColor)break}for(let ie of le)ie.restorePickingColors();return{result:D,emptyInfo:te.get(null)}}async _pickVisibleObjectsAsync({layers:e,views:r,viewports:n,x:i,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:u=null,onViewportActive:f,effects:m}){let v=this._getPickable(e);if(!v||n.length===0)return[];this._resizeBuffer();let E=this.device.canvasContext.cssToDeviceRatio(),S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=S.x,O=S.y+S.height,q=this.device.canvasContext.cssToDevicePixels([i+s,o+a],!0),G=q.x+q.width,H=q.y,Y={x:L,y:H,width:G-L,height:O-H},te=this._drawAndSample({layers:v,views:r,viewports:n,onViewportActive:f,deviceRect:Y,cullRect:{x:i,y:o,width:s,height:a},effects:m,pass:`picking:${l}`}),D=kN(te),le=new Map,ie=[],J=Number.isFinite(u);for(let X=0;X<D.length&&!(J&&ie.length>=u);X++){let me=D[X],Me={color:me.pickedColor,layer:null,index:me.pickedObjectIndex,picked:!0,x:i,y:o,pixelRatio:E};Me=dC({layer:me.pickedLayer,info:Me,mode:l});let ce=Me.layer.id;le.has(ce)||le.set(ce,new Set);let Ae=le.get(ce),rt=Me.object??Me.index;Ae.has(rt)||(Ae.add(rt),ie.push(Me))}return ie}_pickVisibleObjects({layers:e,views:r,viewports:n,x:i,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:u=null,onViewportActive:f,effects:m}){let v=this._getPickable(e);if(!v||n.length===0)return[];this._resizeBuffer();let E=this.device.canvasContext.cssToDeviceRatio(),S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=S.x,O=S.y+S.height,q=this.device.canvasContext.cssToDevicePixels([i+s,o+a],!0),G=q.x+q.width,H=q.y,Y={x:L,y:H,width:G-L,height:O-H},te=this._drawAndSample({layers:v,views:r,viewports:n,onViewportActive:f,deviceRect:Y,cullRect:{x:i,y:o,width:s,height:a},effects:m,pass:`picking:${l}`}),D=kN(te),le=new Map,ie=[],J=Number.isFinite(u);for(let X=0;X<D.length&&!(J&&ie.length>=u);X++){let me=D[X],Me={color:me.pickedColor,layer:null,index:me.pickedObjectIndex,picked:!0,x:i,y:o,pixelRatio:E};Me=dC({layer:me.pickedLayer,info:Me,mode:l});let ce=Me.layer.id;le.has(ce)||le.set(ce,new Set);let Ae=le.get(ce),rt=Me.object??Me.index;Ae.has(rt)||(Ae.add(rt),ie.push(Me))}return ie}async _drawAndSampleAsync({layers:e,views:r,viewports:n,onViewportActive:i,deviceRect:o,cullRect:s,effects:a,pass:l},u=!1){let f=u?this.depthFBO:this.pickingFBO,m={layers:e,layerFilter:this.layerFilter,views:r,viewports:n,onViewportActive:i,pickingFBO:f,deviceRect:o,cullRect:s,effects:a,pass:l,pickZ:u,preRenderStats:{},isPicking:!0};for(let G of a)G.useInPicking&&(m.preRenderStats[G.id]=G.preRender(m));let{decodePickingColor:v}=this.pickLayersPass.render(m),{x:E,y:S,width:L,height:O}=o,q=new(u?Float32Array:Uint8Array)(L*O*4);return this.device.readPixelsToArrayWebGL(f,{sourceX:E,sourceY:S,sourceWidth:L,sourceHeight:O,target:q}),{pickedColors:q,decodePickingColor:v}}_drawAndSample({layers:e,views:r,viewports:n,onViewportActive:i,deviceRect:o,cullRect:s,effects:a,pass:l},u=!1){let f=u?this.depthFBO:this.pickingFBO,m={layers:e,layerFilter:this.layerFilter,views:r,viewports:n,onViewportActive:i,pickingFBO:f,deviceRect:o,cullRect:s,effects:a,pass:l,pickZ:u,preRenderStats:{},isPicking:!0};for(let G of a)G.useInPicking&&(m.preRenderStats[G.id]=G.preRender(m));let{decodePickingColor:v}=this.pickLayersPass.render(m),{x:E,y:S,width:L,height:O}=o,q=new(u?Float32Array:Uint8Array)(L*O*4);return this.device.readPixelsToArrayWebGL(f,{sourceX:E,sourceY:S,sourceWidth:L,sourceHeight:O,target:q}),{pickedColors:q,decodePickingColor:v}}_getPickingRect({deviceX:e,deviceY:r,deviceRadius:n,deviceWidth:i,deviceHeight:o}){let s=Math.max(0,e-n),a=Math.max(0,r-n),l=Math.min(i,e+n+1)-s,u=Math.min(o,r+n+1)-a;return l<=0||u<=0?null:{x:s,y:a,width:l,height:u}}};var DTe={"top-left":{top:0,left:0},"top-right":{top:0,right:0},"bottom-left":{bottom:0,left:0},"bottom-right":{bottom:0,right:0},fill:{top:0,left:0,bottom:0,right:0}},NTe="top-left",HX="__root",mC=class{constructor({deck:e,parentElement:r}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,r?.classList.add("deck-widget-container"),this.parentElement=r}getWidgets(){return this.resolvedWidgets}setProps(e){if(e.widgets&&!Gi(e.widgets,this.widgets,1)){let r=e.widgets.filter(Boolean);this._setWidgets(r)}}finalize(){for(let e of this.getWidgets())this._removeWidget(e);this.defaultWidgets.length=0,this.resolvedWidgets.length=0;for(let e in this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(r=>r.id===e.id)||(this._addWidget(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}onRedraw({viewports:e,layers:r}){let n=e.reduce((i,o)=>(i[o.id]=o,i),{});for(let i of this.getWidgets()){let{viewId:o}=i;if(o){let s=n[o];s&&(i.onViewportChange&&i.onViewportChange(s),i.onRedraw?.({viewports:[s],layers:r}))}else{if(i.onViewportChange)for(let s of e)i.onViewportChange(s);i.onRedraw?.({viewports:e,layers:r})}}this.lastViewports=n,this._updateContainers()}onHover(e,r){for(let n of this.getWidgets()){let{viewId:i}=n;(!i||i===e.viewport?.id)&&n.onHover?.(e,r)}}onEvent(e,r){let n=kb[r.type];if(n)for(let i of this.getWidgets()){let{viewId:o}=i;(!o||o===e.viewport?.id)&&i[n]?.(e,r)}}_setWidgets(e){let r={};for(let n of this.resolvedWidgets)r[n.id]=n;this.resolvedWidgets.length=0;for(let n of this.defaultWidgets)r[n.id]=null,this.resolvedWidgets.push(n);for(let n of e){let i=r[n.id];i?i.viewId!==n.viewId||i.placement!==n.placement?(this._removeWidget(i),this._addWidget(n)):n!==i&&(i.setProps(n.props),n=i):this._addWidget(n),r[n.id]=null,this.resolvedWidgets.push(n)}for(let n in r){let i=r[n];i&&this._removeWidget(i)}this.widgets=e}_addWidget(e){let{viewId:r=null,placement:n=NTe}=e;e.widgetManager=this,e.deck=this.deck,e.rootElement=e.onCreateRootElement(),e.rootElement&&this._getContainer(r,n).append(e.rootElement),e.onAdd?.({deck:this.deck,viewId:r}),e.updateHTML()}_removeWidget(e){e.onRemove?.(),e.rootElement&&e.rootElement.remove(),e.rootElement=void 0,e.deck=void 0,e.widgetManager=void 0}_getContainer(e,r){let n=e||HX,i=this.containers[n];i||(i=document.createElement("div"),i.style.pointerEvents="none",i.style.position="absolute",i.style.overflow="hidden",this.parentElement?.append(i),this.containers[n]=i);let o=i.querySelector(`.${r}`);return o||(o=globalThis.document.createElement("div"),o.className=r,o.style.position="absolute",o.style.zIndex="2",Object.assign(o.style,DTe[r]),i.append(o)),o}_updateContainers(){let e=this.deck.width,r=this.deck.height;for(let n in this.containers){let i=this.lastViewports[n]||null,o=n===HX||i,s=this.containers[n];o?(s.style.display="block",s.style.left=`${i?i.x:0}px`,s.style.top=`${i?i.y:0}px`,s.style.width=`${i?i.width:e}px`,s.style.height=`${i?i.height:r}px`):s.style.display="none"}}};function sg(t,e){e&&Object.entries(e).map(([r,n])=>{r.startsWith("--")?t.style.setProperty(r,n):t.style[r]=n})}function AC(t,e){e&&Object.keys(e).map(r=>{r.startsWith("--")?t.style.removeProperty(r):t.style[r]=""})}var Tn=class{constructor(e,r){this.viewId=null,this.props={...r,...e},this.id=this.props.id}setProps(e){let r=this.props,n=this.rootElement;n&&r.className!==e.className&&(r.className&&n.classList.remove(r.className),e.className&&n.classList.add(e.className)),n&&!Gi(r.style,e.style,1)&&(AC(n,r.style),sg(n,e.style)),Object.assign(this.props,e),this.updateHTML()}updateHTML(){this.rootElement&&this.onRenderHTML(this.rootElement)}onCreateRootElement(){let e=["deck-widget",this.className,this.props.className],r=document.createElement("div");return e.filter(n=>typeof n=="string"&&n.length>0).forEach(n=>r.classList.add(n)),sg(r,this.props.style),r}onAdd(e){}onRemove(){}onViewportChange(e){}onRedraw(e){}onHover(e,r){}onClick(e,r){}onDrag(e,r){}onDragStart(e,r){}onDragEnd(e,r){}};Tn.defaultProps={id:"widget",style:{},className:""};var FTe={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"},ag=class extends Tn{constructor(e={}){super(e,ag.defaultProps),this.id="default-tooltip",this.placement="fill",this.className="deck-tooltip",this.isVisible=!1,this.setProps(e)}onCreateRootElement(){let e=document.createElement("div");return e.className=this.className,Object.assign(e.style,FTe),e}onRenderHTML(e){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&e!==this.lastViewport&&this.setTooltip(null)}onHover(e){let{deck:r}=this,n=r&&r.props.getTooltip;if(!n)return;let i=n(e);this.lastViewport=e.viewport,this.setTooltip(i,e.x,e.y)}setTooltip(e,r,n){let i=this.rootElement;if(i){if(typeof e=="string")i.innerText=e;else if(e)e.text&&(i.innerText=e.text),e.html&&(i.innerHTML=e.html),e.className&&(i.className=e.className);else{this.isVisible=!1,i.style.display="none";return}this.isVisible=!0,i.style.display="block",i.style.transform=`translate(${r}px, ${n}px)`,e&&typeof e=="object"&&"style"in e&&Object.assign(i.style,e.style)}}};ag.defaultProps={...Tn.defaultProps};Fn();fw();CA();function c0(){}var H3e=({isDragging:t})=>t?"grabbing":"grab",h$={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{},gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:c0,onWebGLInitialized:c0,onResize:c0,onViewStateChange:c0,onInteractionStateChange:c0,onBeforeRender:c0,onAfterRender:c0,onLoad:c0,onError:t=>Ar.error(t.message,t.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:H3e,getTooltip:null,debug:!1,drawPickingColors:!1},dw=class{constructor(e){this.width=0,this.height=0,this.userData={},this.device=null,this.canvas=null,this.viewManager=null,this.layerManager=null,this.effectManager=null,this.deckRenderer=null,this.deckPicker=null,this.eventManager=null,this.widgetManager=null,this.tooltip=null,this.animationLoop=null,this.cursorState={isHovering:!1,isDragging:!1},this.stats=new ol({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this._lastPointerDownInfo=null,this._onPointerMove=n=>{let{_pickRequest:i}=this;if(n.type==="pointerleave")i.x=-1,i.y=-1,i.radius=0;else{if(n.leftButton||n.rightButton)return;{let o=n.offsetCenter;if(!o)return;i.x=o.x,i.y=o.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=n},this._onEvent=n=>{let i=kb[n.type],o=n.offsetCenter;if(!i||!o||!this.layerManager)return;let s=this.layerManager.getLayers(),a=this.deckPicker.getLastPickedObject({x:o.x,y:o.y,layers:s,viewports:this.getViewports(o)},this._lastPointerDownInfo),{layer:l}=a,u=l&&(l[i]||l.props[i]),f=this.props[i],m=!1;u&&(m=u.call(l,a,n)),m||(f?.(a,n),this.widgetManager.onEvent(a,n))},this._onPointerDown=n=>{if(this.device?.type==="webgpu")return;let i=n.offsetCenter,o=this._pick("pickObject","pickObject Time",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=o.result[0]||o.emptyInfo},this.props={...h$,...e},e=this.props,e.viewState&&e.initialViewState&&Ar.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),this.viewState=this.props.initialViewState,e.device&&(this.device=e.device);let r=this.device;!r&&e.gl&&(e.gl instanceof WebGLRenderingContext&&Ar.error("WebGL1 context not supported.")(),r=pw.attach(e.gl)),r||(r=this._createDevice(e)),this.animationLoop=this._createAnimationLoop(r,e),this.setProps(e),e._typedArrayManagerProps&&mf.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}finalize(){this.animationLoop?.stop(),this.animationLoop?.destroy(),this.animationLoop=null,this._lastPointerDownInfo=null,this.layerManager?.finalize(),this.layerManager=null,this.viewManager?.finalize(),this.viewManager=null,this.effectManager?.finalize(),this.effectManager=null,this.deckRenderer?.finalize(),this.deckRenderer=null,this.deckPicker?.finalize(),this.deckPicker=null,this.eventManager?.destroy(),this.eventManager=null,this.widgetManager?.finalize(),this.widgetManager=null,!this.props.canvas&&!this.props.device&&!this.props.gl&&this.canvas&&(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null)}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&Ar.removed("onLayerHover","onHover")(),"onLayerClick"in e&&Ar.removed("onLayerClick","onClick")(),e.initialViewState&&!Gi(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),Object.assign(this.props,e),this._setCanvasSize(this.props);let r=Object.create(this.props);if(Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),e.device&&e.device.id!==this.device?.id&&(this.animationLoop?.stop(),this.canvas!==e.device.canvasContext?.canvas&&(this.canvas?.remove(),this.eventManager?.destroy(),this.canvas=null),Ar.log(`recreating animation loop for new device! id=${e.device.id}`)(),this.animationLoop=this._createAnimationLoop(e.device,e),this.animationLoop.start()),this.animationLoop?.setProps(r),e.useDevicePixels!==void 0&&this.device?.canvasContext?.canvas instanceof HTMLCanvasElement){this.device.canvasContext.props.useDevicePixels=e.useDevicePixels;let n=this.device.canvasContext.canvas,i={target:n,contentBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}],devicePixelContentBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}],borderBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}]};this.device.canvasContext._handleResize([i])}this.layerManager&&(this.viewManager.setProps(r),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(r),this.effectManager.setProps(r),this.deckRenderer.setProps(r),this.deckPicker.setProps(r),this.widgetManager.setProps(r)),this.stats.get("setProps Time").timeEnd()}needsRedraw(e={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let r=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);let n=this.viewManager.needsRedraw(e),i=this.layerManager.needsRedraw(e),o=this.effectManager.needsRedraw(e),s=this.deckRenderer.needsRedraw(e);return r=r||n||i||o||s,r}redraw(e){if(!this.layerManager)return;let r=this.needsRedraw({clearRedrawFlags:!0});r=e||r,r&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(r):this._drawLayers(r))}get isInitialized(){return this.viewManager!==null}getViews(){return ps(this.viewManager),this.viewManager.views}getViewports(e){return ps(this.viewManager),this.viewManager.getViewports(e)}getCanvas(){return this.canvas}pickObject(e){let r=this._pick("pickObject","pickObject Time",e).result;return r.length?r[0]:null}pickMultipleObjects(e){return e.depth=e.depth||10,this._pick("pickObject","pickMultipleObjects Time",e).result}pickObjects(e){return this._pick("pickObjects","pickObjects Time",e)}_addResources(e,r=!1){for(let n in e)this.layerManager.resourceManager.add({resourceId:n,data:e[n],forceUpdate:r})}_removeResources(e){for(let r of e)this.layerManager.resourceManager.remove(r)}_addDefaultEffect(e){this.effectManager.addDefaultEffect(e)}_addDefaultShaderModule(e){this.layerManager.addDefaultShaderModule(e)}_removeDefaultShaderModule(e){this.layerManager?.removeDefaultShaderModule(e)}_pick(e,r,n){ps(this.deckPicker);let{stats:i}=this;i.get("Pick Count").incrementCount(),i.get(r).timeStart();let o=this.deckPicker[e]({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(n),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...n});return i.get(r).timeEnd(),o}_createCanvas(e){let r=e.canvas;return typeof r=="string"&&(r=document.getElementById(r),ps(r)),r||(r=document.createElement("canvas"),r.id=e.id||"deckgl-overlay",e.width&&typeof e.width=="number"&&(r.width=e.width),e.height&&typeof e.height=="number"&&(r.height=e.height),(e.parent||document.body).appendChild(r)),Object.assign(r.style,e.style),r}_setCanvasSize(e){if(!this.canvas)return;let{width:r,height:n}=e;if(r||r===0){let i=Number.isFinite(r)?`${r}px`:r;this.canvas.style.width=i}if(n||n===0){let i=Number.isFinite(n)?`${n}px`:n;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=i}}_updateCanvasSize(){let{canvas:e}=this;if(!e)return;let r=e.clientWidth??e.width,n=e.clientHeight??e.height;(r!==this.width||n!==this.height)&&(this.width=r,this.height=n,this.viewManager?.setProps({width:r,height:n}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:r,height:n}))}_createAnimationLoop(e,r){let{gl:n,onError:i}=r;return new y1({device:e,autoResizeDrawingBuffer:!n,autoResizeViewport:!1,onInitialize:o=>this._setDevice(o.device),onRender:this._onRenderFrame.bind(this),onError:i})}_createDevice(e){let r=this.props.deviceProps?.createCanvasContext,n=typeof r=="object"?r:void 0,i={adapters:[],...e.deviceProps};i.adapters.includes(pw)||i.adapters.push(pw);let o={alphaMode:this.props.deviceProps?.type==="webgpu"?"premultiplied":void 0};return gp.createDevice({_reuseDevices:!0,type:"webgl",...i,createCanvasContext:{...o,...n,canvas:this._createCanvas(e),useDevicePixels:this.props.useDevicePixels,autoResize:!0}})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let{views:e}=this.props,r=Array.isArray(e)?e:e?[e]:[new b1({id:"default-view"})];return r.length&&this.props.controller&&(r[0].props.controller=this.props.controller),r}_onContextLost(){let{onError:e}=this.props;this.animationLoop&&e&&e(new Error("WebGL context is lost"))}_pickAndCallback(){if(this.device?.type==="webgpu")return;let{_pickRequest:e}=this;if(e.event){let{result:r,emptyInfo:n}=this._pick("pickObject","pickObject Time",e);this.cursorState.isHovering=r.length>0;let i=n,o=!1;for(let s of r)i=s,o=s.layer?.onHover(s,e.event)||o;o||(this.props.onHover?.(i,e.event),this.widgetManager.onHover(i,e.event)),e.event=null}}_updateCursor(){let e=this.props.parent||this.canvas;e&&(e.style.cursor=this.props.getCursor(this.cursorState))}_setDevice(e){if(this.device=e,!this.animationLoop)return;this.canvas||(this.canvas=this.device.canvasContext?.canvas,!this.canvas.isConnected&&this.props.parent&&this.props.parent.insertBefore(this.canvas,this.props.parent.firstChild)),this.device.type==="webgl"&&this.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),this.device.type==="webgl"&&this.props.onWebGLInitialized(this.device.gl);let r=new JA;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new Bb(this.props.parent||this.canvas,{touchAction:this.props.touchAction,recognizers:Object.keys(pN).map(i=>{let[o,s,a,l]=pN[i],u=this.props.eventRecognizerOptions?.[i],f={...s,...u,event:i};return{recognizer:new o(f),recognizeWith:a,requestFailure:l}}),events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let i in kb)this.eventManager.on(i,this._onEvent);this.viewManager=new Jb({timeline:r,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let n=this.viewManager.getViewports()[0];this.layerManager=new rg(this.device,{deck:this,stats:this.stats,viewport:n,timeline:r}),this.effectManager=new nw({deck:this,device:this.device}),this.deckRenderer=new og(this.device),this.deckPicker=new ow(this.device),this.widgetManager=new mC({deck:this,parentElement:this.canvas?.parentElement}),this.widgetManager.addDefault(new ag),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(e,r){let{device:n,gl:i}=this.layerManager.context;this.props.onBeforeRender({device:n,gl:i});let o={target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",effects:this.effectManager.getEffects(),...r};this.deckRenderer?.renderLayers(o),o.pass==="screen"&&this.widgetManager.onRedraw({viewports:o.viewports,layers:o.layers}),this.props.onAfterRender({device:n,gl:i})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),Ar.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.layerManager.updateLayers(),this.device?.type!=="webgpu"&&this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(e){let r=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState={...this.viewState,[e.viewId]:r},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(e){this.cursorState.isDragging=e.isDragging||!1,this.props.onInteractionStateChange(e)}_getFrameStats(){let{stats:e}=this;e.get("frameRate").timeEnd(),e.get("frameRate").timeStart();let r=this.animationLoop.stats;e.get("GPU Time").addTime(r.get("GPU Time").lastTiming),e.get("CPU Time").addTime(r.get("CPU Time").lastTiming)}_getMetrics(){let{metrics:e,stats:r}=this;e.fps=r.get("frameRate").getHz(),e.setPropsTime=r.get("setProps Time").time,e.updateAttributesTime=r.get("Update Attributes").time,e.framesRedrawn=r.get("Redraw Count").count,e.pickTime=r.get("pickObject Time").time+r.get("pickMultipleObjects Time").time+r.get("pickObjects Time").time,e.pickCount=r.get("Pick Count").count,e.gpuTime=r.get("GPU Time").time,e.cpuTime=r.get("CPU Time").time,e.gpuTimePerFrame=r.get("GPU Time").getAverageTime(),e.cpuTimePerFrame=r.get("CPU Time").getAverageTime();let n=gp.stats.get("Memory Usage");e.bufferMemory=n.get("Buffer Memory").count,e.textureMemory=n.get("Texture Memory").count,e.renderbufferMemory=n.get("Renderbuffer Memory").count,e.gpuMemory=n.get("GPU Memory").count}};dw.defaultProps=h$;dw.VERSION=EM;var C1=dw;Fn();Fn();function f$(t){switch(t){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return kA(t)}}var p$=BA;function mw(t,e,r){let n=r==="webgpu"&&e.type==="uint8"?"unorm8":e.type;return{attribute:t,format:e.size>1?`${n}x${e.size}`:e.type,byteOffset:e.offset||0}}function l0(t){return t.stride||t.size*t.bytesPerElement}function d$(t,e){return t.type===e.type&&t.size===e.size&&l0(t)===l0(e)&&(t.offset||0)===(e.offset||0)}function oF(t,e){e.offset&&Ar.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let r=l0(t),n=e.vertexOffset!==void 0?e.vertexOffset:t.vertexOffset||0,i=e.elementOffset||0,o=n*r+i*t.bytesPerElement+(t.offset||0);return{...e,offset:o,stride:r}}function W3e(t,e){let r=oF(t,e);return{high:r,low:{...r,offset:r.offset+t.size*4}}}var Aw=class{constructor(e,r,n){this._buffer=null,this.device=e,this.id=r.id||"",this.size=r.size||1;let i=r.logicalType||r.type,o=i==="float64",{defaultValue:s}=r;s=Number.isFinite(s)?[s]:s||new Array(this.size).fill(0);let a;o?a="float32":!i&&r.isIndexed?a="uint32":a=i||"float32";let l=f$(i||a);this.doublePrecision=o,o&&r.fp64===!1&&(l=Float32Array),this.value=null,this.settings={...r,defaultType:l,defaultValue:s,logicalType:i,type:a,normalized:a.includes("norm"),size:this.size,bytesPerElement:l.BYTES_PER_ELEMENT},this.state={...n,externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1}}get isConstant(){return this.state.constant}get buffer(){return this._buffer}get byteOffset(){let e=this.getAccessor();return e.vertexOffset?e.vertexOffset*l0(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),mf.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,r=null){let n={};if(this.state.constant){let i=this.value;if(r){let o=oF(this.getAccessor(),r),s=o.offset/i.BYTES_PER_ELEMENT,a=o.size||this.size;n[e]=i.subarray(s,s+a)}else n[e]=i}else n[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?n[`${e}64Low`]=n[e]:n[`${e}64Low`]=new Float32Array(this.size)),n}_getBufferLayout(e=this.id,r=null){let n=this.getAccessor(),i=[],o={name:this.id,byteStride:l0(n),attributes:i};if(this.doublePrecision){let s=W3e(n,r||{});i.push(mw(e,{...n,...s.high},this.device.type),mw(`${e}64Low`,{...n,...s.low},this.device.type))}else if(r){let s=oF(n,r);i.push(mw(e,{...n,...s},this.device.type))}else i.push(mw(e,n,this.device.type));return o}setAccessor(e){this.state.bufferAccessor=e}getAccessor(){return this.state.bufferAccessor}getBounds(){if(this.state.bounds)return this.state.bounds;let e=null;if(this.state.constant&&this.value){let r=Array.from(this.value);e=[r,r]}else{let{value:r,numInstances:n,size:i}=this,o=n*i;if(r&&o&&r.length>=o){let s=new Array(i).fill(1/0),a=new Array(i).fill(-1/0);for(let l=0;l<o;)for(let u=0;u<i;u++){let f=r[l++];f<s[u]&&(s[u]=f),f>a[u]&&(a[u]=f)}e=[s,a]}}return this.state.bounds=e,e}setData(e){let{state:r}=this,n;ArrayBuffer.isView(e)?n={value:e}:e instanceof $n?n={buffer:e}:n=e;let i={...this.settings,...n};if(ArrayBuffer.isView(n.value)){if(!n.type)if(this.doublePrecision&&n.value instanceof Float64Array)i.type="float32";else{let s=p$(n.value);i.type=i.normalized?s.replace("int","norm"):s}i.bytesPerElement=n.value.BYTES_PER_ELEMENT,i.stride=l0(i)}if(r.bounds=null,n.constant){let o=n.value;if(o=this._normalizeValue(o,[],0),this.settings.normalized&&(o=this.normalizeConstant(o)),!(!r.constant||!this._areValuesEqual(o,this.value)))return!1;r.externalBuffer=null,r.constant=!0,this.value=ArrayBuffer.isView(o)?o:new Float32Array(o)}else if(n.buffer){let o=n.buffer;r.externalBuffer=o,r.constant=!1,this.value=n.value||null}else if(n.value){this._checkExternalBuffer(n);let o=n.value;r.externalBuffer=null,r.constant=!1,this.value=o;let{buffer:s}=this,a=l0(i),l=(i.vertexOffset||0)*a;if(this.doublePrecision&&o instanceof Float64Array&&(o=tC(o,i)),this.settings.isIndexed){let f=this.settings.defaultType;o.constructor!==f&&(o=new f(o))}let u=o.byteLength+l+a*2;(!s||s.byteLength<u)&&(s=this._createBuffer(u)),s.write(o,l)}return this.setAccessor(i),!0}updateSubBuffer(e={}){this.state.bounds=null;let r=this.value,{startOffset:n=0,endOffset:i}=e;this.buffer.write(this.doublePrecision&&r instanceof Float64Array?tC(r,{size:this.size,startIndex:n,endIndex:i}):r.subarray(n,i),n*r.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,r=!1){let{state:n}=this,i=n.allocatedValue,o=mf.allocate(i,e+1,{size:this.size,type:this.settings.defaultType,copy:r});this.value=o;let{byteOffset:s}=this,{buffer:a}=this;return(!a||a.byteLength<o.byteLength+s)&&(a=this._createBuffer(o.byteLength+s),r&&i&&a.write(i instanceof Float64Array?tC(i,this):i,s)),n.allocatedValue=o,n.constant=!1,n.externalBuffer=null,this.setAccessor(this.settings),!0}_checkExternalBuffer(e){let{value:r}=e;if(!ArrayBuffer.isView(r))throw new Error(`Attribute ${this.id} value is not TypedArray`);let n=this.settings.defaultType,i=!1;if(this.doublePrecision&&(i=r.BYTES_PER_ELEMENT<4),i)throw new Error(`Attribute ${this.id} does not support ${r.constructor.name}`);!(r instanceof n)&&this.settings.normalized&&!("normalized"in e)&&Ar.warn(`Attribute ${this.id} is normalized`)()}normalizeConstant(e){switch(this.settings.type){case"snorm8":return new Float32Array(e).map(r=>(r+128)/255*2-1);case"snorm16":return new Float32Array(e).map(r=>(r+32768)/65535*2-1);case"unorm8":return new Float32Array(e).map(r=>r/255);case"unorm16":return new Float32Array(e).map(r=>r/65535);default:return e}}_normalizeValue(e,r,n){let{defaultValue:i,size:o}=this.settings;if(Number.isFinite(e))return r[n]=e,r;if(!e){let s=o;for(;--s>=0;)r[n+s]=i[s];return r}switch(o){case 4:r[n+3]=Number.isFinite(e[3])?e[3]:i[3];case 3:r[n+2]=Number.isFinite(e[2])?e[2]:i[2];case 2:r[n+1]=Number.isFinite(e[1])?e[1]:i[1];case 1:r[n+0]=Number.isFinite(e[0])?e[0]:i[0];break;default:let s=o;for(;--s>=0;)r[n+s]=Number.isFinite(e[s])?e[s]:i[s]}return r}_areValuesEqual(e,r){if(!e||!r)return!1;let{size:n}=this;for(let i=0;i<n;i++)if(e[i]!==r[i])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();let{isIndexed:r,type:n}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:(r?$n.INDEX:$n.VERTEX)|$n.COPY_DST,indexType:r?n:void 0,byteLength:e}),this._buffer}};var m$=[],A$=[];function ua(t,e=0,r=1/0){let n=m$,i={index:-1,data:t,target:[]};return t?typeof t[Symbol.iterator]=="function"?n=t:t.length>0&&(A$.length=t.length,n=A$):n=m$,(e>0||Number.isFinite(r))&&(n=(Array.isArray(n)?n:Array.from(n)).slice(e,r),i.index=e-1),{iterable:n,objectInfo:i}}function HC(t){return t&&t[Symbol.asyncIterator]}function WC(t,e){let{size:r,stride:n,offset:i,startIndices:o,nested:s}=e,a=t.BYTES_PER_ELEMENT,l=n?n/a:r,u=i?i/a:0,f=Math.floor((t.length-u)/l);return(m,{index:v,target:E})=>{if(!o){let q=v*l+u;for(let G=0;G<r;G++)E[G]=t[q+G];return E}let S=o[v],L=o[v+1]||f,O;if(s){O=new Array(L-S);for(let q=S;q<L;q++){let G=q*l+u;E=new Array(r);for(let H=0;H<r;H++)E[H]=t[G+H];O[q-S]=E}}else if(l===r)O=t.subarray(S*r+u,L*r+u);else{O=new t.constructor((L-S)*r);let q=0;for(let G=S;G<L;G++){let H=G*l+u;for(let Y=0;Y<r;Y++)O[q++]=t[H+Y]}}return O}}var g$=[],gw=[[0,1/0]];function y$(t,e){if(t===gw||(e[0]<0&&(e[0]=0),e[0]>=e[1]))return t;let r=[],n=t.length,i=0;for(let o=0;o<n;o++){let s=t[o];s[1]<e[0]?(r.push(s),i=o+1):s[0]>e[1]?r.push(s):e=[Math.min(s[0],e[0]),Math.max(s[1],e[1])]}return r.splice(i,0,e),r}var G3e={interpolation:{duration:0,easing:t=>t},spring:{stiffness:.05,damping:.5}};function qC(t,e){if(!t)return null;Number.isFinite(t)&&(t={type:"interpolation",duration:t});let r=t.type||"interpolation";return{...G3e[r],...e,...t,type:r}}var Wd=class extends Aw{constructor(e,r){super(e,r,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:gw}),this.constant=!1,this.settings.update=r.update||(r.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}get startIndices(){return this.state.startIndices}set startIndices(e){this.state.startIndices=e}needsUpdate(){return this.state.needsUpdate}needsRedraw({clearChangedFlags:e=!1}={}){let r=this.state.needsRedraw;return this.state.needsRedraw=r&&!e,r}layoutChanged(){return this.state.layoutChanged}setAccessor(e){var r;(r=this.state).layoutChanged||(r.layoutChanged=!d$(e,this.getAccessor())),super.setAccessor(e)}getUpdateTriggers(){let{accessor:e}=this.settings;return[this.id].concat(typeof e!="function"&&e||[])}supportsTransition(){return Boolean(this.settings.transition)}getTransitionSetting(e){if(!e||!this.supportsTransition())return null;let{accessor:r}=this.settings,n=this.settings.transition,i=Array.isArray(r)?e[r.find(o=>e[o])]:e[r];return qC(i,n)}setNeedsUpdate(e=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),r){let{startRow:n=0,endRow:i=1/0}=r;this.state.updateRanges=y$(this.state.updateRanges,[n,i])}else this.state.updateRanges=gw}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=g$}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:r,settings:n}=this;return n.noAlloc?!1:n.update?(super.allocate(e,r.updateRanges!==gw),!0):!1}updateBuffer({numInstances:e,data:r,props:n,context:i}){if(!this.needsUpdate())return!1;let{state:{updateRanges:o},settings:{update:s,noAlloc:a}}=this,l=!0;if(s){for(let[u,f]of o)s.call(i,this,{data:r,startRow:u,endRow:f,props:n,numInstances:e});if(this.value)if(this.constant||!this.buffer||this.buffer.byteLength<this.value.byteLength+this.byteOffset)this.setData({value:this.value,constant:this.constant}),this.constant=!1;else for(let[u,f]of o){let m=Number.isFinite(u)?this.getVertexOffset(u):0,v=Number.isFinite(f)?this.getVertexOffset(f):a||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:m,endOffset:v})}this._checkAttributeArray()}else l=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),l}setConstantValue(e){let r=this.device.type==="webgpu";if(r||e===void 0||typeof e=="function"){if(r&&typeof e!="function"){let i=this._normalizeValue(e,[],0);this._areValuesEqual(i,this.value)||this.setNeedsUpdate("WebGPU constant updated")}return!1}return this.setData({constant:!0,value:e})&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0}setExternalBuffer(e){let{state:r}=this;return e?(this.clearNeedsUpdate(),r.lastExternalBuffer===e||(r.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e)),!0):(r.lastExternalBuffer=null,!1)}setBinaryValue(e,r=null){let{state:n,settings:i}=this;if(!e)return n.binaryValue=null,n.binaryAccessor=null,!1;if(i.noAlloc)return!1;if(n.binaryValue===e)return this.clearNeedsUpdate(),!0;if(n.binaryValue=e,this.setNeedsRedraw(),i.transform||r!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let s=e;ps(ArrayBuffer.isView(s.value),`invalid ${i.accessor}`);let a=Boolean(s.size)&&s.size!==this.size;return n.binaryAccessor=WC(s.value,{size:s.size||this.size,stride:s.stride,offset:s.offset,startIndices:r,nested:a}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}getVertexOffset(e){let{startIndices:r}=this;return(r?e<r.length?r[e]:this.numInstances:e)*this.size}getValue(){let e=this.settings.shaderAttributes,r=super.getValue();if(!e)return r;for(let n in e)Object.assign(r,super.getValue(n,e[n]));return r}getBufferLayout(e){this.state.layoutChanged=!1;let r=this.settings.shaderAttributes,n=super._getBufferLayout(),{stepMode:i}=this.settings;if(i==="dynamic"?n.stepMode=e?e.isInstanced?"instance":"vertex":"instance":n.stepMode=i??"vertex",!r)return n;for(let o in r){let s=super._getBufferLayout(o,r[o]);n.attributes.push(...s.attributes)}return n}_autoUpdater(e,{data:r,startRow:n,endRow:i,props:o,numInstances:s}){if(e.constant&&this.context.device.type!=="webgpu")return;let{settings:a,state:l,value:u,size:f,startIndices:m}=e,{accessor:v,transform:E}=a,S=l.binaryAccessor||(typeof v=="function"?v:o[v]);typeof S!="function"&&typeof v=="string"&&(S=()=>o[v]),ps(typeof S=="function",`accessor "${v}" is not a function`);let L=e.getVertexOffset(n),{iterable:O,objectInfo:q}=ua(r,n,i);for(let G of O){q.index++;let H=S(G,q);if(E&&(H=E.call(this,H)),m){let Y=(q.index<m.length-1?m[q.index+1]:s)-m[q.index];if(H&&Array.isArray(H[0])){let te=L;for(let D of H)e._normalizeValue(D,u,te),te+=f}else H&&H.length>f?u.set(H,L):(e._normalizeValue(H,q.target,0),uC({target:u,source:q.target,start:L,count:Y}));L+=Y*f}else e._normalizeValue(H,u,L),L+=f}}_validateAttributeUpdaters(){let{settings:e}=this;if(!(e.noAlloc||typeof e.update=="function"))throw new Error(`Attribute ${this.id} missing update or accessor`)}_checkAttributeArray(){let{value:e}=this,r=Math.min(4,this.size);if(e&&e.length>=r){let n=!0;switch(r){case 4:n=n&&Number.isFinite(e[3]);case 3:n=n&&Number.isFinite(e[2]);case 2:n=n&&Number.isFinite(e[1]);case 1:n=n&&Number.isFinite(e[0]);break;default:n=!1}if(!n)throw new Error(`Illegal attribute generated for ${this.id}`)}}};function sF(t){let{source:e,target:r,start:n=0,size:i,getData:o}=t,s=t.end||r.length,a=e.length,l=s-n;if(a>l){r.set(e.subarray(0,l),n);return}if(r.set(e,n),!o)return;let u=a;for(;u<l;){let f=o(u,e);for(let m=0;m<i;m++)r[n+u]=f[m]||0,u++}}function _$({source:t,target:e,size:r,getData:n,sourceStartIndices:i,targetStartIndices:o}){if(!i||!o)return sF({source:t,target:e,size:r,getData:n}),e;let s=0,a=0,l=n&&((f,m)=>n(f+a,m)),u=Math.min(i.length,o.length);for(let f=1;f<u;f++){let m=i[f]*r,v=o[f]*r;sF({source:t.subarray(s,m),target:e,start:a,end:v,size:r,getData:l}),s=m,a=v}return a<e.length&&sF({source:[],target:e,start:a,size:r,getData:l}),e}function x$(t){let{device:e,settings:r,value:n}=t,i=new Wd(e,r);return i.setData({value:n instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:r.normalized}),i}function GC(t){switch(t){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`No defined attribute type for size "${t}"`)}}function XC(t){switch(t){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4";default:throw new Error("invalid type size")}}function YC(t){t.push(t.shift())}function v$(t,e){let{doublePrecision:r,settings:n,value:i,size:o}=t,s=r&&i instanceof Float64Array?2:1,a=0,{shaderAttributes:l}=t.settings;if(l)for(let u of Object.values(l))a=Math.max(a,u.vertexOffset??0);return(n.noAlloc?i.length:(e+a)*o)*s}function $C({device:t,source:e,target:r}){return(!r||r.byteLength<e.byteLength)&&(r?.destroy(),r=t.createBuffer({byteLength:e.byteLength,usage:e.usage})),r}function KC({device:t,buffer:e,attribute:r,fromLength:n,toLength:i,fromStartIndices:o,getData:s=a=>a}){let a=r.doublePrecision&&r.value instanceof Float64Array?2:1,l=r.size*a,u=r.byteOffset,f=r.settings.bytesPerElement<4?u/r.settings.bytesPerElement*4:u,m=r.startIndices,v=o&&m,E=r.isConstant;if(!v&&e&&n>=i)return e;let S=r.value instanceof Float64Array?Float32Array:r.value.constructor,L=E?r.value:new S(r.getBuffer().readSyncWebGL(u,i*S.BYTES_PER_ELEMENT).buffer);if(r.settings.normalized&&!E){let H=s;s=(Y,te)=>r.normalizeConstant(H(Y,te))}let O=E?(H,Y)=>s(L,Y):(H,Y)=>s(L.subarray(H+u,H+u+l),Y),q=e?new Float32Array(e.readSyncWebGL(f,n*4).buffer):new Float32Array(0),G=new Float32Array(i);return _$({source:q,target:G,sourceStartIndices:o,targetStartIndices:m,size:l,getData:O}),(!e||e.byteLength<G.byteLength+f)&&(e?.destroy(),e=t.createBuffer({byteLength:G.byteLength+f,usage:35050})),e.write(G,f),e}var I1=class{constructor({device:e,attribute:r,timeline:n}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new gf(n),this.attribute=r,this.attributeInTransition=x$(r),this.currentStartIndices=r.startIndices}get inProgress(){return this.transition.inProgress}start(e,r,n=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=v$(this.attribute,r),this.transition.start({...e,duration:n})}update(){let e=this.transition.update();return e&&this.onUpdate(),e}setBuffer(e){this.attributeInTransition.setData({buffer:e,normalized:this.attribute.settings.normalized,value:this.attributeInTransition.value})}cancel(){this.transition.cancel()}delete(){this.cancel();for(let e of this.buffers)e.destroy();this.buffers.length=0}};var yw=class extends I1{constructor({device:e,attribute:r,timeline:n}){super({device:e,attribute:r,timeline:n}),this.type="interpolation",this.transform=K3e(e,r)}start(e,r){let n=this.currentLength,i=this.currentStartIndices;if(super.start(e,r,e.duration),e.duration<=0){this.transition.cancel();return}let{buffers:o,attribute:s}=this;YC(o),o[0]=KC({device:this.device,buffer:o[0],attribute:s,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter}),o[1]=$C({device:this.device,source:o[0],target:o[1]}),this.setBuffer(o[1]);let{transform:a}=this,l=a.model,u=Math.floor(this.currentLength/s.size);w$(s)&&(u/=2),l.setVertexCount(u),s.isConstant?(l.setAttributes({aFrom:o[0]}),l.setConstantAttributes({aTo:s.value})):l.setAttributes({aFrom:o[0],aTo:s.getBuffer()}),a.transformFeedback.setBuffers({vCurrent:o[1]})}onUpdate(){let{duration:e,easing:r}=this.settings,{time:n}=this.transition,i=n/e;r&&(i=r(i));let{model:o}=this.transform,s={time:i};o.shaderInputs.setProps({interpolation:s}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}},X3e=`uniform interpolationUniforms {
|
|
2972
|
+
`;function yTe(t,e){if(e.filter){let r=typeof e.filter=="string"?e.filter:`${t.name}_filterColor_ext`;return ATe(r)}if(e.sampler){let r=typeof e.sampler=="string"?e.sampler:`${t.name}_sampleColor`;return gTe(r)}return""}var _Te={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant",blendAlphaDstFactor:"zero"},Nd=class extends df{constructor(){super(...arguments),this._colorEncoderState=null}render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):super.render(e)}_drawPickingBuffer({layers:e,layerFilter:r,views:n,viewports:i,onViewportActive:o,pickingFBO:s,deviceRect:{x:a,y:l,width:u,height:f},cullRect:m,effects:v,pass:E="picking",pickZ:S,shaderModuleProps:L}){this.pickZ=S;let O=this._resetColorEncoder(S),q=[a,l,u,f],G=super.render({target:s,layers:e,layerFilter:r,views:n,viewports:i,onViewportActive:o,cullRect:m,effects:v?.filter(Y=>Y.useInPicking),pass:E,isPicking:!0,shaderModuleProps:L,clearColor:[0,0,0,0],colorMask:15,scissorRect:q});return this._colorEncoderState=null,{decodePickingColor:O&&vTe.bind(null,O),stats:G}}shouldDrawLayer(e){let{pickable:r,operation:n}=e.props;return r&&n.includes("draw")||n.includes("terrain")||n.includes("mask")}getShaderModuleProps(e,r,n){return{picking:{isActive:1,isAttribute:this.pickZ},lighting:{enabled:!1}}}getLayerParameters(e,r,n){let i={...e.props.parameters},{pickable:o,operation:s}=e.props;return!this._colorEncoderState||s.includes("terrain")?i.blend=!1:o&&s.includes("draw")&&(Object.assign(i,_Te),i.blend=!0,i.blendColor=xTe(this._colorEncoderState,e,n)),i}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function xTe(t,e,r){let{byLayer:n,byAlpha:i}=t,o,s=n.get(e);return s?(s.viewports.push(r),o=s.a):(o=n.size+1,o<=255?(s={a:o,layer:e,viewports:[r]},n.set(e,s),i[o]=s):(Ar.warn("Too many pickable layers, only picking the first 255")(),o=0)),[0,0,0,o/255]}function vTe(t,e){let r=t.byAlpha[e[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(e)}}var s0={NO_STATE:"Awaiting state",MATCHED:"Matched. State transferred from previous layer",INITIALIZED:"Initialized",AWAITING_GC:"Discarded. Awaiting garbage collection",AWAITING_FINALIZATION:"No longer matched. Awaiting garbage collection",FINALIZED:"Finalized! Awaiting garbage collection"},x1=Symbol.for("component"),Rh=Symbol.for("propTypes"),lC=Symbol.for("deprecatedProps"),Fd=Symbol.for("asyncPropDefaults"),Ep=Symbol.for("asyncPropOriginal"),Af=Symbol.for("asyncPropResolved");function Mp(t,e=()=>!0){return Array.isArray(t)?UX(t,e,[]):e(t)?[t]:[]}function UX(t,e,r){let n=-1;for(;++n<t.length;){let i=t[n];Array.isArray(i)?UX(i,e,r):e(i)&&r.push(i)}return r}function uC({target:t,source:e,start:r=0,count:n=1}){let i=e.length,o=n*i,s=0;for(let a=r;s<i;s++)t[a++]=e[s];for(;s<o;)s<o-s?(t.copyWithin(r+s,r,r+s),s*=2):(t.copyWithin(r+s,r,r+o-s),s=o);return t}CA();var Zb=class{constructor(e,r,n){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=n,this.setData(r)}subscribe(e){this._subscribers.add(e)}unsubscribe(e){this._subscribers.delete(e)}inUse(){return this._subscribers.size>0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(e,r){if(e===this._data&&!r)return;this._data=e;let n=++this._loadCount,i=e;typeof e=="string"&&(i=za(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then(o=>{this._loadCount===n&&(this.isLoaded=!0,this._error=void 0,this._content=o)}).catch(o=>{this._loadCount===n&&(this.isLoaded=!0,this._error=o||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=e);for(let o of this._subscribers)o.onChange(this.getData())}};var Qb=class{constructor(e){this.protocol=e.protocol||"resource://",this._context={device:e.device,gl:e.device?.gl,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(e){return e.startsWith(this.protocol)?!0:e in this._resources}add({resourceId:e,data:r,forceUpdate:n=!1,persistent:i=!0}){let o=this._resources[e];o?o.setData(r,n):(o=new Zb(e,r,this._context),this._resources[e]=o),o.persistent=i}remove(e){let r=this._resources[e];r&&(r.delete(),delete this._resources[e])}unsubscribe({consumerId:e}){let r=this._consumers[e];if(r){for(let n in r){let i=r[n],o=this._resources[i.resourceId];o&&o.unsubscribe(i)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:r,consumerId:n,requestId:i="default"}){let{_resources:o,protocol:s}=this;e.startsWith(s)&&(e=e.replace(s,""),o[e]||this.add({resourceId:e,data:null,persistent:!1}));let a=o[e];if(this._track(n,i,a,r),a)return a.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let e in this._resources)this._resources[e].delete()}_track(e,r,n,i){let o=this._consumers,s=o[e]=o[e]||{},a=s[r],l=a&&a.resourceId&&this._resources[a.resourceId];l&&(l.unsubscribe(a),this.prune()),n&&(a?(a.onChange=i,a.resourceId=n.id):a={onChange:i,resourceId:n.id},s[r]=a,n.subscribe(a))}_prune(){this._pruneRequest=null;for(let e of Object.keys(this._resources)){let r=this._resources[e];!r.persistent&&!r.inUse()&&(r.delete(),delete this._resources[e])}}};var bTe="layerManager.setLayers",wTe="layerManager.activateViewport",rg=class{constructor(e,r){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=a=>{sa(wTe,this,a),a&&(this.context.viewport=a)};let{deck:n,stats:i,viewport:o,timeline:s}=r||{};this.layers=[],this.resourceManager=new Qb({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:n,shaderAssembler:eC(e?.info?.shadingLanguage||"glsl"),defaultShaderModules:[iN],renderPass:void 0,stats:i||new ol({id:"deck.gl"}),viewport:o||new Va({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:s||new JA,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(let e of this.layers)this._finalizeLayer(e)}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);for(let n of this.layers){let i=n.getNeedsRedraw(e);r=r||i}return r}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._defaultShaderModulesChanged?"shader modules changed":this._needsUpdate}setNeedsRedraw(e){this._needsRedraw=this._needsRedraw||e}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e}getLayers({layerIds:e}={}){return e?this.layers.filter(r=>e.find(n=>r.id.indexOf(n)===0)):this.layers}setProps(e){"debug"in e&&(this._debug=e.debug),"userData"in e&&(this.context.userData=e.userData),"layers"in e&&(this._nextLayers=e.layers),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,r){sa(bTe,this,r,e),this._lastRenderedLayers=e;let n=Mp(e,Boolean);for(let i of n)i.context=this.context;this._updateLayers(this.layers,n)}updateLayers(){let e=this.needsUpdate();e&&(this.setNeedsRedraw(`updating layers: ${e}`),this.setLayers(this._nextLayers||this._lastRenderedLayers,e)),this._nextLayers=null}addDefaultShaderModule(e){let{defaultShaderModules:r}=this.context;r.find(n=>n.name===e.name)||(r.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){let{defaultShaderModules:r}=this.context,n=r.findIndex(i=>i.name===e.name);n>=0&&(r.splice(n,1),this._defaultShaderModulesChanged=!0)}_handleError(e,r,n){n.raiseError(r,`${e} of ${n}`)}_updateLayers(e,r){let n={};for(let s of e)n[s.id]?Ar.warn(`Multiple old layers with same id ${s.id}`)():n[s.id]=s;if(this._defaultShaderModulesChanged){for(let s of e)s.setNeedsUpdate(),s.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let i=[];this._updateSublayersRecursively(r,n,i),this._finalizeOldLayers(n);let o=!1;for(let s of i)if(s.hasUniformTransition()){o=`Uniform transition in ${s}`;break}this._needsUpdate=o,this.layers=i}_updateSublayersRecursively(e,r,n){for(let i of e){i.context=this.context;let o=r[i.id];o===null&&Ar.warn(`Multiple new layers with same id ${i.id}`)(),r[i.id]=null;let s=null;try{this._debug&&o!==i&&i.validateProps(),o?(this._transferLayerState(o,i),this._updateLayer(i)):this._initializeLayer(i),n.push(i),s=i.isComposite?i.getSubLayers():null}catch(a){this._handleError("matching",a,i)}s&&this._updateSublayersRecursively(s,r,n)}}_finalizeOldLayers(e){for(let r in e){let n=e[r];n&&this._finalizeLayer(n)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=s0.INITIALIZED}catch(r){this._handleError("initialization",r,e)}}_transferLayerState(e,r){r._transferState(e),r.lifecycle=s0.MATCHED,r!==e&&(e.lifecycle=s0.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(r){this._handleError("update",r,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=s0.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=s0.FINALIZED}catch(r){this._handleError("finalization",r,e)}}};function Gi(t,e,r){if(t===e)return!0;if(!r||!t||!e)return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!Gi(t[n],e[n],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let o of n)if(!e.hasOwnProperty(o)||!Gi(t[o],e[o],r-1))return!1;return!0}return!1}var Jb=class{constructor(e){this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=e.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=e.eventManager,this._eventCallbacks={onViewStateChange:e.onViewStateChange,onInteractionStateChange:e.onInteractionStateChange},Object.seal(this),this.setProps(e)}finalize(){for(let e in this.controllers){let r=this.controllers[e];r&&r.finalize()}this.controllers={}}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}updateViewStates(){for(let e in this.controllers){let r=this.controllers[e];r&&r.updateTransition()}}getViewports(e){return e?this._viewports.filter(r=>r.containsPixel(e)):this._viewports}getViews(){let e={};return this.views.forEach(r=>{e[r.id]=r}),e}getView(e){return this.views.find(r=>r.id===e)}getViewState(e){let r=typeof e=="string"?this.getView(e):e,n=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(n):n}getViewport(e){return this._viewportMap[e]}unproject(e,r){let n=this.getViewports(),i={x:e[0],y:e[1]};for(let o=n.length-1;o>=0;--o){let s=n[o];if(s.containsPixel(i)){let a=e.slice();return a[0]-=s.x,a[1]-=s.y,s.unproject(a,r)}}return null}setProps(e){e.views&&this._setViews(e.views),e.viewState&&this._setViewState(e.viewState),("width"in e||"height"in e)&&this._setSize(e.width,e.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(e,r){(e!==this.width||r!==this.height)&&(this.width=e,this.height=r,this.setNeedsUpdate("Size changed"))}_setViews(e){e=Mp(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?(!Gi(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):Ar.warn("missing `viewState` or `initialViewState`")()}_createController(e,r){let n=r.type;return new n({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._eventCallbacks.onViewStateChange,onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:o=>this.getView(e.id)?.makeViewport({viewState:o,width:this.width,height:this.height})})}_updateController(e,r,n,i){let o=e.controller;if(o&&n){let s={...r,...o,id:e.id,x:n.x,y:n.y,width:n.width,height:n.height};return(!i||i.constructor!==o.type)&&(i=this._createController(e,s)),i&&i.setProps(s),i}return null}_rebuildViewports(){let{views:e}=this,r=this.controllers;this._viewports=[],this.controllers={};let n=!1;for(let i=e.length;i--;){let o=e[i],s=this.getViewState(o),a=o.makeViewport({viewState:s,width:this.width,height:this.height}),l=r[o.id],u=Boolean(o.controller);u&&!l&&(n=!0),(n||!u)&&l&&(l.finalize(),l=null),this.controllers[o.id]=this._updateController(o,s,a,l),a&&this._viewports.unshift(a)}for(let i in r){let o=r[i];o&&!this.controllers[i]&&o.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(e=>{e.id&&(this._viewportMap[e.id]=this._viewportMap[e.id]||e)})}_diffViews(e,r){return e.length!==r.length?!0:e.some((n,i)=>!e[i].equals(r[i]))}};var TTe=/([0-9]+\.?[0-9]*)(%|px)/;function zd(t){switch(typeof t){case"number":return{position:t,relative:!1};case"string":let e=TTe.exec(t);if(e&&e.length>=3){let r=e[2]==="%",n=parseFloat(e[1]);return{position:r?n/100:n,relative:r}}default:throw new Error(`Could not parse position string ${t}`)}}function Ud(t,e){return t.relative?Math.round(t.position*e):t.position}var Nl=class{constructor(e){let{id:r,x:n=0,y:i=0,width:o="100%",height:s="100%",padding:a=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=zd(n),this._y=zd(i),this._width=zd(o),this._height=zd(s),this._padding=a&&{left:zd(a.left||0),right:zd(a.right||0),top:zd(a.top||0),bottom:zd(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.constructor===e.constructor&&Gi(this.props,e.props,2)}clone(e){let r=this.constructor;return new r({...this.props,...e})}makeViewport({width:e,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:e,height:r});if(!i.height||!i.width)return null;let o=this.getViewportType(n);return new o({...n,...this.props,...i})}getViewStateId(){let{viewState:e}=this.props;return typeof e=="string"?e:e?.id||this.id}filterViewState(e){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;let r={...e};for(let n in this.props.viewState)n!=="id"&&(r[n]=this.props.viewState[n]);return r}return e}getDimensions({width:e,height:r}){let n={x:Ud(this._x,e),y:Ud(this._y,r),width:Ud(this._width,e),height:Ud(this._height,r)};return this._padding&&(n.padding={left:Ud(this._padding.left,e),top:Ud(this._padding.top,r),right:Ud(this._padding.right,e),bottom:Ud(this._padding.bottom,r)}),n}get controller(){let e=this.props.controller;return e?e===!0?{type:this.ControllerType}:typeof e=="function"?{type:e}:{type:this.ControllerType,...e}:null}};var gf=class{constructor(e){this._inProgress=!1,this._handle=null,this.time=0,this.settings={duration:0},this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:e,settings:r}=this;this._handle=e.addChannel({delay:e.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var VX=()=>{},ew={BREAK:1,SNAP_TO_END:2,IGNORE:3},ETe=t=>t,MTe=ew.BREAK,tw=class{constructor(e){this._onTransitionUpdate=r=>{let{time:n,settings:{interpolator:i,startProps:o,endProps:s,duration:a,easing:l}}=r,u=l(n/a),f=i.interpolateProps(o,s,u);this.propsInTransition=this.getControllerState({...this.props,...f}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new gf(e.timeline),this.onViewStateChange=e.onViewStateChange||VX,this.onStateChange=e.onStateChange||VX}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){let{interruption:o,endProps:s}=this.transition.settings;i={...n,...o===ew.SNAP_TO_END?s:this.propsInTransition||n}}this._triggerTransition(i,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:n}=e;return(r>0||r==="auto")&&Boolean(n)}_isUpdateDueToCurrentTransition(e){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition):!1}_shouldIgnoreViewportChange(e,r){return this.transition.inProgress?this.transition.settings.interruption===ew.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let n=this.getControllerState(e),i=this.getControllerState(r).shortestPathFrom(n),o=r.transitionInterpolator,s=o.getDuration?o.getDuration(e,r):r.transitionDuration;if(s===0)return;let a=o.initializeProps(e,i);this.propsInTransition={};let l={duration:s,easing:r.transitionEasing||ETe,interpolator:o,interruption:r.transitionInterruption||MTe,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(l),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(r)}}};function ps(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Vd=class{constructor(e){let{compare:r,extract:n,required:i}=e;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(e,r){for(let n of this._propsToCompare)if(!(n in e)||!(n in r)||!ic(e[n],r[n]))return!1;return!0}initializeProps(e,r){let n={},i={};for(let o of this._propsToExtract)(o in e||o in r)&&(n[o]=e[o],i[o]=r[o]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let n=e[r];ps(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var STe=["longitude","latitude","zoom","bearing","pitch"],CTe=["longitude","latitude","zoom"],Gs=class extends Vd{constructor(e={}){let r=Array.isArray(e)?e:e.transitionProps,n=Array.isArray(e)?{}:e;n.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:STe,required:CTe},super(n.transitionProps),this.opts=n}initializeProps(e,r){let n=super.initializeProps(e,r),{makeViewport:i,around:o}=this.opts;if(i&&o){let s=i(e),a=i(r),l=s.unproject(o);n.start.around=o,Object.assign(n.end,{around:a.project(l),aroundPosition:l,width:r.width,height:r.height})}return n}interpolateProps(e,r,n){let i={};for(let o of this._propsToExtract)i[o]=nc(e[o]||0,r[o]||0,n);if(r.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...r,...i});Object.assign(i,o.panByPosition(r.aroundPosition,nc(e.around,r.around,n)))}return i}};var jd={transitionDuration:0},ITe=300,hC=t=>1-(1-t)*(1-t),v1={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],KEYBOARD:["keydown"]},ng={},Fl=class{constructor(e){this.state={},this._events={},this._interactionState={isDragging:!1},this._customEvents=[],this._eventStartBlocked=null,this._panMove=!1,this.invertPan=!1,this.dragMode="rotate",this.inertia=0,this.scrollZoom=!0,this.dragPan=!0,this.dragRotate=!0,this.doubleClickZoom=!0,this.touchZoom=!0,this.touchRotate=!1,this.keyboard=!0,this.transitionManager=new tw({...e,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(let e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;let r=this._eventStartBlocked;switch(e.type){case"panstart":return r?!1:this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return r?!1:this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"multipanstart":return r?!1:this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){let{x:r,y:n}=this.props,{offsetCenter:i}=e;return[i.x-r,i.y-n]}isPointInBounds(e,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let o=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return o&&r&&r.stopPropagation(),o}isFunctionKeyPressed(e){let{srcEvent:r}=e;return Boolean(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=r}setProps(e){e.dragMode&&(this.dragMode=e.dragMode),this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);let{inertia:r}=e;this.inertia=Number.isFinite(r)?r:r===!0?ITe:0;let{scrollZoom:n=!0,dragPan:i=!0,dragRotate:o=!0,doubleClickZoom:s=!0,touchZoom:a=!0,touchRotate:l=!1,keyboard:u=!0}=e,f=Boolean(this.onViewStateChange);this.toggleEvents(v1.WHEEL,f&&n),this.toggleEvents(v1.PAN,f),this.toggleEvents(v1.PINCH,f&&(a||l)),this.toggleEvents(v1.MULTI_PAN,f&&l),this.toggleEvents(v1.DOUBLE_CLICK,f&&s),this.toggleEvents(v1.KEYBOARD,f&&u),this.scrollZoom=n,this.dragPan=i,this.dragRotate=o,this.doubleClickZoom=s,this.touchZoom=a,this.touchRotate=l,this.keyboard=u}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(e,r=null,n={}){let i={...e.getViewportProps(),...r},o=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),o){let s=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:s,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=this.controllerState[n?"panStart":"rotateStart"]({pos:r});return this._panMove=n,this.updateViewport(i,jd,{isDragging:!0}),!0}_onPan(e){return this.isDragging()?this._panMove?this._onPanMove(e):this._onPanRotate(e):!1}_onPanEnd(e){return this.isDragging()?this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e):!1}_onPanMove(e){if(!this.dragPan)return!1;let r=this.getCenter(e),n=this.controllerState.pan({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],o=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState.panEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),n=this.controllerState.rotate({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],o=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;e.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:o}=e,s=2/(1+Math.exp(-Math.abs(o*n)));o<0&&s!==0&&(s=1/s);let a=i?{...this._getTransitionProps({around:r}),transitionDuration:250}:jd,l=this.controllerState.zoom({pos:r,scale:s});return this.updateViewport(l,a,{isZooming:!0,isPanning:!0}),!0}_onMultiPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.rotateStart({pos:r});return this.updateViewport(n,jd,{isDragging:!0}),!0}_onMultiPan(e){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(e);r[0]-=e.deltaX;let n=this.controllerState.rotate({pos:r});return this.updateViewport(n,jd,{isDragging:!0,isRotating:!0}),!0}_onMultiPanEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&e.velocityY){let n=this.getCenter(e),i=[n[0],n[1]+=e.velocityY*r/2],o=this.controllerState.rotate({pos:i});this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return ng._startPinchRotation=e.rotation,ng._lastPinchEvent=e,this.updateViewport(n,jd,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=e,i=this.getCenter(e);r=r.zoom({pos:i,scale:n})}if(this.touchRotate){let{rotation:n}=e;r=r.rotate({deltaAngleX:ng._startPinchRotation-n})}return this.updateViewport(r,jd,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),ng._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=ng;if(this.touchZoom&&r&&n&&e.scale!==n.scale){let i=this.getCenter(e),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),a=(s-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),l=Math.pow(2,s+a*r/2);o=o.zoom({pos:i,scale:l}).zoomEnd(),this.updateViewport(o,{...this._getTransitionProps({around:i}),transitionDuration:r,transitionEasing:hC},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return ng._startPinchRotation=null,ng._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:r,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:o,rotateSpeedY:s}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,l,u={};switch(e.srcEvent.code){case"Minus":l=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),u.isZooming=!0;break;case"Equal":l=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),u.isZooming=!0;break;case"ArrowLeft":r?(l=a.rotateLeft(o),u.isRotating=!0):(l=a.moveLeft(i),u.isPanning=!0);break;case"ArrowRight":r?(l=a.rotateRight(o),u.isRotating=!0):(l=a.moveRight(i),u.isPanning=!0);break;case"ArrowUp":r?(l=a.rotateUp(s),u.isRotating=!0):(l=a.moveUp(i),u.isPanning=!0);break;case"ArrowDown":r?(l=a.rotateDown(s),u.isRotating=!0):(l=a.moveDown(i),u.isPanning=!0);break;default:return!1}return this.updateViewport(l,this._getTransitionProps(),u),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?jd:e?{...r,transitionInterpolator:new Gs({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Hd=class{constructor(e,r){this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var jX=5,PTe=1.2,rw=class extends Hd{constructor(e){let{width:r,height:n,latitude:i,longitude:o,zoom:s,bearing:a=0,pitch:l=0,altitude:u=1.5,position:f=[0,0,0],maxZoom:m=20,minZoom:v=0,maxPitch:E=60,minPitch:S=0,startPanLngLat:L,startZoomLngLat:O,startRotatePos:q,startBearing:G,startPitch:H,startZoom:Y,normalize:te=!0}=e;ps(Number.isFinite(o)),ps(Number.isFinite(i)),ps(Number.isFinite(s)),super({width:r,height:n,latitude:i,longitude:o,zoom:s,bearing:a,pitch:l,altitude:u,maxZoom:m,minZoom:v,maxPitch:E,minPitch:S,normalize:te,position:f},{startPanLngLat:L,startZoomLngLat:O,startRotatePos:q,startBearing:G,startPitch:H,startZoom:Y}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:r}){let n=this.getState().startPanLngLat||this._unproject(r);if(!n)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startBearing:o,startPitch:s}=this.getState();if(!i||o===void 0||s===void 0)return this;let a;return e?a=this._getNewRotation(e,i,s,o):a={bearing:o+r,pitch:s+n},this._getUpdatedState(a)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:e}){return this._getUpdatedState({startZoomLngLat:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:n}){let{startZoom:i,startZoomLngLat:o}=this.getState();if(o||(i=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let{maxZoom:s,minZoom:a}=this.getViewportProps(),l=i+Math.log2(n);l=mo(l,a,s);let u=this.makeViewport({...this.getViewportProps(),zoom:l});return this._getUpdatedState({zoom:l,...u.panByPosition(o,e)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(e=2){return this._zoomFromCenter(e)}zoomOut(e=2){return this._zoomFromCenter(1/e)}moveLeft(e=100){return this._panFromCenter([e,0])}moveRight(e=100){return this._panFromCenter([-e,0])}moveUp(e=100){return this._panFromCenter([0,e])}moveDown(e=100){return this._panFromCenter([0,-e])}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:o}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(o-r.longitude)>180&&(n.longitude=o<0?o+360:o-360),n}applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i}=e;e.zoom=mo(i,n,r);let{maxPitch:o,minPitch:s,pitch:a}=e;e.pitch=mo(a,s,o);let{normalize:l=!0}=e;return l&&Object.assign(e,_N(e)),e}_zoomFromCenter(e){let{width:r,height:n}=this.getViewportProps();return this.zoom({pos:[r/2,n/2],scale:e})}_panFromCenter(e){let{width:r,height:n}=this.getViewportProps();return this.pan({startPos:[r/2,n/2],pos:[r/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}_unproject(e){let r=this.makeViewport(this.getViewportProps());return e&&r.unproject(e)}_getNewRotation(e,r,n,i){let o=e[0]-r[0],s=e[1]-r[1],a=e[1],l=r[1],{width:u,height:f}=this.getViewportProps(),m=o/u,v=0;s>0?Math.abs(f-l)>jX&&(v=s/(l-f)*PTe):s<0&&l>jX&&(v=1-a/l),v=mo(v,-1,1);let{minPitch:E,maxPitch:S}=this.getViewportProps(),L=i+180*m,O=n;return v>0?O=n+v*(S-n):v<0&&(O=n-v*(E-n)),{pitch:O,bearing:L}}},ig=class extends Fl{constructor(){super(...arguments),this.ControllerState=rw,this.transition={transitionDuration:300,transitionInterpolator:new Gs({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})},this.dragMode="pan"}setProps(e){e.position=e.position||[0,0,0];let r=this.props;super.setProps(e),(!r||r.height!==e.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...e,...this.state}))}};var fC=class extends Nl{constructor(e={}){super(e)}getViewportType(){return ll}get ControllerType(){return ig}};fC.displayName="MapView";var b1=fC;var RTe=new i0;function LTe(t,e){let r=t.order??1/0,n=e.order??1/0;return r-n}var nw=class{constructor(e){this._resolvedEffects=[],this._defaultEffects=[],this.effects=[],this._context=e,this._needsRedraw="Initial render",this._setEffects([])}addDefaultEffect(e){let r=this._defaultEffects;if(!r.find(n=>n.id===e.id)){let n=r.findIndex(i=>LTe(i,e)>0);n<0?r.push(e):r.splice(n,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&(Gi(e.effects,this.effects,1)||this._setEffects(e.effects))}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}getEffects(){return this._resolvedEffects}_setEffects(e){let r={};for(let i of this.effects)r[i.id]=i;let n=[];for(let i of e){let o=r[i.id],s=i;o&&o!==i?o.setProps?(o.setProps(i.props),s=o):o.cleanup(this._context):o||i.setup(this._context),n.push(s),delete r[i.id]}for(let i in r)r[i].cleanup(this._context);this.effects=n,this._resolvedEffects=n.concat(this._defaultEffects),e.some(i=>i instanceof i0)||this._resolvedEffects.push(RTe),this._needsRedraw="effects changed"}finalize(){for(let e of this._resolvedEffects)e.cleanup(this._context);this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}};var iw=class extends df{shouldDrawLayer(e){let{operation:r}=e.props;return r.includes("draw")||r.includes("terrain")}};var OTe="deckRenderer.renderLayers",og=class{constructor(e){this.device=e,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new iw(e),this.pickLayersPass=new Nd(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(e){this.layerFilter!==e.layerFilter&&(this.layerFilter=e.layerFilter,this._needsRedraw="layerFilter changed"),this.drawPickingColors!==e.drawPickingColors&&(this.drawPickingColors=e.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(e){if(!e.viewports.length)return;let r=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,n={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};n.effects&&this._preRender(n.effects,n);let i=this.lastPostProcessEffect?this.renderBuffers[0]:n.target;this.lastPostProcessEffect&&(n.clearColor=[0,0,0,0],n.clearCanvas=!0);let o=r.render({...n,target:i});n.effects&&(this.lastPostProcessEffect&&(n.clearCanvas=e.clearCanvas===void 0?!0:e.clearCanvas),this._postRender(n.effects,n)),this.renderCount++,sa(OTe,this,o,e)}needsRedraw(e={clearRedrawFlags:!1}){let r=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),r}finalize(){let{renderBuffers:e}=this;for(let r of e)r.delete();e.length=0}_preRender(e,r){this.lastPostProcessEffect=null,r.preRenderStats=r.preRenderStats||{};for(let n of e)r.preRenderStats[n.id]=n.preRender(r),n.postRender&&(this.lastPostProcessEffect=n.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:e}=this,r=this.device.canvasContext.getDrawingBufferSize(),[n,i]=r;e.length===0&&[0,1].map(o=>{let s=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"},width:n,height:i});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${o}`,colorAttachments:[s]}))});for(let o of e)o.resize(r)}_postRender(e,r){let{renderBuffers:n}=this,i={...r,inputBuffer:n[0],swapBuffer:n[1]};for(let o of e)if(o.postRender){i.target=o.id===this.lastPostProcessEffect?r.target:void 0;let s=o.postRender(i);i.inputBuffer=s,i.swapBuffer=s===n[0]?n[1]:n[0]}}};var BTe={pickedColor:null,pickedObjectIndex:-1};function BN({pickedColors:t,decodePickingColor:e,deviceX:r,deviceY:n,deviceRadius:i,deviceRect:o}){let{x:s,y:a,width:l,height:u}=o,f=i*i,m=-1,v=0;for(let E=0;E<u;E++){let S=E+a-n,L=S*S;if(L>f)v+=4*l;else for(let O=0;O<l;O++){if(t[v+3]-1>=0){let G=O+s-r,H=G*G+L;H<=f&&(f=H,m=v)}v+=4}}if(m>=0){let E=t.slice(m,m+4),S=e(E);if(S){let L=Math.floor(m/4/l),O=m/4-L*l;return{...S,pickedColor:E,pickedX:s+O,pickedY:a+L}}Ar.error("Picked non-existent layer. Is picking buffer corrupt?")()}return BTe}function kN({pickedColors:t,decodePickingColor:e}){let r=new Map;if(t){for(let n=0;n<t.length;n+=4)if(t[n+3]-1>=0){let o=t.slice(n,n+4),s=o.join(",");if(!r.has(s)){let a=e(o);a?r.set(s,{...a,color:o}):Ar.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(r.values())}function pC({pickInfo:t,viewports:e,pixelRatio:r,x:n,y:i,z:o}){let s=e[0];e.length>1&&(s=kTe(t?.pickedViewports||e,{x:n,y:i}));let a;if(s){let l=[n-s.x,i-s.y];o!==void 0&&(l[2]=o),a=s.unproject(l)}return{color:null,layer:null,viewport:s,index:-1,picked:!1,x:n,y:i,pixel:[n,i],coordinate:a,devicePixel:t&&"pickedX"in t?[t.pickedX,t.pickedY]:void 0,pixelRatio:r}}function DN(t){let{pickInfo:e,lastPickedInfo:r,mode:n,layers:i}=t,{pickedColor:o,pickedLayer:s,pickedObjectIndex:a}=e,l=s?[s]:[];if(n==="hover"){let m=r.index,v=r.layerId,E=s?s.props.id:null;if(E!==v||a!==m){if(E!==v){let S=i.find(L=>L.props.id===v);S&&l.unshift(S)}r.layerId=E,r.index=a,r.info=null}}let u=pC(t),f=new Map;return f.set(null,u),l.forEach(m=>{let v={...u};m===s&&(v.color=o,v.index=a,v.picked=!0),v=dC({layer:m,info:v,mode:n});let E=v.layer;m===s&&n==="hover"&&(r.info=v),f.set(E.id,v),n==="hover"&&E.updateAutoHighlight(v)}),f}function dC({layer:t,info:e,mode:r}){for(;t&&e;){let n=e.layer||null;e.sourceLayer=n,e.layer=t,e=t.getPickingInfo({info:e,mode:r,sourceLayer:n}),t=t.parent}return e}function kTe(t,e){for(let r=t.length-1;r>=0;r--){let n=t[r];if(n.containsPixel(e))return n}return t[0]}var ow=class{constructor(e){this._pickable=!0,this.device=e,this.pickLayersPass=new Nd(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.destroy(),this.depthFBO&&this.depthFBO.destroy()}pickObjectAsync(e){return this._pickClosestObjectAsync(e)}pickObjectsAsync(e){return this._pickVisibleObjectsAsync(e)}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:r,layers:n,viewports:i},o=this.lastPickedInfo.info){let s=o&&o.layer&&o.layer.id,a=o&&o.viewport&&o.viewport.id,l=s?n.find(v=>v.id===s):null,u=a&&i.find(v=>v.id===a)||i[0],f=u&&u.unproject([e-u.x,r-u.y]);return{...o,...{x:e,y:r,viewport:u,coordinate:f,layer:l}}}_resizeBuffer(){if(!this.pickingFBO&&(this.pickingFBO=this.device.createFramebuffer({colorAttachments:["rgba8unorm"],depthStencilAttachment:"depth16unorm"}),this.device.isTextureFormatRenderable("rgba32float"))){let r=this.device.createFramebuffer({colorAttachments:["rgba32float"],depthStencilAttachment:"depth16unorm"});this.depthFBO=r}let{canvas:e}=this.device.getDefaultCanvasContext();this.pickingFBO?.resize({width:e.width,height:e.height}),this.depthFBO?.resize({width:e.width,height:e.height})}_getPickable(e){if(this._pickable===!1)return null;let r=e.filter(n=>this.pickLayersPass.shouldDrawLayer(n)&&!n.isComposite);return r.length?r:null}async _pickClosestObjectAsync({layers:e,views:r,viewports:n,x:i,y:o,radius:s=0,depth:a=1,mode:l="query",unproject3D:u,onViewportActive:f,effects:m}){let v=this.device.canvasContext.cssToDeviceRatio(),E=this._getPickable(e);if(!E||n.length===0)return{result:[],emptyInfo:pC({viewports:n,x:i,y:o,pixelRatio:v})};this._resizeBuffer();let S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=[S.x+Math.floor(S.width/2),S.y+Math.floor(S.height/2)],O=Math.round(s*v),{width:q,height:G}=this.pickingFBO,H=this._getPickingRect({deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceWidth:q,deviceHeight:G}),Y={x:i-s,y:o-s,width:s*2+1,height:s*2+1},te,D=[],le=new Set;for(let ie=0;ie<a;ie++){let J;if(H){let me=this._drawAndSample({layers:E,views:r,viewports:n,onViewportActive:f,deviceRect:H,cullRect:Y,effects:m,pass:`picking:${l}`});J=BN({...me,deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceRect:H})}else J={pickedColor:null,pickedObjectIndex:-1};let X;if(J.pickedLayer&&u&&this.depthFBO){let{pickedColors:me}=this._drawAndSample({layers:[J.pickedLayer],views:r,viewports:n,onViewportActive:f,deviceRect:{x:J.pickedX,y:J.pickedY,width:1,height:1},cullRect:Y,effects:m,pass:`picking:${l}:z`},!0);me[3]&&(X=me[0])}J.pickedLayer&&ie+1<a&&(le.add(J.pickedLayer),J.pickedLayer.disablePickingIndex(J.pickedObjectIndex)),te=DN({pickInfo:J,lastPickedInfo:this.lastPickedInfo,mode:l,layers:E,viewports:n,x:i,y:o,z:X,pixelRatio:v});for(let me of te.values())me.layer&&D.push(me);if(!J.pickedColor)break}for(let ie of le)ie.restorePickingColors();return{result:D,emptyInfo:te.get(null)}}_pickClosestObject({layers:e,views:r,viewports:n,x:i,y:o,radius:s=0,depth:a=1,mode:l="query",unproject3D:u,onViewportActive:f,effects:m}){let v=this.device.canvasContext.cssToDeviceRatio(),E=this._getPickable(e);if(!E||n.length===0)return{result:[],emptyInfo:pC({viewports:n,x:i,y:o,pixelRatio:v})};this._resizeBuffer();let S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=[S.x+Math.floor(S.width/2),S.y+Math.floor(S.height/2)],O=Math.round(s*v),{width:q,height:G}=this.pickingFBO,H=this._getPickingRect({deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceWidth:q,deviceHeight:G}),Y={x:i-s,y:o-s,width:s*2+1,height:s*2+1},te,D=[],le=new Set;for(let ie=0;ie<a;ie++){let J;if(H){let me=this._drawAndSample({layers:E,views:r,viewports:n,onViewportActive:f,deviceRect:H,cullRect:Y,effects:m,pass:`picking:${l}`});J=BN({...me,deviceX:L[0],deviceY:L[1],deviceRadius:O,deviceRect:H})}else J={pickedColor:null,pickedObjectIndex:-1};let X;if(J.pickedLayer&&u&&this.depthFBO){let{pickedColors:me}=this._drawAndSample({layers:[J.pickedLayer],views:r,viewports:n,onViewportActive:f,deviceRect:{x:J.pickedX,y:J.pickedY,width:1,height:1},cullRect:Y,effects:m,pass:`picking:${l}:z`},!0);me[3]&&(X=me[0])}J.pickedLayer&&ie+1<a&&(le.add(J.pickedLayer),J.pickedLayer.disablePickingIndex(J.pickedObjectIndex)),te=DN({pickInfo:J,lastPickedInfo:this.lastPickedInfo,mode:l,layers:E,viewports:n,x:i,y:o,z:X,pixelRatio:v});for(let me of te.values())me.layer&&D.push(me);if(!J.pickedColor)break}for(let ie of le)ie.restorePickingColors();return{result:D,emptyInfo:te.get(null)}}async _pickVisibleObjectsAsync({layers:e,views:r,viewports:n,x:i,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:u=null,onViewportActive:f,effects:m}){let v=this._getPickable(e);if(!v||n.length===0)return[];this._resizeBuffer();let E=this.device.canvasContext.cssToDeviceRatio(),S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=S.x,O=S.y+S.height,q=this.device.canvasContext.cssToDevicePixels([i+s,o+a],!0),G=q.x+q.width,H=q.y,Y={x:L,y:H,width:G-L,height:O-H},te=this._drawAndSample({layers:v,views:r,viewports:n,onViewportActive:f,deviceRect:Y,cullRect:{x:i,y:o,width:s,height:a},effects:m,pass:`picking:${l}`}),D=kN(te),le=new Map,ie=[],J=Number.isFinite(u);for(let X=0;X<D.length&&!(J&&ie.length>=u);X++){let me=D[X],Me={color:me.pickedColor,layer:null,index:me.pickedObjectIndex,picked:!0,x:i,y:o,pixelRatio:E};Me=dC({layer:me.pickedLayer,info:Me,mode:l});let ce=Me.layer.id;le.has(ce)||le.set(ce,new Set);let Ae=le.get(ce),rt=Me.object??Me.index;Ae.has(rt)||(Ae.add(rt),ie.push(Me))}return ie}_pickVisibleObjects({layers:e,views:r,viewports:n,x:i,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:u=null,onViewportActive:f,effects:m}){let v=this._getPickable(e);if(!v||n.length===0)return[];this._resizeBuffer();let E=this.device.canvasContext.cssToDeviceRatio(),S=this.device.canvasContext.cssToDevicePixels([i,o],!0),L=S.x,O=S.y+S.height,q=this.device.canvasContext.cssToDevicePixels([i+s,o+a],!0),G=q.x+q.width,H=q.y,Y={x:L,y:H,width:G-L,height:O-H},te=this._drawAndSample({layers:v,views:r,viewports:n,onViewportActive:f,deviceRect:Y,cullRect:{x:i,y:o,width:s,height:a},effects:m,pass:`picking:${l}`}),D=kN(te),le=new Map,ie=[],J=Number.isFinite(u);for(let X=0;X<D.length&&!(J&&ie.length>=u);X++){let me=D[X],Me={color:me.pickedColor,layer:null,index:me.pickedObjectIndex,picked:!0,x:i,y:o,pixelRatio:E};Me=dC({layer:me.pickedLayer,info:Me,mode:l});let ce=Me.layer.id;le.has(ce)||le.set(ce,new Set);let Ae=le.get(ce),rt=Me.object??Me.index;Ae.has(rt)||(Ae.add(rt),ie.push(Me))}return ie}async _drawAndSampleAsync({layers:e,views:r,viewports:n,onViewportActive:i,deviceRect:o,cullRect:s,effects:a,pass:l},u=!1){let f=u?this.depthFBO:this.pickingFBO,m={layers:e,layerFilter:this.layerFilter,views:r,viewports:n,onViewportActive:i,pickingFBO:f,deviceRect:o,cullRect:s,effects:a,pass:l,pickZ:u,preRenderStats:{},isPicking:!0};for(let G of a)G.useInPicking&&(m.preRenderStats[G.id]=G.preRender(m));let{decodePickingColor:v}=this.pickLayersPass.render(m),{x:E,y:S,width:L,height:O}=o,q=new(u?Float32Array:Uint8Array)(L*O*4);return this.device.readPixelsToArrayWebGL(f,{sourceX:E,sourceY:S,sourceWidth:L,sourceHeight:O,target:q}),{pickedColors:q,decodePickingColor:v}}_drawAndSample({layers:e,views:r,viewports:n,onViewportActive:i,deviceRect:o,cullRect:s,effects:a,pass:l},u=!1){let f=u?this.depthFBO:this.pickingFBO,m={layers:e,layerFilter:this.layerFilter,views:r,viewports:n,onViewportActive:i,pickingFBO:f,deviceRect:o,cullRect:s,effects:a,pass:l,pickZ:u,preRenderStats:{},isPicking:!0};for(let G of a)G.useInPicking&&(m.preRenderStats[G.id]=G.preRender(m));let{decodePickingColor:v}=this.pickLayersPass.render(m),{x:E,y:S,width:L,height:O}=o,q=new(u?Float32Array:Uint8Array)(L*O*4);return this.device.readPixelsToArrayWebGL(f,{sourceX:E,sourceY:S,sourceWidth:L,sourceHeight:O,target:q}),{pickedColors:q,decodePickingColor:v}}_getPickingRect({deviceX:e,deviceY:r,deviceRadius:n,deviceWidth:i,deviceHeight:o}){let s=Math.max(0,e-n),a=Math.max(0,r-n),l=Math.min(i,e+n+1)-s,u=Math.min(o,r+n+1)-a;return l<=0||u<=0?null:{x:s,y:a,width:l,height:u}}};var DTe={"top-left":{top:0,left:0},"top-right":{top:0,right:0},"bottom-left":{bottom:0,left:0},"bottom-right":{bottom:0,right:0},fill:{top:0,left:0,bottom:0,right:0}},NTe="top-left",HX="__root",mC=class{constructor({deck:e,parentElement:r}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,r?.classList.add("deck-widget-container"),this.parentElement=r}getWidgets(){return this.resolvedWidgets}setProps(e){if(e.widgets&&!Gi(e.widgets,this.widgets,1)){let r=e.widgets.filter(Boolean);this._setWidgets(r)}}finalize(){for(let e of this.getWidgets())this._removeWidget(e);this.defaultWidgets.length=0,this.resolvedWidgets.length=0;for(let e in this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(r=>r.id===e.id)||(this._addWidget(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}onRedraw({viewports:e,layers:r}){let n=e.reduce((i,o)=>(i[o.id]=o,i),{});for(let i of this.getWidgets()){let{viewId:o}=i;if(o){let s=n[o];s&&(i.onViewportChange&&i.onViewportChange(s),i.onRedraw?.({viewports:[s],layers:r}))}else{if(i.onViewportChange)for(let s of e)i.onViewportChange(s);i.onRedraw?.({viewports:e,layers:r})}}this.lastViewports=n,this._updateContainers()}onHover(e,r){for(let n of this.getWidgets()){let{viewId:i}=n;(!i||i===e.viewport?.id)&&n.onHover?.(e,r)}}onEvent(e,r){let n=kb[r.type];if(n)for(let i of this.getWidgets()){let{viewId:o}=i;(!o||o===e.viewport?.id)&&i[n]?.(e,r)}}_setWidgets(e){let r={};for(let n of this.resolvedWidgets)r[n.id]=n;this.resolvedWidgets.length=0;for(let n of this.defaultWidgets)r[n.id]=null,this.resolvedWidgets.push(n);for(let n of e){let i=r[n.id];i?i.viewId!==n.viewId||i.placement!==n.placement?(this._removeWidget(i),this._addWidget(n)):n!==i&&(i.setProps(n.props),n=i):this._addWidget(n),r[n.id]=null,this.resolvedWidgets.push(n)}for(let n in r){let i=r[n];i&&this._removeWidget(i)}this.widgets=e}_addWidget(e){let{viewId:r=null,placement:n=NTe}=e;e.widgetManager=this,e.deck=this.deck,e.rootElement=e.onCreateRootElement(),e.rootElement&&this._getContainer(r,n).append(e.rootElement),e.onAdd?.({deck:this.deck,viewId:r}),e.updateHTML()}_removeWidget(e){e.onRemove?.(),e.rootElement&&e.rootElement.remove(),e.rootElement=void 0,e.deck=void 0,e.widgetManager=void 0}_getContainer(e,r){let n=e||HX,i=this.containers[n];i||(i=document.createElement("div"),i.style.pointerEvents="none",i.style.position="absolute",i.style.overflow="hidden",this.parentElement?.append(i),this.containers[n]=i);let o=i.querySelector(`.${r}`);return o||(o=globalThis.document.createElement("div"),o.className=r,o.style.position="absolute",o.style.zIndex="2",Object.assign(o.style,DTe[r]),i.append(o)),o}_updateContainers(){let e=this.deck.width,r=this.deck.height;for(let n in this.containers){let i=this.lastViewports[n]||null,o=n===HX||i,s=this.containers[n];o?(s.style.display="block",s.style.left=`${i?i.x:0}px`,s.style.top=`${i?i.y:0}px`,s.style.width=`${i?i.width:e}px`,s.style.height=`${i?i.height:r}px`):s.style.display="none"}}};function sg(t,e){e&&Object.entries(e).map(([r,n])=>{r.startsWith("--")?t.style.setProperty(r,n):t.style[r]=n})}function AC(t,e){e&&Object.keys(e).map(r=>{r.startsWith("--")?t.style.removeProperty(r):t.style[r]=""})}var Tn=class{constructor(e,r){this.viewId=null,this.props={...r,...e},this.id=this.props.id}setProps(e){let r=this.props,n=this.rootElement;n&&r.className!==e.className&&(r.className&&n.classList.remove(r.className),e.className&&n.classList.add(e.className)),n&&!Gi(r.style,e.style,1)&&(AC(n,r.style),sg(n,e.style)),Object.assign(this.props,e),this.updateHTML()}updateHTML(){this.rootElement&&this.onRenderHTML(this.rootElement)}onCreateRootElement(){let e=["deck-widget",this.className,this.props.className],r=document.createElement("div");return e.filter(n=>typeof n=="string"&&n.length>0).forEach(n=>r.classList.add(n)),sg(r,this.props.style),r}onAdd(e){}onRemove(){}onViewportChange(e){}onRedraw(e){}onHover(e,r){}onClick(e,r){}onDrag(e,r){}onDragStart(e,r){}onDragEnd(e,r){}};Tn.defaultProps={id:"widget",style:{},className:""};var FTe={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"},ag=class extends Tn{constructor(e={}){super(e,ag.defaultProps),this.id="default-tooltip",this.placement="fill",this.className="deck-tooltip",this.isVisible=!1,this.setProps(e)}onCreateRootElement(){let e=document.createElement("div");return e.className=this.className,Object.assign(e.style,FTe),e}onRenderHTML(e){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&e!==this.lastViewport&&this.setTooltip(null)}onHover(e){let{deck:r}=this,n=r&&r.props.getTooltip;if(!n)return;let i=n(e);this.lastViewport=e.viewport,this.setTooltip(i,e.x,e.y)}setTooltip(e,r,n){let i=this.rootElement;if(i){if(typeof e=="string")i.innerText=e;else if(e)e.text&&(i.innerText=e.text),e.html&&(i.innerHTML=e.html),e.className&&(i.className=e.className);else{this.isVisible=!1,i.style.display="none";return}this.isVisible=!0,i.style.display="block",i.style.transform=`translate(${r}px, ${n}px)`,e&&typeof e=="object"&&"style"in e&&Object.assign(i.style,e.style)}}};ag.defaultProps={...Tn.defaultProps};Fn();fw();CA();function c0(){}var H3e=({isDragging:t})=>t?"grabbing":"grab",h$={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{},gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:c0,onWebGLInitialized:c0,onResize:c0,onViewStateChange:c0,onInteractionStateChange:c0,onBeforeRender:c0,onAfterRender:c0,onLoad:c0,onError:t=>Ar.error(t.message,t.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:H3e,getTooltip:null,debug:!1,drawPickingColors:!1},dw=class{constructor(e){this.width=0,this.height=0,this.userData={},this.device=null,this.canvas=null,this.viewManager=null,this.layerManager=null,this.effectManager=null,this.deckRenderer=null,this.deckPicker=null,this.eventManager=null,this.widgetManager=null,this.tooltip=null,this.animationLoop=null,this.cursorState={isHovering:!1,isDragging:!1},this.stats=new ol({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this._lastPointerDownInfo=null,this._onPointerMove=n=>{let{_pickRequest:i}=this;if(n.type==="pointerleave")i.x=-1,i.y=-1,i.radius=0;else{if(n.leftButton||n.rightButton)return;{let o=n.offsetCenter;if(!o)return;i.x=o.x,i.y=o.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=n},this._onEvent=n=>{let i=kb[n.type],o=n.offsetCenter;if(!i||!o||!this.layerManager)return;let s=this.layerManager.getLayers(),a=this.deckPicker.getLastPickedObject({x:o.x,y:o.y,layers:s,viewports:this.getViewports(o)},this._lastPointerDownInfo),{layer:l}=a,u=l&&(l[i]||l.props[i]),f=this.props[i],m=!1;u&&(m=u.call(l,a,n)),m||(f?.(a,n),this.widgetManager.onEvent(a,n))},this._onPointerDown=n=>{if(this.device?.type==="webgpu")return;let i=n.offsetCenter,o=this._pick("pickObject","pickObject Time",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=o.result[0]||o.emptyInfo},this.props={...h$,...e},e=this.props,e.viewState&&e.initialViewState&&Ar.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),this.viewState=this.props.initialViewState,e.device&&(this.device=e.device);let r=this.device;!r&&e.gl&&(e.gl instanceof WebGLRenderingContext&&Ar.error("WebGL1 context not supported.")(),r=pw.attach(e.gl,this.props.deviceProps)),r||(r=this._createDevice(e)),this.animationLoop=this._createAnimationLoop(r,e),this.setProps(e),e._typedArrayManagerProps&&mf.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}finalize(){this.animationLoop?.stop(),this.animationLoop?.destroy(),this.animationLoop=null,this._lastPointerDownInfo=null,this.layerManager?.finalize(),this.layerManager=null,this.viewManager?.finalize(),this.viewManager=null,this.effectManager?.finalize(),this.effectManager=null,this.deckRenderer?.finalize(),this.deckRenderer=null,this.deckPicker?.finalize(),this.deckPicker=null,this.eventManager?.destroy(),this.eventManager=null,this.widgetManager?.finalize(),this.widgetManager=null,!this.props.canvas&&!this.props.device&&!this.props.gl&&this.canvas&&(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null)}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&Ar.removed("onLayerHover","onHover")(),"onLayerClick"in e&&Ar.removed("onLayerClick","onClick")(),e.initialViewState&&!Gi(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),Object.assign(this.props,e),this._setCanvasSize(this.props);let r=Object.create(this.props);if(Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),e.device&&e.device.id!==this.device?.id&&(this.animationLoop?.stop(),this.canvas!==e.device.canvasContext?.canvas&&(this.canvas?.remove(),this.eventManager?.destroy(),this.canvas=null),Ar.log(`recreating animation loop for new device! id=${e.device.id}`)(),this.animationLoop=this._createAnimationLoop(e.device,e),this.animationLoop.start()),this.animationLoop?.setProps(r),e.useDevicePixels!==void 0&&this.device?.canvasContext?.canvas instanceof HTMLCanvasElement){this.device.canvasContext.props.useDevicePixels=e.useDevicePixels;let n=this.device.canvasContext.canvas,i={target:n,contentBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}],devicePixelContentBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}],borderBoxSize:[{inlineSize:n.clientWidth,blockSize:n.clientHeight}]};this.device.canvasContext._handleResize([i])}this.layerManager&&(this.viewManager.setProps(r),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(r),this.effectManager.setProps(r),this.deckRenderer.setProps(r),this.deckPicker.setProps(r),this.widgetManager.setProps(r)),this.stats.get("setProps Time").timeEnd()}needsRedraw(e={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let r=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);let n=this.viewManager.needsRedraw(e),i=this.layerManager.needsRedraw(e),o=this.effectManager.needsRedraw(e),s=this.deckRenderer.needsRedraw(e);return r=r||n||i||o||s,r}redraw(e){if(!this.layerManager)return;let r=this.needsRedraw({clearRedrawFlags:!0});r=e||r,r&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(r):this._drawLayers(r))}get isInitialized(){return this.viewManager!==null}getViews(){return ps(this.viewManager),this.viewManager.views}getViewports(e){return ps(this.viewManager),this.viewManager.getViewports(e)}getCanvas(){return this.canvas}pickObject(e){let r=this._pick("pickObject","pickObject Time",e).result;return r.length?r[0]:null}pickMultipleObjects(e){return e.depth=e.depth||10,this._pick("pickObject","pickMultipleObjects Time",e).result}pickObjects(e){return this._pick("pickObjects","pickObjects Time",e)}_addResources(e,r=!1){for(let n in e)this.layerManager.resourceManager.add({resourceId:n,data:e[n],forceUpdate:r})}_removeResources(e){for(let r of e)this.layerManager.resourceManager.remove(r)}_addDefaultEffect(e){this.effectManager.addDefaultEffect(e)}_addDefaultShaderModule(e){this.layerManager.addDefaultShaderModule(e)}_removeDefaultShaderModule(e){this.layerManager?.removeDefaultShaderModule(e)}_pick(e,r,n){ps(this.deckPicker);let{stats:i}=this;i.get("Pick Count").incrementCount(),i.get(r).timeStart();let o=this.deckPicker[e]({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(n),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...n});return i.get(r).timeEnd(),o}_createCanvas(e){let r=e.canvas;return typeof r=="string"&&(r=document.getElementById(r),ps(r)),r||(r=document.createElement("canvas"),r.id=e.id||"deckgl-overlay",e.width&&typeof e.width=="number"&&(r.width=e.width),e.height&&typeof e.height=="number"&&(r.height=e.height),(e.parent||document.body).appendChild(r)),Object.assign(r.style,e.style),r}_setCanvasSize(e){if(!this.canvas)return;let{width:r,height:n}=e;if(r||r===0){let i=Number.isFinite(r)?`${r}px`:r;this.canvas.style.width=i}if(n||n===0){let i=Number.isFinite(n)?`${n}px`:n;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=i}}_updateCanvasSize(){let{canvas:e}=this;if(!e)return;let r=e.clientWidth??e.width,n=e.clientHeight??e.height;(r!==this.width||n!==this.height)&&(this.width=r,this.height=n,this.viewManager?.setProps({width:r,height:n}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:r,height:n}))}_createAnimationLoop(e,r){let{gl:n,onError:i}=r;return new y1({device:e,autoResizeDrawingBuffer:!n,autoResizeViewport:!1,onInitialize:o=>this._setDevice(o.device),onRender:this._onRenderFrame.bind(this),onError:i})}_createDevice(e){let r=this.props.deviceProps?.createCanvasContext,n=typeof r=="object"?r:void 0,i={adapters:[],...e.deviceProps};i.adapters.includes(pw)||i.adapters.push(pw);let o={alphaMode:this.props.deviceProps?.type==="webgpu"?"premultiplied":void 0};return gp.createDevice({_reuseDevices:!0,type:"webgl",...i,createCanvasContext:{...o,...n,canvas:this._createCanvas(e),useDevicePixels:this.props.useDevicePixels,autoResize:!0}})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let{views:e}=this.props,r=Array.isArray(e)?e:e?[e]:[new b1({id:"default-view"})];return r.length&&this.props.controller&&(r[0].props.controller=this.props.controller),r}_onContextLost(){let{onError:e}=this.props;this.animationLoop&&e&&e(new Error("WebGL context is lost"))}_pickAndCallback(){if(this.device?.type==="webgpu")return;let{_pickRequest:e}=this;if(e.event){let{result:r,emptyInfo:n}=this._pick("pickObject","pickObject Time",e);this.cursorState.isHovering=r.length>0;let i=n,o=!1;for(let s of r)i=s,o=s.layer?.onHover(s,e.event)||o;o||(this.props.onHover?.(i,e.event),this.widgetManager.onHover(i,e.event)),e.event=null}}_updateCursor(){let e=this.props.parent||this.canvas;e&&(e.style.cursor=this.props.getCursor(this.cursorState))}_setDevice(e){if(this.device=e,!this.animationLoop)return;this.canvas||(this.canvas=this.device.canvasContext?.canvas,!this.canvas.isConnected&&this.props.parent&&this.props.parent.insertBefore(this.canvas,this.props.parent.firstChild)),this.device.type==="webgl"&&this.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),this.device.type==="webgl"&&this.props.onWebGLInitialized(this.device.gl);let r=new JA;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new Bb(this.props.parent||this.canvas,{touchAction:this.props.touchAction,recognizers:Object.keys(pN).map(i=>{let[o,s,a,l]=pN[i],u=this.props.eventRecognizerOptions?.[i],f={...s,...u,event:i};return{recognizer:new o(f),recognizeWith:a,requestFailure:l}}),events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let i in kb)this.eventManager.on(i,this._onEvent);this.viewManager=new Jb({timeline:r,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let n=this.viewManager.getViewports()[0];this.layerManager=new rg(this.device,{deck:this,stats:this.stats,viewport:n,timeline:r}),this.effectManager=new nw({deck:this,device:this.device}),this.deckRenderer=new og(this.device),this.deckPicker=new ow(this.device),this.widgetManager=new mC({deck:this,parentElement:this.canvas?.parentElement}),this.widgetManager.addDefault(new ag),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(e,r){let{device:n,gl:i}=this.layerManager.context;this.props.onBeforeRender({device:n,gl:i});let o={target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",effects:this.effectManager.getEffects(),...r};this.deckRenderer?.renderLayers(o),o.pass==="screen"&&this.widgetManager.onRedraw({viewports:o.viewports,layers:o.layers}),this.props.onAfterRender({device:n,gl:i})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),Ar.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.layerManager.updateLayers(),this.device?.type!=="webgpu"&&this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(e){let r=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState={...this.viewState,[e.viewId]:r},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(e){this.cursorState.isDragging=e.isDragging||!1,this.props.onInteractionStateChange(e)}_getFrameStats(){let{stats:e}=this;e.get("frameRate").timeEnd(),e.get("frameRate").timeStart();let r=this.animationLoop.stats;e.get("GPU Time").addTime(r.get("GPU Time").lastTiming),e.get("CPU Time").addTime(r.get("CPU Time").lastTiming)}_getMetrics(){let{metrics:e,stats:r}=this;e.fps=r.get("frameRate").getHz(),e.setPropsTime=r.get("setProps Time").time,e.updateAttributesTime=r.get("Update Attributes").time,e.framesRedrawn=r.get("Redraw Count").count,e.pickTime=r.get("pickObject Time").time+r.get("pickMultipleObjects Time").time+r.get("pickObjects Time").time,e.pickCount=r.get("Pick Count").count,e.gpuTime=r.get("GPU Time").time,e.cpuTime=r.get("CPU Time").time,e.gpuTimePerFrame=r.get("GPU Time").getAverageTime(),e.cpuTimePerFrame=r.get("CPU Time").getAverageTime();let n=gp.stats.get("Memory Usage");e.bufferMemory=n.get("Buffer Memory").count,e.textureMemory=n.get("Texture Memory").count,e.renderbufferMemory=n.get("Renderbuffer Memory").count,e.gpuMemory=n.get("GPU Memory").count}};dw.defaultProps=h$;dw.VERSION=EM;var C1=dw;Fn();Fn();function f$(t){switch(t){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return kA(t)}}var p$=BA;function mw(t,e,r){let n=r==="webgpu"&&e.type==="uint8"?"unorm8":e.type;return{attribute:t,format:e.size>1?`${n}x${e.size}`:e.type,byteOffset:e.offset||0}}function l0(t){return t.stride||t.size*t.bytesPerElement}function d$(t,e){return t.type===e.type&&t.size===e.size&&l0(t)===l0(e)&&(t.offset||0)===(e.offset||0)}function oF(t,e){e.offset&&Ar.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let r=l0(t),n=e.vertexOffset!==void 0?e.vertexOffset:t.vertexOffset||0,i=e.elementOffset||0,o=n*r+i*t.bytesPerElement+(t.offset||0);return{...e,offset:o,stride:r}}function W3e(t,e){let r=oF(t,e);return{high:r,low:{...r,offset:r.offset+t.size*4}}}var Aw=class{constructor(e,r,n){this._buffer=null,this.device=e,this.id=r.id||"",this.size=r.size||1;let i=r.logicalType||r.type,o=i==="float64",{defaultValue:s}=r;s=Number.isFinite(s)?[s]:s||new Array(this.size).fill(0);let a;o?a="float32":!i&&r.isIndexed?a="uint32":a=i||"float32";let l=f$(i||a);this.doublePrecision=o,o&&r.fp64===!1&&(l=Float32Array),this.value=null,this.settings={...r,defaultType:l,defaultValue:s,logicalType:i,type:a,normalized:a.includes("norm"),size:this.size,bytesPerElement:l.BYTES_PER_ELEMENT},this.state={...n,externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1}}get isConstant(){return this.state.constant}get buffer(){return this._buffer}get byteOffset(){let e=this.getAccessor();return e.vertexOffset?e.vertexOffset*l0(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),mf.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,r=null){let n={};if(this.state.constant){let i=this.value;if(r){let o=oF(this.getAccessor(),r),s=o.offset/i.BYTES_PER_ELEMENT,a=o.size||this.size;n[e]=i.subarray(s,s+a)}else n[e]=i}else n[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?n[`${e}64Low`]=n[e]:n[`${e}64Low`]=new Float32Array(this.size)),n}_getBufferLayout(e=this.id,r=null){let n=this.getAccessor(),i=[],o={name:this.id,byteStride:l0(n),attributes:i};if(this.doublePrecision){let s=W3e(n,r||{});i.push(mw(e,{...n,...s.high},this.device.type),mw(`${e}64Low`,{...n,...s.low},this.device.type))}else if(r){let s=oF(n,r);i.push(mw(e,{...n,...s},this.device.type))}else i.push(mw(e,n,this.device.type));return o}setAccessor(e){this.state.bufferAccessor=e}getAccessor(){return this.state.bufferAccessor}getBounds(){if(this.state.bounds)return this.state.bounds;let e=null;if(this.state.constant&&this.value){let r=Array.from(this.value);e=[r,r]}else{let{value:r,numInstances:n,size:i}=this,o=n*i;if(r&&o&&r.length>=o){let s=new Array(i).fill(1/0),a=new Array(i).fill(-1/0);for(let l=0;l<o;)for(let u=0;u<i;u++){let f=r[l++];f<s[u]&&(s[u]=f),f>a[u]&&(a[u]=f)}e=[s,a]}}return this.state.bounds=e,e}setData(e){let{state:r}=this,n;ArrayBuffer.isView(e)?n={value:e}:e instanceof $n?n={buffer:e}:n=e;let i={...this.settings,...n};if(ArrayBuffer.isView(n.value)){if(!n.type)if(this.doublePrecision&&n.value instanceof Float64Array)i.type="float32";else{let s=p$(n.value);i.type=i.normalized?s.replace("int","norm"):s}i.bytesPerElement=n.value.BYTES_PER_ELEMENT,i.stride=l0(i)}if(r.bounds=null,n.constant){let o=n.value;if(o=this._normalizeValue(o,[],0),this.settings.normalized&&(o=this.normalizeConstant(o)),!(!r.constant||!this._areValuesEqual(o,this.value)))return!1;r.externalBuffer=null,r.constant=!0,this.value=ArrayBuffer.isView(o)?o:new Float32Array(o)}else if(n.buffer){let o=n.buffer;r.externalBuffer=o,r.constant=!1,this.value=n.value||null}else if(n.value){this._checkExternalBuffer(n);let o=n.value;r.externalBuffer=null,r.constant=!1,this.value=o;let{buffer:s}=this,a=l0(i),l=(i.vertexOffset||0)*a;if(this.doublePrecision&&o instanceof Float64Array&&(o=tC(o,i)),this.settings.isIndexed){let f=this.settings.defaultType;o.constructor!==f&&(o=new f(o))}let u=o.byteLength+l+a*2;(!s||s.byteLength<u)&&(s=this._createBuffer(u)),s.write(o,l)}return this.setAccessor(i),!0}updateSubBuffer(e={}){this.state.bounds=null;let r=this.value,{startOffset:n=0,endOffset:i}=e;this.buffer.write(this.doublePrecision&&r instanceof Float64Array?tC(r,{size:this.size,startIndex:n,endIndex:i}):r.subarray(n,i),n*r.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,r=!1){let{state:n}=this,i=n.allocatedValue,o=mf.allocate(i,e+1,{size:this.size,type:this.settings.defaultType,copy:r});this.value=o;let{byteOffset:s}=this,{buffer:a}=this;return(!a||a.byteLength<o.byteLength+s)&&(a=this._createBuffer(o.byteLength+s),r&&i&&a.write(i instanceof Float64Array?tC(i,this):i,s)),n.allocatedValue=o,n.constant=!1,n.externalBuffer=null,this.setAccessor(this.settings),!0}_checkExternalBuffer(e){let{value:r}=e;if(!ArrayBuffer.isView(r))throw new Error(`Attribute ${this.id} value is not TypedArray`);let n=this.settings.defaultType,i=!1;if(this.doublePrecision&&(i=r.BYTES_PER_ELEMENT<4),i)throw new Error(`Attribute ${this.id} does not support ${r.constructor.name}`);!(r instanceof n)&&this.settings.normalized&&!("normalized"in e)&&Ar.warn(`Attribute ${this.id} is normalized`)()}normalizeConstant(e){switch(this.settings.type){case"snorm8":return new Float32Array(e).map(r=>(r+128)/255*2-1);case"snorm16":return new Float32Array(e).map(r=>(r+32768)/65535*2-1);case"unorm8":return new Float32Array(e).map(r=>r/255);case"unorm16":return new Float32Array(e).map(r=>r/65535);default:return e}}_normalizeValue(e,r,n){let{defaultValue:i,size:o}=this.settings;if(Number.isFinite(e))return r[n]=e,r;if(!e){let s=o;for(;--s>=0;)r[n+s]=i[s];return r}switch(o){case 4:r[n+3]=Number.isFinite(e[3])?e[3]:i[3];case 3:r[n+2]=Number.isFinite(e[2])?e[2]:i[2];case 2:r[n+1]=Number.isFinite(e[1])?e[1]:i[1];case 1:r[n+0]=Number.isFinite(e[0])?e[0]:i[0];break;default:let s=o;for(;--s>=0;)r[n+s]=Number.isFinite(e[s])?e[s]:i[s]}return r}_areValuesEqual(e,r){if(!e||!r)return!1;let{size:n}=this;for(let i=0;i<n;i++)if(e[i]!==r[i])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();let{isIndexed:r,type:n}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:(r?$n.INDEX:$n.VERTEX)|$n.COPY_DST,indexType:r?n:void 0,byteLength:e}),this._buffer}};var m$=[],A$=[];function ua(t,e=0,r=1/0){let n=m$,i={index:-1,data:t,target:[]};return t?typeof t[Symbol.iterator]=="function"?n=t:t.length>0&&(A$.length=t.length,n=A$):n=m$,(e>0||Number.isFinite(r))&&(n=(Array.isArray(n)?n:Array.from(n)).slice(e,r),i.index=e-1),{iterable:n,objectInfo:i}}function HC(t){return t&&t[Symbol.asyncIterator]}function WC(t,e){let{size:r,stride:n,offset:i,startIndices:o,nested:s}=e,a=t.BYTES_PER_ELEMENT,l=n?n/a:r,u=i?i/a:0,f=Math.floor((t.length-u)/l);return(m,{index:v,target:E})=>{if(!o){let q=v*l+u;for(let G=0;G<r;G++)E[G]=t[q+G];return E}let S=o[v],L=o[v+1]||f,O;if(s){O=new Array(L-S);for(let q=S;q<L;q++){let G=q*l+u;E=new Array(r);for(let H=0;H<r;H++)E[H]=t[G+H];O[q-S]=E}}else if(l===r)O=t.subarray(S*r+u,L*r+u);else{O=new t.constructor((L-S)*r);let q=0;for(let G=S;G<L;G++){let H=G*l+u;for(let Y=0;Y<r;Y++)O[q++]=t[H+Y]}}return O}}var g$=[],gw=[[0,1/0]];function y$(t,e){if(t===gw||(e[0]<0&&(e[0]=0),e[0]>=e[1]))return t;let r=[],n=t.length,i=0;for(let o=0;o<n;o++){let s=t[o];s[1]<e[0]?(r.push(s),i=o+1):s[0]>e[1]?r.push(s):e=[Math.min(s[0],e[0]),Math.max(s[1],e[1])]}return r.splice(i,0,e),r}var G3e={interpolation:{duration:0,easing:t=>t},spring:{stiffness:.05,damping:.5}};function qC(t,e){if(!t)return null;Number.isFinite(t)&&(t={type:"interpolation",duration:t});let r=t.type||"interpolation";return{...G3e[r],...e,...t,type:r}}var Wd=class extends Aw{constructor(e,r){super(e,r,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:gw}),this.constant=!1,this.settings.update=r.update||(r.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}get startIndices(){return this.state.startIndices}set startIndices(e){this.state.startIndices=e}needsUpdate(){return this.state.needsUpdate}needsRedraw({clearChangedFlags:e=!1}={}){let r=this.state.needsRedraw;return this.state.needsRedraw=r&&!e,r}layoutChanged(){return this.state.layoutChanged}setAccessor(e){var r;(r=this.state).layoutChanged||(r.layoutChanged=!d$(e,this.getAccessor())),super.setAccessor(e)}getUpdateTriggers(){let{accessor:e}=this.settings;return[this.id].concat(typeof e!="function"&&e||[])}supportsTransition(){return Boolean(this.settings.transition)}getTransitionSetting(e){if(!e||!this.supportsTransition())return null;let{accessor:r}=this.settings,n=this.settings.transition,i=Array.isArray(r)?e[r.find(o=>e[o])]:e[r];return qC(i,n)}setNeedsUpdate(e=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),r){let{startRow:n=0,endRow:i=1/0}=r;this.state.updateRanges=y$(this.state.updateRanges,[n,i])}else this.state.updateRanges=gw}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=g$}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:r,settings:n}=this;return n.noAlloc?!1:n.update?(super.allocate(e,r.updateRanges!==gw),!0):!1}updateBuffer({numInstances:e,data:r,props:n,context:i}){if(!this.needsUpdate())return!1;let{state:{updateRanges:o},settings:{update:s,noAlloc:a}}=this,l=!0;if(s){for(let[u,f]of o)s.call(i,this,{data:r,startRow:u,endRow:f,props:n,numInstances:e});if(this.value)if(this.constant||!this.buffer||this.buffer.byteLength<this.value.byteLength+this.byteOffset)this.setData({value:this.value,constant:this.constant}),this.constant=!1;else for(let[u,f]of o){let m=Number.isFinite(u)?this.getVertexOffset(u):0,v=Number.isFinite(f)?this.getVertexOffset(f):a||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:m,endOffset:v})}this._checkAttributeArray()}else l=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),l}setConstantValue(e,r){let n=this.device.type==="webgpu";if(n||r===void 0||typeof r=="function"){if(n&&typeof r!="function"){let s=this._normalizeValue(r,[],0);this._areValuesEqual(s,this.value)||this.setNeedsUpdate("WebGPU constant updated")}return!1}let i=this.settings.transform&&e?this.settings.transform.call(e,r):r;return this.setData({constant:!0,value:i})&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0}setExternalBuffer(e){let{state:r}=this;return e?(this.clearNeedsUpdate(),r.lastExternalBuffer===e||(r.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e)),!0):(r.lastExternalBuffer=null,!1)}setBinaryValue(e,r=null){let{state:n,settings:i}=this;if(!e)return n.binaryValue=null,n.binaryAccessor=null,!1;if(i.noAlloc)return!1;if(n.binaryValue===e)return this.clearNeedsUpdate(),!0;if(n.binaryValue=e,this.setNeedsRedraw(),i.transform||r!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let s=e;ps(ArrayBuffer.isView(s.value),`invalid ${i.accessor}`);let a=Boolean(s.size)&&s.size!==this.size;return n.binaryAccessor=WC(s.value,{size:s.size||this.size,stride:s.stride,offset:s.offset,startIndices:r,nested:a}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}getVertexOffset(e){let{startIndices:r}=this;return(r?e<r.length?r[e]:this.numInstances:e)*this.size}getValue(){let e=this.settings.shaderAttributes,r=super.getValue();if(!e)return r;for(let n in e)Object.assign(r,super.getValue(n,e[n]));return r}getBufferLayout(e){this.state.layoutChanged=!1;let r=this.settings.shaderAttributes,n=super._getBufferLayout(),{stepMode:i}=this.settings;if(i==="dynamic"?n.stepMode=e?e.isInstanced?"instance":"vertex":"instance":n.stepMode=i??"vertex",!r)return n;for(let o in r){let s=super._getBufferLayout(o,r[o]);n.attributes.push(...s.attributes)}return n}_autoUpdater(e,{data:r,startRow:n,endRow:i,props:o,numInstances:s}){if(e.constant&&this.context.device.type!=="webgpu")return;let{settings:a,state:l,value:u,size:f,startIndices:m}=e,{accessor:v,transform:E}=a,S=l.binaryAccessor||(typeof v=="function"?v:o[v]);typeof S!="function"&&typeof v=="string"&&(S=()=>o[v]),ps(typeof S=="function",`accessor "${v}" is not a function`);let L=e.getVertexOffset(n),{iterable:O,objectInfo:q}=ua(r,n,i);for(let G of O){q.index++;let H=S(G,q);if(E&&(H=E.call(this,H)),m){let Y=(q.index<m.length-1?m[q.index+1]:s)-m[q.index];if(H&&Array.isArray(H[0])){let te=L;for(let D of H)e._normalizeValue(D,u,te),te+=f}else H&&H.length>f?u.set(H,L):(e._normalizeValue(H,q.target,0),uC({target:u,source:q.target,start:L,count:Y}));L+=Y*f}else e._normalizeValue(H,u,L),L+=f}}_validateAttributeUpdaters(){let{settings:e}=this;if(!(e.noAlloc||typeof e.update=="function"))throw new Error(`Attribute ${this.id} missing update or accessor`)}_checkAttributeArray(){let{value:e}=this,r=Math.min(4,this.size);if(e&&e.length>=r){let n=!0;switch(r){case 4:n=n&&Number.isFinite(e[3]);case 3:n=n&&Number.isFinite(e[2]);case 2:n=n&&Number.isFinite(e[1]);case 1:n=n&&Number.isFinite(e[0]);break;default:n=!1}if(!n)throw new Error(`Illegal attribute generated for ${this.id}`)}}};function sF(t){let{source:e,target:r,start:n=0,size:i,getData:o}=t,s=t.end||r.length,a=e.length,l=s-n;if(a>l){r.set(e.subarray(0,l),n);return}if(r.set(e,n),!o)return;let u=a;for(;u<l;){let f=o(u,e);for(let m=0;m<i;m++)r[n+u]=f[m]||0,u++}}function _$({source:t,target:e,size:r,getData:n,sourceStartIndices:i,targetStartIndices:o}){if(!i||!o)return sF({source:t,target:e,size:r,getData:n}),e;let s=0,a=0,l=n&&((f,m)=>n(f+a,m)),u=Math.min(i.length,o.length);for(let f=1;f<u;f++){let m=i[f]*r,v=o[f]*r;sF({source:t.subarray(s,m),target:e,start:a,end:v,size:r,getData:l}),s=m,a=v}return a<e.length&&sF({source:[],target:e,start:a,size:r,getData:l}),e}function x$(t){let{device:e,settings:r,value:n}=t,i=new Wd(e,r);return i.setData({value:n instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:r.normalized}),i}function GC(t){switch(t){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`No defined attribute type for size "${t}"`)}}function XC(t){switch(t){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4";default:throw new Error("invalid type size")}}function YC(t){t.push(t.shift())}function v$(t,e){let{doublePrecision:r,settings:n,value:i,size:o}=t,s=r&&i instanceof Float64Array?2:1,a=0,{shaderAttributes:l}=t.settings;if(l)for(let u of Object.values(l))a=Math.max(a,u.vertexOffset??0);return(n.noAlloc?i.length:(e+a)*o)*s}function $C({device:t,source:e,target:r}){return(!r||r.byteLength<e.byteLength)&&(r?.destroy(),r=t.createBuffer({byteLength:e.byteLength,usage:e.usage})),r}function KC({device:t,buffer:e,attribute:r,fromLength:n,toLength:i,fromStartIndices:o,getData:s=a=>a}){let a=r.doublePrecision&&r.value instanceof Float64Array?2:1,l=r.size*a,u=r.byteOffset,f=r.settings.bytesPerElement<4?u/r.settings.bytesPerElement*4:u,m=r.startIndices,v=o&&m,E=r.isConstant;if(!v&&e&&n>=i)return e;let S=r.value instanceof Float64Array?Float32Array:r.value.constructor,L=E?r.value:new S(r.getBuffer().readSyncWebGL(u,i*S.BYTES_PER_ELEMENT).buffer);if(r.settings.normalized&&!E){let H=s;s=(Y,te)=>r.normalizeConstant(H(Y,te))}let O=E?(H,Y)=>s(L,Y):(H,Y)=>s(L.subarray(H+u,H+u+l),Y),q=e?new Float32Array(e.readSyncWebGL(f,n*4).buffer):new Float32Array(0),G=new Float32Array(i);return _$({source:q,target:G,sourceStartIndices:o,targetStartIndices:m,size:l,getData:O}),(!e||e.byteLength<G.byteLength+f)&&(e?.destroy(),e=t.createBuffer({byteLength:G.byteLength+f,usage:35050})),e.write(G,f),e}var I1=class{constructor({device:e,attribute:r,timeline:n}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new gf(n),this.attribute=r,this.attributeInTransition=x$(r),this.currentStartIndices=r.startIndices}get inProgress(){return this.transition.inProgress}start(e,r,n=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=v$(this.attribute,r),this.transition.start({...e,duration:n})}update(){let e=this.transition.update();return e&&this.onUpdate(),e}setBuffer(e){this.attributeInTransition.setData({buffer:e,normalized:this.attribute.settings.normalized,value:this.attributeInTransition.value})}cancel(){this.transition.cancel()}delete(){this.cancel();for(let e of this.buffers)e.destroy();this.buffers.length=0}};var yw=class extends I1{constructor({device:e,attribute:r,timeline:n}){super({device:e,attribute:r,timeline:n}),this.type="interpolation",this.transform=K3e(e,r)}start(e,r){let n=this.currentLength,i=this.currentStartIndices;if(super.start(e,r,e.duration),e.duration<=0){this.transition.cancel();return}let{buffers:o,attribute:s}=this;YC(o),o[0]=KC({device:this.device,buffer:o[0],attribute:s,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter}),o[1]=$C({device:this.device,source:o[0],target:o[1]}),this.setBuffer(o[1]);let{transform:a}=this,l=a.model,u=Math.floor(this.currentLength/s.size);w$(s)&&(u/=2),l.setVertexCount(u),s.isConstant?(l.setAttributes({aFrom:o[0]}),l.setConstantAttributes({aTo:s.value})):l.setAttributes({aFrom:o[0],aTo:s.getBuffer()}),a.transformFeedback.setBuffers({vCurrent:o[1]})}onUpdate(){let{duration:e,easing:r}=this.settings,{time:n}=this.transition,i=n/e;r&&(i=r(i));let{model:o}=this.transform,s={time:i};o.shaderInputs.setProps({interpolation:s}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}},X3e=`uniform interpolationUniforms {
|
|
2973
2973
|
float time;
|
|
2974
2974
|
} interpolation;
|
|
2975
2975
|
`,b$={name:"interpolation",vs:X3e,uniformTypes:{time:"f32"}},Y3e=`#version 300 es
|
|
@@ -3049,7 +3049,7 @@ void main(void) {
|
|
|
3049
3049
|
discard;
|
|
3050
3050
|
}
|
|
3051
3051
|
fragColor = vec4(1.0);
|
|
3052
|
-
}`;function tEe(t,e){let r=GC(e.size),n=XC(e.size);return new Fu(t,{vs:J3e,fs:eEe,bufferLayout:[{name:"aPrev",format:n},{name:"aCur",format:n},{name:"aTo",format:e.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[Q3e],defines:{ATTRIBUTE_TYPE:r},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}function rEe(t){return t.createTexture({data:new Uint8Array(4),format:"rgba8unorm",width:1,height:1})}function nEe(t,e){return t.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[e]})}var iEe={interpolation:yw,spring:_w},xw=class{constructor(e,{id:r,timeline:n}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=r,this.device=e,this.timeline=n,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(let e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:r,numInstances:n}){this.numInstances=n||1;for(let i in e){let o=e[i],s=o.getTransitionSetting(r);s&&this._updateAttribute(i,o,s)}for(let i in this.transitions){let o=e[i];(!o||!o.getTransitionSetting(r))&&this._removeTransition(i)}}hasAttribute(e){let r=this.transitions[e];return r&&r.inProgress}getAttributes(){let e={};for(let r in this.transitions){let n=this.transitions[r];n.inProgress&&(e[r]=n.attributeInTransition)}return e}run(){if(this.numInstances===0)return!1;for(let r in this.transitions)this.transitions[r].update()&&(this.needsRedraw=!0);let e=this.needsRedraw;return this.needsRedraw=!1,e}_removeTransition(e){this.transitions[e].delete(),delete this.transitions[e]}_updateAttribute(e,r,n){let i=this.transitions[e],o=!i||i.type!==n.type;if(o){i&&this._removeTransition(e);let s=iEe[n.type];s?this.transitions[e]=new s({attribute:r,timeline:this.timeline,device:this.device}):(Ar.error(`unsupported transition type '${n.type}'`)(),o=!1)}(o||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(n,this.numInstances))}};var T$="attributeManager.invalidate",oEe="attributeManager.updateStart",sEe="attributeManager.updateEnd",aEe="attribute.updateStart",cEe="attribute.allocate",lEe="attribute.updateEnd",ju=class{constructor(e,{id:r="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=Mh(bX),this.id=r,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new xw(e,{id:`${r}-transitions`,timeline:i}),Object.seal(this)}finalize(){for(let e in this.attributes)this.attributes[e].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(e={clearRedrawFlags:!1}){let r=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,r&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(e){this._add(e)}addInstanced(e){this._add(e,{stepMode:"instance"})}remove(e){for(let r of e)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(e,r){let n=this._invalidateTrigger(e,r);sa(T$,this,e,n)}invalidateAll(e){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,e);sa(T$,this,"all")}update({data:e,numInstances:r,startIndices:n=null,transitions:i,props:o={},buffers:s={},context:a={}}){let l=!1;sa(oEe,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(let u in this.attributes){let f=this.attributes[u],m=f.settings.accessor;f.startIndices=n,f.numInstances=r,o[u]&&Ar.removed(`props.${u}`,`data.attributes.${u}`)(),f.setExternalBuffer(s[u])||f.setBinaryValue(typeof m=="string"?s[m]:void 0,e.startIndices)||typeof m=="string"&&!s[m]&&f.setConstantValue(o[m])||f.needsUpdate()&&(l=!0,this._updateAttribute({attribute:f,numInstances:r,data:e,props:o,context:a})),this.needsRedraw=this.needsRedraw||f.needsRedraw()}l&&sa(sEe,this,r),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:i})}updateTransition(){let{attributeTransitionManager:e}=this,r=e.run();return this.needsRedraw=this.needsRedraw||r,r}getAttributes(){return{...this.attributes,...this.attributeTransitionManager.getAttributes()}}getBounds(e){let r=e.map(n=>this.attributes[n]?.getBounds());return this.mergeBoundsMemoized(r)}getChangedAttributes(e={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:n}=this,i={...n.getAttributes()};for(let o in r){let s=r[o];s.needsRedraw(e)&&!n.hasAttribute(o)&&(i[o]=s)}return i}getBufferLayouts(e){return Object.values(this.getAttributes()).map(r=>r.getBufferLayout(e))}_add(e,r){for(let n in e){let i=e[n],o={...i,id:n,size:i.isIndexed&&1||i.size||1,...r};this.attributes[n]=new Wd(this.device,o)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){let e={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(i=>{e[i]||(e[i]=[]),e[i].push(r)});this.updateTriggers=e}_invalidateTrigger(e,r){let{attributes:n,updateTriggers:i}=this,o=i[e];return o&&o.forEach(s=>{let a=n[s];a&&a.setNeedsUpdate(a.id,r)}),o}_updateAttribute(e){let{attribute:r,numInstances:n}=e;if(sa(aEe,r),r.constant){r.setConstantValue(r.value);return}r.allocate(n)&&sa(cEe,r,n),r.updateBuffer(e)&&(this.needsRedraw=!0,sa(lEe,r,n))}};Fn();fw();var vw=class extends gf{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:r,toValue:n,duration:i,easing:o}}=this,s=o(e/i);this._value=nc(r,n,s)}};var E$=1e-5;function M$(t,e,r,n,i){let o=e-t,a=(r-e)*i,l=-o*n;return a+l+o+e}function uEe(t,e,r,n,i){if(Array.isArray(r)){let o=[];for(let s=0;s<r.length;s++)o[s]=M$(t[s],e[s],r[s],n,i);return o}return M$(t,e,r,n,i)}function S$(t,e){if(Array.isArray(t)){let r=0;for(let n=0;n<t.length;n++){let i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}return Math.abs(t-e)}var bw=class extends gf{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:r,damping:n,stiffness:i}=this.settings,{_prevValue:o=e,_currValue:s=e}=this,a=uEe(o,s,r,n,i),l=S$(a,r),u=S$(a,s);l<E$&&u<E$&&(a=r,this.end()),this._prevValue=s,this._currValue=a}};var hEe={interpolation:vw,spring:bw},ww=class{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,r,n,i){let{transitions:o}=this;if(o.has(e)){let l=o.get(e),{value:u=l.settings.fromValue}=l;r=u,this.remove(e)}if(i=qC(i),!i)return;let s=hEe[i.type];if(!s){Ar.error(`unsupported transition type '${i.type}'`)();return}let a=new s(this.timeline);a.start({...i,fromValue:r,toValue:n}),o.set(e,a)}remove(e){let{transitions:r}=this;r.has(e)&&(r.get(e).cancel(),r.delete(e))}update(){let e={};for(let[r,n]of this.transitions)n.update(),e[r]=n.value,n.inProgress||this.remove(r);return e}clear(){for(let e of this.transitions.keys())this.remove(e)}};function I$(t){let e=t[Rh];for(let r in e){let n=e[r],{validate:i}=n;if(i&&!i(t[r],n))throw new Error(`Invalid prop ${r}: ${t[r]}`)}}function P$(t,e){let r=P1({newProps:t,oldProps:e,propTypes:t[Rh],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),n=pEe(t,e),i=!1;return n||(i=dEe(t,e)),{dataChanged:n,propsChanged:r,updateTriggersChanged:i,extensionsChanged:mEe(t,e),transitionsChanged:fEe(t,e)}}function fEe(t,e){if(!t.transitions)return!1;let r={},n=t[Rh],i=!1;for(let o in t.transitions){let s=n[o],a=s&&s.type;(a==="number"||a==="color"||a==="array")&&aF(t[o],e[o],s)&&(r[o]=!0,i=!0)}return i?r:!1}function P1({newProps:t,oldProps:e,ignoreProps:r={},propTypes:n={},triggerName:i="props"}){if(e===t)return!1;if(typeof t!="object"||t===null)return`${i} changed shallowly`;if(typeof e!="object"||e===null)return`${i} changed shallowly`;for(let o of Object.keys(t))if(!(o in r)){if(!(o in e))return`${i}.${o} added`;let s=aF(t[o],e[o],n[o]);if(s)return`${i}.${o} ${s}`}for(let o of Object.keys(e))if(!(o in r)){if(!(o in t))return`${i}.${o} dropped`;if(!Object.hasOwnProperty.call(t,o)){let s=aF(t[o],e[o],n[o]);if(s)return`${i}.${o} ${s}`}}return!1}function aF(t,e,r){let n=r&&r.equal;return n&&!n(t,e,r)||!n&&(n=t&&e&&t.equals,n&&!n.call(t,e))?"changed deeply":!n&&e!==t?"changed shallowly":null}function pEe(t,e){if(e===null)return"oldProps is null, initial diff";let r=!1,{dataComparator:n,_dataDiff:i}=t;return n?n(t.data,e.data)||(r="Data comparator detected a change"):t.data!==e.data&&(r="A new data container was supplied"),r&&i&&(r=i(t.data,e.data)||r),r}function dEe(t,e){if(e===null)return{all:!0};if("all"in t.updateTriggers&&C$(t,e,"all"))return{all:!0};let r={},n=!1;for(let i in t.updateTriggers)i!=="all"&&C$(t,e,i)&&(r[i]=!0,n=!0);return n?r:!1}function mEe(t,e){if(e===null)return!0;let r=e.extensions,{extensions:n}=t;if(n===r)return!1;if(!r||!n||n.length!==r.length)return!0;for(let i=0;i<n.length;i++)if(!n[i].equals(r[i]))return!0;return!1}function C$(t,e,r){let n=t.updateTriggers[r];n=n??{};let i=e.updateTriggers[r];return i=i??{},P1({oldProps:i,newProps:n,triggerName:r})}var AEe="count(): argument not an object",gEe="count(): argument not a container";function ZC(t){if(!_Ee(t))throw new Error(AEe);if(typeof t.count=="function")return t.count();if(Number.isFinite(t.size))return t.size;if(Number.isFinite(t.length))return t.length;if(yEe(t))return Object.keys(t).length;throw new Error(gEe)}function yEe(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function _Ee(t){return t!==null&&typeof t=="object"}function Tw(t,e){if(!e)return t;let r={...t,...e};if("defines"in e&&(r.defines={...t.defines,...e.defines}),"modules"in e&&(r.modules=(t.modules||[]).concat(e.modules),e.modules.some(n=>n.name==="project64"))){let n=r.modules.findIndex(i=>i.name==="project32");n>=0&&r.modules.splice(n,1)}if("inject"in e)if(!t.inject)r.inject=e.inject;else{let n={...t.inject};for(let i in e.inject)n[i]=(n[i]||"")+e.inject[i];r.inject=n}return r}Fn();var xEe={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},cF={};function R$(t,e,r,n){if(r instanceof Ki)return r;r.constructor&&r.constructor.name!=="Object"&&(r={data:r});let i=null;r.compressed&&(i={minFilter:"linear",mipmapFilter:r.data.length>1?"nearest":"linear"});let{width:o,height:s}=r.data,a=e.createTexture({...r,sampler:{...xEe,...i,...n},mipLevels:e.getMipLevelCount(o,s)});return a.generateMipmapsWebGL(),cF[a.id]=t,a}function L$(t,e){!e||!(e instanceof Ki)||cF[e.id]===t&&(e.delete(),delete cF[e.id])}var vEe={boolean:{validate(t,e){return!0},equal(t,e,r){return Boolean(t)===Boolean(e)}},number:{validate(t,e){return Number.isFinite(t)&&(!("max"in e)||t<=e.max)&&(!("min"in e)||t>=e.min)}},color:{validate(t,e){return e.optional&&!t||lF(t)&&(t.length===3||t.length===4)},equal(t,e,r){return Gi(t,e,1)}},accessor:{validate(t,e){let r=QC(t);return r==="function"||r===QC(e.value)},equal(t,e,r){return typeof e=="function"?!0:Gi(t,e,1)}},array:{validate(t,e){return e.optional&&!t||lF(t)},equal(t,e,r){let{compare:n}=r,i=Number.isInteger(n)?n:n?1:0;return n?Gi(t,e,i):t===e}},object:{equal(t,e,r){if(r.ignore)return!0;let{compare:n}=r,i=Number.isInteger(n)?n:n?1:0;return n?Gi(t,e,i):t===e}},function:{validate(t,e){return e.optional&&!t||typeof t=="function"},equal(t,e,r){return!r.compare&&r.ignore!==!1||t===e}},data:{transform:(t,e,r)=>{if(!t)return t;let{dataTransform:n}=r.props;return n?n(t):typeof t.shape=="string"&&t.shape.endsWith("-table")&&Array.isArray(t.data)?t.data:t}},image:{transform:(t,e,r)=>{let n=r.context;return!n||!n.device?null:R$(r.id,n.device,t,{...e.parameters,...r.props.textureParameters})},release:(t,e,r)=>{L$(r.id,t)}}};function O$(t){let e={},r={},n={};for(let[i,o]of Object.entries(t)){let s=o?.deprecatedFor;if(s)n[i]=Array.isArray(s)?s:[s];else{let a=bEe(i,o);e[i]=a,r[i]=a.value}}return{propTypes:e,defaultProps:r,deprecatedProps:n}}function bEe(t,e){switch(QC(e)){case"object":return Ew(t,e);case"array":return Ew(t,{type:"array",value:e,compare:!1});case"boolean":return Ew(t,{type:"boolean",value:e});case"number":return Ew(t,{type:"number",value:e});case"function":return Ew(t,{type:"function",value:e,compare:!0});default:return{name:t,type:"unknown",value:e}}}function Ew(t,e){return"type"in e?{name:t,...vEe[e.type],...e}:"value"in e?{name:t,type:QC(e.value),...e}:{name:t,type:"object",value:e}}function lF(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function QC(t){return lF(t)?"array":t===null?"null":typeof t}function B$(t,e){let r;for(let o=e.length-1;o>=0;o--){let s=e[o];"extensions"in s&&(r=s.extensions)}let n=uF(t.constructor,r),i=Object.create(n);i[x1]=t,i[Ep]={},i[Af]={};for(let o=0;o<e.length;++o){let s=e[o];for(let a in s)i[a]=s[a]}return Object.freeze(i),i}var wEe="_mergedDefaultProps";function uF(t,e){if(!(t instanceof R1.constructor))return{};let r=wEe;if(e)for(let i of e){let o=i.constructor;o&&(r+=`:${o.extensionName||o.name}`)}let n=k$(t,r);return n||(t[r]=TEe(t,e||[]))}function TEe(t,e){if(!t.prototype)return null;let n=Object.getPrototypeOf(t),i=uF(n),o=k$(t,"defaultProps")||{},s=O$(o),a=Object.assign(Object.create(null),i,s.defaultProps),l=Object.assign(Object.create(null),i?.[Rh],s.propTypes),u=Object.assign(Object.create(null),i?.[lC],s.deprecatedProps);for(let f of e){let m=uF(f.constructor);m&&(Object.assign(a,m),Object.assign(l,m[Rh]),Object.assign(u,m[lC]))}return EEe(a,t),SEe(a,l),MEe(a,u),a[Rh]=l,a[lC]=u,e.length===0&&!hF(t,"_propTypes")&&(t._propTypes=l),a}function EEe(t,e){let r=IEe(e);Object.defineProperties(t,{id:{writable:!0,value:r}})}function MEe(t,e){for(let r in e)Object.defineProperty(t,r,{enumerable:!1,set(n){let i=`${this.id}: ${r}`;for(let o of e[r])hF(this,o)||(this[o]=n);Ar.deprecated(i,e[r].join("/"))()}})}function SEe(t,e){let r={},n={};for(let i in e){let o=e[i],{name:s,value:a}=o;o.async&&(r[s]=a,n[s]=CEe(s))}t[Fd]=r,t[Ep]={},Object.defineProperties(t,n)}function CEe(t){return{enumerable:!0,set(e){typeof e=="string"||e instanceof Promise||HC(e)?this[Ep][t]=e:this[Af][t]=e},get(){if(this[Af]){if(t in this[Af])return this[Af][t]||this[Fd][t];if(t in this[Ep]){let e=this[x1]&&this[x1].internalState;if(e&&e.hasAsyncProp(t))return e.getAsyncProp(t)||this[Fd][t]}}return this[Fd][t]}}}function hF(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function k$(t,e){return hF(t,e)&&t[e]}function IEe(t){let e=t.componentName;return e||Ar.warn(`${t.name}.componentName not specified`)(),e||t.name}var PEe=0,Mw=class{constructor(...e){this.props=B$(this,e),this.id=this.props.id,this.count=PEe++}clone(e){let{props:r}=this,n={};for(let i in r[Fd])i in r[Af]?n[i]=r[Af][i]:i in r[Ep]&&(n[i]=r[Ep][i]);return new this.constructor({...r,...n,...e})}};Mw.componentName="Component";Mw.defaultProps={};var R1=Mw;var REe=Object.freeze({}),lg=class{constructor(e){this.component=e,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(let e in this.asyncProps){let r=this.asyncProps[e];r&&r.type&&r.type.release&&r.type.release(r.resolvedValue,r.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||REe}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(e){return e in this.asyncProps}getAsyncProp(e){let r=this.asyncProps[e];return r&&r.resolvedValue}isAsyncPropLoading(e){if(e){let r=this.asyncProps[e];return Boolean(r&&r.pendingLoadCount>0&&r.pendingLoadCount!==r.resolvedLoadCount)}for(let r in this.asyncProps)if(this.isAsyncPropLoading(r))return!0;return!1}reloadAsyncProp(e,r){this._watchPromise(e,Promise.resolve(r))}setAsyncProps(e){this.component=e[x1]||this.component;let r=e[Af]||{},n=e[Ep]||e,i=e[Fd]||{};for(let o in r){let s=r[o];this._createAsyncPropData(o,i[o]),this._updateAsyncProp(o,s),r[o]=this.getAsyncProp(o)}for(let o in n){let s=n[o];this._createAsyncPropData(o,i[o]),this._updateAsyncProp(o,s)}}_fetch(e,r){return null}_onResolve(e,r){}_onError(e,r){}_updateAsyncProp(e,r){if(this._didAsyncInputValueChange(e,r)){if(typeof r=="string"&&(r=this._fetch(e,r)),r instanceof Promise){this._watchPromise(e,r);return}if(HC(r)){this._resolveAsyncIterable(e,r);return}this._setPropValue(e,r)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(let e in this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}}_didAsyncInputValueChange(e,r){let n=this.asyncProps[e];return r===n.resolvedValue||r===n.lastValue?!1:(n.lastValue=r,!0)}_setPropValue(e,r){this._freezeAsyncOldProps();let n=this.asyncProps[e];n&&(r=this._postProcessValue(n,r),n.resolvedValue=r,n.pendingLoadCount++,n.resolvedLoadCount=n.pendingLoadCount)}_setAsyncPropValue(e,r,n){let i=this.asyncProps[e];i&&n>=i.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),i.resolvedValue=r,i.resolvedLoadCount=n,this.onAsyncPropUpdated(e,r))}_watchPromise(e,r){let n=this.asyncProps[e];if(n){n.pendingLoadCount++;let i=n.pendingLoadCount;r.then(o=>{this.component&&(o=this._postProcessValue(n,o),this._setAsyncPropValue(e,o,i),this._onResolve(e,o))}).catch(o=>{this._onError(e,o)})}}async _resolveAsyncIterable(e,r){if(e!=="data"){this._setPropValue(e,r);return}let n=this.asyncProps[e];if(!n)return;n.pendingLoadCount++;let i=n.pendingLoadCount,o=[],s=0;for await(let a of r){if(!this.component)return;let{dataTransform:l}=this.component.props;l?o=l(a,o):o=o.concat(a),Object.defineProperty(o,"__diff",{enumerable:!1,value:[{startRow:s,endRow:o.length}]}),s=o.length,this._setAsyncPropValue(e,o,i)}this._onResolve(e,o)}_postProcessValue(e,r){let n=e.type;return n&&this.component&&(n.release&&n.release(e.resolvedValue,n,this.component),n.transform)?n.transform(r,n,this.component):r}_createAsyncPropData(e,r){if(!this.asyncProps[e]){let i=this.component&&this.component.props[Rh];this.asyncProps[e]={type:i&&i[e],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var Sw=class extends lg{constructor({attributeManager:e,layer:r}){super(r),this.attributeManager=e,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(e,r){let n=this.layer,i=n?.props.fetch;return i?i(r,{propName:e,layer:n}):super._fetch(e,r)}_onResolve(e,r){let n=this.layer;if(n){let i=n.props.onDataLoad;e==="data"&&i&&i(r,{propName:e,layer:n})}}_onError(e,r){let n=this.layer;n&&n.raiseError(r,`loading ${e} of ${this.layer}`)}};var LEe="layer.changeFlag",OEe="layer.initialize",BEe="layer.update",kEe="layer.finalize",DEe="layer.matched",D$=2**24-1,NEe=Object.freeze([]),FEe=Mh(({oldViewport:t,viewport:e})=>t.equals(e)),vf=new Uint8ClampedArray(0),zEe={data:{type:"data",value:NEe,async:!0},dataComparator:{type:"function",value:null,optional:!0},_dataDiff:{type:"function",value:t=>t&&t.__diff,optional:!0},dataTransform:{type:"function",value:null,optional:!0},onDataLoad:{type:"function",value:null,optional:!0},onError:{type:"function",value:null,optional:!0},fetch:{type:"function",value:(t,{propName:e,layer:r,loaders:n,loadOptions:i,signal:o})=>{let{resourceManager:s}=r.context;i=i||r.getLoadOptions(),n=n||r.props.loaders,o&&(i={...i,fetch:{...i?.fetch,signal:o}});let a=s.contains(t);return!a&&!i&&(s.add({resourceId:t,data:za(t,n),persistent:!1}),a=!0),a?s.subscribe({resourceId:t,onChange:l=>r.internalState?.reloadAsyncProp(e,l),consumerId:r.id,requestId:e}):za(t,n,i)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:"draw",onHover:{type:"function",value:null,optional:!0},onClick:{type:"function",value:null,optional:!0},onDragStart:{type:"function",value:null,optional:!0},onDrag:{type:"function",value:null,optional:!0},onDragEnd:{type:"function",value:null,optional:!0},coordinateSystem:Kr.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:2},loadOptions:{type:"object",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:"function",value:({layerIndex:t})=>[0,-t*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}},Cw=class extends R1{constructor(){super(...arguments),this.internalState=null,this.lifecycle=s0.NO_STATE,this.parent=null}static get componentName(){return Object.prototype.hasOwnProperty.call(this,"layerName")?this.layerName:""}get root(){let e=this;for(;e.parent;)e=e.parent;return e}toString(){return`${this.constructor.layerName||this.constructor.name}({id: '${this.props.id}'})`}project(e){ps(this.internalState);let r=this.internalState.viewport||this.context.viewport,n=EN(e,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[i,o,s]=h1(n,r.pixelProjectionMatrix);return e.length===2?[i,o]:[i,o,s]}unproject(e){return ps(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,r){ps(this.internalState);let n=this.internalState.viewport||this.context.viewport;return rC(e,{viewport:n,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}get isDrawable(){return!0}setState(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){let e=this.state;return e&&(e.models||e.model&&[e.model])||[]}setShaderModuleProps(...e){for(let r of this.getModels())r.shaderInputs.setProps(...e)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){let{coordinateSystem:e}=this.props;return e===Kr.DEFAULT||e===Kr.LNGLAT||e===Kr.CARTESIAN}onHover(e,r){return this.props.onHover&&this.props.onHover(e,r)||!1}onClick(e,r){return this.props.onClick&&this.props.onClick(e,r)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(e,r=[]){return r[0]=e+1&255,r[1]=e+1>>8&255,r[2]=e+1>>8>>8&255,r}decodePickingColor(e){ps(e instanceof Uint8Array);let[r,n,i]=e;return r+n*256+i*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:ZC(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){return this.getAttributeManager()?.getBounds(["positions","instancePositions"])}getShaders(e){e=Tw(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(let r of this.props.extensions)e=Tw(e,r.getShaders.call(this,r));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){let r=this.getAttributeManager(),{dataChanged:n}=e.changeFlags;if(n&&r)if(Array.isArray(n))for(let i of n)r.invalidateAll(i);else r.invalidateAll();if(r){let{props:i}=e,o=this.internalState.hasPickingBuffer,s=Number.isInteger(i.highlightedObjectIndex)||i.pickable||i.extensions.some(a=>a.getNeedsPickingBuffer.call(this,a));if(o!==s){this.internalState.hasPickingBuffer=s;let{pickingColors:a,instancePickingColors:l}=r.attributes,u=a||l;u&&(s&&u.constant&&(u.constant=!1,r.invalidate(u.id)),!u.value&&!s&&(u.constant=!0,u.value=[0,0,0]))}}}finalizeState(e){for(let n of this.getModels())n.destroy();let r=this.getAttributeManager();r&&r.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(e){for(let r of this.getModels())r.draw(e.renderPass)}getPickingInfo({info:e,mode:r,sourceLayer:n}){let{index:i}=e;return i>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[i]),e}raiseError(e,r){r&&(e=new Error(`${r}: ${e.message}`,{cause:e})),this.props.onError?.(e)||this.context?.onError?.(e,this)}getNeedsRedraw(e={clearRedrawFlags:!1}){return this._getNeedsRedraw(e)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){return this.internalState?.uniformTransitions.active||!1}activateViewport(e){if(!this.internalState)return;let r=this.internalState.viewport;this.internalState.viewport=e,(!r||!FEe({oldViewport:r,viewport:e}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(e="all"){let r=this.getAttributeManager();r&&(e==="all"?r.invalidateAll():r.invalidate(e))}updateAttributes(e){let r=!1;for(let n in e)e[n].layoutChanged()&&(r=!0);for(let n of this.getModels())this._setModelAttributes(n,e,r)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let r=this.props,n=this.getNumInstances(),i=this.getStartIndices();e.update({data:r.data,numInstances:n,startIndices:i,props:r,transitions:r.transitions,buffers:r.data.attributes,context:this});let o=e.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(o)}_updateAttributeTransition(){let e=this.getAttributeManager();e&&e.updateTransition()}_updateUniformTransition(){let{uniformTransitions:e}=this.internalState;if(e.active){let r=e.update(),n=Object.create(this.props);for(let i in r)Object.defineProperty(n,i,{value:r[i]});return n}return this.props}calculateInstancePickingColors(e,{numInstances:r}){if(e.constant)return;let n=Math.floor(vf.length/4);if(this.internalState.usesPickingColorCache=!0,n<r){r>D$&&Ar.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),vf=mf.allocate(vf,r,{size:4,copy:!0,maxCount:Math.max(r,D$)});let i=Math.floor(vf.length/4),o=[0,0,0];for(let s=n;s<i;s++)this.encodePickingColor(s,o),vf[s*4+0]=o[0],vf[s*4+1]=o[1],vf[s*4+2]=o[2],vf[s*4+3]=0}e.value=vf.subarray(0,r*4)}_setModelAttributes(e,r,n=!1){if(!Object.keys(r).length)return;if(n){let a=this.getAttributeManager();e.setBufferLayout(a.getBufferLayouts(e)),r=a.getAttributes()}let i=e.userData?.excludeAttributes||{},o={},s={};for(let a in r){if(i[a])continue;let l=r[a].getValue();for(let u in l){let f=l[u];f instanceof $n?r[a].settings.isIndexed?e.setIndexBuffer(f):o[u]=f:f&&(s[u]=f)}}e.setAttributes(o),e.setConstantAttributes(s)}disablePickingIndex(e){let r=this.props.data;if(!("attributes"in r)){this._disablePickingIndex(e);return}let{pickingColors:n,instancePickingColors:i}=this.getAttributeManager().attributes,o=n||i,s=o&&r.attributes&&r.attributes[o.id];if(s&&s.value){let a=s.value,l=this.encodePickingColor(e);for(let u=0;u<r.length;u++){let f=o.getVertexOffset(u);a[f]===l[0]&&a[f+1]===l[1]&&a[f+2]===l[2]&&this._disablePickingIndex(u)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let{pickingColors:r,instancePickingColors:n}=this.getAttributeManager().attributes,i=r||n;if(!i)return;let o=i.getVertexOffset(e),s=i.getVertexOffset(e+1);i.buffer.write(new Uint8Array(s-o),o)}restorePickingColors(){let{pickingColors:e,instancePickingColors:r}=this.getAttributeManager().attributes,n=e||r;n&&(this.internalState.usesPickingColorCache&&n.value.buffer!==vf.buffer&&(n.value=vf.subarray(0,n.value.length)),n.updateSubBuffer({startOffset:0}))}_initialize(){ps(!this.internalState),ps(Number.isFinite(this.props.coordinateSystem)),sa(OEe,this);let e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new Sw({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(Ar.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new ww(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(let r of this.props.extensions)r.initializeState.call(this,this.context,r);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(e){sa(DEe,this,this===e);let{state:r,internalState:n}=e;this!==e&&(this.internalState=n,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let e=this.needsUpdate();if(sa(BEe,this,e),!e)return;let r=this.props,n=this.context,i=this.internalState,o=n.viewport,s=this._updateUniformTransition();i.propsInTransition=s,n.viewport=i.viewport||o,this.props=s;try{let a=this._getUpdateParams(),l=this.getModels();if(n.device)this.updateState(a);else try{this.updateState(a)}catch{}for(let f of this.props.extensions)f.updateState.call(this,a,f);this.setNeedsRedraw(),this._updateAttributes();let u=this.getModels()[0]!==l[0];this._postUpdate(a,u)}finally{n.viewport=o,this.props=r,this._clearChangeFlags(),i.needsUpdate=!1,i.resetOldProps()}}_finalize(){sa(kEe,this),this.finalizeState(this.context);for(let e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,shaderModuleProps:r=null,uniforms:n={},parameters:i={}}){this._updateAttributeTransition();let o=this.props,s=this.context;this.props=this.internalState.propsInTransition||o;try{r&&this.setShaderModuleProps(r);let{getPolygonOffset:a}=this.props,l=a&&a(n)||[0,0];s.device instanceof Lp&&s.device.setParametersWebGL({polygonOffset:l});for(let u of this.getModels())u.device.type==="webgpu"?u.setParameters({...u.parameters,...i}):u.setParameters(i);if(s.device instanceof Lp)s.device.withParametersWebGL(i,()=>{let u={renderPass:e,shaderModuleProps:r,uniforms:n,parameters:i,context:s};for(let f of this.props.extensions)f.draw.call(this,u,f);this.draw(u)});else{let u={renderPass:e,shaderModuleProps:r,uniforms:n,parameters:i,context:s};for(let f of this.props.extensions)f.draw.call(this,u,f);this.draw(u)}}finally{this.props=o}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let i in e)if(e[i]){let o=!1;switch(i){case"dataChanged":let s=e[i],a=r[i];s&&Array.isArray(a)&&(r.dataChanged=Array.isArray(s)?a.concat(s):s,o=!0);default:r[i]||(r[i]=e[i],o=!0)}o&&sa(LEe,this,i,e)}let n=Boolean(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=n,r.somethingChanged=n||r.viewportChanged||r.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(e,r){let n=P$(e,r);if(n.updateTriggersChanged)for(let i in n.updateTriggersChanged)n.updateTriggersChanged[i]&&this.invalidateAttribute(i);if(n.transitionsChanged)for(let i in n.transitionsChanged)this.internalState.uniformTransitions.add(i,r[i],e[i],e.transitions?.[i]);return this.setChangeFlags(n)}validateProps(){I$(this.props)}updateAutoHighlight(e){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(e)}_updateAutoHighlight(e){let r={highlightedObjectColor:e.picked?e.color:null},{highlightColor:n}=this.props;e.picked&&typeof n=="function"&&(r.highlightColor=n(e)),this.setShaderModuleProps({picking:r}),this.setNeedsRedraw()}_getAttributeManager(){let e=this.context;return new ju(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,r){let{props:n,oldProps:i}=e,o=this.state.model;o?.isInstanced&&o.setInstanceCount(this.getNumInstances());let{autoHighlight:s,highlightedObjectIndex:a,highlightColor:l}=n;if(r||i.autoHighlight!==s||i.highlightedObjectIndex!==a||i.highlightColor!==l){let u={};Array.isArray(l)&&(u.highlightColor=l),(r||i.autoHighlight!==s||a!==i.highlightedObjectIndex)&&(u.highlightedObjectColor=Number.isFinite(a)&&a>=0?this.encodePickingColor(a):null),this.setShaderModuleProps({picking:u})}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(e){if(!this.internalState)return!1;let r=!1;r=r||this.internalState.needsRedraw&&this.id;let n=this.getAttributeManager(),i=n?n.getNeedsRedraw(e):!1;if(r=r||i,r)for(let o of this.props.extensions)o.onNeedsRedraw.call(this,o);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags,r}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}};Cw.defaultProps=zEe;Cw.layerName="Layer";var ro=Cw;var UEe="compositeLayer.renderLayers",JC=class extends ro{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo({info:e}){let{object:r}=e;return r&&r.__source&&r.__source.parent&&r.__source.parent.id===this.id&&(e.object=r.__source.object,e.index=r.__source.index),e}filterSubLayer(e){return!0}shouldRenderSubLayer(e,r){return r&&r.length}getSubLayerClass(e,r){let{_subLayerProps:n}=this.props;return n&&n[e]&&n[e].type||r}getSubLayerRow(e,r,n){return e.__source={parent:this,object:r,index:n},e}getSubLayerAccessor(e){if(typeof e=="function"){let r={index:-1,data:this.props.data,target:[]};return(n,i)=>n&&n.__source?(r.index=n.__source.index,e(n.__source.object,r)):e(n,i)}return e}getSubLayerProps(e={}){let{opacity:r,pickable:n,visible:i,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:l,highlightColor:u,coordinateSystem:f,coordinateOrigin:m,wrapLongitude:v,positionFormat:E,modelMatrix:S,extensions:L,fetch:O,operation:q,_subLayerProps:G}=this.props,H={id:"",updateTriggers:{},opacity:r,pickable:n,visible:i,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:l,highlightColor:u,coordinateSystem:f,coordinateOrigin:m,wrapLongitude:v,positionFormat:E,modelMatrix:S,extensions:L,fetch:O,operation:q},Y=G&&e.id&&G[e.id],te=Y&&Y.updateTriggers,D=e.id||"sublayer";if(Y){let le=this.props[Rh],ie=e.type?e.type._propTypes:{};for(let J in Y){let X=ie[J]||le[J];X&&X.type==="accessor"&&(Y[J]=this.getSubLayerAccessor(Y[J]))}}Object.assign(H,e,Y),H.id=`${this.props.id}-${D}`,H.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...te};for(let le of L){let ie=le.getSubLayerProps.call(this,le);ie&&Object.assign(H,ie,{updateTriggers:Object.assign(H.updateTriggers,ie.updateTriggers)})}return H}_updateAutoHighlight(e){for(let r of this.getSubLayers())r.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,r){let n=this.internalState.subLayers,i=!n||this.needsUpdate();if(i){let o=this.renderLayers();n=Mp(o,Boolean),this.internalState.subLayers=n}sa(UEe,this,i,n);for(let o of n)o.parent=this}};JC.layerName="CompositeLayer";var Ds=JC;var eI=Math.PI/180,N$=180/Math.PI,tI=6370972,L1=256;function VEe(){let t=L1/tI,e=Math.PI/180*L1;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[1/t,1/t,1/t],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,1/t]}}var bf=class extends Va{constructor(e={}){let{longitude:r=0,zoom:n=0,nearZMultiplier:i=.5,farZMultiplier:o=1,resolution:s=10}=e,{latitude:a=0,height:l,altitude:u=1.5,fovy:f}=e;a=Math.max(Math.min(a,Ch),-Ch),l=l||1,f?u=Bd(f):f=Od(u);let m=1/Math.PI/Math.cos(a*Math.PI/180),v=Math.pow(2,n)*m,E=e.nearZ??i,S=e.farZ??(u+L1*2*v/l)*o,L=new Dn().lookAt({eye:[0,-u,0],up:[0,0,1]});L.rotateX(a*eI),L.rotateZ(-r*eI),L.scale(v/l),super({...e,height:l,viewMatrix:L,longitude:r,latitude:a,zoom:n,distanceScales:VEe(),fovy:f,focalDistance:u,near:E,far:S}),this.scale=v,this.latitude=a,this.longitude=r,this.resolution=s}get projectionMode(){return oc.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){let r={targetZ:e.z||0},n=this.unproject([0,this.height/2],r),i=this.unproject([this.width/2,0],r),o=this.unproject([this.width,this.height/2],r),s=this.unproject([this.width/2,this.height],r);return o[0]<this.longitude&&(o[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],o[0],i[0],s[0]),Math.min(n[1],o[1],i[1],s[1]),Math.max(n[0],o[0],i[0],s[0]),Math.max(n[1],o[1],i[1],s[1])]}unproject(e,{topLeft:r=!0,targetZ:n}={}){let[i,o,s]=e,a=r?o:this.height-o,{pixelUnprojectionMatrix:l}=this,u;if(Number.isFinite(s))u=fF(l,[i,a,s,1]);else{let E=fF(l,[i,a,-1,1]),S=fF(l,[i,a,1,1]),L=((n||0)/tI+1)*L1,O=cl.sqrLen(cl.sub([],E,S)),q=cl.sqrLen(E),G=cl.sqrLen(S),Y=4*((4*q*G-(O-q-G)**2)/16)/O,te=Math.sqrt(q-Y),D=Math.sqrt(Math.max(0,L*L-Y)),le=(te-D)/Math.sqrt(O);u=cl.lerp([],E,S,le)}let[f,m,v]=this.unprojectPosition(u);return Number.isFinite(s)?[f,m,v]:Number.isFinite(n)?[f,m,n]:[f,m]}projectPosition(e){let[r,n,i=0]=e,o=r*eI,s=n*eI,a=Math.cos(s),l=(i/tI+1)*L1;return[Math.sin(o)*a*l,-Math.cos(o)*a*l,Math.sin(s)*l]}unprojectPosition(e){let[r,n,i]=e,o=cl.len(e),s=Math.asin(i/o),l=Math.atan2(r,-n)*N$,u=s*N$,f=(o/L1-1)*tI;return[l,u,f]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,r){let n=this.unproject(r);return{longitude:e[0]-n[0]+this.longitude,latitude:e[1]-n[1]+this.latitude}}};function fF(t,e){let r=Dl.transformMat4([],e,t);return Dl.scale(r,r,1/r[3]),r}var pF=Math.PI/180;function jEe({height:t,focalDistance:e,orbitAxis:r,rotationX:n,rotationOrbit:i,zoom:o}){let s=r==="Z"?[0,0,1]:[0,1,0],a=r==="Z"?[0,-e,0]:[0,0,e],l=new Dn().lookAt({eye:a,up:s});l.rotateX(n*pF),r==="Z"?l.rotateZ(i*pF):l.rotateY(i*pF);let u=Math.pow(2,o)/t;return l.scale(u),l}var ug=class extends Va{constructor(e){let{height:r,projectionMatrix:n,fovy:i=50,orbitAxis:o="Z",target:s=[0,0,0],rotationX:a=0,rotationOrbit:l=0,zoom:u=0}=e,f=n?n[5]/2:Bd(i);super({...e,longitude:void 0,viewMatrix:jEe({height:r||1,focalDistance:f,orbitAxis:o,rotationX:a,rotationOrbit:l,zoom:u}),fovy:i,focalDistance:f,position:s,zoom:u}),this.projectedCenter=this.project(this.center)}unproject(e,{topLeft:r=!0}={}){let[n,i,o=this.projectedCenter[2]]=e,s=r?i:this.height-i,[a,l,u]=Ih([n,s,o],this.pixelUnprojectionMatrix);return[a,l,u]}panByPosition(e,r){let n=this.project(e),i=[this.width/2+n[0]-r[0],this.height/2+n[1]-r[1],this.projectedCenter[2]];return{target:this.unproject(i)}}};var HEe=new Dn().lookAt({eye:[0,0,1]});function WEe({width:t,height:e,near:r,far:n,padding:i}){let o=-t/2,s=t/2,a=-e/2,l=e/2;if(i){let{left:u=0,right:f=0,top:m=0,bottom:v=0}=i,E=mo((u+t-f)/2,0,t)-t/2,S=mo((m+e-v)/2,0,e)-e/2;o-=E,s-=E,a+=S,l+=S}return new Dn().ortho({left:o,right:s,bottom:a,top:l,near:r,far:n})}var hg=class extends Va{constructor(e){let{width:r,height:n,near:i=.1,far:o=1e3,zoom:s=0,target:a=[0,0,0],padding:l=null,flipY:u=!0}=e,f=Array.isArray(s)?s[0]:s,m=Array.isArray(s)?s[1]:s,v=Math.min(f,m),E=Math.pow(2,v),S;if(f!==m){let L=Math.pow(2,f),O=Math.pow(2,m);S={unitsPerMeter:[L/E,O/E,1],metersPerUnit:[E/L,E/O,1]}}super({...e,longitude:void 0,position:a,viewMatrix:HEe.clone().scale([E,E*(u?-1:1),E]),projectionMatrix:WEe({width:r||1,height:n||1,padding:l,near:i,far:o}),zoom:v,distanceScales:S})}projectFlat([e,r]){let{unitsPerMeter:n}=this.distanceScales;return[e*n[0],r*n[1]]}unprojectFlat([e,r]){let{metersPerUnit:n}=this.distanceScales;return[e*n[0],r*n[1]]}panByPosition(e,r){let n=Ih(r,this.pixelUnprojectionMatrix),i=this.projectFlat(e),o=Ua.add([],i,Ua.negate([],n)),s=Ua.add([],this.center,o);return{target:this.unprojectFlat(s)}}};var fg=class extends Va{constructor(e){let{longitude:r,latitude:n,modelMatrix:i,bearing:o=0,pitch:s=0,up:a=[0,0,1]}=e,u=new uf({bearing:o,pitch:s===-90?1e-4:90+s}).toVector3().normalize(),f=i?new Dn(i).transformAsVector(u):u,m=Number.isFinite(n)?Fb({latitude:n}):0,v=Math.pow(2,m),E=new Dn().lookAt({eye:[0,0,0],center:f,up:a}).scale(v);super({...e,zoom:m,viewMatrix:E}),this.latitude=n,this.longitude=r}};var pg=20,F$=500,Iw=class extends Hd{constructor(e){let{width:r,height:n,position:i=[0,0,0],bearing:o=0,pitch:s=0,longitude:a=null,latitude:l=null,maxPitch:u=90,minPitch:f=-90,startRotatePos:m,startBearing:v,startPitch:E,startZoomPosition:S,startPanPos:L,startPanPosition:O}=e;super({width:r,height:n,position:i,bearing:o,pitch:s,longitude:a,latitude:l,maxPitch:u,minPitch:f},{startRotatePos:m,startBearing:v,startPitch:E,startZoomPosition:S,startPanPos:L,startPanPosition:O}),this.makeViewport=e.makeViewport}panStart({pos:e}){let{position:r}=this.getViewportProps();return this._getUpdatedState({startPanPos:e,startPanPosition:r})}pan({pos:e}){if(!e)return this;let{startPanPos:r=[0,0],startPanPosition:n=[0,0]}=this.getState(),{width:i,height:o,bearing:s,pitch:a}=this.getViewportProps(),l=F$*(e[0]-r[0])/i,u=F$*(e[1]-r[1])/o,f=new uf({bearing:s,pitch:a}),m=new uf({bearing:s,pitch:-90}),v=f.toVector3().normalize(),E=m.toVector3().cross(v).normalize();return this._getUpdatedState({position:new mr(n).add(E.scale(l)).add(v.scale(u))})}panEnd(){return this._getUpdatedState({startPanPos:null,startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startBearing:o,startPitch:s}=this.getState(),{width:a,height:l}=this.getViewportProps();if(!i||o===void 0||s===void 0)return this;let u;if(e){let f=(e[0]-i[0])/a,m=(e[1]-i[1])/l;u={bearing:o-f*180,pitch:s-m*90}}else u={bearing:o-r,pitch:s-n};return this._getUpdatedState(u)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:e,scale:r}){let n=this.getViewportProps(),i=this.getState().startZoomPosition||n.position,o=this.makeViewport(n),{projectionMatrix:s,width:a}=o,u=2*Math.atan(1/s[0])*(e[0]/a-.5),f=this.getDirection(!0);return this._move(f.rotateZ({radians:-u}),Math.log2(r)*pg,i)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(e=pg){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:Math.PI/2}),e)}moveRight(e=pg){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:-Math.PI/2}),e)}moveUp(e=pg){let r=this.getDirection(!0);return this._move(r,e)}moveDown(e=pg){let r=this.getDirection(!0);return this._move(r.negate(),e)}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}zoomIn(e=pg){return this._move(new mr(0,0,1),e)}zoomOut(e=pg){return this._move(new mr(0,0,-1),e)}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:o}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),o!==null&&r.longitude!==null&&Math.abs(o-r.longitude)>180&&(n.longitude=o<0?o+360:o-360),n}_move(e,r,n=this.getViewportProps().position){let i=e.scale(r);return this._getUpdatedState({position:new mr(n).add(i)})}getDirection(e=!1){return new uf({bearing:this.getViewportProps().bearing,pitch:e?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(e){return new Iw({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{pitch:r,maxPitch:n,minPitch:i,longitude:o,bearing:s}=e;return e.pitch=mo(r,i,n),o!==null&&(o<-180||o>180)&&(e.longitude=KA(o+180,360)-180),(s<-180||s>180)&&(e.bearing=KA(s+180,360)-180),e}},dg=class extends Fl{constructor(){super(...arguments),this.ControllerState=Iw,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["position","pitch","bearing"])}}};var rI=class extends Nl{constructor(e={}){super(e)}getViewportType(){return fg}get ControllerType(){return dg}};rI.displayName="FirstPersonView";var z$=rI;var Pw=class extends Hd{constructor(e){let{width:r,height:n,rotationX:i=0,rotationOrbit:o=0,target:s=[0,0,0],zoom:a=0,minRotationX:l=-90,maxRotationX:u=90,minZoom:f=-1/0,maxZoom:m=1/0,startPanPosition:v,startRotatePos:E,startRotationX:S,startRotationOrbit:L,startZoomPosition:O,startZoom:q}=e;super({width:r,height:n,rotationX:i,rotationOrbit:o,target:s,zoom:a,minRotationX:l,maxRotationX:u,minZoom:f,maxZoom:m},{startPanPosition:v,startRotatePos:E,startRotationX:S,startRotationOrbit:L,startZoomPosition:O,startZoom:q}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:r}){let n=this.getState().startPanPosition||r;if(!n)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startRotationX:o,startRotationOrbit:s}=this.getState(),{width:a,height:l}=this.getViewportProps();if(!i||o===void 0||s===void 0)return this;let u;if(e){let f=(e[0]-i[0])/a,m=(e[1]-i[1])/l;(o<-90||o>90)&&(f*=-1),u={rotationX:o+m*180,rotationOrbit:s+f*180}}else u={rotationX:o+n,rotationOrbit:s+r};return this._getUpdatedState(u)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{rotationOrbit:i}=n;return Math.abs(i-r.rotationOrbit)>180&&(n.rotationOrbit=i<0?i+360:i-360),n}zoomStart({pos:e}){return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:n}){let{startZoom:i,startZoomPosition:o}=this.getState();if(o||(i=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let s=this._calculateNewZoom({scale:n,startZoom:i}),a=this.makeViewport({...this.getViewportProps(),zoom:s});return this._getUpdatedState({zoom:s,...a.panByPosition(o,e)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}zoomOut(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}moveLeft(e=50){return this._panFromCenter([-e,0])}moveRight(e=50){return this._panFromCenter([e,0])}moveUp(e=50){return this._panFromCenter([0,-e])}moveDown(e=50){return this._panFromCenter([0,e])}rotateLeft(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-e})}rotateRight(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+e})}rotateUp(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-e})}rotateDown(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+e})}_unproject(e){let r=this.makeViewport(this.getViewportProps());return e&&r.unproject(e)}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:n,minZoom:i}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=r+Math.log2(e);return mo(o,i,n)}_panFromCenter(e){let{width:r,height:n,target:i}=this.getViewportProps();return this.pan({startPosition:i,pos:[r/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i,maxRotationX:o,minRotationX:s,rotationOrbit:a}=e;return e.zoom=Array.isArray(i)?[mo(i[0],n,r),mo(i[1],n,r)]:mo(i,n,r),e.rotationX=mo(e.rotationX,s,o),(a<-180||a>180)&&(e.rotationOrbit=KA(a+180,360)-180),e}},mg=class extends Fl{constructor(){super(...arguments),this.ControllerState=Pw,this.transition={transitionDuration:300,transitionInterpolator:new Gs({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})}}};var nI=class extends Nl{constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}getViewportType(){return ug}get ControllerType(){return mg}};nI.displayName="OrbitView";var U$=nI;var dF=class extends Pw{constructor(e){super(e),this.zoomAxis=e.zoomAxis||"all"}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:n,minZoom:i}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=Math.log2(e);if(Array.isArray(r)){let[s,a]=r;switch(this.zoomAxis){case"X":s=mo(s+o,i,n);break;case"Y":a=mo(a+o,i,n);break;default:let l=Math.min(s+o,a+o);l<i&&(o+=i-l),l=Math.max(s+o,a+o),l>n&&(o+=n-l),s+=o,a+=o}return[s,a]}return mo(r+o,i,n)}},Ag=class extends Fl{constructor(){super(...arguments),this.ControllerState=dF,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["target","zoom"])},this.dragMode="pan"}_onPanRotate(){return!1}};var iI=class extends Nl{constructor(e={}){super(e)}getViewportType(){return hg}get ControllerType(){return Ag}};iI.displayName="OrthographicView";var V$=iI;var mF=class extends rw{applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i}=e;e.zoom=mo(i,n,r);let{longitude:o,latitude:s}=e;return(o<-180||o>180)&&(e.longitude=KA(o+180,360)-180),e.latitude=mo(s,-Ch,Ch),e}},gg=class extends Fl{constructor(){super(...arguments),this.ControllerState=mF,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(e){super.setProps(e),this.dragRotate=!1,this.touchRotate=!1}};var oI=class extends Nl{constructor(e={}){super(e)}getViewportType(e){return e.zoom>12?ll:bf}get ControllerType(){return gg}};oI.displayName="GlobeView";var j$=oI;var Rw=class{static get componentName(){return Object.prototype.hasOwnProperty.call(this,"extensionName")?this.extensionName:""}constructor(e){e&&(this.opts=e)}equals(e){return this===e?!0:this.constructor===e.constructor&&Gi(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){let{defaultProps:r}=e.constructor,n={updateTriggers:{}};for(let i in r)if(i in this.props){let o=r[i],s=this.props[i];n[i]=s,o&&o.type==="accessor"&&(n.updateTriggers[i]=this.props.updateTriggers[i],typeof s=="function"&&(n[i]=this.getSubLayerAccessor(s)))}return n}initializeState(e,r){}updateState(e,r){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,r){}finalizeState(e,r){}};Rw.defaultProps={};Rw.extensionName="LayerExtension";var sI=Rw;var AF={bearing:0,pitch:0,position:[0,0,0]},qEe={speed:1.2,curve:1.414},wf=class extends Vd{constructor(e={}){super({compare:["longitude","latitude","zoom","bearing","pitch","position"],extract:["width","height","longitude","latitude","zoom","bearing","pitch","position"],required:["width","height","latitude","longitude","zoom"]}),this.opts={...qEe,...e}}interpolateProps(e,r,n){let i=xN(e,r,n,this.opts);for(let o in AF)i[o]=nc(e[o]||AF[o],r[o]||AF[o],n);return i}getDuration(e,r){let{transitionDuration:n}=r;return n==="auto"&&(n=vN(e,r,this.opts)),n}};Fn();var qd=class{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;let{attributes:r={}}=e;this.typedArrayManager=mf,this.attributes={},this._attributeDefs=r,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);let{data:r,buffers:n={},getGeometry:i,geometryBuffer:o,positionFormat:s,dataChanged:a,normalize:l=!0}=this.opts;if(this.data=r,this.getGeometry=i,this.positionSize=o&&o.size||(s==="XY"?2:3),this.buffers=n,this.normalize=l,o&&(ps(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(o),l||(n.vertexPositions=o)),this.geometryBuffer=n.vertexPositions,Array.isArray(a))for(let u of a)this._rebuildGeometry(u);else this._rebuildGeometry()}updatePartialGeometry({startRow:e,endRow:r}){this._rebuildGeometry({startRow:e,endRow:r})}getGeometryFromBuffer(e){let r=e.value||e;return ArrayBuffer.isView(r)?WC(r,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,r){let{attributes:n,buffers:i,_attributeDefs:o,typedArrayManager:s}=this;for(let a in o)if(a in i)s.release(n[a]),n[a]=null;else{let l=o[a];l.copy=r,n[a]=s.allocate(n[a],e,l)}}_forEachGeometry(e,r,n){let{data:i,getGeometry:o}=this,{iterable:s,objectInfo:a}=ua(i,r,n);for(let l of s){a.index++;let u=o?o(l,a):null;e(u,a.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:r,vertexStarts:n,instanceCount:i}=this,{data:o,geometryBuffer:s}=this,{startRow:a=0,endRow:l=1/0}=e||{},u={};if(e||(r=[0],n=[0]),this.normalize||!s)this._forEachGeometry((m,v)=>{let E=m&&this.normalizeGeometry(m);u[v]=E,n[v+1]=n[v]+(E?this.getGeometrySize(E):0)},a,l),i=n[n.length-1];else if(n=o.startIndices,i=n[o.length]||0,ArrayBuffer.isView(s))i=i||s.length/this.positionSize;else if(s instanceof $n){let m=this.positionSize*4;i=i||s.byteLength/m}else if(s.buffer){let m=s.stride||this.positionSize*4;i=i||s.buffer.byteLength/m}else if(s.value){let m=s.value,v=s.stride/m.BYTES_PER_ELEMENT||this.positionSize;i=i||m.length/v}this._allocate(i,Boolean(e)),this.indexStarts=r,this.vertexStarts=n,this.instanceCount=i;let f={};this._forEachGeometry((m,v)=>{let E=u[v]||m;f.vertexStart=n[v],f.indexStart=r[v];let S=v<n.length-1?n[v+1]:i;f.geometrySize=S-n[v],f.geometryIndex=v,this.updateGeometryAttributes(E,f)},a,l),this.vertexCount=r[r.length-1]}};fw();var gF=85.05113;function _F(t,e,r,n){if(r){if(r.userData._googleMap===t)return r;aI(r)}let i={click:null,rightclick:null,dblclick:null,mousemove:null,mouseout:null},o=new C1({...n,useDevicePixels:n.interleaved?!0:n.useDevicePixels,style:n.interleaved?null:{pointerEvents:"none"},parent:GEe(e,n.style),views:new b1({repeat:!0}),initialViewState:{longitude:0,latitude:0,zoom:1},controller:!1});for(let s in i)i[s]=t.addListener(s,a=>YEe(o,s,a));return o.userData._googleMap=t,o.userData._eventListeners=i,o}function GEe(t,e){let r=document.createElement("div");return r.style.position="absolute",Object.assign(r.style,e),"getPanes"in t?t.getPanes()?.overlayLayer.appendChild(r):t.getMap()?.getDiv().appendChild(r),r}function aI(t){let{_eventListeners:e}=t.userData;for(let r in e)e[r]&&e[r].remove();t.finalize()}function H$(t,e){let{width:r,height:n}=W$(t),i=e.getProjection(),o=t.getBounds();if(!o)return{width:r,height:n,left:0,top:0};let s=o.getNorthEast(),a=o.getSouthWest(),l=i.fromLatLngToDivPixel(s),u=i.fromLatLngToDivPixel(a),f=yF(i,r/2,n/2),m=new google.maps.LatLng(0,f[0]),v=i.fromLatLngToContainerPixel(m),E=i.fromLatLngToDivPixel(m);if(!l||!u||!E||!v)return{width:r,height:n,left:0,top:0};let S=Math.round(E.x-v.x),L=E.y-v.y,O=yF(i,r/2,0),q=yF(i,r/2,n),G=f[1],H=f[0];if(Math.abs(G)>gF){G=G>0?gF:-gF;let J=new google.maps.LatLng(G,H),X=i.fromLatLngToContainerPixel(J);L+=X.y-n/2}L=Math.round(L);let te=180*new HA(O).sub(q).verticalAngle()/Math.PI;te<0&&(te+=360);let D=t.getHeading()||0,le=t.getZoom()-1,ie;if(te===0)ie=n?(u.y-l.y)/n:1;else if(te===D){let J=new HA([l.x,l.y]).sub([u.x,u.y]).len(),X=new HA([r,-n]).len();ie=X?J/X:1}return le+=Math.log2(ie||1),{width:r,height:n,left:S,top:L,zoom:le,bearing:te,pitch:t.getTilt(),latitude:G,longitude:H}}function xF(t,e){let{width:r,height:n}=W$(t),{center:i,heading:o,tilt:s,zoom:a}=e.getCameraParams(),l=25,u=n?r/n:1,f=.75,m=3e14,v=new Dn().perspective({fovy:l*Math.PI/180,aspect:u,near:f,far:m}),E=.5*v[5];return{width:r,height:n,viewState:{altitude:E,bearing:o,latitude:i.lat(),longitude:i.lng(),pitch:s,projectionMatrix:v,repeat:!0,zoom:a-1}}}function W$(t){let e=t.getDiv().firstChild;return{width:e.offsetWidth,height:e.offsetHeight}}function yF(t,e,r){let n=new google.maps.Point(e,r),i=t.fromContainerPixelToLatLng(n);return[i.lng(),i.lat()]}function XEe(t,e){if(t.pixel)return t.pixel;let r=e.getViewports()[0].project([t.latLng.lng(),t.latLng.lat()]);return{x:r[0],y:r[1]}}function YEe(t,e,r){if(!t.isInitialized)return;let n={type:e,offsetCenter:XEe(r,t),srcEvent:r};switch(e){case"click":case"rightclick":n.type="click",n.tapCount=1,t._onPointerDown(n),t._onEvent(n);break;case"dblclick":n.type="click",n.tapCount=2,t._onEvent(n);break;case"mousemove":n.type="pointermove",t._onPointerMove(n);break;case"mouseout":n.type="pointerleave",t._onPointerMove(n);break;default:return}}var $Ee=()=>!1,KEe={depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],blendEquation:32774};function q$(){}var ZEe={interleaved:!0},yg=class{constructor(e){this.props={},this._map=null,this._deck=null,this._overlay=null,this.setProps({...ZEe,...e})}setMap(e){if(e===this._map)return;let{VECTOR:r,UNINITIALIZED:n}=google.maps.RenderingType;this._map&&(!e&&this._map.getRenderingType()===r&&this.props.interleaved&&this._overlay.requestRedraw(),this._overlay?.setMap(null),this._map=null),e&&(this._map=e,e.getRenderingType()!==n?this._createOverlay(e):e.addListener("renderingtype_changed",()=>{this._createOverlay(e)}))}setProps(e){if(Object.assign(this.props,e),this._deck){let r=this._deck.getCanvas();if(e.style&&r?.parentElement){let n=r.parentElement.style;Object.assign(n,e.style),e.style=null}this._deck.setProps(e)}}pickObject(e){return this._deck&&this._deck.pickObject(e)}pickMultipleObjects(e){return this._deck&&this._deck.pickMultipleObjects(e)}pickObjects(e){return this._deck&&this._deck.pickObjects(e)}finalize(){this.setMap(null),this._deck&&(aI(this._deck),this._deck=null)}_createOverlay(e){let{interleaved:r}=this.props,{VECTOR:n,UNINITIALIZED:i}=google.maps.RenderingType,o=e.getRenderingType();if(o===i)return;let a=o===n&&google.maps.WebGLOverlayView?google.maps.WebGLOverlayView:google.maps.OverlayView,l=new a;l instanceof google.maps.WebGLOverlayView?(r?(l.onAdd=q$,l.onContextRestored=this._onContextRestored.bind(this),l.onDraw=this._onDrawVectorInterleaved.bind(this)):(l.onAdd=this._onAdd.bind(this),l.onContextRestored=q$,l.onDraw=this._onDrawVectorOverlay.bind(this)),l.onContextLost=this._onContextLost.bind(this)):(l.onAdd=this._onAdd.bind(this),l.draw=this._onDrawRaster.bind(this)),l.onRemove=this._onRemove.bind(this),this._overlay=l,this._overlay.setMap(e)}_onAdd(){this._deck=_F(this._map,this._overlay,this._deck,this.props)}_onContextRestored({gl:e}){if(!this._map||!this._overlay)return;let r=()=>{this._overlay&&this._overlay.requestRedraw()},n=_F(this._map,this._overlay,this._deck,{gl:e,_customRender:r,...this.props});this._deck=n;let i=n.animationLoop;i._renderFrame=()=>{let o=e.getParameter(34964);n.device.withParametersWebGL({},()=>{i.props.onRender(i.animationProps)}),e.bindBuffer(34962,o)}}_onContextLost(){this._deck&&(aI(this._deck),this._deck=null)}_onRemove(){this._deck?.setProps({layerFilter:$Ee})}_onDrawRaster(){if(!this._deck||!this._map)return;let e=this._deck,{width:r,height:n,left:i,top:o,...s}=H$(this._map,this._overlay),l=e.getCanvas()?.parentElement||e.props.parent;if(l){let f=l.style;f.left=`${i}px`,f.top=`${o}px`}let u=1e4;e.setProps({width:r,height:n,viewState:{altitude:u,...s}}),e.redraw()}_onDrawVectorInterleaved({gl:e,transformer:r}){if(!this._deck||!this._map)return;let n=this._deck;if(n.setProps({...xF(this._map,r),width:null,height:null}),n.isInitialized){let i=n.device;if(i instanceof Lp){let o=i.getParametersWebGL(36006);n.setProps({_framebuffer:o})}n.needsRedraw({clearRedrawFlags:!0}),i instanceof Lp&&(i.setParametersWebGL({viewport:[0,0,e.canvas.width,e.canvas.height],scissor:[0,0,e.canvas.width,e.canvas.height],stencilFunc:[519,0,255,519,0,255]}),i.withParametersWebGL(KEe,()=>{n._drawLayers("google-vector",{clearCanvas:!1})}))}}_onDrawVectorOverlay({transformer:e}){if(!this._deck||!this._map)return;let r=this._deck;r.setProps({...xF(this._map,e)}),r.redraw()}};function G$({container:t,onClick:e,onComplete:r,getTooltip:n,googleMapsKey:i,layers:o,mapStyle:s="satellite",initialViewState:a={latitude:0,longitude:0,zoom:1}}){if(!i)return Ar.warn("No Google Maps API key set")(),null;let l=new yg({layers:o}),u={center:{lat:a.latitude,lng:a.longitude},mapTypeId:s,zoom:a.zoom},f=new window.google.maps.Map(t,u);return l.setMap(f),l}var X$={position:"absolute",top:"0px",left:"0px",width:344,padding:"12px 24px",margin:24,overflowX:"hidden",overflowY:"overlay",outline:"none",maxHeight:"94%",boxSizing:"border-box",backgroundColor:"rgb(255, 255, 255)",fontFamily:'"Fira Sans", sans-serif',zIndex:1};var vF=class{constructor({container:e,props:r}){let{description:n}=r,i=document.createElement("div");i.className="deck-json-description-box",Object.assign(i.style,X$),this.el=i;let o=document.createElement("div");o.innerHTML=n,i.appendChild(o),e.append(i)}remove(){this.el.remove(),this.description=null}static get stringName(){return"description"}},Y$=vF;function bF(t,e){let r=document.createElement("div");r.className="deckgl-ui-elements-overlay",r.style.zIndex=1,t.insertAdjacentElement("beforebegin",r);let n=[];for(let i of Object.keys(e))switch(i){case"description":let o=new Y$({container:r,props:e});n.push(o);break;default:break}return n}var C3={};Uo(C3,{A5Layer:()=>Jee,AmbientLight:()=>p1,ArcLayer:()=>lI,Attribute:()=>Wd,AttributeManager:()=>ju,BitmapLayer:()=>uI,COORDINATE_SYSTEM:()=>Kr,CPUAggregator:()=>zl,ColumnLayer:()=>Op,CompassWidget:()=>uy,CompositeLayer:()=>Ds,ContourLayer:()=>YQ,Controller:()=>Fl,DarkGlassTheme:()=>a4,DarkTheme:()=>Ahe,Deck:()=>C1,DeckRenderer:()=>og,DirectionalLight:()=>kd,FirstPersonController:()=>dg,FirstPersonView:()=>z$,FirstPersonViewport:()=>fg,FlyToInterpolator:()=>wf,FullscreenWidget:()=>my,GeoJsonLayer:()=>bg,GeohashLayer:()=>Pue,GimbalWidget:()=>ly,GoogleMapsOverlay:()=>yg,GreatCircleLayer:()=>jte,GridCellLayer:()=>VK,GridLayer:()=>JQ,H3ClusterLayer:()=>bre,H3HexagonLayer:()=>RP,HeatmapLayer:()=>gJ,HexagonLayer:()=>mQ,IconLayer:()=>O1,JSONConfiguration:()=>cm,JSONConverter:()=>ny,Layer:()=>ro,LayerExtension:()=>sI,LayerManager:()=>rg,LightGlassTheme:()=>s4,LightTheme:()=>mhe,LightingEffect:()=>i0,LineLayer:()=>gK,LinearInterpolator:()=>Gs,MVTLayer:()=>Mue,MapController:()=>ig,MapView:()=>b1,OPERATION:()=>eX,OrbitController:()=>mg,OrbitView:()=>U$,OrbitViewport:()=>ug,OrthographicController:()=>Ag,OrthographicView:()=>V$,OrthographicViewport:()=>hg,PathLayer:()=>Bp,PointCloudLayer:()=>hI,PointLight:()=>g1,PolygonLayer:()=>p0,PostProcessEffect:()=>Kb,QuadkeyLayer:()=>rre,ResetViewWidget:()=>cy,S2Layer:()=>ere,ScatterplotLayer:()=>fI,ScenegraphLayer:()=>oR,ScreenGridLayer:()=>iQ,ScreenshotWidget:()=>vy,SimpleMeshLayer:()=>kg,SolidPolygonLayer:()=>f0,TRANSITION_EVENTS:()=>ew,TerrainLayer:()=>Xle,Tesselator:()=>qd,TextLayer:()=>PI,Tile3DLayer:()=>Ule,TileLayer:()=>Bg,TransitionInterpolator:()=>Vd,Transport:()=>qp,TripsLayer:()=>vre,UNIT:()=>$o,VERSION:()=>EM,View:()=>Nl,Viewport:()=>Va,WebGLAggregator:()=>va,WebMercatorViewport:()=>ll,Widget:()=>Tn,ZoomWidget:()=>ay,_AggregationLayer:()=>kp,_ButtonGroup:()=>iv,_CameraLight:()=>Hb,_Component:()=>R1,_ComponentState:()=>lg,_ContextMenuWidget:()=>_y,_CoordinatesGeocoder:()=>ov,_CurrentLocationGeocoder:()=>n4,_DropdownMenu:()=>QL,_FpsWidget:()=>Ty,_GeoCellLayer:()=>Lh,_GeocoderWidget:()=>dy,_GlobeController:()=>gg,_GlobeView:()=>j$,_GlobeViewport:()=>bf,_GoogleGeocoder:()=>e4,_GroupedIconButton:()=>sy,_IconButton:()=>Ic,_IconMenu:()=>i4,_InfoWidget:()=>yy,_LayersPass:()=>df,_LoadingWidget:()=>wy,_MapboxGeocoder:()=>t4,_MultiIconLayer:()=>SI,_OpenCageGeocoder:()=>r4,_PickLayersPass:()=>Nd,_ScaleWidget:()=>hy,_SimpleMenu:()=>o4,_SplitterWidget:()=>Ay,_StatsWidget:()=>Ey,_SunLight:()=>Wb,_TextBackgroundLayer:()=>II,_ThemeWidget:()=>by,_Tile2DHeader:()=>Rg,_Tileset2D:()=>Og,_TimelineWidget:()=>xy,_ViewSelectorWidget:()=>gy,_WMSLayer:()=>sx,_applyStyles:()=>sg,_compareProps:()=>P1,_convertFunctions:()=>tv,_count:()=>ZC,_deepEqual:()=>Gi,_fillArray:()=>uC,_flatten:()=>Mp,_getURLFromTemplate:()=>Fp,_memoize:()=>Mh,_mergeShaders:()=>Tw,_parseExpressionString:()=>ry,_removeStyles:()=>AC,_shallowEqualObjects:()=>Vue,assert:()=>ps,color:()=>Pd,createIterable:()=>ua,fp64LowPart:()=>wN,getShaderAssembler:()=>eC,gouraudMaterial:()=>hf,log:()=>Ar,phongMaterial:()=>Id,picking:()=>Vo,project:()=>r0,project32:()=>ki,shadow:()=>f1});var $$=`uniform arcUniforms {
|
|
3052
|
+
}`;function tEe(t,e){let r=GC(e.size),n=XC(e.size);return new Fu(t,{vs:J3e,fs:eEe,bufferLayout:[{name:"aPrev",format:n},{name:"aCur",format:n},{name:"aTo",format:e.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[Q3e],defines:{ATTRIBUTE_TYPE:r},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}function rEe(t){return t.createTexture({data:new Uint8Array(4),format:"rgba8unorm",width:1,height:1})}function nEe(t,e){return t.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[e]})}var iEe={interpolation:yw,spring:_w},xw=class{constructor(e,{id:r,timeline:n}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=r,this.device=e,this.timeline=n,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(let e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:r,numInstances:n}){this.numInstances=n||1;for(let i in e){let o=e[i],s=o.getTransitionSetting(r);s&&this._updateAttribute(i,o,s)}for(let i in this.transitions){let o=e[i];(!o||!o.getTransitionSetting(r))&&this._removeTransition(i)}}hasAttribute(e){let r=this.transitions[e];return r&&r.inProgress}getAttributes(){let e={};for(let r in this.transitions){let n=this.transitions[r];n.inProgress&&(e[r]=n.attributeInTransition)}return e}run(){if(this.numInstances===0)return!1;for(let r in this.transitions)this.transitions[r].update()&&(this.needsRedraw=!0);let e=this.needsRedraw;return this.needsRedraw=!1,e}_removeTransition(e){this.transitions[e].delete(),delete this.transitions[e]}_updateAttribute(e,r,n){let i=this.transitions[e],o=!i||i.type!==n.type;if(o){i&&this._removeTransition(e);let s=iEe[n.type];s?this.transitions[e]=new s({attribute:r,timeline:this.timeline,device:this.device}):(Ar.error(`unsupported transition type '${n.type}'`)(),o=!1)}(o||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(n,this.numInstances))}};var T$="attributeManager.invalidate",oEe="attributeManager.updateStart",sEe="attributeManager.updateEnd",aEe="attribute.updateStart",cEe="attribute.allocate",lEe="attribute.updateEnd",ju=class{constructor(e,{id:r="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=Mh(bX),this.id=r,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new xw(e,{id:`${r}-transitions`,timeline:i}),Object.seal(this)}finalize(){for(let e in this.attributes)this.attributes[e].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(e={clearRedrawFlags:!1}){let r=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,r&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(e){this._add(e)}addInstanced(e){this._add(e,{stepMode:"instance"})}remove(e){for(let r of e)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(e,r){let n=this._invalidateTrigger(e,r);sa(T$,this,e,n)}invalidateAll(e){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,e);sa(T$,this,"all")}update({data:e,numInstances:r,startIndices:n=null,transitions:i,props:o={},buffers:s={},context:a={}}){let l=!1;sa(oEe,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(let u in this.attributes){let f=this.attributes[u],m=f.settings.accessor;f.startIndices=n,f.numInstances=r,o[u]&&Ar.removed(`props.${u}`,`data.attributes.${u}`)(),f.setExternalBuffer(s[u])||f.setBinaryValue(typeof m=="string"?s[m]:void 0,e.startIndices)||typeof m=="string"&&!s[m]&&f.setConstantValue(a,o[m])||f.needsUpdate()&&(l=!0,this._updateAttribute({attribute:f,numInstances:r,data:e,props:o,context:a})),this.needsRedraw=this.needsRedraw||f.needsRedraw()}l&&sa(sEe,this,r),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:i})}updateTransition(){let{attributeTransitionManager:e}=this,r=e.run();return this.needsRedraw=this.needsRedraw||r,r}getAttributes(){return{...this.attributes,...this.attributeTransitionManager.getAttributes()}}getBounds(e){let r=e.map(n=>this.attributes[n]?.getBounds());return this.mergeBoundsMemoized(r)}getChangedAttributes(e={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:n}=this,i={...n.getAttributes()};for(let o in r){let s=r[o];s.needsRedraw(e)&&!n.hasAttribute(o)&&(i[o]=s)}return i}getBufferLayouts(e){return Object.values(this.getAttributes()).map(r=>r.getBufferLayout(e))}_add(e,r){for(let n in e){let i=e[n],o={...i,id:n,size:i.isIndexed&&1||i.size||1,...r};this.attributes[n]=new Wd(this.device,o)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){let e={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(i=>{e[i]||(e[i]=[]),e[i].push(r)});this.updateTriggers=e}_invalidateTrigger(e,r){let{attributes:n,updateTriggers:i}=this,o=i[e];return o&&o.forEach(s=>{let a=n[s];a&&a.setNeedsUpdate(a.id,r)}),o}_updateAttribute(e){let{attribute:r,numInstances:n}=e;if(sa(aEe,r),r.constant){r.setConstantValue(e.context,r.value);return}r.allocate(n)&&sa(cEe,r,n),r.updateBuffer(e)&&(this.needsRedraw=!0,sa(lEe,r,n))}};Fn();fw();var vw=class extends gf{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:r,toValue:n,duration:i,easing:o}}=this,s=o(e/i);this._value=nc(r,n,s)}};var E$=1e-5;function M$(t,e,r,n,i){let o=e-t,a=(r-e)*i,l=-o*n;return a+l+o+e}function uEe(t,e,r,n,i){if(Array.isArray(r)){let o=[];for(let s=0;s<r.length;s++)o[s]=M$(t[s],e[s],r[s],n,i);return o}return M$(t,e,r,n,i)}function S$(t,e){if(Array.isArray(t)){let r=0;for(let n=0;n<t.length;n++){let i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}return Math.abs(t-e)}var bw=class extends gf{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:r,damping:n,stiffness:i}=this.settings,{_prevValue:o=e,_currValue:s=e}=this,a=uEe(o,s,r,n,i),l=S$(a,r),u=S$(a,s);l<E$&&u<E$&&(a=r,this.end()),this._prevValue=s,this._currValue=a}};var hEe={interpolation:vw,spring:bw},ww=class{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,r,n,i){let{transitions:o}=this;if(o.has(e)){let l=o.get(e),{value:u=l.settings.fromValue}=l;r=u,this.remove(e)}if(i=qC(i),!i)return;let s=hEe[i.type];if(!s){Ar.error(`unsupported transition type '${i.type}'`)();return}let a=new s(this.timeline);a.start({...i,fromValue:r,toValue:n}),o.set(e,a)}remove(e){let{transitions:r}=this;r.has(e)&&(r.get(e).cancel(),r.delete(e))}update(){let e={};for(let[r,n]of this.transitions)n.update(),e[r]=n.value,n.inProgress||this.remove(r);return e}clear(){for(let e of this.transitions.keys())this.remove(e)}};function I$(t){let e=t[Rh];for(let r in e){let n=e[r],{validate:i}=n;if(i&&!i(t[r],n))throw new Error(`Invalid prop ${r}: ${t[r]}`)}}function P$(t,e){let r=P1({newProps:t,oldProps:e,propTypes:t[Rh],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),n=pEe(t,e),i=!1;return n||(i=dEe(t,e)),{dataChanged:n,propsChanged:r,updateTriggersChanged:i,extensionsChanged:mEe(t,e),transitionsChanged:fEe(t,e)}}function fEe(t,e){if(!t.transitions)return!1;let r={},n=t[Rh],i=!1;for(let o in t.transitions){let s=n[o],a=s&&s.type;(a==="number"||a==="color"||a==="array")&&aF(t[o],e[o],s)&&(r[o]=!0,i=!0)}return i?r:!1}function P1({newProps:t,oldProps:e,ignoreProps:r={},propTypes:n={},triggerName:i="props"}){if(e===t)return!1;if(typeof t!="object"||t===null)return`${i} changed shallowly`;if(typeof e!="object"||e===null)return`${i} changed shallowly`;for(let o of Object.keys(t))if(!(o in r)){if(!(o in e))return`${i}.${o} added`;let s=aF(t[o],e[o],n[o]);if(s)return`${i}.${o} ${s}`}for(let o of Object.keys(e))if(!(o in r)){if(!(o in t))return`${i}.${o} dropped`;if(!Object.hasOwnProperty.call(t,o)){let s=aF(t[o],e[o],n[o]);if(s)return`${i}.${o} ${s}`}}return!1}function aF(t,e,r){let n=r&&r.equal;return n&&!n(t,e,r)||!n&&(n=t&&e&&t.equals,n&&!n.call(t,e))?"changed deeply":!n&&e!==t?"changed shallowly":null}function pEe(t,e){if(e===null)return"oldProps is null, initial diff";let r=!1,{dataComparator:n,_dataDiff:i}=t;return n?n(t.data,e.data)||(r="Data comparator detected a change"):t.data!==e.data&&(r="A new data container was supplied"),r&&i&&(r=i(t.data,e.data)||r),r}function dEe(t,e){if(e===null)return{all:!0};if("all"in t.updateTriggers&&C$(t,e,"all"))return{all:!0};let r={},n=!1;for(let i in t.updateTriggers)i!=="all"&&C$(t,e,i)&&(r[i]=!0,n=!0);return n?r:!1}function mEe(t,e){if(e===null)return!0;let r=e.extensions,{extensions:n}=t;if(n===r)return!1;if(!r||!n||n.length!==r.length)return!0;for(let i=0;i<n.length;i++)if(!n[i].equals(r[i]))return!0;return!1}function C$(t,e,r){let n=t.updateTriggers[r];n=n??{};let i=e.updateTriggers[r];return i=i??{},P1({oldProps:i,newProps:n,triggerName:r})}var AEe="count(): argument not an object",gEe="count(): argument not a container";function ZC(t){if(!_Ee(t))throw new Error(AEe);if(typeof t.count=="function")return t.count();if(Number.isFinite(t.size))return t.size;if(Number.isFinite(t.length))return t.length;if(yEe(t))return Object.keys(t).length;throw new Error(gEe)}function yEe(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function _Ee(t){return t!==null&&typeof t=="object"}function Tw(t,e){if(!e)return t;let r={...t,...e};if("defines"in e&&(r.defines={...t.defines,...e.defines}),"modules"in e&&(r.modules=(t.modules||[]).concat(e.modules),e.modules.some(n=>n.name==="project64"))){let n=r.modules.findIndex(i=>i.name==="project32");n>=0&&r.modules.splice(n,1)}if("inject"in e)if(!t.inject)r.inject=e.inject;else{let n={...t.inject};for(let i in e.inject)n[i]=(n[i]||"")+e.inject[i];r.inject=n}return r}Fn();var xEe={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},cF={};function R$(t,e,r,n){if(r instanceof Ki)return r;r.constructor&&r.constructor.name!=="Object"&&(r={data:r});let i=null;r.compressed&&(i={minFilter:"linear",mipmapFilter:r.data.length>1?"nearest":"linear"});let{width:o,height:s}=r.data,a=e.createTexture({...r,sampler:{...xEe,...i,...n},mipLevels:e.getMipLevelCount(o,s)});return a.generateMipmapsWebGL(),cF[a.id]=t,a}function L$(t,e){!e||!(e instanceof Ki)||cF[e.id]===t&&(e.delete(),delete cF[e.id])}var vEe={boolean:{validate(t,e){return!0},equal(t,e,r){return Boolean(t)===Boolean(e)}},number:{validate(t,e){return Number.isFinite(t)&&(!("max"in e)||t<=e.max)&&(!("min"in e)||t>=e.min)}},color:{validate(t,e){return e.optional&&!t||lF(t)&&(t.length===3||t.length===4)},equal(t,e,r){return Gi(t,e,1)}},accessor:{validate(t,e){let r=QC(t);return r==="function"||r===QC(e.value)},equal(t,e,r){return typeof e=="function"?!0:Gi(t,e,1)}},array:{validate(t,e){return e.optional&&!t||lF(t)},equal(t,e,r){let{compare:n}=r,i=Number.isInteger(n)?n:n?1:0;return n?Gi(t,e,i):t===e}},object:{equal(t,e,r){if(r.ignore)return!0;let{compare:n}=r,i=Number.isInteger(n)?n:n?1:0;return n?Gi(t,e,i):t===e}},function:{validate(t,e){return e.optional&&!t||typeof t=="function"},equal(t,e,r){return!r.compare&&r.ignore!==!1||t===e}},data:{transform:(t,e,r)=>{if(!t)return t;let{dataTransform:n}=r.props;return n?n(t):typeof t.shape=="string"&&t.shape.endsWith("-table")&&Array.isArray(t.data)?t.data:t}},image:{transform:(t,e,r)=>{let n=r.context;return!n||!n.device?null:R$(r.id,n.device,t,{...e.parameters,...r.props.textureParameters})},release:(t,e,r)=>{L$(r.id,t)}}};function O$(t){let e={},r={},n={};for(let[i,o]of Object.entries(t)){let s=o?.deprecatedFor;if(s)n[i]=Array.isArray(s)?s:[s];else{let a=bEe(i,o);e[i]=a,r[i]=a.value}}return{propTypes:e,defaultProps:r,deprecatedProps:n}}function bEe(t,e){switch(QC(e)){case"object":return Ew(t,e);case"array":return Ew(t,{type:"array",value:e,compare:!1});case"boolean":return Ew(t,{type:"boolean",value:e});case"number":return Ew(t,{type:"number",value:e});case"function":return Ew(t,{type:"function",value:e,compare:!0});default:return{name:t,type:"unknown",value:e}}}function Ew(t,e){return"type"in e?{name:t,...vEe[e.type],...e}:"value"in e?{name:t,type:QC(e.value),...e}:{name:t,type:"object",value:e}}function lF(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function QC(t){return lF(t)?"array":t===null?"null":typeof t}function B$(t,e){let r;for(let o=e.length-1;o>=0;o--){let s=e[o];"extensions"in s&&(r=s.extensions)}let n=uF(t.constructor,r),i=Object.create(n);i[x1]=t,i[Ep]={},i[Af]={};for(let o=0;o<e.length;++o){let s=e[o];for(let a in s)i[a]=s[a]}return Object.freeze(i),i}var wEe="_mergedDefaultProps";function uF(t,e){if(!(t instanceof R1.constructor))return{};let r=wEe;if(e)for(let i of e){let o=i.constructor;o&&(r+=`:${o.extensionName||o.name}`)}let n=k$(t,r);return n||(t[r]=TEe(t,e||[]))}function TEe(t,e){if(!t.prototype)return null;let n=Object.getPrototypeOf(t),i=uF(n),o=k$(t,"defaultProps")||{},s=O$(o),a=Object.assign(Object.create(null),i,s.defaultProps),l=Object.assign(Object.create(null),i?.[Rh],s.propTypes),u=Object.assign(Object.create(null),i?.[lC],s.deprecatedProps);for(let f of e){let m=uF(f.constructor);m&&(Object.assign(a,m),Object.assign(l,m[Rh]),Object.assign(u,m[lC]))}return EEe(a,t),SEe(a,l),MEe(a,u),a[Rh]=l,a[lC]=u,e.length===0&&!hF(t,"_propTypes")&&(t._propTypes=l),a}function EEe(t,e){let r=IEe(e);Object.defineProperties(t,{id:{writable:!0,value:r}})}function MEe(t,e){for(let r in e)Object.defineProperty(t,r,{enumerable:!1,set(n){let i=`${this.id}: ${r}`;for(let o of e[r])hF(this,o)||(this[o]=n);Ar.deprecated(i,e[r].join("/"))()}})}function SEe(t,e){let r={},n={};for(let i in e){let o=e[i],{name:s,value:a}=o;o.async&&(r[s]=a,n[s]=CEe(s))}t[Fd]=r,t[Ep]={},Object.defineProperties(t,n)}function CEe(t){return{enumerable:!0,set(e){typeof e=="string"||e instanceof Promise||HC(e)?this[Ep][t]=e:this[Af][t]=e},get(){if(this[Af]){if(t in this[Af])return this[Af][t]||this[Fd][t];if(t in this[Ep]){let e=this[x1]&&this[x1].internalState;if(e&&e.hasAsyncProp(t))return e.getAsyncProp(t)||this[Fd][t]}}return this[Fd][t]}}}function hF(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function k$(t,e){return hF(t,e)&&t[e]}function IEe(t){let e=t.componentName;return e||Ar.warn(`${t.name}.componentName not specified`)(),e||t.name}var PEe=0,Mw=class{constructor(...e){this.props=B$(this,e),this.id=this.props.id,this.count=PEe++}clone(e){let{props:r}=this,n={};for(let i in r[Fd])i in r[Af]?n[i]=r[Af][i]:i in r[Ep]&&(n[i]=r[Ep][i]);return new this.constructor({...r,...n,...e})}};Mw.componentName="Component";Mw.defaultProps={};var R1=Mw;var REe=Object.freeze({}),lg=class{constructor(e){this.component=e,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(let e in this.asyncProps){let r=this.asyncProps[e];r&&r.type&&r.type.release&&r.type.release(r.resolvedValue,r.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||REe}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(e){return e in this.asyncProps}getAsyncProp(e){let r=this.asyncProps[e];return r&&r.resolvedValue}isAsyncPropLoading(e){if(e){let r=this.asyncProps[e];return Boolean(r&&r.pendingLoadCount>0&&r.pendingLoadCount!==r.resolvedLoadCount)}for(let r in this.asyncProps)if(this.isAsyncPropLoading(r))return!0;return!1}reloadAsyncProp(e,r){this._watchPromise(e,Promise.resolve(r))}setAsyncProps(e){this.component=e[x1]||this.component;let r=e[Af]||{},n=e[Ep]||e,i=e[Fd]||{};for(let o in r){let s=r[o];this._createAsyncPropData(o,i[o]),this._updateAsyncProp(o,s),r[o]=this.getAsyncProp(o)}for(let o in n){let s=n[o];this._createAsyncPropData(o,i[o]),this._updateAsyncProp(o,s)}}_fetch(e,r){return null}_onResolve(e,r){}_onError(e,r){}_updateAsyncProp(e,r){if(this._didAsyncInputValueChange(e,r)){if(typeof r=="string"&&(r=this._fetch(e,r)),r instanceof Promise){this._watchPromise(e,r);return}if(HC(r)){this._resolveAsyncIterable(e,r);return}this._setPropValue(e,r)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(let e in this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}}_didAsyncInputValueChange(e,r){let n=this.asyncProps[e];return r===n.resolvedValue||r===n.lastValue?!1:(n.lastValue=r,!0)}_setPropValue(e,r){this._freezeAsyncOldProps();let n=this.asyncProps[e];n&&(r=this._postProcessValue(n,r),n.resolvedValue=r,n.pendingLoadCount++,n.resolvedLoadCount=n.pendingLoadCount)}_setAsyncPropValue(e,r,n){let i=this.asyncProps[e];i&&n>=i.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),i.resolvedValue=r,i.resolvedLoadCount=n,this.onAsyncPropUpdated(e,r))}_watchPromise(e,r){let n=this.asyncProps[e];if(n){n.pendingLoadCount++;let i=n.pendingLoadCount;r.then(o=>{this.component&&(o=this._postProcessValue(n,o),this._setAsyncPropValue(e,o,i),this._onResolve(e,o))}).catch(o=>{this._onError(e,o)})}}async _resolveAsyncIterable(e,r){if(e!=="data"){this._setPropValue(e,r);return}let n=this.asyncProps[e];if(!n)return;n.pendingLoadCount++;let i=n.pendingLoadCount,o=[],s=0;for await(let a of r){if(!this.component)return;let{dataTransform:l}=this.component.props;l?o=l(a,o):o=o.concat(a),Object.defineProperty(o,"__diff",{enumerable:!1,value:[{startRow:s,endRow:o.length}]}),s=o.length,this._setAsyncPropValue(e,o,i)}this._onResolve(e,o)}_postProcessValue(e,r){let n=e.type;return n&&this.component&&(n.release&&n.release(e.resolvedValue,n,this.component),n.transform)?n.transform(r,n,this.component):r}_createAsyncPropData(e,r){if(!this.asyncProps[e]){let i=this.component&&this.component.props[Rh];this.asyncProps[e]={type:i&&i[e],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var Sw=class extends lg{constructor({attributeManager:e,layer:r}){super(r),this.attributeManager=e,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(e,r){let n=this.layer,i=n?.props.fetch;return i?i(r,{propName:e,layer:n}):super._fetch(e,r)}_onResolve(e,r){let n=this.layer;if(n){let i=n.props.onDataLoad;e==="data"&&i&&i(r,{propName:e,layer:n})}}_onError(e,r){let n=this.layer;n&&n.raiseError(r,`loading ${e} of ${this.layer}`)}};var LEe="layer.changeFlag",OEe="layer.initialize",BEe="layer.update",kEe="layer.finalize",DEe="layer.matched",D$=2**24-1,NEe=Object.freeze([]),FEe=Mh(({oldViewport:t,viewport:e})=>t.equals(e)),vf=new Uint8ClampedArray(0),zEe={data:{type:"data",value:NEe,async:!0},dataComparator:{type:"function",value:null,optional:!0},_dataDiff:{type:"function",value:t=>t&&t.__diff,optional:!0},dataTransform:{type:"function",value:null,optional:!0},onDataLoad:{type:"function",value:null,optional:!0},onError:{type:"function",value:null,optional:!0},fetch:{type:"function",value:(t,{propName:e,layer:r,loaders:n,loadOptions:i,signal:o})=>{let{resourceManager:s}=r.context;i=i||r.getLoadOptions(),n=n||r.props.loaders,o&&(i={...i,fetch:{...i?.fetch,signal:o}});let a=s.contains(t);return!a&&!i&&(s.add({resourceId:t,data:za(t,n),persistent:!1}),a=!0),a?s.subscribe({resourceId:t,onChange:l=>r.internalState?.reloadAsyncProp(e,l),consumerId:r.id,requestId:e}):za(t,n,i)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:"draw",onHover:{type:"function",value:null,optional:!0},onClick:{type:"function",value:null,optional:!0},onDragStart:{type:"function",value:null,optional:!0},onDrag:{type:"function",value:null,optional:!0},onDragEnd:{type:"function",value:null,optional:!0},coordinateSystem:Kr.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:2},loadOptions:{type:"object",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:"function",value:({layerIndex:t})=>[0,-t*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}},Cw=class extends R1{constructor(){super(...arguments),this.internalState=null,this.lifecycle=s0.NO_STATE,this.parent=null}static get componentName(){return Object.prototype.hasOwnProperty.call(this,"layerName")?this.layerName:""}get root(){let e=this;for(;e.parent;)e=e.parent;return e}toString(){return`${this.constructor.layerName||this.constructor.name}({id: '${this.props.id}'})`}project(e){ps(this.internalState);let r=this.internalState.viewport||this.context.viewport,n=EN(e,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[i,o,s]=h1(n,r.pixelProjectionMatrix);return e.length===2?[i,o]:[i,o,s]}unproject(e){return ps(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,r){ps(this.internalState);let n=this.internalState.viewport||this.context.viewport;return rC(e,{viewport:n,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}get isDrawable(){return!0}setState(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){let e=this.state;return e&&(e.models||e.model&&[e.model])||[]}setShaderModuleProps(...e){for(let r of this.getModels())r.shaderInputs.setProps(...e)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){let{coordinateSystem:e}=this.props;return e===Kr.DEFAULT||e===Kr.LNGLAT||e===Kr.CARTESIAN}onHover(e,r){return this.props.onHover&&this.props.onHover(e,r)||!1}onClick(e,r){return this.props.onClick&&this.props.onClick(e,r)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(e,r=[]){return r[0]=e+1&255,r[1]=e+1>>8&255,r[2]=e+1>>8>>8&255,r}decodePickingColor(e){ps(e instanceof Uint8Array);let[r,n,i]=e;return r+n*256+i*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:ZC(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){return this.getAttributeManager()?.getBounds(["positions","instancePositions"])}getShaders(e){e=Tw(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(let r of this.props.extensions)e=Tw(e,r.getShaders.call(this,r));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){let r=this.getAttributeManager(),{dataChanged:n}=e.changeFlags;if(n&&r)if(Array.isArray(n))for(let i of n)r.invalidateAll(i);else r.invalidateAll();if(r){let{props:i}=e,o=this.internalState.hasPickingBuffer,s=Number.isInteger(i.highlightedObjectIndex)||i.pickable||i.extensions.some(a=>a.getNeedsPickingBuffer.call(this,a));if(o!==s){this.internalState.hasPickingBuffer=s;let{pickingColors:a,instancePickingColors:l}=r.attributes,u=a||l;u&&(s&&u.constant&&(u.constant=!1,r.invalidate(u.id)),!u.value&&!s&&(u.constant=!0,u.value=[0,0,0]))}}}finalizeState(e){for(let n of this.getModels())n.destroy();let r=this.getAttributeManager();r&&r.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(e){for(let r of this.getModels())r.draw(e.renderPass)}getPickingInfo({info:e,mode:r,sourceLayer:n}){let{index:i}=e;return i>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[i]),e}raiseError(e,r){r&&(e=new Error(`${r}: ${e.message}`,{cause:e})),this.props.onError?.(e)||this.context?.onError?.(e,this)}getNeedsRedraw(e={clearRedrawFlags:!1}){return this._getNeedsRedraw(e)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){return this.internalState?.uniformTransitions.active||!1}activateViewport(e){if(!this.internalState)return;let r=this.internalState.viewport;this.internalState.viewport=e,(!r||!FEe({oldViewport:r,viewport:e}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(e="all"){let r=this.getAttributeManager();r&&(e==="all"?r.invalidateAll():r.invalidate(e))}updateAttributes(e){let r=!1;for(let n in e)e[n].layoutChanged()&&(r=!0);for(let n of this.getModels())this._setModelAttributes(n,e,r)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let r=this.props,n=this.getNumInstances(),i=this.getStartIndices();e.update({data:r.data,numInstances:n,startIndices:i,props:r,transitions:r.transitions,buffers:r.data.attributes,context:this});let o=e.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(o)}_updateAttributeTransition(){let e=this.getAttributeManager();e&&e.updateTransition()}_updateUniformTransition(){let{uniformTransitions:e}=this.internalState;if(e.active){let r=e.update(),n=Object.create(this.props);for(let i in r)Object.defineProperty(n,i,{value:r[i]});return n}return this.props}calculateInstancePickingColors(e,{numInstances:r}){if(e.constant)return;let n=Math.floor(vf.length/4);if(this.internalState.usesPickingColorCache=!0,n<r){r>D$&&Ar.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),vf=mf.allocate(vf,r,{size:4,copy:!0,maxCount:Math.max(r,D$)});let i=Math.floor(vf.length/4),o=[0,0,0];for(let s=n;s<i;s++)this.encodePickingColor(s,o),vf[s*4+0]=o[0],vf[s*4+1]=o[1],vf[s*4+2]=o[2],vf[s*4+3]=0}e.value=vf.subarray(0,r*4)}_setModelAttributes(e,r,n=!1){if(!Object.keys(r).length)return;if(n){let a=this.getAttributeManager();e.setBufferLayout(a.getBufferLayouts(e)),r=a.getAttributes()}let i=e.userData?.excludeAttributes||{},o={},s={};for(let a in r){if(i[a])continue;let l=r[a].getValue();for(let u in l){let f=l[u];f instanceof $n?r[a].settings.isIndexed?e.setIndexBuffer(f):o[u]=f:f&&(s[u]=f)}}e.setAttributes(o),e.setConstantAttributes(s)}disablePickingIndex(e){let r=this.props.data;if(!("attributes"in r)){this._disablePickingIndex(e);return}let{pickingColors:n,instancePickingColors:i}=this.getAttributeManager().attributes,o=n||i,s=o&&r.attributes&&r.attributes[o.id];if(s&&s.value){let a=s.value,l=this.encodePickingColor(e);for(let u=0;u<r.length;u++){let f=o.getVertexOffset(u);a[f]===l[0]&&a[f+1]===l[1]&&a[f+2]===l[2]&&this._disablePickingIndex(u)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let{pickingColors:r,instancePickingColors:n}=this.getAttributeManager().attributes,i=r||n;if(!i)return;let o=i.getVertexOffset(e),s=i.getVertexOffset(e+1);i.buffer.write(new Uint8Array(s-o),o)}restorePickingColors(){let{pickingColors:e,instancePickingColors:r}=this.getAttributeManager().attributes,n=e||r;n&&(this.internalState.usesPickingColorCache&&n.value.buffer!==vf.buffer&&(n.value=vf.subarray(0,n.value.length)),n.updateSubBuffer({startOffset:0}))}_initialize(){ps(!this.internalState),ps(Number.isFinite(this.props.coordinateSystem)),sa(OEe,this);let e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new Sw({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(Ar.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new ww(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(let r of this.props.extensions)r.initializeState.call(this,this.context,r);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(e){sa(DEe,this,this===e);let{state:r,internalState:n}=e;this!==e&&(this.internalState=n,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let e=this.needsUpdate();if(sa(BEe,this,e),!e)return;let r=this.props,n=this.context,i=this.internalState,o=n.viewport,s=this._updateUniformTransition();i.propsInTransition=s,n.viewport=i.viewport||o,this.props=s;try{let a=this._getUpdateParams(),l=this.getModels();if(n.device)this.updateState(a);else try{this.updateState(a)}catch{}for(let f of this.props.extensions)f.updateState.call(this,a,f);this.setNeedsRedraw(),this._updateAttributes();let u=this.getModels()[0]!==l[0];this._postUpdate(a,u)}finally{n.viewport=o,this.props=r,this._clearChangeFlags(),i.needsUpdate=!1,i.resetOldProps()}}_finalize(){sa(kEe,this),this.finalizeState(this.context);for(let e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,shaderModuleProps:r=null,uniforms:n={},parameters:i={}}){this._updateAttributeTransition();let o=this.props,s=this.context;this.props=this.internalState.propsInTransition||o;try{r&&this.setShaderModuleProps(r);let{getPolygonOffset:a}=this.props,l=a&&a(n)||[0,0];s.device instanceof Lp&&s.device.setParametersWebGL({polygonOffset:l});for(let u of this.getModels())u.device.type==="webgpu"?u.setParameters({...u.parameters,...i}):u.setParameters(i);if(s.device instanceof Lp)s.device.withParametersWebGL(i,()=>{let u={renderPass:e,shaderModuleProps:r,uniforms:n,parameters:i,context:s};for(let f of this.props.extensions)f.draw.call(this,u,f);this.draw(u)});else{let u={renderPass:e,shaderModuleProps:r,uniforms:n,parameters:i,context:s};for(let f of this.props.extensions)f.draw.call(this,u,f);this.draw(u)}}finally{this.props=o}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let i in e)if(e[i]){let o=!1;switch(i){case"dataChanged":let s=e[i],a=r[i];s&&Array.isArray(a)&&(r.dataChanged=Array.isArray(s)?a.concat(s):s,o=!0);default:r[i]||(r[i]=e[i],o=!0)}o&&sa(LEe,this,i,e)}let n=Boolean(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=n,r.somethingChanged=n||r.viewportChanged||r.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(e,r){let n=P$(e,r);if(n.updateTriggersChanged)for(let i in n.updateTriggersChanged)n.updateTriggersChanged[i]&&this.invalidateAttribute(i);if(n.transitionsChanged)for(let i in n.transitionsChanged)this.internalState.uniformTransitions.add(i,r[i],e[i],e.transitions?.[i]);return this.setChangeFlags(n)}validateProps(){I$(this.props)}updateAutoHighlight(e){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(e)}_updateAutoHighlight(e){let r={highlightedObjectColor:e.picked?e.color:null},{highlightColor:n}=this.props;e.picked&&typeof n=="function"&&(r.highlightColor=n(e)),this.setShaderModuleProps({picking:r}),this.setNeedsRedraw()}_getAttributeManager(){let e=this.context;return new ju(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,r){let{props:n,oldProps:i}=e,o=this.state.model;o?.isInstanced&&o.setInstanceCount(this.getNumInstances());let{autoHighlight:s,highlightedObjectIndex:a,highlightColor:l}=n;if(r||i.autoHighlight!==s||i.highlightedObjectIndex!==a||i.highlightColor!==l){let u={};Array.isArray(l)&&(u.highlightColor=l),(r||i.autoHighlight!==s||a!==i.highlightedObjectIndex)&&(u.highlightedObjectColor=Number.isFinite(a)&&a>=0?this.encodePickingColor(a):null),this.setShaderModuleProps({picking:u})}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(e){if(!this.internalState)return!1;let r=!1;r=r||this.internalState.needsRedraw&&this.id;let n=this.getAttributeManager(),i=n?n.getNeedsRedraw(e):!1;if(r=r||i,r)for(let o of this.props.extensions)o.onNeedsRedraw.call(this,o);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags,r}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}};Cw.defaultProps=zEe;Cw.layerName="Layer";var ro=Cw;var UEe="compositeLayer.renderLayers",JC=class extends ro{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo({info:e}){let{object:r}=e;return r&&r.__source&&r.__source.parent&&r.__source.parent.id===this.id&&(e.object=r.__source.object,e.index=r.__source.index),e}filterSubLayer(e){return!0}shouldRenderSubLayer(e,r){return r&&r.length}getSubLayerClass(e,r){let{_subLayerProps:n}=this.props;return n&&n[e]&&n[e].type||r}getSubLayerRow(e,r,n){return e.__source={parent:this,object:r,index:n},e}getSubLayerAccessor(e){if(typeof e=="function"){let r={index:-1,data:this.props.data,target:[]};return(n,i)=>n&&n.__source?(r.index=n.__source.index,e(n.__source.object,r)):e(n,i)}return e}getSubLayerProps(e={}){let{opacity:r,pickable:n,visible:i,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:l,highlightColor:u,coordinateSystem:f,coordinateOrigin:m,wrapLongitude:v,positionFormat:E,modelMatrix:S,extensions:L,fetch:O,operation:q,_subLayerProps:G}=this.props,H={id:"",updateTriggers:{},opacity:r,pickable:n,visible:i,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:l,highlightColor:u,coordinateSystem:f,coordinateOrigin:m,wrapLongitude:v,positionFormat:E,modelMatrix:S,extensions:L,fetch:O,operation:q},Y=G&&e.id&&G[e.id],te=Y&&Y.updateTriggers,D=e.id||"sublayer";if(Y){let le=this.props[Rh],ie=e.type?e.type._propTypes:{};for(let J in Y){let X=ie[J]||le[J];X&&X.type==="accessor"&&(Y[J]=this.getSubLayerAccessor(Y[J]))}}Object.assign(H,e,Y),H.id=`${this.props.id}-${D}`,H.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...te};for(let le of L){let ie=le.getSubLayerProps.call(this,le);ie&&Object.assign(H,ie,{updateTriggers:Object.assign(H.updateTriggers,ie.updateTriggers)})}return H}_updateAutoHighlight(e){for(let r of this.getSubLayers())r.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,r){let n=this.internalState.subLayers,i=!n||this.needsUpdate();if(i){let o=this.renderLayers();n=Mp(o,Boolean),this.internalState.subLayers=n}sa(UEe,this,i,n);for(let o of n)o.parent=this}};JC.layerName="CompositeLayer";var Ds=JC;var eI=Math.PI/180,N$=180/Math.PI,tI=6370972,L1=256;function VEe(){let t=L1/tI,e=Math.PI/180*L1;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[1/t,1/t,1/t],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,1/t]}}var bf=class extends Va{constructor(e={}){let{longitude:r=0,zoom:n=0,nearZMultiplier:i=.5,farZMultiplier:o=1,resolution:s=10}=e,{latitude:a=0,height:l,altitude:u=1.5,fovy:f}=e;a=Math.max(Math.min(a,Ch),-Ch),l=l||1,f?u=Bd(f):f=Od(u);let m=1/Math.PI/Math.cos(a*Math.PI/180),v=Math.pow(2,n)*m,E=e.nearZ??i,S=e.farZ??(u+L1*2*v/l)*o,L=new Dn().lookAt({eye:[0,-u,0],up:[0,0,1]});L.rotateX(a*eI),L.rotateZ(-r*eI),L.scale(v/l),super({...e,height:l,viewMatrix:L,longitude:r,latitude:a,zoom:n,distanceScales:VEe(),fovy:f,focalDistance:u,near:E,far:S}),this.scale=v,this.latitude=a,this.longitude=r,this.resolution=s}get projectionMode(){return oc.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){let r={targetZ:e.z||0},n=this.unproject([0,this.height/2],r),i=this.unproject([this.width/2,0],r),o=this.unproject([this.width,this.height/2],r),s=this.unproject([this.width/2,this.height],r);return o[0]<this.longitude&&(o[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],o[0],i[0],s[0]),Math.min(n[1],o[1],i[1],s[1]),Math.max(n[0],o[0],i[0],s[0]),Math.max(n[1],o[1],i[1],s[1])]}unproject(e,{topLeft:r=!0,targetZ:n}={}){let[i,o,s]=e,a=r?o:this.height-o,{pixelUnprojectionMatrix:l}=this,u;if(Number.isFinite(s))u=fF(l,[i,a,s,1]);else{let E=fF(l,[i,a,-1,1]),S=fF(l,[i,a,1,1]),L=((n||0)/tI+1)*L1,O=cl.sqrLen(cl.sub([],E,S)),q=cl.sqrLen(E),G=cl.sqrLen(S),Y=4*((4*q*G-(O-q-G)**2)/16)/O,te=Math.sqrt(q-Y),D=Math.sqrt(Math.max(0,L*L-Y)),le=(te-D)/Math.sqrt(O);u=cl.lerp([],E,S,le)}let[f,m,v]=this.unprojectPosition(u);return Number.isFinite(s)?[f,m,v]:Number.isFinite(n)?[f,m,n]:[f,m]}projectPosition(e){let[r,n,i=0]=e,o=r*eI,s=n*eI,a=Math.cos(s),l=(i/tI+1)*L1;return[Math.sin(o)*a*l,-Math.cos(o)*a*l,Math.sin(s)*l]}unprojectPosition(e){let[r,n,i]=e,o=cl.len(e),s=Math.asin(i/o),l=Math.atan2(r,-n)*N$,u=s*N$,f=(o/L1-1)*tI;return[l,u,f]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,r){let n=this.unproject(r);return{longitude:e[0]-n[0]+this.longitude,latitude:e[1]-n[1]+this.latitude}}};function fF(t,e){let r=Dl.transformMat4([],e,t);return Dl.scale(r,r,1/r[3]),r}var pF=Math.PI/180;function jEe({height:t,focalDistance:e,orbitAxis:r,rotationX:n,rotationOrbit:i,zoom:o}){let s=r==="Z"?[0,0,1]:[0,1,0],a=r==="Z"?[0,-e,0]:[0,0,e],l=new Dn().lookAt({eye:a,up:s});l.rotateX(n*pF),r==="Z"?l.rotateZ(i*pF):l.rotateY(i*pF);let u=Math.pow(2,o)/t;return l.scale(u),l}var ug=class extends Va{constructor(e){let{height:r,projectionMatrix:n,fovy:i=50,orbitAxis:o="Z",target:s=[0,0,0],rotationX:a=0,rotationOrbit:l=0,zoom:u=0}=e,f=n?n[5]/2:Bd(i);super({...e,longitude:void 0,viewMatrix:jEe({height:r||1,focalDistance:f,orbitAxis:o,rotationX:a,rotationOrbit:l,zoom:u}),fovy:i,focalDistance:f,position:s,zoom:u}),this.projectedCenter=this.project(this.center)}unproject(e,{topLeft:r=!0}={}){let[n,i,o=this.projectedCenter[2]]=e,s=r?i:this.height-i,[a,l,u]=Ih([n,s,o],this.pixelUnprojectionMatrix);return[a,l,u]}panByPosition(e,r){let n=this.project(e),i=[this.width/2+n[0]-r[0],this.height/2+n[1]-r[1],this.projectedCenter[2]];return{target:this.unproject(i)}}};var HEe=new Dn().lookAt({eye:[0,0,1]});function WEe({width:t,height:e,near:r,far:n,padding:i}){let o=-t/2,s=t/2,a=-e/2,l=e/2;if(i){let{left:u=0,right:f=0,top:m=0,bottom:v=0}=i,E=mo((u+t-f)/2,0,t)-t/2,S=mo((m+e-v)/2,0,e)-e/2;o-=E,s-=E,a+=S,l+=S}return new Dn().ortho({left:o,right:s,bottom:a,top:l,near:r,far:n})}var hg=class extends Va{constructor(e){let{width:r,height:n,near:i=.1,far:o=1e3,zoom:s=0,target:a=[0,0,0],padding:l=null,flipY:u=!0}=e,f=Array.isArray(s)?s[0]:s,m=Array.isArray(s)?s[1]:s,v=Math.min(f,m),E=Math.pow(2,v),S;if(f!==m){let L=Math.pow(2,f),O=Math.pow(2,m);S={unitsPerMeter:[L/E,O/E,1],metersPerUnit:[E/L,E/O,1]}}super({...e,longitude:void 0,position:a,viewMatrix:HEe.clone().scale([E,E*(u?-1:1),E]),projectionMatrix:WEe({width:r||1,height:n||1,padding:l,near:i,far:o}),zoom:v,distanceScales:S})}projectFlat([e,r]){let{unitsPerMeter:n}=this.distanceScales;return[e*n[0],r*n[1]]}unprojectFlat([e,r]){let{metersPerUnit:n}=this.distanceScales;return[e*n[0],r*n[1]]}panByPosition(e,r){let n=Ih(r,this.pixelUnprojectionMatrix),i=this.projectFlat(e),o=Ua.add([],i,Ua.negate([],n)),s=Ua.add([],this.center,o);return{target:this.unprojectFlat(s)}}};var fg=class extends Va{constructor(e){let{longitude:r,latitude:n,modelMatrix:i,bearing:o=0,pitch:s=0,up:a=[0,0,1]}=e,u=new uf({bearing:o,pitch:s===-90?1e-4:90+s}).toVector3().normalize(),f=i?new Dn(i).transformAsVector(u):u,m=Number.isFinite(n)?Fb({latitude:n}):0,v=Math.pow(2,m),E=new Dn().lookAt({eye:[0,0,0],center:f,up:a}).scale(v);super({...e,zoom:m,viewMatrix:E}),this.latitude=n,this.longitude=r}};var pg=20,F$=500,Iw=class extends Hd{constructor(e){let{width:r,height:n,position:i=[0,0,0],bearing:o=0,pitch:s=0,longitude:a=null,latitude:l=null,maxPitch:u=90,minPitch:f=-90,startRotatePos:m,startBearing:v,startPitch:E,startZoomPosition:S,startPanPos:L,startPanPosition:O}=e;super({width:r,height:n,position:i,bearing:o,pitch:s,longitude:a,latitude:l,maxPitch:u,minPitch:f},{startRotatePos:m,startBearing:v,startPitch:E,startZoomPosition:S,startPanPos:L,startPanPosition:O}),this.makeViewport=e.makeViewport}panStart({pos:e}){let{position:r}=this.getViewportProps();return this._getUpdatedState({startPanPos:e,startPanPosition:r})}pan({pos:e}){if(!e)return this;let{startPanPos:r=[0,0],startPanPosition:n=[0,0]}=this.getState(),{width:i,height:o,bearing:s,pitch:a}=this.getViewportProps(),l=F$*(e[0]-r[0])/i,u=F$*(e[1]-r[1])/o,f=new uf({bearing:s,pitch:a}),m=new uf({bearing:s,pitch:-90}),v=f.toVector3().normalize(),E=m.toVector3().cross(v).normalize();return this._getUpdatedState({position:new mr(n).add(E.scale(l)).add(v.scale(u))})}panEnd(){return this._getUpdatedState({startPanPos:null,startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startBearing:o,startPitch:s}=this.getState(),{width:a,height:l}=this.getViewportProps();if(!i||o===void 0||s===void 0)return this;let u;if(e){let f=(e[0]-i[0])/a,m=(e[1]-i[1])/l;u={bearing:o-f*180,pitch:s-m*90}}else u={bearing:o-r,pitch:s-n};return this._getUpdatedState(u)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:e,scale:r}){let n=this.getViewportProps(),i=this.getState().startZoomPosition||n.position,o=this.makeViewport(n),{projectionMatrix:s,width:a}=o,u=2*Math.atan(1/s[0])*(e[0]/a-.5),f=this.getDirection(!0);return this._move(f.rotateZ({radians:-u}),Math.log2(r)*pg,i)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(e=pg){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:Math.PI/2}),e)}moveRight(e=pg){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:-Math.PI/2}),e)}moveUp(e=pg){let r=this.getDirection(!0);return this._move(r,e)}moveDown(e=pg){let r=this.getDirection(!0);return this._move(r.negate(),e)}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}zoomIn(e=pg){return this._move(new mr(0,0,1),e)}zoomOut(e=pg){return this._move(new mr(0,0,-1),e)}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:o}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),o!==null&&r.longitude!==null&&Math.abs(o-r.longitude)>180&&(n.longitude=o<0?o+360:o-360),n}_move(e,r,n=this.getViewportProps().position){let i=e.scale(r);return this._getUpdatedState({position:new mr(n).add(i)})}getDirection(e=!1){return new uf({bearing:this.getViewportProps().bearing,pitch:e?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(e){return new Iw({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{pitch:r,maxPitch:n,minPitch:i,longitude:o,bearing:s}=e;return e.pitch=mo(r,i,n),o!==null&&(o<-180||o>180)&&(e.longitude=KA(o+180,360)-180),(s<-180||s>180)&&(e.bearing=KA(s+180,360)-180),e}},dg=class extends Fl{constructor(){super(...arguments),this.ControllerState=Iw,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["position","pitch","bearing"])}}};var rI=class extends Nl{constructor(e={}){super(e)}getViewportType(){return fg}get ControllerType(){return dg}};rI.displayName="FirstPersonView";var z$=rI;var Pw=class extends Hd{constructor(e){let{width:r,height:n,rotationX:i=0,rotationOrbit:o=0,target:s=[0,0,0],zoom:a=0,minRotationX:l=-90,maxRotationX:u=90,minZoom:f=-1/0,maxZoom:m=1/0,startPanPosition:v,startRotatePos:E,startRotationX:S,startRotationOrbit:L,startZoomPosition:O,startZoom:q}=e;super({width:r,height:n,rotationX:i,rotationOrbit:o,target:s,zoom:a,minRotationX:l,maxRotationX:u,minZoom:f,maxZoom:m},{startPanPosition:v,startRotatePos:E,startRotationX:S,startRotationOrbit:L,startZoomPosition:O,startZoom:q}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:r}){let n=this.getState().startPanPosition||r;if(!n)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:e,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startRotationX:o,startRotationOrbit:s}=this.getState(),{width:a,height:l}=this.getViewportProps();if(!i||o===void 0||s===void 0)return this;let u;if(e){let f=(e[0]-i[0])/a,m=(e[1]-i[1])/l;(o<-90||o>90)&&(f*=-1),u={rotationX:o+m*180,rotationOrbit:s+f*180}}else u={rotationX:o+n,rotationOrbit:s+r};return this._getUpdatedState(u)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let r=e.getViewportProps(),n={...this.getViewportProps()},{rotationOrbit:i}=n;return Math.abs(i-r.rotationOrbit)>180&&(n.rotationOrbit=i<0?i+360:i-360),n}zoomStart({pos:e}){return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:n}){let{startZoom:i,startZoomPosition:o}=this.getState();if(o||(i=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let s=this._calculateNewZoom({scale:n,startZoom:i}),a=this.makeViewport({...this.getViewportProps(),zoom:s});return this._getUpdatedState({zoom:s,...a.panByPosition(o,e)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}zoomOut(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}moveLeft(e=50){return this._panFromCenter([-e,0])}moveRight(e=50){return this._panFromCenter([e,0])}moveUp(e=50){return this._panFromCenter([0,-e])}moveDown(e=50){return this._panFromCenter([0,e])}rotateLeft(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-e})}rotateRight(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+e})}rotateUp(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-e})}rotateDown(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+e})}_unproject(e){let r=this.makeViewport(this.getViewportProps());return e&&r.unproject(e)}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:n,minZoom:i}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=r+Math.log2(e);return mo(o,i,n)}_panFromCenter(e){let{width:r,height:n,target:i}=this.getViewportProps();return this.pan({startPosition:i,pos:[r/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i,maxRotationX:o,minRotationX:s,rotationOrbit:a}=e;return e.zoom=Array.isArray(i)?[mo(i[0],n,r),mo(i[1],n,r)]:mo(i,n,r),e.rotationX=mo(e.rotationX,s,o),(a<-180||a>180)&&(e.rotationOrbit=KA(a+180,360)-180),e}},mg=class extends Fl{constructor(){super(...arguments),this.ControllerState=Pw,this.transition={transitionDuration:300,transitionInterpolator:new Gs({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})}}};var nI=class extends Nl{constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}getViewportType(){return ug}get ControllerType(){return mg}};nI.displayName="OrbitView";var U$=nI;var dF=class extends Pw{constructor(e){super(e),this.zoomAxis=e.zoomAxis||"all"}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:n,minZoom:i}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=Math.log2(e);if(Array.isArray(r)){let[s,a]=r;switch(this.zoomAxis){case"X":s=mo(s+o,i,n);break;case"Y":a=mo(a+o,i,n);break;default:let l=Math.min(s+o,a+o);l<i&&(o+=i-l),l=Math.max(s+o,a+o),l>n&&(o+=n-l),s+=o,a+=o}return[s,a]}return mo(r+o,i,n)}},Ag=class extends Fl{constructor(){super(...arguments),this.ControllerState=dF,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["target","zoom"])},this.dragMode="pan"}_onPanRotate(){return!1}};var iI=class extends Nl{constructor(e={}){super(e)}getViewportType(){return hg}get ControllerType(){return Ag}};iI.displayName="OrthographicView";var V$=iI;var mF=class extends rw{applyConstraints(e){let{maxZoom:r,minZoom:n,zoom:i}=e;e.zoom=mo(i,n,r);let{longitude:o,latitude:s}=e;return(o<-180||o>180)&&(e.longitude=KA(o+180,360)-180),e.latitude=mo(s,-Ch,Ch),e}},gg=class extends Fl{constructor(){super(...arguments),this.ControllerState=mF,this.transition={transitionDuration:300,transitionInterpolator:new Gs(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(e){super.setProps(e),this.dragRotate=!1,this.touchRotate=!1}};var oI=class extends Nl{constructor(e={}){super(e)}getViewportType(e){return e.zoom>12?ll:bf}get ControllerType(){return gg}};oI.displayName="GlobeView";var j$=oI;var Rw=class{static get componentName(){return Object.prototype.hasOwnProperty.call(this,"extensionName")?this.extensionName:""}constructor(e){e&&(this.opts=e)}equals(e){return this===e?!0:this.constructor===e.constructor&&Gi(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){let{defaultProps:r}=e.constructor,n={updateTriggers:{}};for(let i in r)if(i in this.props){let o=r[i],s=this.props[i];n[i]=s,o&&o.type==="accessor"&&(n.updateTriggers[i]=this.props.updateTriggers[i],typeof s=="function"&&(n[i]=this.getSubLayerAccessor(s)))}return n}initializeState(e,r){}updateState(e,r){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,r){}finalizeState(e,r){}};Rw.defaultProps={};Rw.extensionName="LayerExtension";var sI=Rw;var AF={bearing:0,pitch:0,position:[0,0,0]},qEe={speed:1.2,curve:1.414},wf=class extends Vd{constructor(e={}){super({compare:["longitude","latitude","zoom","bearing","pitch","position"],extract:["width","height","longitude","latitude","zoom","bearing","pitch","position"],required:["width","height","latitude","longitude","zoom"]}),this.opts={...qEe,...e}}interpolateProps(e,r,n){let i=xN(e,r,n,this.opts);for(let o in AF)i[o]=nc(e[o]||AF[o],r[o]||AF[o],n);return i}getDuration(e,r){let{transitionDuration:n}=r;return n==="auto"&&(n=vN(e,r,this.opts)),n}};Fn();var qd=class{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;let{attributes:r={}}=e;this.typedArrayManager=mf,this.attributes={},this._attributeDefs=r,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);let{data:r,buffers:n={},getGeometry:i,geometryBuffer:o,positionFormat:s,dataChanged:a,normalize:l=!0}=this.opts;if(this.data=r,this.getGeometry=i,this.positionSize=o&&o.size||(s==="XY"?2:3),this.buffers=n,this.normalize=l,o&&(ps(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(o),l||(n.vertexPositions=o)),this.geometryBuffer=n.vertexPositions,Array.isArray(a))for(let u of a)this._rebuildGeometry(u);else this._rebuildGeometry()}updatePartialGeometry({startRow:e,endRow:r}){this._rebuildGeometry({startRow:e,endRow:r})}getGeometryFromBuffer(e){let r=e.value||e;return ArrayBuffer.isView(r)?WC(r,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,r){let{attributes:n,buffers:i,_attributeDefs:o,typedArrayManager:s}=this;for(let a in o)if(a in i)s.release(n[a]),n[a]=null;else{let l=o[a];l.copy=r,n[a]=s.allocate(n[a],e,l)}}_forEachGeometry(e,r,n){let{data:i,getGeometry:o}=this,{iterable:s,objectInfo:a}=ua(i,r,n);for(let l of s){a.index++;let u=o?o(l,a):null;e(u,a.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:r,vertexStarts:n,instanceCount:i}=this,{data:o,geometryBuffer:s}=this,{startRow:a=0,endRow:l=1/0}=e||{},u={};if(e||(r=[0],n=[0]),this.normalize||!s)this._forEachGeometry((m,v)=>{let E=m&&this.normalizeGeometry(m);u[v]=E,n[v+1]=n[v]+(E?this.getGeometrySize(E):0)},a,l),i=n[n.length-1];else if(n=o.startIndices,i=n[o.length]||0,ArrayBuffer.isView(s))i=i||s.length/this.positionSize;else if(s instanceof $n){let m=this.positionSize*4;i=i||s.byteLength/m}else if(s.buffer){let m=s.stride||this.positionSize*4;i=i||s.buffer.byteLength/m}else if(s.value){let m=s.value,v=s.stride/m.BYTES_PER_ELEMENT||this.positionSize;i=i||m.length/v}this._allocate(i,Boolean(e)),this.indexStarts=r,this.vertexStarts=n,this.instanceCount=i;let f={};this._forEachGeometry((m,v)=>{let E=u[v]||m;f.vertexStart=n[v],f.indexStart=r[v];let S=v<n.length-1?n[v+1]:i;f.geometrySize=S-n[v],f.geometryIndex=v,this.updateGeometryAttributes(E,f)},a,l),this.vertexCount=r[r.length-1]}};fw();var gF=85.05113;function _F(t,e,r,n){if(r){if(r.userData._googleMap===t)return r;aI(r)}let i={click:null,rightclick:null,dblclick:null,mousemove:null,mouseout:null},o=new C1({...n,useDevicePixels:n.interleaved?!0:n.useDevicePixels,style:n.interleaved?null:{pointerEvents:"none"},parent:GEe(e,n.style),views:new b1({repeat:!0}),initialViewState:{longitude:0,latitude:0,zoom:1},controller:!1});for(let s in i)i[s]=t.addListener(s,a=>YEe(o,s,a));return o.userData._googleMap=t,o.userData._eventListeners=i,o}function GEe(t,e){let r=document.createElement("div");return r.style.position="absolute",Object.assign(r.style,e),"getPanes"in t?t.getPanes()?.overlayLayer.appendChild(r):t.getMap()?.getDiv().appendChild(r),r}function aI(t){let{_eventListeners:e}=t.userData;for(let r in e)e[r]&&e[r].remove();t.finalize()}function H$(t,e){let{width:r,height:n}=W$(t),i=e.getProjection(),o=t.getBounds();if(!o)return{width:r,height:n,left:0,top:0};let s=o.getNorthEast(),a=o.getSouthWest(),l=i.fromLatLngToDivPixel(s),u=i.fromLatLngToDivPixel(a),f=yF(i,r/2,n/2),m=new google.maps.LatLng(0,f[0]),v=i.fromLatLngToContainerPixel(m),E=i.fromLatLngToDivPixel(m);if(!l||!u||!E||!v)return{width:r,height:n,left:0,top:0};let S=Math.round(E.x-v.x),L=E.y-v.y,O=yF(i,r/2,0),q=yF(i,r/2,n),G=f[1],H=f[0];if(Math.abs(G)>gF){G=G>0?gF:-gF;let J=new google.maps.LatLng(G,H),X=i.fromLatLngToContainerPixel(J);L+=X.y-n/2}L=Math.round(L);let te=180*new HA(O).sub(q).verticalAngle()/Math.PI;te<0&&(te+=360);let D=t.getHeading()||0,le=t.getZoom()-1,ie;if(te===0)ie=n?(u.y-l.y)/n:1;else if(te===D){let J=new HA([l.x,l.y]).sub([u.x,u.y]).len(),X=new HA([r,-n]).len();ie=X?J/X:1}return le+=Math.log2(ie||1),{width:r,height:n,left:S,top:L,zoom:le,bearing:te,pitch:t.getTilt(),latitude:G,longitude:H}}function xF(t,e){let{width:r,height:n}=W$(t),{center:i,heading:o,tilt:s,zoom:a}=e.getCameraParams(),l=25,u=n?r/n:1,f=.75,m=3e14,v=new Dn().perspective({fovy:l*Math.PI/180,aspect:u,near:f,far:m}),E=.5*v[5];return{width:r,height:n,viewState:{altitude:E,bearing:o,latitude:i.lat(),longitude:i.lng(),pitch:s,projectionMatrix:v,repeat:!0,zoom:a-1}}}function W$(t){let e=t.getDiv().firstChild;return{width:e.offsetWidth,height:e.offsetHeight}}function yF(t,e,r){let n=new google.maps.Point(e,r),i=t.fromContainerPixelToLatLng(n);return[i.lng(),i.lat()]}function XEe(t,e){if(t.pixel)return t.pixel;let r=e.getViewports()[0].project([t.latLng.lng(),t.latLng.lat()]);return{x:r[0],y:r[1]}}function YEe(t,e,r){if(!t.isInitialized)return;let n={type:e,offsetCenter:XEe(r,t),srcEvent:r};switch(e){case"click":case"rightclick":n.type="click",n.tapCount=1,t._onPointerDown(n),t._onEvent(n);break;case"dblclick":n.type="click",n.tapCount=2,t._onEvent(n);break;case"mousemove":n.type="pointermove",t._onPointerMove(n);break;case"mouseout":n.type="pointerleave",t._onPointerMove(n);break;default:return}}var $Ee=()=>!1,KEe={depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],blendEquation:32774};function q$(){}var ZEe={interleaved:!0},yg=class{constructor(e){this.props={},this._map=null,this._deck=null,this._overlay=null,this.setProps({...ZEe,...e})}setMap(e){if(e===this._map)return;let{VECTOR:r,UNINITIALIZED:n}=google.maps.RenderingType;this._map&&(!e&&this._map.getRenderingType()===r&&this.props.interleaved&&this._overlay.requestRedraw(),this._overlay?.setMap(null),this._map=null),e&&(this._map=e,e.getRenderingType()!==n?this._createOverlay(e):e.addListener("renderingtype_changed",()=>{this._createOverlay(e)}))}setProps(e){if(Object.assign(this.props,e),this._deck){let r=this._deck.getCanvas();if(e.style&&r?.parentElement){let n=r.parentElement.style;Object.assign(n,e.style),e.style=null}this._deck.setProps(e)}}pickObject(e){return this._deck&&this._deck.pickObject(e)}pickMultipleObjects(e){return this._deck&&this._deck.pickMultipleObjects(e)}pickObjects(e){return this._deck&&this._deck.pickObjects(e)}finalize(){this.setMap(null),this._deck&&(aI(this._deck),this._deck=null)}_createOverlay(e){let{interleaved:r}=this.props,{VECTOR:n,UNINITIALIZED:i}=google.maps.RenderingType,o=e.getRenderingType();if(o===i)return;let a=o===n&&google.maps.WebGLOverlayView?google.maps.WebGLOverlayView:google.maps.OverlayView,l=new a;l instanceof google.maps.WebGLOverlayView?(r?(l.onAdd=q$,l.onContextRestored=this._onContextRestored.bind(this),l.onDraw=this._onDrawVectorInterleaved.bind(this)):(l.onAdd=this._onAdd.bind(this),l.onContextRestored=q$,l.onDraw=this._onDrawVectorOverlay.bind(this)),l.onContextLost=this._onContextLost.bind(this)):(l.onAdd=this._onAdd.bind(this),l.draw=this._onDrawRaster.bind(this)),l.onRemove=this._onRemove.bind(this),this._overlay=l,this._overlay.setMap(e)}_onAdd(){this._deck=_F(this._map,this._overlay,this._deck,this.props)}_onContextRestored({gl:e}){if(!this._map||!this._overlay)return;let r=()=>{this._overlay&&this._overlay.requestRedraw()},n=_F(this._map,this._overlay,this._deck,{gl:e,_customRender:r,...this.props});this._deck=n;let i=n.animationLoop;i._renderFrame=()=>{let o=e.getParameter(34964);n.device.withParametersWebGL({},()=>{i.props.onRender(i.animationProps)}),e.bindBuffer(34962,o)}}_onContextLost(){this._deck&&(aI(this._deck),this._deck=null)}_onRemove(){this._deck?.setProps({layerFilter:$Ee})}_onDrawRaster(){if(!this._deck||!this._map)return;let e=this._deck,{width:r,height:n,left:i,top:o,...s}=H$(this._map,this._overlay),l=e.getCanvas()?.parentElement||e.props.parent;if(l){let f=l.style;f.left=`${i}px`,f.top=`${o}px`}let u=1e4;e.setProps({width:r,height:n,viewState:{altitude:u,...s}}),e.redraw()}_onDrawVectorInterleaved({gl:e,transformer:r}){if(!this._deck||!this._map)return;let n=this._deck;if(n.setProps({...xF(this._map,r),width:null,height:null}),n.isInitialized){let i=n.device;if(i instanceof Lp){let o=i.getParametersWebGL(36006);n.setProps({_framebuffer:o})}n.needsRedraw({clearRedrawFlags:!0}),i instanceof Lp&&(i.setParametersWebGL({viewport:[0,0,e.canvas.width,e.canvas.height],scissor:[0,0,e.canvas.width,e.canvas.height],stencilFunc:[519,0,255,519,0,255]}),i.withParametersWebGL(KEe,()=>{n._drawLayers("google-vector",{clearCanvas:!1})}))}}_onDrawVectorOverlay({transformer:e}){if(!this._deck||!this._map)return;let r=this._deck;r.setProps({...xF(this._map,e)}),r.redraw()}};function G$({container:t,onClick:e,onComplete:r,getTooltip:n,googleMapsKey:i,layers:o,mapStyle:s="satellite",initialViewState:a={latitude:0,longitude:0,zoom:1}}){if(!i)return Ar.warn("No Google Maps API key set")(),null;let l=new yg({layers:o}),u={center:{lat:a.latitude,lng:a.longitude},mapTypeId:s,zoom:a.zoom},f=new window.google.maps.Map(t,u);return l.setMap(f),l}var X$={position:"absolute",top:"0px",left:"0px",width:344,padding:"12px 24px",margin:24,overflowX:"hidden",overflowY:"overlay",outline:"none",maxHeight:"94%",boxSizing:"border-box",backgroundColor:"rgb(255, 255, 255)",fontFamily:'"Fira Sans", sans-serif',zIndex:1};var vF=class{constructor({container:e,props:r}){let{description:n}=r,i=document.createElement("div");i.className="deck-json-description-box",Object.assign(i.style,X$),this.el=i;let o=document.createElement("div");o.innerHTML=n,i.appendChild(o),e.append(i)}remove(){this.el.remove(),this.description=null}static get stringName(){return"description"}},Y$=vF;function bF(t,e){let r=document.createElement("div");r.className="deckgl-ui-elements-overlay",r.style.zIndex=1,t.insertAdjacentElement("beforebegin",r);let n=[];for(let i of Object.keys(e))switch(i){case"description":let o=new Y$({container:r,props:e});n.push(o);break;default:break}return n}var C3={};Uo(C3,{A5Layer:()=>Jee,AmbientLight:()=>p1,ArcLayer:()=>lI,Attribute:()=>Wd,AttributeManager:()=>ju,BitmapLayer:()=>uI,COORDINATE_SYSTEM:()=>Kr,CPUAggregator:()=>zl,ColumnLayer:()=>Op,CompassWidget:()=>uy,CompositeLayer:()=>Ds,ContourLayer:()=>YQ,Controller:()=>Fl,DarkGlassTheme:()=>a4,DarkTheme:()=>Ahe,Deck:()=>C1,DeckRenderer:()=>og,DirectionalLight:()=>kd,FirstPersonController:()=>dg,FirstPersonView:()=>z$,FirstPersonViewport:()=>fg,FlyToInterpolator:()=>wf,FullscreenWidget:()=>my,GeoJsonLayer:()=>bg,GeohashLayer:()=>Pue,GimbalWidget:()=>ly,GoogleMapsOverlay:()=>yg,GreatCircleLayer:()=>jte,GridCellLayer:()=>VK,GridLayer:()=>JQ,H3ClusterLayer:()=>bre,H3HexagonLayer:()=>RP,HeatmapLayer:()=>gJ,HexagonLayer:()=>mQ,IconLayer:()=>O1,JSONConfiguration:()=>cm,JSONConverter:()=>ny,Layer:()=>ro,LayerExtension:()=>sI,LayerManager:()=>rg,LightGlassTheme:()=>s4,LightTheme:()=>mhe,LightingEffect:()=>i0,LineLayer:()=>gK,LinearInterpolator:()=>Gs,MVTLayer:()=>Mue,MapController:()=>ig,MapView:()=>b1,OPERATION:()=>eX,OrbitController:()=>mg,OrbitView:()=>U$,OrbitViewport:()=>ug,OrthographicController:()=>Ag,OrthographicView:()=>V$,OrthographicViewport:()=>hg,PathLayer:()=>Bp,PointCloudLayer:()=>hI,PointLight:()=>g1,PolygonLayer:()=>p0,PostProcessEffect:()=>Kb,QuadkeyLayer:()=>rre,ResetViewWidget:()=>cy,S2Layer:()=>ere,ScatterplotLayer:()=>fI,ScenegraphLayer:()=>oR,ScreenGridLayer:()=>iQ,ScreenshotWidget:()=>vy,SimpleMeshLayer:()=>kg,SolidPolygonLayer:()=>f0,TRANSITION_EVENTS:()=>ew,TerrainLayer:()=>Xle,Tesselator:()=>qd,TextLayer:()=>PI,Tile3DLayer:()=>Ule,TileLayer:()=>Bg,TransitionInterpolator:()=>Vd,Transport:()=>qp,TripsLayer:()=>vre,UNIT:()=>$o,VERSION:()=>EM,View:()=>Nl,Viewport:()=>Va,WebGLAggregator:()=>va,WebMercatorViewport:()=>ll,Widget:()=>Tn,ZoomWidget:()=>ay,_AggregationLayer:()=>kp,_ButtonGroup:()=>iv,_CameraLight:()=>Hb,_Component:()=>R1,_ComponentState:()=>lg,_ContextMenuWidget:()=>_y,_CoordinatesGeocoder:()=>ov,_CurrentLocationGeocoder:()=>n4,_DropdownMenu:()=>QL,_FpsWidget:()=>Ty,_GeoCellLayer:()=>Lh,_GeocoderWidget:()=>dy,_GlobeController:()=>gg,_GlobeView:()=>j$,_GlobeViewport:()=>bf,_GoogleGeocoder:()=>e4,_GroupedIconButton:()=>sy,_IconButton:()=>Ic,_IconMenu:()=>i4,_InfoWidget:()=>yy,_LayersPass:()=>df,_LoadingWidget:()=>wy,_MapboxGeocoder:()=>t4,_MultiIconLayer:()=>SI,_OpenCageGeocoder:()=>r4,_PickLayersPass:()=>Nd,_ScaleWidget:()=>hy,_SimpleMenu:()=>o4,_SplitterWidget:()=>Ay,_StatsWidget:()=>Ey,_SunLight:()=>Wb,_TextBackgroundLayer:()=>II,_ThemeWidget:()=>by,_Tile2DHeader:()=>Rg,_Tileset2D:()=>Og,_TimelineWidget:()=>xy,_ViewSelectorWidget:()=>gy,_WMSLayer:()=>sx,_applyStyles:()=>sg,_compareProps:()=>P1,_convertFunctions:()=>tv,_count:()=>ZC,_deepEqual:()=>Gi,_fillArray:()=>uC,_flatten:()=>Mp,_getURLFromTemplate:()=>Fp,_memoize:()=>Mh,_mergeShaders:()=>Tw,_parseExpressionString:()=>ry,_removeStyles:()=>AC,_shallowEqualObjects:()=>Vue,assert:()=>ps,color:()=>Pd,createIterable:()=>ua,fp64LowPart:()=>wN,getShaderAssembler:()=>eC,gouraudMaterial:()=>hf,log:()=>Ar,phongMaterial:()=>Id,picking:()=>Vo,project:()=>r0,project32:()=>ki,shadow:()=>f1});var $$=`uniform arcUniforms {
|
|
3053
3053
|
bool greatCircle;
|
|
3054
3054
|
bool useShortestPath;
|
|
3055
3055
|
float numSegments;
|
|
@@ -3382,13 +3382,14 @@ void main(void) {
|
|
|
3382
3382
|
`;var iMe={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:Kr.DEFAULT,desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]},textureParameters:{type:"object",ignore:!0,value:null}},Ow=class extends ro{getShaders(){return super.getShaders({vs:tK,fs:rK,modules:[ki,Vo,eK]})}initializeState(){let e=this.getAttributeManager();e.remove(["instancePickingColors"]);let r=!0;e.add({indices:{size:1,isIndexed:!0,update:n=>n.value=this.state.mesh.indices,noAlloc:r},positions:{size:3,type:"float64",fp64:this.use64bitPositions(),update:n=>n.value=this.state.mesh.positions,noAlloc:r},texCoords:{size:2,update:n=>n.value=this.state.mesh.texCoords,noAlloc:r}})}updateState({props:e,oldProps:r,changeFlags:n}){let i=this.getAttributeManager();if(n.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),i.invalidateAll()),e.bounds!==r.bounds){let o=this.state.mesh,s=this._createMesh();this.state.model.setVertexCount(s.vertexCount);for(let a in s)o&&o[a]!==s[a]&&i.invalidate(a);this.setState({mesh:s,...this._getCoordinateUniforms()})}else e._imageCoordinateSystem!==r._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(e){let{image:r}=this.props,n=e.info;if(!n.color||!r)return n.bitmap=null,n;let{width:i,height:o}=r;n.index=0;let s=oMe(n.color);return n.bitmap={size:{width:i,height:o},uv:s,pixel:[Math.floor(s[0]*i),Math.floor(s[1]*o)]},n}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(e){super._updateAutoHighlight({...e,color:this.encodePickingColor(0)})}_createMesh(){let{bounds:e}=this.props,r=e;return nK(e)&&(r=[[e[0],e[1]],[e[0],e[3]],[e[2],e[3]],[e[2],e[1]]]),wF(r,this.context.viewport.resolution)}_getModel(){return new Qn(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-list",isInstanced:!1})}draw(e){let{shaderModuleProps:r}=e,{model:n,coordinateConversion:i,bounds:o,disablePicking:s}=this.state,{image:a,desaturate:l,transparentColor:u,tintColor:f}=this.props;if(!(r.picking.isActive&&s)&&a&&n){let m={bitmapTexture:a,bounds:o,coordinateConversion:i,desaturate:l,tintColor:f.slice(0,3).map(v=>v/255),transparentColor:u.map(v=>v/255)};n.shaderInputs.setProps({bitmap:m}),n.draw(this.context.renderPass)}}_getCoordinateUniforms(){let{LNGLAT:e,CARTESIAN:r,DEFAULT:n}=Kr,{_imageCoordinateSystem:i}=this.props;if(i!==n){let{bounds:o}=this.props;if(!nK(o))throw new Error("_imageCoordinateSystem only supports rectangular bounds");let s=this.context.viewport.resolution?e:r;if(i=i===e?e:r,i===e&&s===r)return{coordinateConversion:-1,bounds:o};if(i===r&&s===e){let a=sc([o[0],o[1]]),l=sc([o[2],o[3]]);return{coordinateConversion:1,bounds:[a[0],a[1],l[0],l[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}};Ow.layerName="BitmapLayer";Ow.defaultProps=iMe;var uI=Ow;function oMe(t){let[e,r,n]=t,i=(n&240)/256,o=(n&15)/16;return[(e+o)/256,(r+i)/256]}function nK(t){return Number.isFinite(t[0])}var iK=`uniform iconUniforms {
|
|
3383
3383
|
float sizeScale;
|
|
3384
3384
|
vec2 iconsTextureDim;
|
|
3385
|
+
float sizeBasis;
|
|
3385
3386
|
float sizeMinPixels;
|
|
3386
3387
|
float sizeMaxPixels;
|
|
3387
3388
|
bool billboard;
|
|
3388
3389
|
highp int sizeUnits;
|
|
3389
3390
|
float alphaCutoff;
|
|
3390
3391
|
} icon;
|
|
3391
|
-
`,oK={name:"icon",vs:iK,fs:iK,uniformTypes:{sizeScale:"f32",iconsTextureDim:"vec2<f32>",sizeMinPixels:"f32",sizeMaxPixels:"f32",billboard:"f32",sizeUnits:"i32",alphaCutoff:"f32"}};var sK=`#version 300 es
|
|
3392
|
+
`,oK={name:"icon",vs:iK,fs:iK,uniformTypes:{sizeScale:"f32",iconsTextureDim:"vec2<f32>",sizeBasis:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",billboard:"f32",sizeUnits:"i32",alphaCutoff:"f32"}};var sK=`#version 300 es
|
|
3392
3393
|
#define SHADER_NAME icon-layer-vertex-shader
|
|
3393
3394
|
in vec2 positions;
|
|
3394
3395
|
in vec3 instancePositions;
|
|
@@ -3422,7 +3423,8 @@ float sizePixels = clamp(
|
|
|
3422
3423
|
project_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),
|
|
3423
3424
|
icon.sizeMinPixels, icon.sizeMaxPixels
|
|
3424
3425
|
);
|
|
3425
|
-
float
|
|
3426
|
+
float iconConstraint = icon.sizeBasis == 0.0 ? iconSize.x : iconSize.y;
|
|
3427
|
+
float instanceScale = iconConstraint == 0.0 ? 0.0 : sizePixels / iconConstraint;
|
|
3426
3428
|
vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;
|
|
3427
3429
|
pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;
|
|
3428
3430
|
pixelOffset += instancePixelOffset;
|
|
@@ -3468,7 +3470,7 @@ discard;
|
|
|
3468
3470
|
fragColor = vec4(color, a);
|
|
3469
3471
|
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
3470
3472
|
}
|
|
3471
|
-
`;var sMe=1024,aMe=4,cK=()=>{},lK={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},cMe={x:0,y:0,width:0,height:0};function lMe(t){return Math.pow(2,Math.ceil(Math.log2(t)))}function uMe(t,e,r,n){let i=Math.min(r/e.width,n/e.height),o=Math.floor(e.width*i),s=Math.floor(e.height*i);return i===1?{image:e,width:o,height:s}:(t.canvas.height=s,t.canvas.width=o,t.clearRect(0,0,o,s),t.drawImage(e,0,0,e.width,e.height,0,0,o,s),{image:t.canvas,width:o,height:s})}function Bw(t){return t&&(t.id||t.url)}function hMe(t,e,r,n){let{width:i,height:o,device:s}=t,a=s.createTexture({format:"rgba8unorm",width:e,height:r,sampler:n,mipLevels:s.getMipLevelCount(e,r)}),l=s.createCommandEncoder();return l.copyTextureToTexture({sourceTexture:t,destinationTexture:a,width:i,height:o}),l.finish(),a.generateMipmapsWebGL(),t.destroy(),a}function uK(t,e,r){for(let n=0;n<e.length;n++){let{icon:i,xOffset:o}=e[n],s=Bw(i);t[s]={...i,x:o,y:r}}}function fMe({icons:t,buffer:e,mapping:r={},xOffset:n=0,yOffset:i=0,rowHeight:o=0,canvasWidth:s}){let a=[];for(let l=0;l<t.length;l++){let u=t[l],f=Bw(u);if(!r[f]){let{height:m,width:v}=u;n+v+e>s&&(uK(r,a,i),n=0,i=o+i+e,o=0,a=[]),a.push({icon:u,xOffset:n}),n=n+v+e,o=Math.max(o,m)}}return a.length>0&&uK(r,a,i),{mapping:r,rowHeight:o,xOffset:n,yOffset:i,canvasWidth:s,canvasHeight:lMe(o+i+e)}}function pMe(t,e,r){if(!t||!e)return null;r=r||{};let n={},{iterable:i,objectInfo:o}=ua(t);for(let s of i){o.index++;let a=e(s,o),l=Bw(a);if(!a)throw new Error("Icon is missing.");if(!a.url)throw new Error("Icon url is missing.");!n[l]&&(!r[l]||a.url!==r[l].url)&&(n[l]={...a,source:s,sourceIndex:o.index})}return n}var kw=class{constructor(e,{onUpdate:r=cK,onError:n=cK}){this._loadOptions=null,this._texture=null,this._externalTexture=null,this._mapping={},this._samplerParameters=null,this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=aMe,this._canvasWidth=sMe,this._canvasHeight=0,this._canvas=null,this.device=e,this.onUpdate=r,this.onError=n}finalize(){this._texture?.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(e){let r=this._autoPacking?Bw(e):e;return this._mapping[r]||cMe}setProps({loadOptions:e,autoPacking:r,iconAtlas:n,iconMapping:i,textureParameters:o}){e&&(this._loadOptions=e),r!==void 0&&(this._autoPacking=r),i&&(this._mapping=i),n&&(this._texture?.delete(),this._texture=null,this._externalTexture=n),o&&(this._samplerParameters=o)}get isLoaded(){return this._pendingCount===0}packIcons(e,r){if(!this._autoPacking||typeof document>"u")return;let n=Object.values(pMe(e,r,this._mapping)||{});if(n.length>0){let{mapping:i,xOffset:o,yOffset:s,rowHeight:a,canvasHeight:l}=fMe({icons:n,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=a,this._mapping=i,this._xOffset=o,this._yOffset=s,this._canvasHeight=l,this._texture||(this._texture=this.device.createTexture({format:"rgba8unorm",data:null,width:this._canvasWidth,height:this._canvasHeight,sampler:this._samplerParameters||lK,mipLevels:this.device.getMipLevelCount(this._canvasWidth,this._canvasHeight)})),this._texture.height!==this._canvasHeight&&(this._texture=hMe(this._texture,this._canvasWidth,this._canvasHeight,this._samplerParameters||lK)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(n),this._texture?.generateMipmapsWebGL()}}_loadIcons(e){let r=this._canvas.getContext("2d",{willReadFrequently:!0});for(let n of e)this._pendingCount++,za(n.url,this._loadOptions).then(i=>{let o=Bw(n),s=this._mapping[o],{x:a,y:l,width:u,height:f}=s,{image:m,width:v,height:E}=uMe(r,i,u,f);this._texture?.copyExternalImage({image:m,x:a+(u-v)/2,y:l+(f-E)/2,width:v,height:E}),s.width=v,s.height=E,this._texture?.generateMipmapsWebGL(),this.onUpdate()}).catch(i=>{this.onError({url:n.url,source:n.source,sourceIndex:n.sourceIndex,loadOptions:this._loadOptions,error:i})}).finally(()=>{this._pendingCount--})}};var hK=[0,0,0,255],dMe={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:t=>t.position},getIcon:{type:"accessor",value:t=>t.icon},getColor:{type:"accessor",value:hK},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,optional:!0},textureParameters:{type:"object",ignore:!0,value:null}},Dw=class extends ro{getShaders(){return super.getShaders({vs:sK,fs:aK,modules:[ki,Vo,oK]})}initializeState(){this.state={iconManager:new kw(this.context.device,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:"uint8",accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:hK},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(e){super.updateState(e);let{props:r,oldProps:n,changeFlags:i}=e,o=this.getAttributeManager(),{iconAtlas:s,iconMapping:a,data:l,getIcon:u,textureParameters:f}=r,{iconManager:m}=this.state;if(typeof s=="string")return;let v=s||this.internalState.isAsyncPropLoading("iconAtlas");m.setProps({loadOptions:r.loadOptions,autoPacking:!v,iconAtlas:s,iconMapping:v?a:null,textureParameters:f}),v?n.iconMapping!==r.iconMapping&&o.invalidate("getIcon"):(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getIcon))&&m.packIcons(l,u),i.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),o.invalidateAll())}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(e){super.finalizeState(e),this.state.iconManager.finalize()}draw({uniforms:e}){let{sizeScale:r,
|
|
3473
|
+
`;var sMe=1024,aMe=4,cK=()=>{},lK={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},cMe={x:0,y:0,width:0,height:0};function lMe(t){return Math.pow(2,Math.ceil(Math.log2(t)))}function uMe(t,e,r,n){let i=Math.min(r/e.width,n/e.height),o=Math.floor(e.width*i),s=Math.floor(e.height*i);return i===1?{image:e,width:o,height:s}:(t.canvas.height=s,t.canvas.width=o,t.clearRect(0,0,o,s),t.drawImage(e,0,0,e.width,e.height,0,0,o,s),{image:t.canvas,width:o,height:s})}function Bw(t){return t&&(t.id||t.url)}function hMe(t,e,r,n){let{width:i,height:o,device:s}=t,a=s.createTexture({format:"rgba8unorm",width:e,height:r,sampler:n,mipLevels:s.getMipLevelCount(e,r)}),l=s.createCommandEncoder();return l.copyTextureToTexture({sourceTexture:t,destinationTexture:a,width:i,height:o}),l.finish(),a.generateMipmapsWebGL(),t.destroy(),a}function uK(t,e,r){for(let n=0;n<e.length;n++){let{icon:i,xOffset:o}=e[n],s=Bw(i);t[s]={...i,x:o,y:r}}}function fMe({icons:t,buffer:e,mapping:r={},xOffset:n=0,yOffset:i=0,rowHeight:o=0,canvasWidth:s}){let a=[];for(let l=0;l<t.length;l++){let u=t[l],f=Bw(u);if(!r[f]){let{height:m,width:v}=u;n+v+e>s&&(uK(r,a,i),n=0,i=o+i+e,o=0,a=[]),a.push({icon:u,xOffset:n}),n=n+v+e,o=Math.max(o,m)}}return a.length>0&&uK(r,a,i),{mapping:r,rowHeight:o,xOffset:n,yOffset:i,canvasWidth:s,canvasHeight:lMe(o+i+e)}}function pMe(t,e,r){if(!t||!e)return null;r=r||{};let n={},{iterable:i,objectInfo:o}=ua(t);for(let s of i){o.index++;let a=e(s,o),l=Bw(a);if(!a)throw new Error("Icon is missing.");if(!a.url)throw new Error("Icon url is missing.");!n[l]&&(!r[l]||a.url!==r[l].url)&&(n[l]={...a,source:s,sourceIndex:o.index})}return n}var kw=class{constructor(e,{onUpdate:r=cK,onError:n=cK}){this._loadOptions=null,this._texture=null,this._externalTexture=null,this._mapping={},this._samplerParameters=null,this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=aMe,this._canvasWidth=sMe,this._canvasHeight=0,this._canvas=null,this.device=e,this.onUpdate=r,this.onError=n}finalize(){this._texture?.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(e){let r=this._autoPacking?Bw(e):e;return this._mapping[r]||cMe}setProps({loadOptions:e,autoPacking:r,iconAtlas:n,iconMapping:i,textureParameters:o}){e&&(this._loadOptions=e),r!==void 0&&(this._autoPacking=r),i&&(this._mapping=i),n&&(this._texture?.delete(),this._texture=null,this._externalTexture=n),o&&(this._samplerParameters=o)}get isLoaded(){return this._pendingCount===0}packIcons(e,r){if(!this._autoPacking||typeof document>"u")return;let n=Object.values(pMe(e,r,this._mapping)||{});if(n.length>0){let{mapping:i,xOffset:o,yOffset:s,rowHeight:a,canvasHeight:l}=fMe({icons:n,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=a,this._mapping=i,this._xOffset=o,this._yOffset=s,this._canvasHeight=l,this._texture||(this._texture=this.device.createTexture({format:"rgba8unorm",data:null,width:this._canvasWidth,height:this._canvasHeight,sampler:this._samplerParameters||lK,mipLevels:this.device.getMipLevelCount(this._canvasWidth,this._canvasHeight)})),this._texture.height!==this._canvasHeight&&(this._texture=hMe(this._texture,this._canvasWidth,this._canvasHeight,this._samplerParameters||lK)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(n),this._texture?.generateMipmapsWebGL()}}_loadIcons(e){let r=this._canvas.getContext("2d",{willReadFrequently:!0});for(let n of e)this._pendingCount++,za(n.url,this._loadOptions).then(i=>{let o=Bw(n),s=this._mapping[o],{x:a,y:l,width:u,height:f}=s,{image:m,width:v,height:E}=uMe(r,i,u,f);this._texture?.copyExternalImage({image:m,x:a+(u-v)/2,y:l+(f-E)/2,width:v,height:E}),s.width=v,s.height=E,this._texture?.generateMipmapsWebGL(),this.onUpdate()}).catch(i=>{this.onError({url:n.url,source:n.source,sourceIndex:n.sourceIndex,loadOptions:this._loadOptions,error:i})}).finally(()=>{this._pendingCount--})}};var hK=[0,0,0,255],dMe={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeBasis:"height",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:t=>t.position},getIcon:{type:"accessor",value:t=>t.icon},getColor:{type:"accessor",value:hK},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,optional:!0},textureParameters:{type:"object",ignore:!0,value:null}},Dw=class extends ro{getShaders(){return super.getShaders({vs:sK,fs:aK,modules:[ki,Vo,oK]})}initializeState(){this.state={iconManager:new kw(this.context.device,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:"uint8",accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:hK},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(e){super.updateState(e);let{props:r,oldProps:n,changeFlags:i}=e,o=this.getAttributeManager(),{iconAtlas:s,iconMapping:a,data:l,getIcon:u,textureParameters:f}=r,{iconManager:m}=this.state;if(typeof s=="string")return;let v=s||this.internalState.isAsyncPropLoading("iconAtlas");m.setProps({loadOptions:r.loadOptions,autoPacking:!v,iconAtlas:s,iconMapping:v?a:null,textureParameters:f}),v?n.iconMapping!==r.iconMapping&&o.invalidate("getIcon"):(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getIcon))&&m.packIcons(l,u),i.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),o.invalidateAll())}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(e){super.finalizeState(e),this.state.iconManager.finalize()}draw({uniforms:e}){let{sizeScale:r,sizeBasis:n,sizeMinPixels:i,sizeMaxPixels:o,sizeUnits:s,billboard:a,alphaCutoff:l}=this.props,{iconManager:u}=this.state,f=u.getTexture();if(f){let m=this.state.model,v={iconsTexture:f,iconsTextureDim:[f.width,f.height],sizeUnits:$o[s],sizeScale:r,sizeBasis:n==="height"?1:0,sizeMinPixels:i,sizeMaxPixels:o,billboard:a,alphaCutoff:l};m.shaderInputs.setProps({icon:v}),m.draw(this.context.renderPass)}}_getModel(){let e=[-1,-1,1,-1,-1,1,1,1];return new Qn(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Di({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array(e)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(e){let r=this.getCurrentLayer()?.props.onIconError;r?r(e):Ar.error(e.error.message)()}getInstanceOffset(e){let{width:r,height:n,anchorX:i=r/2,anchorY:o=n/2}=this.state.iconManager.getIconMapping(e);return[r/2-i,n/2-o]}getInstanceColorMode(e){return this.state.iconManager.getIconMapping(e).mask?1:0}getInstanceIconFrame(e){let{x:r,y:n,width:i,height:o}=this.state.iconManager.getIconMapping(e);return[r,n,i,o]}};Dw.defaultProps=dMe;Dw.layerName="IconLayer";var O1=Dw;var mMe=`struct LineUniforms {
|
|
3472
3474
|
widthScale: f32,
|
|
3473
3475
|
widthMinPixels: f32,
|
|
3474
3476
|
widthMaxPixels: f32,
|
|
@@ -4711,7 +4713,7 @@ fragColor = vFillColor;
|
|
|
4711
4713
|
}
|
|
4712
4714
|
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
4713
4715
|
}
|
|
4714
|
-
`;var gSe={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,borderRadius:{type:"object",value:0},padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:t=>t.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}},oT=class extends ro{getShaders(){return super.getShaders({vs:kZ,fs:DZ,modules:[ki,Vo,BZ]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e);let{changeFlags:r}=e;r.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){let{billboard:r,sizeScale:n,sizeUnits:i,sizeMinPixels:o,sizeMaxPixels:s,getLineWidth:a}=this.props,{padding:l,borderRadius:u}=this.props;l.length<4&&(l=[l[0],l[1],l[0],l[1]]),Array.isArray(u)||(u=[u,u,u,u]);let f=this.state.model,m={billboard:r,stroked:Boolean(a),borderRadius:u,padding:l,sizeUnits:$o[i],sizeScale:n,sizeMinPixels:o,sizeMaxPixels:s};f.shaderInputs.setProps({textBackground:m}),f.draw(this.context.renderPass)}_getModel(){let e=[0,0,1,0,0,1,1,1];return new Qn(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Di({topology:"triangle-strip",vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(e)}}}),isInstanced:!0})}};oT.defaultProps=gSe;oT.layerName="TextBackgroundLayer";var II=oT;var NZ={start:1,middle:0,end:-1},FZ={top:1,center:0,bottom:-1},kF=[0,0,0,255],ySe=1,_Se={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:kF},getBorderWidth:{type:"accessor",value:0},backgroundBorderRadius:{type:"object",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:vg.characterSet},fontFamily:vg.fontFamily,fontWeight:vg.fontWeight,lineHeight:ySe,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:kF},fontSettings:{type:"object",value:{},compare:1},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:t=>t.text},getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:kF},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}},sT=class extends Ds{constructor(){super(...arguments),this.getBoundingRect=(e,r)=>{let{size:[n,i]}=this.transformParagraph(e,r),{fontSize:o}=this.state.fontAtlasManager.props;n/=o,i/=o;let{getTextAnchor:s,getAlignmentBaseline:a}=this.props,l=NZ[typeof s=="function"?s(e,r):s],u=FZ[typeof a=="function"?a(e,r):a];return[(l-1)*n/2,(u-1)*i/2,n,i]},this.getIconOffsets=(e,r)=>{let{getTextAnchor:n,getAlignmentBaseline:i}=this.props,{x:o,y:s,rowWidth:a,size:[l,u]}=this.transformParagraph(e,r),f=NZ[typeof n=="function"?n(e,r):n],m=FZ[typeof i=="function"?i(e,r):i],v=o.length,E=new Array(v*2),S=0;for(let L=0;L<v;L++){let O=(1-f)*(l-a[L])/2;E[S++]=(f-1)*l/2+O+o[L],E[S++]=(m-1)*u/2+s[L]}return E}}initializeState(){this.state={styleVersion:0,fontAtlasManager:new iT},this.props.maxWidth>0&&Ar.once(1,"v8.9 breaking change: TextLayer maxWidth is now relative to text size")()}updateState(e){let{props:r,oldProps:n,changeFlags:i}=e;(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||r.lineHeight!==n.lineHeight||r.wordBreak!==n.wordBreak||r.maxWidth!==n.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:e}){return e.object=e.index>=0?this.props.data[e.index]:null,e}_updateFontAtlas(){let{fontSettings:e,fontFamily:r,fontWeight:n}=this.props,{fontAtlasManager:i,characterSet:o}=this.state,s={...e,characterSet:o,fontFamily:r,fontWeight:n};if(!i.mapping)return i.setProps(s),!0;for(let a in s)if(s[a]!==i.props[a])return i.setProps(s),!0;return!1}_updateText(){let{data:e,characterSet:r}=this.props,n=e.attributes?.getText,{getText:i}=this.props,o=e.startIndices,s,a=r==="auto"&&new Set;if(n&&o){let{texts:l,characterCount:u}=MZ({...ArrayBuffer.isView(n)?{value:n}:n,length:e.length,startIndices:o,characterSet:a});s=u,i=(f,{index:m})=>l[m]}else{let{iterable:l,objectInfo:u}=ua(e);o=[0],s=0;for(let f of l){u.index++;let m=Array.from(i(f,u)||"");a&&m.forEach(a.add,a),s+=m.length,o.push(s)}}this.setState({getText:i,startIndices:o,numInstances:s,characterSet:a||r})}transformParagraph(e,r){let{fontAtlasManager:n}=this.state,i=n.mapping,o=this.state.getText,{wordBreak:s,lineHeight:a,maxWidth:l}=this.props,u=o(e,r)||"";return EZ(u,a,s,l*n.props.fontSize,i)}renderLayers(){let{startIndices:e,numInstances:r,getText:n,fontAtlasManager:{scale:i,atlas:o,mapping:s},styleVersion:a}=this.state,{data:l,_dataDiff:u,getPosition:f,getColor:m,getSize:v,getAngle:E,getPixelOffset:S,getBackgroundColor:L,getBorderColor:O,getBorderWidth:q,backgroundBorderRadius:G,backgroundPadding:H,background:Y,billboard:te,fontSettings:D,outlineWidth:le,outlineColor:ie,sizeScale:J,sizeUnits:X,sizeMinPixels:me,sizeMaxPixels:Me,transitions:ce,updateTriggers:Ae}=this.props,rt=this.getSubLayerClass("characters",SI),zt=this.getSubLayerClass("background",II);return[Y&&new zt({getFillColor:L,getLineColor:O,getLineWidth:q,borderRadius:G,padding:H,getPosition:f,getSize:v,getAngle:E,getPixelOffset:S,billboard:te,sizeScale:J,sizeUnits:X,sizeMinPixels:me,sizeMaxPixels:Me,transitions:ce&&{getPosition:ce.getPosition,getAngle:ce.getAngle,getSize:ce.getSize,getFillColor:ce.getBackgroundColor,getLineColor:ce.getBorderColor,getLineWidth:ce.getBorderWidth,getPixelOffset:ce.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:Ae.getPosition,getAngle:Ae.getAngle,getSize:Ae.getSize,getFillColor:Ae.getBackgroundColor,getLineColor:Ae.getBorderColor,getLineWidth:Ae.getBorderWidth,getPixelOffset:Ae.getPixelOffset,getBoundingRect:{getText:Ae.getText,getTextAnchor:Ae.getTextAnchor,getAlignmentBaseline:Ae.getAlignmentBaseline,styleVersion:a}}}),{data:l.attributes&&l.attributes.background?{length:l.length,attributes:l.attributes.background}:l,_dataDiff:u,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new rt({sdf:D.sdf,smoothing:Number.isFinite(D.smoothing)?D.smoothing:vg.smoothing,outlineWidth:le/(D.radius||vg.radius),outlineColor:ie,iconAtlas:o,iconMapping:s,getPosition:f,getColor:m,getSize:v,getAngle:E,getPixelOffset:S,billboard:te,sizeScale:J*i,sizeUnits:X,sizeMinPixels:me*i,sizeMaxPixels:Me*i,transitions:ce&&{getPosition:ce.getPosition,getAngle:ce.getAngle,getColor:ce.getColor,getSize:ce.getSize,getPixelOffset:ce.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{all:Ae.getText,getPosition:Ae.getPosition,getAngle:Ae.getAngle,getColor:Ae.getColor,getSize:Ae.getSize,getPixelOffset:Ae.getPixelOffset,getIconOffsets:{getTextAnchor:Ae.getTextAnchor,getAlignmentBaseline:Ae.getAlignmentBaseline,styleVersion:a}}}),{data:l,_dataDiff:u,startIndices:e,numInstances:r,getIconOffsets:this.getIconOffsets,getIcon:n})]}static set fontAtlasCacheLimit(e){LZ(e)}};sT.defaultProps=_Se;sT.layerName="TextLayer";var PI=sT;var aT={circle:{type:fI,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:O1,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:PI,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},cT={type:Bp,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},RI={type:f0,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",_full3d:"_full3d",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function F1({type:t,props:e}){let r={};for(let n in e)r[n]=t.defaultProps[e[n]];return r}function LI(t,e){let{transitions:r,updateTriggers:n}=t.props,i={updateTriggers:{},transitions:r&&{getPosition:r.geometry}};for(let o in e){let s=e[o],a=t.props[o];o.startsWith("get")&&(a=t.getSubLayerAccessor(a),i.updateTriggers[s]=n[o],r&&(i.transitions[s]=r[o])),i[s]=a}return i}function UZ(t){if(Array.isArray(t))return t;switch(Ar.assert(t.type,"GeoJSON does not have type"),t.type){case"Feature":return[t];case"FeatureCollection":return Ar.assert(Array.isArray(t.features),"GeoJSON does not have features array"),t.features;default:return[{geometry:t}]}}function DF(t,e,r={}){let n={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:i=0,endRow:o=t.length}=r;for(let s=i;s<o;s++){let a=t[s],{geometry:l}=a;if(l)if(l.type==="GeometryCollection"){Ar.assert(Array.isArray(l.geometries),"GeoJSON does not have geometries array");let{geometries:u}=l;for(let f=0;f<u.length;f++){let m=u[f];zZ(m,n,e,a,s)}}else zZ(l,n,e,a,s)}return n}function zZ(t,e,r,n,i){let{type:o,coordinates:s}=t,{pointFeatures:a,lineFeatures:l,polygonFeatures:u,polygonOutlineFeatures:f}=e;if(!vSe(o,s)){Ar.warn(`${o} coordinates are malformed`)();return}switch(o){case"Point":a.push(r({geometry:t},n,i));break;case"MultiPoint":s.forEach(m=>{a.push(r({geometry:{type:"Point",coordinates:m}},n,i))});break;case"LineString":l.push(r({geometry:t},n,i));break;case"MultiLineString":s.forEach(m=>{l.push(r({geometry:{type:"LineString",coordinates:m}},n,i))});break;case"Polygon":u.push(r({geometry:t},n,i)),s.forEach(m=>{f.push(r({geometry:{type:"LineString",coordinates:m}},n,i))});break;case"MultiPolygon":s.forEach(m=>{u.push(r({geometry:{type:"Polygon",coordinates:m}},n,i)),m.forEach(v=>{f.push(r({geometry:{type:"LineString",coordinates:v}},n,i))})});break;default:}}var xSe={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function vSe(t,e){let r=xSe[t];for(Ar.assert(r,`Unknown GeoJSON type ${t}`);e&&--r>0;)e=e[0];return e&&Number.isFinite(e[0])}function VZ(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function OI(t){return t.geometry.coordinates}function jZ(t,e){let r=VZ(),{pointFeatures:n,lineFeatures:i,polygonFeatures:o,polygonOutlineFeatures:s}=t;return r.points.data=n,r.points._dataDiff=e.pointFeatures&&(()=>e.pointFeatures),r.points.getPosition=OI,r.lines.data=i,r.lines._dataDiff=e.lineFeatures&&(()=>e.lineFeatures),r.lines.getPath=OI,r.polygons.data=o,r.polygons._dataDiff=e.polygonFeatures&&(()=>e.polygonFeatures),r.polygons.getPolygon=OI,r.polygonsOutline.data=s,r.polygonsOutline._dataDiff=e.polygonOutlineFeatures&&(()=>e.polygonOutlineFeatures),r.polygonsOutline.getPath=OI,r}function HZ(t,e){let r=VZ(),{points:n,lines:i,polygons:o}=t,s=mZ(t,e);return r.points.data={length:n.positions.value.length/n.positions.size,attributes:{...n.attributes,getPosition:n.positions,instancePickingColors:{size:4,value:s.points}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.lines.data={length:i.pathIndices.value.length-1,startIndices:i.pathIndices.value,attributes:{...i.attributes,getPath:i.positions,instancePickingColors:{size:4,value:s.lines}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},r.lines._pathType="open",r.polygons.data={length:o.polygonIndices.value.length-1,startIndices:o.polygonIndices.value,attributes:{...o.attributes,getPolygon:o.positions,pickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},r.polygons._normalize=!1,o.triangles&&(r.polygons.data.attributes.indices=o.triangles.value),r.polygonsOutline.data={length:o.primitivePolygonIndices.value.length-1,startIndices:o.primitivePolygonIndices.value,attributes:{...o.attributes,getPath:o.positions,instancePickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},r.polygonsOutline._pathType="open",r}var bSe=["points","linestrings","polygons"],wSe={...F1(aT.circle),...F1(aT.icon),...F1(aT.text),...F1(cT),...F1(RI),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:t=>t.properties.icon},getText:{type:"accessor",value:t=>t.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}},lT=class extends Ds{initializeState(){this.state={layerProps:{},features:{},featuresDiff:{}}}updateState({props:e,changeFlags:r}){if(!r.dataChanged)return;let{data:n}=this.props,i=n&&"points"in n&&"polygons"in n&&"lines"in n;this.setState({binary:i}),i?this._updateStateBinary({props:e,changeFlags:r}):this._updateStateJSON({props:e,changeFlags:r})}_updateStateBinary({props:e,changeFlags:r}){let n=HZ(e.data,this.encodePickingColor);this.setState({layerProps:n})}_updateStateJSON({props:e,changeFlags:r}){let n=UZ(e.data),i=this.getSubLayerRow.bind(this),o={},s={};if(Array.isArray(r.dataChanged)){let l=this.state.features;for(let u in l)o[u]=l[u].slice(),s[u]=[];for(let u of r.dataChanged){let f=DF(n,i,u);for(let m in l)s[m].push(MI({data:o[m],getIndex:v=>v.__source.index,dataRange:u,replace:f[m]}))}}else o=DF(n,i);let a=jZ(o,s);this.setState({features:o,featuresDiff:s,layerProps:a})}getPickingInfo(e){let r=super.getPickingInfo(e),{index:n,sourceLayer:i}=r;return r.featureType=bSe.find(o=>i.id.startsWith(`${this.id}-${o}-`)),n>=0&&i.id.startsWith(`${this.id}-points-text`)&&this.state.binary&&(r.index=this.props.data.points.globalFeatureIds.value[n]),r}_updateAutoHighlight(e){let r=`${this.id}-points-`,n=e.featureType==="points";for(let i of this.getSubLayers())i.id.startsWith(r)===n&&i.updateAutoHighlight(e)}_renderPolygonLayer(){let{extruded:e,wireframe:r}=this.props,{layerProps:n}=this.state,i="polygons-fill",o=this.shouldRenderSubLayer(i,n.polygons?.data)&&this.getSubLayerClass(i,RI.type);if(o){let s=LI(this,RI.props),a=e&&r;return a||delete s.getLineColor,s.updateTriggers.lineColors=a,new o(s,this.getSubLayerProps({id:i,updateTriggers:s.updateTriggers}),n.polygons)}return null}_renderLineLayers(){let{extruded:e,stroked:r}=this.props,{layerProps:n}=this.state,i="polygons-stroke",o="linestrings",s=!e&&r&&this.shouldRenderSubLayer(i,n.polygonsOutline?.data)&&this.getSubLayerClass(i,cT.type),a=this.shouldRenderSubLayer(o,n.lines?.data)&&this.getSubLayerClass(o,cT.type);if(s||a){let l=LI(this,cT.props);return[s&&new s(l,this.getSubLayerProps({id:i,updateTriggers:l.updateTriggers}),n.polygonsOutline),a&&new a(l,this.getSubLayerProps({id:o,updateTriggers:l.updateTriggers}),n.lines)]}return null}_renderPointLayers(){let{pointType:e}=this.props,{layerProps:r,binary:n}=this.state,{highlightedObjectIndex:i}=this.props;!n&&Number.isFinite(i)&&(i=r.points.data.findIndex(a=>a.__source.index===i));let o=new Set(e.split("+")),s=[];for(let a of o){let l=`points-${a}`,u=aT[a],f=u&&this.shouldRenderSubLayer(l,r.points?.data)&&this.getSubLayerClass(l,u.type);if(f){let m=LI(this,u.props),v=r.points;if(a==="text"&&n){let{instancePickingColors:E,...S}=v.data.attributes;v={...v,data:{...v.data,attributes:S}}}s.push(new f(m,this.getSubLayerProps({id:l,updateTriggers:m.updateTriggers,highlightedObjectIndex:i}),v))}}return s}renderLayers(){let{extruded:e}=this.props,r=this._renderPolygonLayer(),n=this._renderLineLayers(),i=this._renderPointLayers();return[!e&&r,n,i,e&&r]}getSubLayerAccessor(e){let{binary:r}=this.state;return!r||typeof e!="function"?super.getSubLayerAccessor(e):(n,i)=>{let{data:o,index:s}=i,a=dZ(o,s);return e(a,i)}}};lT.layerName="GeoJsonLayer";lT.defaultProps=wSe;var bg=lT;function WZ({pointCount:t,getBinId:e}){let r=new Map;for(let n=0;n<t;n++){let i=e(n);if(i===null)continue;let o=r.get(String(i));o?o.points.push(n):(o={id:i,index:r.size,points:[n]},r.set(String(i),o))}return Array.from(r.values())}function qZ({bins:t,dimensions:e,target:r}){let n=t.length*e;(!r||r.length<n)&&(r=new Float32Array(n));for(let i=0;i<t.length;i++){let{id:o}=t[i];Array.isArray(o)?r.set(o,i*e):r[i]=o}return r}var TSe=t=>t.length,GZ=(t,e)=>{let r=0;for(let n of t)r+=e(n);return r},ESe=(t,e)=>t.length===0?NaN:GZ(t,e)/t.length,MSe=(t,e)=>{let r=1/0;for(let n of t){let i=e(n);i<r&&(r=i)}return r},SSe=(t,e)=>{let r=-1/0;for(let n of t){let i=e(n);i>r&&(r=i)}return r},XZ={COUNT:TSe,SUM:GZ,MEAN:ESe,MIN:MSe,MAX:SSe};function YZ({bins:t,getValue:e,operation:r,target:n}){(!n||n.length<t.length)&&(n=new Float32Array(t.length));let i=1/0,o=-1/0;for(let s=0;s<t.length;s++){let{points:a}=t[s];n[s]=r(a,e),n[s]<i&&(i=n[s]),n[s]>o&&(o=n[s])}return{value:n,domain:[i,o]}}function NF(t,e,r){let n={};for(let o of t.sources||[]){let s=e[o];if(s)n[o]=CSe(s);else throw new Error(`Cannot find attribute ${o}`)}let i={};return o=>{for(let s in n)i[s]=n[s](o);return t.getValue(i,o,r)}}function CSe(t){let e=t.value,{offset:r=0,stride:n,size:i}=t.getAccessor(),o=e.BYTES_PER_ELEMENT,s=r/o,a=n?n/o:i;if(i===1)return t.isConstant?()=>e[0]:u=>{let f=s+a*u;return e[f]};let l;return t.isConstant?(l=Array.from(e),()=>l):(l=new Array(i),u=>{let f=s+a*u;for(let m=0;m<i;m++)l[m]=e[f+m];return l})}var zl=class{constructor(e){this.bins=[],this.binIds=null,this.results=[],this.dimensions=e.dimensions,this.channelCount=e.getValue.length,this.props={...e,binOptions:{},pointCount:0,operations:[],customOperations:[],attributes:{}},this.needsUpdate=!0,this.setProps(e)}destroy(){}get binCount(){return this.bins.length}setProps(e){let r=this.props;if(e.binOptions&&(Gi(e.binOptions,r.binOptions,2)||this.setNeedsUpdate()),e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==r.operations[n]&&this.setNeedsUpdate(n);if(e.customOperations)for(let n=0;n<this.channelCount;n++)Boolean(e.customOperations[n])!==Boolean(r.customOperations[n])&&this.setNeedsUpdate(n);e.pointCount!==void 0&&e.pointCount!==r.pointCount&&this.setNeedsUpdate(),e.attributes&&(e.attributes={...r.attributes,...e.attributes}),Object.assign(this.props,e)}setNeedsUpdate(e){e===void 0?this.needsUpdate=!0:this.needsUpdate!==!0&&(this.needsUpdate=this.needsUpdate||[],this.needsUpdate[e]=!0)}update(){if(this.needsUpdate===!0){this.bins=WZ({pointCount:this.props.pointCount,getBinId:NF(this.props.getBin,this.props.attributes,this.props.binOptions)});let e=qZ({bins:this.bins,dimensions:this.dimensions,target:this.binIds?.value});this.binIds={value:e,type:"float32",size:this.dimensions}}for(let e=0;e<this.channelCount;e++)if(this.needsUpdate===!0||this.needsUpdate[e]){let r=this.props.customOperations[e]||XZ[this.props.operations[e]],{value:n,domain:i}=YZ({bins:this.bins,getValue:NF(this.props.getValue[e],this.props.attributes,void 0),operation:r,target:this.results[e]?.value});this.results[e]={value:n,domain:i,type:"float32",size:1},this.props.onUpdate?.({channel:e})}this.needsUpdate=!1}preDraw(){}getBins(){return this.binIds}getResult(e){return this.results[e]}getResultDomain(e){return this.results[e]?.domain??[1/0,-1/0]}getBin(e){let r=this.bins[e];if(!r)return null;let n=new Array(this.channelCount);for(let i=0;i<n.length;i++){let o=this.results[i];n[i]=o?.value[e]}return{id:r.id,value:n,count:r.points.length,pointIndices:r.points}}};function BI(t,e,r){return t.createFramebuffer({width:e,height:r,colorAttachments:[t.createTexture({width:e,height:r,format:"rgba32float",sampler:{minFilter:"nearest",magFilter:"nearest"}})]})}var ISe=`uniform binSorterUniforms {
|
|
4716
|
+
`;var gSe={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,borderRadius:{type:"object",value:0},padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:t=>t.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}},oT=class extends ro{getShaders(){return super.getShaders({vs:kZ,fs:DZ,modules:[ki,Vo,BZ]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e);let{changeFlags:r}=e;r.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){let{billboard:r,sizeScale:n,sizeUnits:i,sizeMinPixels:o,sizeMaxPixels:s,getLineWidth:a}=this.props,{padding:l,borderRadius:u}=this.props;l.length<4&&(l=[l[0],l[1],l[0],l[1]]),Array.isArray(u)||(u=[u,u,u,u]);let f=this.state.model,m={billboard:r,stroked:Boolean(a),borderRadius:u,padding:l,sizeUnits:$o[i],sizeScale:n,sizeMinPixels:o,sizeMaxPixels:s};f.shaderInputs.setProps({textBackground:m}),f.draw(this.context.renderPass)}_getModel(){let e=[0,0,1,0,0,1,1,1];return new Qn(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Di({topology:"triangle-strip",vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(e)}}}),isInstanced:!0})}};oT.defaultProps=gSe;oT.layerName="TextBackgroundLayer";var II=oT;var NZ={start:1,middle:0,end:-1},FZ={top:1,center:0,bottom:-1},kF=[0,0,0,255],ySe=1,_Se={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:kF},getBorderWidth:{type:"accessor",value:0},backgroundBorderRadius:{type:"object",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:vg.characterSet},fontFamily:vg.fontFamily,fontWeight:vg.fontWeight,lineHeight:ySe,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:kF},fontSettings:{type:"object",value:{},compare:1},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:t=>t.text},getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:kF},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}},sT=class extends Ds{constructor(){super(...arguments),this.getBoundingRect=(e,r)=>{let{size:[n,i]}=this.transformParagraph(e,r),{fontSize:o}=this.state.fontAtlasManager.props;n/=o,i/=o;let{getTextAnchor:s,getAlignmentBaseline:a}=this.props,l=NZ[typeof s=="function"?s(e,r):s],u=FZ[typeof a=="function"?a(e,r):a];return[(l-1)*n/2,(u-1)*i/2,n,i]},this.getIconOffsets=(e,r)=>{let{getTextAnchor:n,getAlignmentBaseline:i}=this.props,{x:o,y:s,rowWidth:a,size:[l,u]}=this.transformParagraph(e,r),f=NZ[typeof n=="function"?n(e,r):n],m=FZ[typeof i=="function"?i(e,r):i],v=o.length,E=new Array(v*2),S=0;for(let L=0;L<v;L++){let O=(1-f)*(l-a[L])/2;E[S++]=(f-1)*l/2+O+o[L],E[S++]=(m-1)*u/2+s[L]}return E}}initializeState(){this.state={styleVersion:0,fontAtlasManager:new iT},this.props.maxWidth>0&&Ar.once(1,"v8.9 breaking change: TextLayer maxWidth is now relative to text size")()}updateState(e){let{props:r,oldProps:n,changeFlags:i}=e;(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||r.lineHeight!==n.lineHeight||r.wordBreak!==n.wordBreak||r.maxWidth!==n.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:e}){return e.object=e.index>=0?this.props.data[e.index]:null,e}_updateFontAtlas(){let{fontSettings:e,fontFamily:r,fontWeight:n}=this.props,{fontAtlasManager:i,characterSet:o}=this.state,s={...e,characterSet:o,fontFamily:r,fontWeight:n};if(!i.mapping)return i.setProps(s),!0;for(let a in s)if(s[a]!==i.props[a])return i.setProps(s),!0;return!1}_updateText(){let{data:e,characterSet:r}=this.props,n=e.attributes?.getText,{getText:i}=this.props,o=e.startIndices,s,a=r==="auto"&&new Set;if(n&&o){let{texts:l,characterCount:u}=MZ({...ArrayBuffer.isView(n)?{value:n}:n,length:e.length,startIndices:o,characterSet:a});s=u,i=(f,{index:m})=>l[m]}else{let{iterable:l,objectInfo:u}=ua(e);o=[0],s=0;for(let f of l){u.index++;let m=Array.from(i(f,u)||"");a&&m.forEach(a.add,a),s+=m.length,o.push(s)}}this.setState({getText:i,startIndices:o,numInstances:s,characterSet:a||r})}transformParagraph(e,r){let{fontAtlasManager:n}=this.state,i=n.mapping,o=this.state.getText,{wordBreak:s,lineHeight:a,maxWidth:l}=this.props,u=o(e,r)||"";return EZ(u,a,s,l*n.props.fontSize,i)}renderLayers(){let{startIndices:e,numInstances:r,getText:n,fontAtlasManager:{scale:i,atlas:o,mapping:s},styleVersion:a}=this.state,{data:l,_dataDiff:u,getPosition:f,getColor:m,getSize:v,getAngle:E,getPixelOffset:S,getBackgroundColor:L,getBorderColor:O,getBorderWidth:q,backgroundBorderRadius:G,backgroundPadding:H,background:Y,billboard:te,fontSettings:D,outlineWidth:le,outlineColor:ie,sizeScale:J,sizeUnits:X,sizeMinPixels:me,sizeMaxPixels:Me,transitions:ce,updateTriggers:Ae}=this.props,rt=this.getSubLayerClass("characters",SI),zt=this.getSubLayerClass("background",II);return[Y&&new zt({getFillColor:L,getLineColor:O,getLineWidth:q,borderRadius:G,padding:H,getPosition:f,getSize:v,getAngle:E,getPixelOffset:S,billboard:te,sizeScale:J,sizeUnits:X,sizeMinPixels:me,sizeMaxPixels:Me,transitions:ce&&{getPosition:ce.getPosition,getAngle:ce.getAngle,getSize:ce.getSize,getFillColor:ce.getBackgroundColor,getLineColor:ce.getBorderColor,getLineWidth:ce.getBorderWidth,getPixelOffset:ce.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:Ae.getPosition,getAngle:Ae.getAngle,getSize:Ae.getSize,getFillColor:Ae.getBackgroundColor,getLineColor:Ae.getBorderColor,getLineWidth:Ae.getBorderWidth,getPixelOffset:Ae.getPixelOffset,getBoundingRect:{getText:Ae.getText,getTextAnchor:Ae.getTextAnchor,getAlignmentBaseline:Ae.getAlignmentBaseline,styleVersion:a}}}),{data:l.attributes&&l.attributes.background?{length:l.length,attributes:l.attributes.background}:l,_dataDiff:u,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new rt({sdf:D.sdf,smoothing:Number.isFinite(D.smoothing)?D.smoothing:vg.smoothing,outlineWidth:le/(D.radius||vg.radius),outlineColor:ie,iconAtlas:o,iconMapping:s,getPosition:f,getColor:m,getSize:v,getAngle:E,getPixelOffset:S,billboard:te,sizeScale:J*i,sizeUnits:X,sizeMinPixels:me*i,sizeMaxPixels:Me*i,transitions:ce&&{getPosition:ce.getPosition,getAngle:ce.getAngle,getColor:ce.getColor,getSize:ce.getSize,getPixelOffset:ce.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{all:Ae.getText,getPosition:Ae.getPosition,getAngle:Ae.getAngle,getColor:Ae.getColor,getSize:Ae.getSize,getPixelOffset:Ae.getPixelOffset,getIconOffsets:{getTextAnchor:Ae.getTextAnchor,getAlignmentBaseline:Ae.getAlignmentBaseline,styleVersion:a}}}),{data:l,_dataDiff:u,startIndices:e,numInstances:r,getIconOffsets:this.getIconOffsets,getIcon:n})]}static set fontAtlasCacheLimit(e){LZ(e)}};sT.defaultProps=_Se;sT.layerName="TextLayer";var PI=sT;var aT={circle:{type:fI,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:O1,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:PI,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},cT={type:Bp,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},RI={type:f0,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",_full3d:"_full3d",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function F1({type:t,props:e}){let r={};for(let n in e)r[n]=t.defaultProps[e[n]];return r}function LI(t,e){let{transitions:r,updateTriggers:n}=t.props,i={updateTriggers:{},transitions:r&&{getPosition:r.geometry}};for(let o in e){let s=e[o],a=t.props[o];o.startsWith("get")&&(a=t.getSubLayerAccessor(a),i.updateTriggers[s]=n[o],r&&(i.transitions[s]=r[o])),i[s]=a}return i}function UZ(t){if(Array.isArray(t))return t;switch(Ar.assert(t.type,"GeoJSON does not have type"),t.type){case"Feature":return[t];case"FeatureCollection":return Ar.assert(Array.isArray(t.features),"GeoJSON does not have features array"),t.features;default:return[{geometry:t}]}}function DF(t,e,r={}){let n={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:i=0,endRow:o=t.length}=r;for(let s=i;s<o;s++){let a=t[s],{geometry:l}=a;if(l)if(l.type==="GeometryCollection"){Ar.assert(Array.isArray(l.geometries),"GeoJSON does not have geometries array");let{geometries:u}=l;for(let f=0;f<u.length;f++){let m=u[f];zZ(m,n,e,a,s)}}else zZ(l,n,e,a,s)}return n}function zZ(t,e,r,n,i){let{type:o,coordinates:s}=t,{pointFeatures:a,lineFeatures:l,polygonFeatures:u,polygonOutlineFeatures:f}=e;if(!vSe(o,s)){Ar.warn(`${o} coordinates are malformed`)();return}switch(o){case"Point":a.push(r({geometry:t},n,i));break;case"MultiPoint":s.forEach(m=>{a.push(r({geometry:{type:"Point",coordinates:m}},n,i))});break;case"LineString":l.push(r({geometry:t},n,i));break;case"MultiLineString":s.forEach(m=>{l.push(r({geometry:{type:"LineString",coordinates:m}},n,i))});break;case"Polygon":u.push(r({geometry:t},n,i)),s.forEach(m=>{f.push(r({geometry:{type:"LineString",coordinates:m}},n,i))});break;case"MultiPolygon":s.forEach(m=>{u.push(r({geometry:{type:"Polygon",coordinates:m}},n,i)),m.forEach(v=>{f.push(r({geometry:{type:"LineString",coordinates:v}},n,i))})});break;default:}}var xSe={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function vSe(t,e){let r=xSe[t];for(Ar.assert(r,`Unknown GeoJSON type ${t}`);e&&--r>0;)e=e[0];return e&&Number.isFinite(e[0])}function VZ(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function OI(t){return t.geometry.coordinates}function jZ(t,e){let r=VZ(),{pointFeatures:n,lineFeatures:i,polygonFeatures:o,polygonOutlineFeatures:s}=t;return r.points.data=n,r.points._dataDiff=e.pointFeatures&&(()=>e.pointFeatures),r.points.getPosition=OI,r.lines.data=i,r.lines._dataDiff=e.lineFeatures&&(()=>e.lineFeatures),r.lines.getPath=OI,r.polygons.data=o,r.polygons._dataDiff=e.polygonFeatures&&(()=>e.polygonFeatures),r.polygons.getPolygon=OI,r.polygonsOutline.data=s,r.polygonsOutline._dataDiff=e.polygonOutlineFeatures&&(()=>e.polygonOutlineFeatures),r.polygonsOutline.getPath=OI,r}function HZ(t,e){let r=VZ(),{points:n,lines:i,polygons:o}=t,s=mZ(t,e);r.points.data={length:n.positions.value.length/n.positions.size,attributes:{...n.attributes,getPosition:n.positions,instancePickingColors:{size:4,value:s.points}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},r.lines.data={length:i.pathIndices.value.length-1,startIndices:i.pathIndices.value,attributes:{...i.attributes,getPath:i.positions,instancePickingColors:{size:4,value:s.lines}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},r.lines._pathType="open";let a=o.positions.value.length/o.positions.size,l=Array(a).fill(1);for(let u of o.primitivePolygonIndices.value)l[u-1]=0;return r.polygons.data={length:o.polygonIndices.value.length-1,startIndices:o.polygonIndices.value,attributes:{...o.attributes,getPolygon:o.positions,instanceVertexValid:{size:1,value:new Uint16Array(l)},pickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},r.polygons._normalize=!1,o.triangles&&(r.polygons.data.attributes.indices=o.triangles.value),r.polygonsOutline.data={length:o.primitivePolygonIndices.value.length-1,startIndices:o.primitivePolygonIndices.value,attributes:{...o.attributes,getPath:o.positions,instancePickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},r.polygonsOutline._pathType="open",r}var bSe=["points","linestrings","polygons"],wSe={...F1(aT.circle),...F1(aT.icon),...F1(aT.text),...F1(cT),...F1(RI),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:t=>t.properties.icon},getText:{type:"accessor",value:t=>t.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}},lT=class extends Ds{initializeState(){this.state={layerProps:{},features:{},featuresDiff:{}}}updateState({props:e,changeFlags:r}){if(!r.dataChanged)return;let{data:n}=this.props,i=n&&"points"in n&&"polygons"in n&&"lines"in n;this.setState({binary:i}),i?this._updateStateBinary({props:e,changeFlags:r}):this._updateStateJSON({props:e,changeFlags:r})}_updateStateBinary({props:e,changeFlags:r}){let n=HZ(e.data,this.encodePickingColor);this.setState({layerProps:n})}_updateStateJSON({props:e,changeFlags:r}){let n=UZ(e.data),i=this.getSubLayerRow.bind(this),o={},s={};if(Array.isArray(r.dataChanged)){let l=this.state.features;for(let u in l)o[u]=l[u].slice(),s[u]=[];for(let u of r.dataChanged){let f=DF(n,i,u);for(let m in l)s[m].push(MI({data:o[m],getIndex:v=>v.__source.index,dataRange:u,replace:f[m]}))}}else o=DF(n,i);let a=jZ(o,s);this.setState({features:o,featuresDiff:s,layerProps:a})}getPickingInfo(e){let r=super.getPickingInfo(e),{index:n,sourceLayer:i}=r;return r.featureType=bSe.find(o=>i.id.startsWith(`${this.id}-${o}-`)),n>=0&&i.id.startsWith(`${this.id}-points-text`)&&this.state.binary&&(r.index=this.props.data.points.globalFeatureIds.value[n]),r}_updateAutoHighlight(e){let r=`${this.id}-points-`,n=e.featureType==="points";for(let i of this.getSubLayers())i.id.startsWith(r)===n&&i.updateAutoHighlight(e)}_renderPolygonLayer(){let{extruded:e,wireframe:r}=this.props,{layerProps:n}=this.state,i="polygons-fill",o=this.shouldRenderSubLayer(i,n.polygons?.data)&&this.getSubLayerClass(i,RI.type);if(o){let s=LI(this,RI.props),a=e&&r;return a||delete s.getLineColor,s.updateTriggers.lineColors=a,new o(s,this.getSubLayerProps({id:i,updateTriggers:s.updateTriggers}),n.polygons)}return null}_renderLineLayers(){let{extruded:e,stroked:r}=this.props,{layerProps:n}=this.state,i="polygons-stroke",o="linestrings",s=!e&&r&&this.shouldRenderSubLayer(i,n.polygonsOutline?.data)&&this.getSubLayerClass(i,cT.type),a=this.shouldRenderSubLayer(o,n.lines?.data)&&this.getSubLayerClass(o,cT.type);if(s||a){let l=LI(this,cT.props);return[s&&new s(l,this.getSubLayerProps({id:i,updateTriggers:l.updateTriggers}),n.polygonsOutline),a&&new a(l,this.getSubLayerProps({id:o,updateTriggers:l.updateTriggers}),n.lines)]}return null}_renderPointLayers(){let{pointType:e}=this.props,{layerProps:r,binary:n}=this.state,{highlightedObjectIndex:i}=this.props;!n&&Number.isFinite(i)&&(i=r.points.data.findIndex(a=>a.__source.index===i));let o=new Set(e.split("+")),s=[];for(let a of o){let l=`points-${a}`,u=aT[a],f=u&&this.shouldRenderSubLayer(l,r.points?.data)&&this.getSubLayerClass(l,u.type);if(f){let m=LI(this,u.props),v=r.points;if(a==="text"&&n){let{instancePickingColors:E,...S}=v.data.attributes;v={...v,data:{...v.data,attributes:S}}}s.push(new f(m,this.getSubLayerProps({id:l,updateTriggers:m.updateTriggers,highlightedObjectIndex:i}),v))}}return s}renderLayers(){let{extruded:e}=this.props,r=this._renderPolygonLayer(),n=this._renderLineLayers(),i=this._renderPointLayers();return[!e&&r,n,i,e&&r]}getSubLayerAccessor(e){let{binary:r}=this.state;return!r||typeof e!="function"?super.getSubLayerAccessor(e):(n,i)=>{let{data:o,index:s}=i,a=dZ(o,s);return e(a,i)}}};lT.layerName="GeoJsonLayer";lT.defaultProps=wSe;var bg=lT;function WZ({pointCount:t,getBinId:e}){let r=new Map;for(let n=0;n<t;n++){let i=e(n);if(i===null)continue;let o=r.get(String(i));o?o.points.push(n):(o={id:i,index:r.size,points:[n]},r.set(String(i),o))}return Array.from(r.values())}function qZ({bins:t,dimensions:e,target:r}){let n=t.length*e;(!r||r.length<n)&&(r=new Float32Array(n));for(let i=0;i<t.length;i++){let{id:o}=t[i];Array.isArray(o)?r.set(o,i*e):r[i]=o}return r}var TSe=t=>t.length,GZ=(t,e)=>{let r=0;for(let n of t)r+=e(n);return r},ESe=(t,e)=>t.length===0?NaN:GZ(t,e)/t.length,MSe=(t,e)=>{let r=1/0;for(let n of t){let i=e(n);i<r&&(r=i)}return r},SSe=(t,e)=>{let r=-1/0;for(let n of t){let i=e(n);i>r&&(r=i)}return r},XZ={COUNT:TSe,SUM:GZ,MEAN:ESe,MIN:MSe,MAX:SSe};function YZ({bins:t,getValue:e,operation:r,target:n}){(!n||n.length<t.length)&&(n=new Float32Array(t.length));let i=1/0,o=-1/0;for(let s=0;s<t.length;s++){let{points:a}=t[s];n[s]=r(a,e),n[s]<i&&(i=n[s]),n[s]>o&&(o=n[s])}return{value:n,domain:[i,o]}}function NF(t,e,r){let n={};for(let o of t.sources||[]){let s=e[o];if(s)n[o]=CSe(s);else throw new Error(`Cannot find attribute ${o}`)}let i={};return o=>{for(let s in n)i[s]=n[s](o);return t.getValue(i,o,r)}}function CSe(t){let e=t.value,{offset:r=0,stride:n,size:i}=t.getAccessor(),o=e.BYTES_PER_ELEMENT,s=r/o,a=n?n/o:i;if(i===1)return t.isConstant?()=>e[0]:u=>{let f=s+a*u;return e[f]};let l;return t.isConstant?(l=Array.from(e),()=>l):(l=new Array(i),u=>{let f=s+a*u;for(let m=0;m<i;m++)l[m]=e[f+m];return l})}var zl=class{constructor(e){this.bins=[],this.binIds=null,this.results=[],this.dimensions=e.dimensions,this.channelCount=e.getValue.length,this.props={...e,binOptions:{},pointCount:0,operations:[],customOperations:[],attributes:{}},this.needsUpdate=!0,this.setProps(e)}destroy(){}get binCount(){return this.bins.length}setProps(e){let r=this.props;if(e.binOptions&&(Gi(e.binOptions,r.binOptions,2)||this.setNeedsUpdate()),e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==r.operations[n]&&this.setNeedsUpdate(n);if(e.customOperations)for(let n=0;n<this.channelCount;n++)Boolean(e.customOperations[n])!==Boolean(r.customOperations[n])&&this.setNeedsUpdate(n);e.pointCount!==void 0&&e.pointCount!==r.pointCount&&this.setNeedsUpdate(),e.attributes&&(e.attributes={...r.attributes,...e.attributes}),Object.assign(this.props,e)}setNeedsUpdate(e){e===void 0?this.needsUpdate=!0:this.needsUpdate!==!0&&(this.needsUpdate=this.needsUpdate||[],this.needsUpdate[e]=!0)}update(){if(this.needsUpdate===!0){this.bins=WZ({pointCount:this.props.pointCount,getBinId:NF(this.props.getBin,this.props.attributes,this.props.binOptions)});let e=qZ({bins:this.bins,dimensions:this.dimensions,target:this.binIds?.value});this.binIds={value:e,type:"float32",size:this.dimensions}}for(let e=0;e<this.channelCount;e++)if(this.needsUpdate===!0||this.needsUpdate[e]){let r=this.props.customOperations[e]||XZ[this.props.operations[e]],{value:n,domain:i}=YZ({bins:this.bins,getValue:NF(this.props.getValue[e],this.props.attributes,void 0),operation:r,target:this.results[e]?.value});this.results[e]={value:n,domain:i,type:"float32",size:1},this.props.onUpdate?.({channel:e})}this.needsUpdate=!1}preDraw(){}getBins(){return this.binIds}getResult(e){return this.results[e]}getResultDomain(e){return this.results[e]?.domain??[1/0,-1/0]}getBin(e){let r=this.bins[e];if(!r)return null;let n=new Array(this.channelCount);for(let i=0;i<n.length;i++){let o=this.results[i];n[i]=o?.value[e]}return{id:r.id,value:n,count:r.points.length,pointIndices:r.points}}};function BI(t,e,r){return t.createFramebuffer({width:e,height:r,colorAttachments:[t.createTexture({width:e,height:r,format:"rgba32float",sampler:{minFilter:"nearest",magFilter:"nearest"}})]})}var ISe=`uniform binSorterUniforms {
|
|
4715
4717
|
ivec4 binIdRange;
|
|
4716
4718
|
ivec2 targetSize;
|
|
4717
4719
|
} binSorter;
|
|
@@ -5630,7 +5632,7 @@ out vec2 clip_commonPosition;
|
|
|
5630
5632
|
in vec2 clip_commonPosition;
|
|
5631
5633
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
5632
5634
|
if (!clip_isInBounds(clip_commonPosition)) discard;
|
|
5633
|
-
`},A3=class extends sI{getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(e=Boolean(this.props.clipByInstance)),this.state.clipByInstance=e,e?{modules:[lUe],inject:uUe}:{modules:[hUe],inject:fUe}}draw(){let{clipBounds:e}=this.props,r={};if(this.state.clipByInstance)r.bounds=e;else{let n=this.projectPosition([e[0],e[1],0]),i=this.projectPosition([e[2],e[3],0]);r.bounds=[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[0],i[0]),Math.max(n[1],i[1])]}this.setShaderModuleProps({clip:r})}};A3.defaultProps=cUe;A3.extensionName="ClipExtension";var Sz=A3;var g3={x:0,y:1,z:2};function Jg(t,e={}){let{start:r=0,end:n=t.length,plane:i="xy"}=e,o=e.size||2,s=0,a=g3[i[0]],l=g3[i[1]];for(let u=r,f=n-o;u<n;u+=o)s+=(t[u+a]-t[f+a])*(t[u+l]+t[f+l]),f=u;return s/2}function Iz(t,e,r=2,n,i="xy"){let o=e&&e.length,s=o?e[0]*r:t.length,a=Kle(t,0,s,r,!0,n&&n[0],i),l=[];if(!a||a.next===a.prev)return l;let u,f,m,v,E,S,L;if(o&&(a=_Ue(t,e,a,r,n,i)),t.length>80*r){v=f=t[0],E=m=t[1];for(let O=r;O<s;O+=r)S=t[O],L=t[O+1],S<v&&(v=S),L<E&&(E=L),S>f&&(f=S),L>m&&(m=L);u=Math.max(f-v,m-E),u=u!==0?32767/u:0}return y3(a,l,r,v,E,u,0),l}function Kle(t,e,r,n,i,o,s){let a,l;o===void 0&&(o=Jg(t,{start:e,end:r,size:n,plane:s}));let u=g3[s[0]],f=g3[s[1]];if(i===o<0)for(a=e;a<r;a+=n)l=$le(a,t[a+u],t[a+f],l);else for(a=r-n;a>=e;a-=n)l=$le(a,t[a+u],t[a+f],l);return l&&CL(l,l.next)&&(x3(l),l=l.next),l}function ey(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(CL(r,r.next)||Ks(r.prev,r,r.next)===0)){if(x3(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function y3(t,e,r,n,i,o,s){if(!t)return;!s&&o&&TUe(t,n,i,o);let a=t,l,u;for(;t.prev!==t.next;){if(l=t.prev,u=t.next,o?AUe(t,n,i,o):mUe(t)){e.push(l.i/r|0),e.push(t.i/r|0),e.push(u.i/r|0),x3(t),t=u.next,a=u.next;continue}if(t=u,t===a){s?s===1?(t=gUe(ey(t),e,r),y3(t,e,r,n,i,o,2)):s===2&&yUe(t,e,r,n,i,o):y3(ey(t),e,r,n,i,o,1);break}}}function mUe(t){let e=t.prev,r=t,n=t.next;if(Ks(e,r,n)>=0)return!1;let i=e.x,o=r.x,s=n.x,a=e.y,l=r.y,u=n.y,f=i<o?i<s?i:s:o<s?o:s,m=a<l?a<u?a:u:l<u?l:u,v=i>o?i>s?i:s:o>s?o:s,E=a>l?a>u?a:u:l>u?l:u,S=n.next;for(;S!==e;){if(S.x>=f&&S.x<=v&&S.y>=m&&S.y<=E&&$x(i,a,o,l,s,u,S.x,S.y)&&Ks(S.prev,S,S.next)>=0)return!1;S=S.next}return!0}function AUe(t,e,r,n){let i=t.prev,o=t,s=t.next;if(Ks(i,o,s)>=0)return!1;let a=i.x,l=o.x,u=s.x,f=i.y,m=o.y,v=s.y,E=a<l?a<u?a:u:l<u?l:u,S=f<m?f<v?f:v:m<v?m:v,L=a>l?a>u?a:u:l>u?l:u,O=f>m?f>v?f:v:m>v?m:v,q=Cz(E,S,e,r,n),G=Cz(L,O,e,r,n),H=t.prevZ,Y=t.nextZ;for(;H&&H.z>=q&&Y&&Y.z<=G;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&$x(a,f,l,m,u,v,H.x,H.y)&&Ks(H.prev,H,H.next)>=0||(H=H.prevZ,Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&$x(a,f,l,m,u,v,Y.x,Y.y)&&Ks(Y.prev,Y,Y.next)>=0))return!1;Y=Y.nextZ}for(;H&&H.z>=q;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&$x(a,f,l,m,u,v,H.x,H.y)&&Ks(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;Y&&Y.z<=G;){if(Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&$x(a,f,l,m,u,v,Y.x,Y.y)&&Ks(Y.prev,Y,Y.next)>=0)return!1;Y=Y.nextZ}return!0}function gUe(t,e,r){let n=t;do{let i=n.prev,o=n.next.next;!CL(i,o)&&Zle(i,n,n.next,o)&&_3(i,o)&&_3(o,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(o.i/r|0),x3(n),x3(n.next),n=t=o),n=n.next}while(n!==t);return ey(n)}function yUe(t,e,r,n,i,o){let s=t;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&SUe(s,a)){let l=Qle(s,a);s=ey(s,s.next),l=ey(l,l.next),y3(s,e,r,n,i,o,0),y3(l,e,r,n,i,o,0);return}a=a.next}s=s.next}while(s!==t)}function _Ue(t,e,r,n,i,o){let s=[],a,l,u,f,m;for(a=0,l=e.length;a<l;a++)u=e[a]*n,f=a<l-1?e[a+1]*n:t.length,m=Kle(t,u,f,n,!1,i&&i[a+1],o),m===m.next&&(m.steiner=!0),s.push(MUe(m));for(s.sort(xUe),a=0;a<s.length;a++)r=vUe(s[a],r);return r}function xUe(t,e){return t.x-e.x}function vUe(t,e){let r=bUe(t,e);if(!r)return e;let n=Qle(r,t);return ey(n,n.next),ey(r,r.next)}function bUe(t,e){let r=e,n=t.x,i=t.y,o=-1/0,s;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){let v=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(v<=n&&v>o&&(o=v,s=r.x<r.next.x?r:r.next,v===n))return s}r=r.next}while(r!==e);if(!s)return null;let a=s,l=s.x,u=s.y,f=1/0,m;r=s;do n>=r.x&&r.x>=l&&n!==r.x&&$x(i<u?n:o,i,l,u,i<u?o:n,i,r.x,r.y)&&(m=Math.abs(i-r.y)/(n-r.x),_3(r,t)&&(m<f||m===f&&(r.x>s.x||r.x===s.x&&wUe(s,r)))&&(s=r,f=m)),r=r.next;while(r!==a);return s}function wUe(t,e){return Ks(t.prev,t,e.prev)<0&&Ks(e.next,t,t.next)<0}function TUe(t,e,r,n){let i=t;do i.z===0&&(i.z=Cz(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,EUe(i)}function EUe(t){let e,r,n=1,i,o,s,a,l,u;do{for(o=t,t=null,u=null,i=0;o;){for(i++,a=o,s=0,r=0;r<n&&(s++,a=a.nextZ,!!a);r++);for(l=n;s>0||l>0&&a;)s!==0&&(l===0||!a||o.z<=a.z)?(e=o,o=o.nextZ,s--):(e=a,a=a.nextZ,l--),u?u.nextZ=e:t=e,e.prevZ=u,u=e;o=a}u.nextZ=null,n*=2}while(i>1);return t}function Cz(t,e,r,n,i){return t=(t-r)*i|0,e=(e-n)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function MUe(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function $x(t,e,r,n,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(n-a)>=(r-s)*(e-a)&&(r-s)*(o-a)>=(i-s)*(n-a)}function SUe(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!CUe(t,e)&&(_3(t,e)&&_3(e,t)&&IUe(t,e)&&(Ks(t.prev,t,e.prev)||Ks(t,e.prev,e))||CL(t,e)&&Ks(t.prev,t,t.next)>0&&Ks(e.prev,e,e.next)>0)}function Ks(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function CL(t,e){return t.x===e.x&&t.y===e.y}function Zle(t,e,r,n){let i=SL(Ks(t,e,r)),o=SL(Ks(t,e,n)),s=SL(Ks(r,n,t)),a=SL(Ks(r,n,e));return!!(i!==o&&s!==a||i===0&&ML(t,r,e)||o===0&&ML(t,n,e)||s===0&&ML(r,t,n)||a===0&&ML(r,e,n))}function ML(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function SL(t){return t>0?1:t<0?-1:0}function CUe(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Zle(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function _3(t,e){return Ks(t.prev,t,t.next)<0?Ks(t,e,t.next)>=0&&Ks(t,t.prev,e)>=0:Ks(t,e,t.prev)<0||Ks(t,t.next,e)<0}function IUe(t,e){let r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Qle(t,e){let r=new v3(t.i,t.x,t.y),n=new v3(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function $le(t,e,r,n){let i=new v3(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function x3(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var v3=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Lz(t,e,r){let n=BUe(t),i=Object.keys(n).filter(o=>n[o]!==Array);return kUe(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||i,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function BUe(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let i=r.properties[n];e[n]=VUe(i,e[n])}return e}function kUe(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:i,linePositionsCount:o,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:u,polygonRingsCount:f,polygonFeaturesCount:m,propArrayTypes:v,coordLength:E}=e,{numericPropKeys:S=[],PositionDataType:L=Float32Array,triangulate:O=!0}=r,q=t[0]&&"id"in t[0],G=t.length>65535?Uint32Array:Uint16Array,H={type:"Point",positions:new L(n*E),globalFeatureIds:new G(n),featureIds:i>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},Y={type:"LineString",pathIndices:o>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new L(o*E),globalFeatureIds:new G(o),featureIds:a>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},te={type:"Polygon",polygonIndices:l>65535?new Uint32Array(u+1):new Uint16Array(u+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new L(l*E),globalFeatureIds:new G(l),featureIds:m>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};O&&(te.triangles=[]);for(let le of[H,Y,te])for(let ie of S){let J=v[ie];le.numericProps[ie]=new J(le.positions.length/E)}Y.pathIndices[s]=o,te.polygonIndices[u]=l,te.primitivePolygonIndices[f]=l;let D={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let le of t){let ie=le.geometry,J=le.properties||{};switch(ie.type){case"Point":DUe(ie,H,D,E,J),H.properties.push(Rz(J,S)),q&&H.fields.push({id:le.id}),D.pointFeature++;break;case"LineString":NUe(ie,Y,D,E,J),Y.properties.push(Rz(J,S)),q&&Y.fields.push({id:le.id}),D.lineFeature++;break;case"Polygon":FUe(ie,te,D,E,J),te.properties.push(Rz(J,S)),q&&te.fields.push({id:le.id}),D.polygonFeature++;break;default:throw new Error("Invalid geometry type")}D.feature++}return UUe(H,Y,te,E)}function DUe(t,e,r,n,i){e.positions.set(t.data,r.pointPosition*n);let o=t.data.length/n;Oz(e,i,r.pointPosition,o),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+o),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+o),r.pointPosition+=o}function NUe(t,e,r,n,i){e.positions.set(t.data,r.linePosition*n);let o=t.data.length/n;Oz(e,i,r.linePosition,o),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+o),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+o);for(let s=0,a=t.indices.length;s<a;++s){let l=t.indices[s],u=s===a-1?t.data.length:t.indices[s+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(u-l)/n}}function FUe(t,e,r,n,i){e.positions.set(t.data,r.polygonPosition*n);let o=t.data.length/n;Oz(e,i,r.polygonPosition,o),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+o),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+o);for(let s=0,a=t.indices.length;s<a;++s){let l=r.polygonPosition;e.polygonIndices[r.polygonObject++]=l;let u=t.areas[s],f=t.indices[s],m=t.indices[s+1];for(let E=0,S=f.length;E<S;++E){let L=f[E],O=E===S-1?m===void 0?t.data.length:m[0]:f[E+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(O-L)/n}let v=r.polygonPosition;zUe(e,u,f,{startPosition:l,endPosition:v,coordLength:n})}}function zUe(t,e,r,{startPosition:n,endPosition:i,coordLength:o}){if(!t.triangles)return;let s=n*o,a=i*o,l=t.positions.subarray(s,a),u=r[0],f=r.slice(1).map(v=>(v-u)/o),m=Iz(l,f,o,e);for(let v=0,E=m.length;v<E;++v)t.triangles.push(n+m[v])}function Pz(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function UUe(t,e,r,n){let i={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Pz(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Pz(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Pz(r.numericProps,1)}};return i.polygons&&r.triangles&&(i.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),i}function Oz(t,e,r,n){for(let i in t.numericProps)if(i in e){let o=e[i];t.numericProps[i].fill(o,r,r+n)}}function Rz(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function VUe(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function RL(t,e){let r=e?.globalFeatureId;return r!==void 0?jUe(t,r):HUe(t,e?.type)}function jUe(t,e){let r=rue(t);for(let n of r){let i=0,o=n.featureIds.value[0];for(let s=0;s<n.featureIds.value.length;s++){let a=n.featureIds.value[s];if(a!==o){if(e===n.globalFeatureIds.value[i])return IL(n,i,s);i=s,o=a}}if(e===n.globalFeatureIds.value[i])return IL(n,i,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function HUe(t,e){let r=rue(t,e);return WUe(r)}function tue(t,e,r){switch(t.type){case"Point":return YUe(t,e,r);case"LineString":return XUe(t,e,r);case"Polygon":return nue(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function rue(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function WUe(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,i=r.featureIds.value[0];for(let o=0;o<r.featureIds.value.length;o++){let s=r.featureIds.value[o];s!==i&&(e.push(IL(r,n,o)),n=o,i=s)}e.push(IL(r,n,r.featureIds.value.length))}return e}function IL(t,e,r){let n=tue(t,e,r),i=GUe(t,e,r),o=qUe(t,e,r);return{type:"Feature",geometry:n,properties:i,...o}}function qUe(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function GUe(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let i in t.numericProps)n[i]=t.numericProps[i].value[e];return n}function nue(t,e=-1/0,r=1/0){let{positions:n}=t,i=t.polygonIndices.value.filter(l=>l>=e&&l<=r),o=t.primitivePolygonIndices.value.filter(l=>l>=e&&l<=r);if(!(i.length>2)){let l=[];for(let u=0;u<o.length-1;u++){let f=o[u],m=o[u+1],v=PL(n,f,m);l.push(v)}return{type:"Polygon",coordinates:l}}let a=[];for(let l=0;l<i.length-1;l++){let u=i[l],f=i[l+1],m=nue(t,u,f).coordinates;a.push(m)}return{type:"MultiPolygon",coordinates:a}}function XUe(t,e=-1/0,r=1/0){let{positions:n}=t,i=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(i.length>2))return{type:"LineString",coordinates:PL(n,i[0],i[1])};let s=[];for(let a=0;a<i.length-1;a++){let l=PL(n,i[a],i[a+1]);s.push(l)}return{type:"MultiLineString",coordinates:s}}function YUe(t,e,r){let{positions:n}=t,i=PL(n,e,r);return i.length>1?{type:"MultiPoint",coordinates:i}:{type:"Point",coordinates:i[0]}}function PL(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let i=e;i<r;i++){let o=Array();for(let s=i*t.size;s<(i+1)*t.size;s++)o.push(Number(t.value[s]));n.push(o)}return n}var Uz=vc(uue(),1);function hue(t){let e=t.length;if(e<=1)return[t];let r=[],n,i;for(let o=0;o<e;o++){let s=fVe(t[o]);s!==0&&(i===void 0&&(i=s<0),i===s<0?(n&&r.push(n),n=[t[o]]):n&&n.push(t[o]))}return n&&r.push(n),r}function fVe(t){let e=0;for(let r=0,n=t.length-1,i,o;r<t.length;n=r++)i=t[r],o=t[n],e+=(o[0]-i[0])*(i[1]+o[1]);return e}function fue(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?pVe(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function pVe(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}var Qx=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,i,o){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=i,this._values=o,e.readFields(fue,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,i=0,o=0,s=0,a=[],l;for(;e.pos<r;){if(i<=0){let u=e.readVarint();n=u&7,i=u>>3}if(i--,n===1||n===2)o+=e.readSVarint(),s+=e.readSVarint(),n===1&&(l&&a.push(l),l=[]),l&&l.push([o,s]);else if(n===7)l&&l.push(l[0].slice());else throw new Error(`unknown command ${n}`)}return l&&a.push(l),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,i=0,o=0,s=0,a=1/0,l=-1/0,u=1/0,f=-1/0;for(;e.pos<r;){if(i<=0){let m=e.readVarint();n=m&7,i=m>>3}if(i--,n===1||n===2)o+=e.readSVarint(),s+=e.readSVarint(),o<a&&(a=o),o>l&&(l=o),s<u&&(u=s),s>f&&(f=s);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,u,l,f]}_toGeoJSON(e){let r=this.loadGeometry(),n=Qx.types[this.type],i,o;switch(this.type){case 1:let a=[];for(i=0;i<r.length;i++)a[i]=r[i][0];r=a,e(r,this);break;case 2:for(i=0;i<r.length;i++)e(r[i],this);break;case 3:for(r=hue(r),i=0;i<r.length;i++)for(o=0;o<r[i].length;o++)e(r[i][o],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let s={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(s.id=this.id),s}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:i}=e,o=this.extent*Math.pow(2,i),s=this.extent*r,a=this.extent*n;function l(u){for(let f=0;f<u.length;f++){let m=u[f];m[0]=(m[0]+s)*360/o-180;let v=180-(m[1]+a)*360/o;m[1]=360/Math.PI*Math.atan(Math.exp(v*Math.PI/180))-90}}return this._toGeoJSON(l)}};var BL=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(dVe,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new Qx(this._pbf,r,this.extent,this._keys,this._values)}};function dVe(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(mVe(r)))}function mVe(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var kL=class{layers;constructor(e,r){this.layers=e.readFields(AVe,{},r)}};function AVe(t,e,r){if(t===3&&r){let n=new BL(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function pue(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Jg(t.data)]],indices:[t.indices]};let n=[],i=[],o=[],s=[],a,l=0;for(let u,f=0,m;f<e;f++){m=t.indices[f]-l,u=t.indices[f+1]-l||t.data.length;let v=t.data.slice(m,u),E=Jg(v);if(E===0){let S=t.data.slice(0,m),L=t.data.slice(u);t.data=S.concat(L),l+=u-m;continue}a===void 0&&(a=E<0),a===E<0?(s.length&&(n.push(o),i.push(s)),s=[m],o=[E]):(o.push(E),s.push(m))}return o&&n.push(o),s.length&&i.push(s),{type:r,areas:n,indices:i,data:t.data}}function due(t,e,r,n){for(let i=0,o=t.length;i<o;i+=2){t[i]=(t[i]+e)*360/n-180;let s=180-(t[i+1]+r)*360/n;t[i+1]=360/Math.PI*Math.atan(Math.exp(s*Math.PI/180))-90}}function mue(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?gVe(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function gVe(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}var Aue,ty,Dz,DL,Nz,Fz,b3;var NL=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,i,o,s){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=i,this._values=o,this._geometryInfo=s,e.readFields(mue,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Aue=e.readVarint()+e.pos,ty=1,DL=0,Nz=0,Fz=0,b3=0;let r=[],n=[];for(;e.pos<Aue;)if(DL<=0&&(Dz=e.readVarint(),ty=Dz&7,DL=Dz>>3),DL--,ty===1||ty===2)Nz+=e.readSVarint(),Fz+=e.readSVarint(),ty===1&&r.push(b3),n.push(Nz,Fz),b3+=2;else if(ty===7){if(b3>0){let i=r[r.length-1];n.push(n[i],n[i+1]),b3+=2}}else throw new Error(`unknown command ${ty}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let i=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/i,n={type:"LineString",...r};break;case 3:n=pue(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let s of n.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=n.data.length/i;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let o={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(o.id=this.id),o}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:i}=e,o=this.extent*Math.pow(2,i),s=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(l=>due(l,s,a,o))}};var FL=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(yVe,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new NL(this._pbf,n,this.extent,this._keys,this._values,r)}};function yVe(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(_Ve(r)))}function _Ve(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var zL=class{layers;constructor(e,r){this.layers=e.readFields(xVe,{},r)}};function xVe(t,e,r){if(t===3&&r){let n=new FL(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Vz(t,e){let r=bVe(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:zz(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:gue(t,r)};case"geojson":return gue(t,r);case"binary-geometry":return zz(t,r);case"binary":return zz(t,r);default:throw new Error(n||"undefined shape")}}function zz(t,e){let[r,n]=vVe(t,e),i=Lz(r,n);return i.byteLength=t.byteLength,i}function vVe(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let i=new zL(new Uz.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(i.layers)).forEach(s=>{let a=i.layers[s];if(a)for(let l=0;l<a.length;l++){let u=a.feature(l,n),f=TVe(u,e,s);r.push(f)}}),[r,n]}function gue(t,e){if(t.byteLength<=0)return[];let r=[],n=new kL(new Uz.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(o=>{let s=n.layers[o];if(s)for(let a=0;a<s.length;a++){let l=s.feature(a),u=wVe(l,e,o);r.push(u)}}),r}function bVe(t){if(!t?.mvt)throw new Error("mvt options required");let e=t.mvt?.coordinates==="wgs84",{tileIndex:r}=t.mvt,n=r&&Number.isFinite(r.x)&&Number.isFinite(r.y)&&Number.isFinite(r.z);if(e&&!n)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function wVe(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:EVe);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function TVe(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:MVe);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function EVe(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let i=t[n];i[0]/=r,i[1]/=r}}function MVe(t,e){let{extent:r}=e;for(let n=0,i=t.length;n<i;++n)t[n]/=r}var SVe="4.2.1",UL={dataType:null,batchType:null,name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:SVe,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},CVe={...UL,parse:async(t,e)=>Vz(t,e),parseSync:Vz,binary:!0};var IVe={Point:yue,MultiPoint:PVe,LineString:_ue,MultiLineString:RVe,Polygon:xue,MultiPolygon:LVe};function yue([t,e],[r,n],i){let o=nc(r[0],n[0],t),s=nc(r[1],n[1],e);return i.unprojectFlat([o,s])}function jz(t,e,r){return t.map(n=>yue(n,e,r))}function PVe(t,e,r){return jz(t,e,r)}function _ue(t,e,r){return jz(t,e,r)}function RVe(t,e,r){return t.map(n=>_ue(n,e,r))}function xue(t,e,r){return t.map(n=>jz(n,e,r))}function LVe(t,e,r){return t.map(n=>xue(n,e,r))}function vue(t,e,r){let n=r.projectFlat([e.west,e.north]),i=r.projectFlat([e.east,e.south]),o=[n,i];return{...t,coordinates:IVe[t.type](t.coordinates,o,r)}}var OVe=["points","lines","polygons"];function Hz(t,e,r,n){for(let i of OVe){let o=t[i]&&BVe(t[i],e,r,n);if(o>=0)return o}return-1}function BVe(t,e,r,n){let i=t.featureIds.value;if(!i.length)return-1;let o=0,s=i[i.length-1]+1;if(n){let l=kVe(t,n);if(l)o=l[0],s=l[1]+1;else return-1}let a=-1;if(e in t.numericProps){let l=t.numericProps[e].value.findIndex((u,f)=>u===r&&i[f]>=o&&i[f]<s);return l>=0?t.globalFeatureIds.value[l]:-1}else e?a=bue(t.properties,l=>l[e]===r,o,s):t.fields&&(a=bue(t.fields,l=>l.id===r,o,s));return a>=0?DVe(t,a):-1}function kVe(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let i=0;i<n.length;i++){let{layerName:o}=n[i];o&&(r[o]?r[o][1]=i:r[o]=[i,i])}t.__layers=r}return t.__layers[e]}function DVe(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,i=t.globalFeatureIds.value;for(let o=0;o<n.length;o++)r[n[o]]=i[o];t.__ids=r}return t.__ids[e]}function bue(t,e,r,n){for(let i=r;i<n;i++)if(e(t[i],i))return i;return-1}var Wz=512,NVe={...bg.defaultProps,data:b0,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[UL],binary:!0},w3=class extends Bg{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:i}){i.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:i}),this._setWGS84PropertyForTiles());let{highlightColor:o}=e;o!==r.highlightColor&&Array.isArray(o)&&this.setState({highlightColor:o})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!k6(e)){let{onDataLoad:n,fetch:i}=this.props;this.setState({data:null,tileJSON:null});try{r=await i(e,{propName:"data",layer:this,loaders:[]})}catch(o){this.raiseError(o,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:i}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(i)||r.maxzoom<i)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:i,signal:o}=e,s=Fp(r,e);if(!s)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:l}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:i},gis:n?{format:"binary"}:{}},l(s,{propName:"data",layer:this,loadOptions:a,signal:o})}renderSubLayers(e){let{x:r,y:n,z:i}=e.tile.index,o=Math.pow(2,i),s=Wz/o,a=-s,l=Wz*r/o,u=Wz*(1-n/o),f=new Dn().scale([s,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[l,u,0],e.coordinateSystem=Kr.CARTESIAN,e.extensions=[...e.extensions||[],new Sz]);let m=super.renderSubLayers(e);return this.state.binary&&!(m instanceof bg)&&Ar.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),m}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:i}=this.state,o=e.object,s=null,a=null;o&&(s=qz(o,r),a=wue(o));let{highlightColor:l}=this.props;typeof l=="function"&&(l=l(e)),(n!==s||i!==a)&&this.setState({highlightColor:l,hoveredFeatureId:s,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=RL(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=Eue(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:i}=this.state,{uniqueIdProperty:o,highlightedFeatureId:s}=this.props,a=e.content,l=Tue(s);if(!(Tue(r)||l))return-1;let f=l?s:r;return Array.isArray(a)?a.findIndex(m=>{let v=qz(m,o)===f,E=l||wue(m)===n;return v&&E}):a&&i?Hz(a,o,f,l?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,i=n.width,o=n.height,s=n.x,a=n.y,l=[this.id];return r.pickObjects({x:s,y:a,width:i,height:o,layerIds:l,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,i=[];for(let o of r){let s=qz(o.object,this.props.uniqueIdProperty);s===void 0?i.push(o.object):n.has(s)||(n.add(s),i.push(o.object))}return i}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:i}=n;if(n._contentWGS84===void 0&&D6(i)){let o=this.state.binary?RL(n.content):n.content;n._contentWGS84=o.map(s=>Eue(s,i,this.context.viewport))}return n._contentWGS84}})})}};w3.layerName="MVTLayer";w3.defaultProps=NVe;var Mue=w3;function qz(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function wue(t){return t.properties?.layerName||null}function Tue(t){return t!=null&&t!==""}function Eue(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>vue(t.geometry,e,r).coordinates}),n}var Sue="0123456789bcdefghjkmnpqrstuvwxyz",Cue={};for(let t=0;t<Sue.length;t++)Cue[Sue.charAt(t)]=t;var FVe=-90,zVe=90,UVe=-180,VVe=180;function jVe(t){let e=!0,r=zVe,n=FVe,i=VVe,o=UVe,s,a=0;for(let l=0,u=t.length;l<u;l++){let f=t[l].toLowerCase();a=Cue[f];for(let m=4;m>=0;m--){let v=a>>m&1;e?(s=(i+o)/2,v===1?o=s:i=s):(s=(r+n)/2,v===1?n=s:r=s),e=!e}}return[n,o,r,i]}function Iue(t){let[e,r,n,i]=jVe(t);return[i,n,i,e,r,e,r,n,i,n]}var HVe={getGeohash:{type:"accessor",value:t=>t.geohash}},T3=class extends Lh{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,i)=>Iue(r(n,i))}}};T3.layerName="GeohashLayer";T3.defaultProps=HVe;var Pue=T3;function Jx(t,e=""){if(!t)throw new Error(`JSON conversion error ${e}`)}function Lue(t,e){let r=qVe(e),n=t;for(let i of r)n=WVe(n)?n[i]:void 0;return n}function WVe(t){return t!==null&&typeof t=="object"}var Rue={};function qVe(t){if(typeof t=="string"){let e=Rue[t];return e||(e=t.split("."),Rue[t]=e),e}return Array.isArray(t)?t:[t]}var Gz=vc(Oue(),1);var Bue={"||":(t,e)=>t||e,"&&":(t,e)=>t&&e,"|":(t,e)=>t|e,"^":(t,e)=>t^e,"&":(t,e)=>t&e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,"<":(t,e)=>t<e,">":(t,e)=>t>e,"<=":(t,e)=>t<=e,">=":(t,e)=>t>=e,"<<":(t,e)=>t<<e,">>":(t,e)=>t>>e,">>>":(t,e)=>t>>>e,"+":(t,e)=>t+e,"-":(t,e)=>t-e,"*":(t,e)=>t*e,"/":(t,e)=>t/e,"%":(t,e)=>t%e},GVe={"-":t=>-t,"+":t=>+t,"~":t=>~t,"!":t=>!t};function kue(t,e){return t.map(function(r){return Cc(r,e)})}function Due(t,e){let r=Cc(t.object,e),n;if(t.computed?n=Cc(t.property,e):n=t.property.name,/^__proto__|prototype|constructor$/.test(n))throw Error(`Access to member "${n}" disallowed.`);return[r,r[n]]}function Cc(t,e){let r=t;switch(r.type){case"ArrayExpression":return kue(r.elements,e);case"BinaryExpression":return Bue[r.operator](Cc(r.left,e),Cc(r.right,e));case"CallExpression":let n,i,o;return r.callee.type==="MemberExpression"?(o=Due(r.callee,e),n=o[0],i=o[1]):i=Cc(r.callee,e),typeof i!="function"?void 0:i.apply(n,kue(r.arguments,e));case"ConditionalExpression":return Cc(r.test,e)?Cc(r.consequent,e):Cc(r.alternate,e);case"Identifier":return e[r.name];case"Literal":return r.value;case"LogicalExpression":return r.operator==="||"?Cc(r.left,e)||Cc(r.right,e):r.operator==="&&"?Cc(r.left,e)&&Cc(r.right,e):Bue[r.operator](Cc(r.left,e),Cc(r.right,e));case"MemberExpression":return Due(r,e)[1];case"ThisExpression":return e;case"UnaryExpression":return GVe[r.operator](Cc(r.argument,e));default:return}}var Xz={"-":t=>t};function ry(t,e){if(t in Xz)return Xz[t];let r,n=(0,Gz.default)(t);return n.type==="Identifier"?r=i=>Lue(i,t):(Yz(n,i=>{if(i.type==="CallExpression")throw new Error("Function calls not allowed in JSON expressions")}),r=i=>Cc(n,i)),Xz[t]=r,r}function Yz(t,e){if(Array.isArray(t))t.forEach(r=>Yz(r,e));else if(t&&typeof t=="object"){t.type&&e(t);for(let r in t)Yz(t[r],e)}}var ev="@@=",$z="@@#",Nue="@@type",jL="@@function";var Fue=t=>t&&typeof t=="object",cm=class{constructor(...e){this.typeKey=Nue,this.functionKey=jL,this.log=console,this.classes={},this.reactComponents={},this.enumerations={},this.constants={},this.functions={},this.React=null,this.convertFunction=ry,this.preProcessClassProps=(r,n)=>n,this.postProcessConvertedJson=r=>r;for(let r of e)this.merge(r)}merge(e){for(let r in e)switch(r){case"layers":case"views":Object.assign(this.classes,e[r]);break;default:if(r in this){let n=e[r];this[r]=Fue(this[r])?Object.assign(this[r],n):n}}}validate(e){return Jx(!this.typeKey||typeof this.typeKey=="string"),Jx(Fue(this.classes)),!0}};function XVe(t){return typeof t=="string"&&t.startsWith(ev)}function YVe(t){return t.replace(ev,"")}function tv(t,e){let r={};for(let n in t){let i=t[n];XVe(i)&&(i=YVe(i),i=ry(i,e)),r[n]=i}return r}function zue(t,e,r){let n=r.classes[t],i=r.reactComponents[t];if(!n&&!i){let{log:o}=r;if(o){let s=JSON.stringify(e,null,0).slice(0,40);o.warn(`JSON converter: No registered class of type ${t}(${s}...) `)}return null}return n?$Ve(n,e,r):KVe(i,e,r)}function $Ve(t,e,r){return r.preProcessClassProps&&(e=r.preProcessClassProps(t,e,r)),e=tv(e,r),new t(e)}function KVe(t,e,r){let{React:n}=r,{children:i=[]}=e;return delete e.children,r.preProcessClassProps&&(e=r.preProcessClassProps(t,e,r)),e=tv(e,r),n.createElement(t,e,i)}function Uue(t,e,r){let n=r.functions[t];if(!n){let{log:i}=r;if(i){let o=JSON.stringify(e,null,0).slice(0,40);i.warn(`JSON converter: No registered function ${t}(${o}...) `)}return null}return n(e)}function Kz(t){return typeof t=="string"?JSON.parse(t):t}var Zz=t=>t&&typeof t=="object",ny=class{constructor(e){this.log=console,this.onJSONChange=()=>{},this.json=null,this.convertedJson=null,this.setProps(e)}finalize(){}setProps(e){"configuration"in e&&(this.configuration=e.configuration instanceof cm?e.configuration:new cm(e.configuration)),"onJSONChange"in e&&(this.onJSONChange=e.onJSONChange)}mergeConfiguration(e){this.configuration.merge(e)}convert(e){if(!e||e===this.json)return this.convertedJson;this.json=e;let r=Kz(e),n=ZVe(r,this.configuration);return n=this.configuration.postProcessConvertedJson(n),this.convertedJson=n,n}convertJson(e){return this.convert(e)}};function ZVe(t,e){return e=new cm(e),Qz(t,"",e)}function Qz(t,e,r){return Array.isArray(t)?t.map((n,i)=>Qz(n,String(i),r)):QVe(t,r)?JVe(t,r):Zz(t)?jL in t?e9e(t,r):Jz(t,r):typeof t=="string"?t9e(t,e,r):t}function QVe(t,e){let{typeKey:r}=e;return Zz(t)&&Boolean(t[r])}function JVe(t,e){let{typeKey:r}=e,n=t[r],i={...t};return delete i[r],i=Jz(i,e),zue(n,i,e)}function e9e(t,e){let{functionKey:r}=e,n=t[r],i={...t};return delete i[r],i=Jz(i,e),Uue(n,i,e)}function Jz(t,e){Jx(Zz(t));let r={};for(let n in t){let i=t[n];r[n]=Qz(i,n,e)}return r}function t9e(t,e,r){if(t.startsWith(ev)&&r.convertFunction)return t=t.replace(ev,""),r.convertFunction(t,r);if(t.startsWith($z)){if(t=t.replace($z,""),r.constants[t])return r.constants[t];let[n,i]=t.split(".");return r.enumerations[n][i]}return t}var rv={onInitialize:t=>t,onFinalize:t=>t,onMessage:t=>t},qp=class{static setCallbacks({onInitialize:e,onFinalize:r,onMessage:n}){e&&(rv.onInitialize=e),r&&(rv.onFinalize=r),n&&(rv.onMessage=n)}constructor(e="Transport"){this._messageQueue=[],this.userData={},this._destroyed=!1,this.name=e}getRootDOMElement(){return typeof document<"u"?document.body:null}sendJSONMessage(){console.error("Back-channel not implemented for this transport")}sendBinaryMessage(){console.error("Back-channel not implemented for this transport")}_initialize(e={}){let r={transport:this,...e};rv.onInitialize(r)}_finalize(e={}){let r={transport:this,...e};rv.onFinalize(r),this._destroyed=!0}_messageReceived(e={}){e={transport:this,...e},console.debug("Delivering transport message",e),rv.onMessage(e)}static _stringifyJSONSafe(e){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))try{return JSON.parse(JSON.stringify(i))}catch{return}r.add(i)}return i})}};function Vue(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null||Object.keys(t).length!==Object.keys(e).length)return!1;for(let r in t)if(!(r in e)||t[r]!==e[r])return!1;for(let r in e)if(!(r in t))return!1;return!0}var YL,ss,Gue,r9e,iy,jue,Xue,eU,iU,tU,rU,n9e,M3={},Yue=[],i9e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,oU=Array.isArray;function z0(t,e){for(var r in e)t[r]=e[r];return t}function $ue(t){var e=t.parentNode;e&&e.removeChild(t)}function o9e(t,e,r){var n,i,o,s={};for(o in e)o=="key"?n=e[o]:o=="ref"?i=e[o]:s[o]=e[o];if(arguments.length>2&&(s.children=arguments.length>3?YL.call(arguments,2):r),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)s[o]===void 0&&(s[o]=t.defaultProps[o]);return WL(t,s,n,i,null)}function WL(t,e,r,n,i){var o={type:t,props:e,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++Gue,__i:-1,__u:0};return i==null&&ss.vnode!=null&&ss.vnode(o),o}function nv(t){return t.children}function qL(t,e){this.props=t,this.context=e}function oy(t,e){if(e==null)return t.__?oy(t.__,t.__i+1):null;for(var r;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null)return r.__e;return typeof t.type=="function"?oy(t):null}function Kue(t){var e,r;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null){t.__e=t.__c.base=r.__e;break}return Kue(t)}}function Hue(t){(!t.__d&&(t.__d=!0)&&iy.push(t)&&!XL.__r++||jue!==ss.debounceRendering)&&((jue=ss.debounceRendering)||Xue)(XL)}function XL(){var t,e,r,n,i,o,s,a;for(iy.sort(eU);t=iy.shift();)t.__d&&(e=iy.length,n=void 0,o=(i=(r=t).__v).__e,s=[],a=[],r.__P&&((n=z0({},i)).__v=i.__v+1,ss.vnode&&ss.vnode(n),sU(r.__P,n,i,r.__n,r.__P.namespaceURI,32&i.__u?[o]:null,s,o??oy(i),!!(32&i.__u),a),n.__v=i.__v,n.__.__k[n.__i]=n,Jue(s,n,a),n.__e!=o&&Kue(n)),iy.length>e&&iy.sort(eU));XL.__r=0}function Zue(t,e,r,n,i,o,s,a,l,u,f){var m,v,E,S,L,O=n&&n.__k||Yue,q=e.length;for(r.__d=l,s9e(r,e,O),l=r.__d,m=0;m<q;m++)(E=r.__k[m])!=null&&typeof E!="boolean"&&typeof E!="function"&&(v=E.__i===-1?M3:O[E.__i]||M3,E.__i=m,sU(t,E,v,i,o,s,a,l,u,f),S=E.__e,E.ref&&v.ref!=E.ref&&(v.ref&&aU(v.ref,null,E),f.push(E.ref,E.__c||S,E)),L==null&&S!=null&&(L=S),65536&E.__u||v.__k===E.__k?l=Que(E,l,t):typeof E.type=="function"&&E.__d!==void 0?l=E.__d:S&&(l=S.nextSibling),E.__d=void 0,E.__u&=-196609);r.__d=l,r.__e=L}function s9e(t,e,r){var n,i,o,s,a,l=e.length,u=r.length,f=u,m=0;for(t.__k=[],n=0;n<l;n++)s=n+m,(i=t.__k[n]=(i=e[n])==null||typeof i=="boolean"||typeof i=="function"?null:typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?WL(null,i,null,null,null):oU(i)?WL(nv,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?WL(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)!=null?(i.__=t,i.__b=t.__b+1,a=a9e(i,r,s,f),i.__i=a,o=null,a!==-1&&(f--,(o=r[a])&&(o.__u|=131072)),o==null||o.__v===null?(a==-1&&m--,typeof i.type!="function"&&(i.__u|=65536)):a!==s&&(a==s-1?m--:a==s+1?m++:a>s?f>l-s?m+=a-s:m--:a<s&&(a==s-m?m-=a-s:m++),a!==n+m&&(i.__u|=65536))):(o=r[s])&&o.key==null&&o.__e&&!(131072&o.__u)&&(o.__e==t.__d&&(t.__d=oy(o)),nU(o,o,!1),r[s]=null,f--);if(f)for(n=0;n<u;n++)(o=r[n])!=null&&!(131072&o.__u)&&(o.__e==t.__d&&(t.__d=oy(o)),nU(o,o))}function Que(t,e,r){var n,i;if(typeof t.type=="function"){for(n=t.__k,i=0;n&&i<n.length;i++)n[i]&&(n[i].__=t,e=Que(n[i],e,r));return e}t.__e!=e&&(e&&t.type&&!r.contains(e)&&(e=oy(t)),r.insertBefore(t.__e,e||null),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function a9e(t,e,r,n){var i=t.key,o=t.type,s=r-1,a=r+1,l=e[r];if(l===null||l&&i==l.key&&o===l.type&&!(131072&l.__u))return r;if(n>(l!=null&&!(131072&l.__u)?1:0))for(;s>=0||a<e.length;){if(s>=0){if((l=e[s])&&!(131072&l.__u)&&i==l.key&&o===l.type)return s;s--}if(a<e.length){if((l=e[a])&&!(131072&l.__u)&&i==l.key&&o===l.type)return a;a++}}return-1}function Wue(t,e,r){e[0]==="-"?t.setProperty(e,r??""):t[e]=r==null?"":typeof r!="number"||i9e.test(e)?r:r+"px"}function HL(t,e,r,n,i){var o;e:if(e==="style")if(typeof r=="string")t.style.cssText=r;else{if(typeof n=="string"&&(t.style.cssText=n=""),n)for(e in n)r&&e in r||Wue(t.style,e,"");if(r)for(e in r)n&&r[e]===n[e]||Wue(t.style,e,r[e])}else if(e[0]==="o"&&e[1]==="n")o=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in t||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=r,r?n?r.u=n.u:(r.u=iU,t.addEventListener(e,o?rU:tU,o)):t.removeEventListener(e,o?rU:tU,o);else{if(i=="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]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&e[4]!=="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&r==1?"":r))}}function que(t){return function(e){if(this.l){var r=this.l[e.type+t];if(e.t==null)e.t=iU++;else if(e.t<r.u)return;return r(ss.event?ss.event(e):e)}}}function sU(t,e,r,n,i,o,s,a,l,u){var f,m,v,E,S,L,O,q,G,H,Y,te,D,le,ie,J,X=e.type;if(e.constructor!==void 0)return null;128&r.__u&&(l=!!(32&r.__u),o=[a=e.__e=r.__e]),(f=ss.__b)&&f(e);e:if(typeof X=="function")try{if(q=e.props,G="prototype"in X&&X.prototype.render,H=(f=X.contextType)&&n[f.__c],Y=f?H?H.props.value:f.__:n,r.__c?O=(m=e.__c=r.__c).__=m.__E:(G?e.__c=m=new X(q,Y):(e.__c=m=new qL(q,Y),m.constructor=X,m.render=l9e),H&&H.sub(m),m.props=q,m.state||(m.state={}),m.context=Y,m.__n=n,v=m.__d=!0,m.__h=[],m._sb=[]),G&&m.__s==null&&(m.__s=m.state),G&&X.getDerivedStateFromProps!=null&&(m.__s==m.state&&(m.__s=z0({},m.__s)),z0(m.__s,X.getDerivedStateFromProps(q,m.__s))),E=m.props,S=m.state,m.__v=e,v)G&&X.getDerivedStateFromProps==null&&m.componentWillMount!=null&&m.componentWillMount(),G&&m.componentDidMount!=null&&m.__h.push(m.componentDidMount);else{if(G&&X.getDerivedStateFromProps==null&&q!==E&&m.componentWillReceiveProps!=null&&m.componentWillReceiveProps(q,Y),!m.__e&&(m.shouldComponentUpdate!=null&&m.shouldComponentUpdate(q,m.__s,Y)===!1||e.__v===r.__v)){for(e.__v!==r.__v&&(m.props=q,m.state=m.__s,m.__d=!1),e.__e=r.__e,e.__k=r.__k,e.__k.forEach(function(me){me&&(me.__=e)}),te=0;te<m._sb.length;te++)m.__h.push(m._sb[te]);m._sb=[],m.__h.length&&s.push(m);break e}m.componentWillUpdate!=null&&m.componentWillUpdate(q,m.__s,Y),G&&m.componentDidUpdate!=null&&m.__h.push(function(){m.componentDidUpdate(E,S,L)})}if(m.context=Y,m.props=q,m.__P=t,m.__e=!1,D=ss.__r,le=0,G){for(m.state=m.__s,m.__d=!1,D&&D(e),f=m.render(m.props,m.state,m.context),ie=0;ie<m._sb.length;ie++)m.__h.push(m._sb[ie]);m._sb=[]}else do m.__d=!1,D&&D(e),f=m.render(m.props,m.state,m.context),m.state=m.__s;while(m.__d&&++le<25);m.state=m.__s,m.getChildContext!=null&&(n=z0(z0({},n),m.getChildContext())),G&&!v&&m.getSnapshotBeforeUpdate!=null&&(L=m.getSnapshotBeforeUpdate(E,S)),Zue(t,oU(J=f!=null&&f.type===nv&&f.key==null?f.props.children:f)?J:[J],e,r,n,i,o,s,a,l,u),m.base=e.__e,e.__u&=-161,m.__h.length&&s.push(m),O&&(m.__E=m.__=null)}catch(me){if(e.__v=null,l||o!=null){for(e.__u|=l?160:32;a&&a.nodeType===8&&a.nextSibling;)a=a.nextSibling;o[o.indexOf(a)]=null,e.__e=a}else e.__e=r.__e,e.__k=r.__k;ss.__e(me,e,r)}else o==null&&e.__v===r.__v?(e.__k=r.__k,e.__e=r.__e):e.__e=c9e(r.__e,e,r,n,i,o,s,l,u);(f=ss.diffed)&&f(e)}function Jue(t,e,r){e.__d=void 0;for(var n=0;n<r.length;n++)aU(r[n],r[++n],r[++n]);ss.__c&&ss.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){ss.__e(o,i.__v)}})}function c9e(t,e,r,n,i,o,s,a,l){var u,f,m,v,E,S,L,O=r.props,q=e.props,G=e.type;if(G==="svg"?i="http://www.w3.org/2000/svg":G==="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((E=o[u])&&"setAttribute"in E==!!G&&(G?E.localName===G:E.nodeType===3)){t=E,o[u]=null;break}}if(t==null){if(G===null)return document.createTextNode(q);t=document.createElementNS(i,G,q.is&&q),o=null,a=!1}if(G===null)O===q||a&&t.data===q||(t.data=q);else{if(o=o&&YL.call(t.childNodes),O=r.props||M3,!a&&o!=null)for(O={},u=0;u<t.attributes.length;u++)O[(E=t.attributes[u]).name]=E.value;for(u in O)if(E=O[u],u!="children"){if(u=="dangerouslySetInnerHTML")m=E;else if(u!=="key"&&!(u in q)){if(u=="value"&&"defaultValue"in q||u=="checked"&&"defaultChecked"in q)continue;HL(t,u,null,E,i)}}for(u in q)E=q[u],u=="children"?v=E:u=="dangerouslySetInnerHTML"?f=E:u=="value"?S=E:u=="checked"?L=E:u==="key"||a&&typeof E!="function"||O[u]===E||HL(t,u,E,O[u],i);if(f)a||m&&(f.__html===m.__html||f.__html===t.innerHTML)||(t.innerHTML=f.__html),e.__k=[];else if(m&&(t.innerHTML=""),Zue(t,oU(v)?v:[v],e,r,n,G==="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,s,o?o[0]:r.__k&&oy(r,0),a,l),o!=null)for(u=o.length;u--;)o[u]!=null&&$ue(o[u]);a||(u="value",S!==void 0&&(S!==t[u]||G==="progress"&&!S||G==="option"&&S!==O[u])&&HL(t,u,S,O[u],i),u="checked",L!==void 0&&L!==t[u]&&HL(t,u,L,O[u],i))}return t}function aU(t,e,r){try{if(typeof t=="function"){var n=typeof t.__u=="function";n&&t.__u(),n&&e==null||(t.__u=t(e))}else t.current=e}catch(i){ss.__e(i,r)}}function nU(t,e,r){var n,i;if(ss.unmount&&ss.unmount(t),(n=t.ref)&&(n.current&&n.current!==t.__e||aU(n,null,e)),(n=t.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(o){ss.__e(o,e)}n.base=n.__P=null}if(n=t.__k)for(i=0;i<n.length;i++)n[i]&&nU(n[i],e,r||typeof t.type!="function");r||t.__e==null||$ue(t.__e),t.__c=t.__=t.__e=t.__d=void 0}function l9e(t,e,r){return this.constructor(t,r)}function io(t,e,r){var n,i,o,s;ss.__&&ss.__(t,e),i=(n=typeof r=="function")?null:r&&r.__k||e.__k,o=[],s=[],sU(e,t=(!n&&r||e).__k=o9e(nv,null,[t]),i||M3,M3,e.namespaceURI,!n&&r?[r]:i?null:e.firstChild?YL.call(e.childNodes):null,o,!n&&r?r:i?i.__e:e.firstChild,n,s),Jue(o,t,s)}YL=Yue.slice,ss={__e:function(t,e,r,n){for(var i,o,s;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,n||{}),s=i.__d),s)return i.__E=i}catch(a){t=a}throw t}},Gue=0,r9e=function(t){return t!=null&&t.constructor==null},qL.prototype.setState=function(t,e){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=z0({},this.state),typeof t=="function"&&(t=t(z0({},r),this.props)),t&&z0(r,t),t!=null&&this.__v&&(e&&this._sb.push(e),Hue(this))},qL.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Hue(this))},qL.prototype.render=nv,iy=[],Xue=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,eU=function(t,e){return t.__v.__b-e.__v.__b},XL.__r=0,iU=0,tU=que(!1),rU=que(!0),n9e=0;var u9e=0,A7t=Array.isArray;function nr(t,e,r,n,i,o){e||(e={});var s,a,l=e;if("ref"in l)for(a in l={},e)a=="ref"?s=e[a]:l[a]=e[a];var u={type:t,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--u9e,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(s=t.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return ss.vnode&&ss.vnode(u),u}var iv=t=>{let{children:e,orientation:r="horizontal"}=t;return nr("div",{className:`deck-widget-button-group ${r}`,children:e})};var sy=t=>{let{className:e="",label:r,onClick:n,children:i}=t;return nr("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:n,title:r,children:i||nr("div",{className:"deck-widget-icon"})})};var ay=class extends Tn{constructor(e={}){super(e,ay.defaultProps),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){let r=nr(iv,{orientation:this.props.orientation,children:[nr(sy,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),nr(sy,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});io(r,e)}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,r){let n=this.viewId||e?.id||"default-view",i={...e,zoom:r};this.props.transitionDuration>0&&(i.transitionDuration=this.props.transitionDuration,i.transitionInterpolator="latitude"in i?new wf:new Gs({transitionProps:["zoom"]})),this.setViewState(n,i)}handleZoomIn(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}setViewState(e,r){this.deck._onViewStateChange({viewId:e,viewState:r,interactionState:{}})}};ay.defaultProps={...Tn.defaultProps,id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",viewId:null};var Ic=t=>{let{className:e="",label:r,onClick:n,children:i}=t;return nr("div",{className:"deck-widget-button",children:nr("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:n,title:r,children:i||nr("div",{className:"deck-widget-icon"})})})};var cy=class extends Tn{constructor(e={}){super(e,cy.defaultProps),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){io(nr(Ic,{className:"deck-widget-reset-focus",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){let e=this.props.initialViewState||this.deck?.props.initialViewState;this.setViewState(e)}setViewState(e){let r=this.props.viewId||"default-view",n={...r!=="default-view"?e?.[r]:e};this.deck._onViewStateChange({viewId:r,viewState:n,interactionState:{}})}};cy.defaultProps={...Tn.defaultProps,id:"reset-view",placement:"top-left",label:"Reset View",initialViewState:void 0,viewId:null};var ly=class extends Tn{constructor(e={}){super(e,ly.defaultProps),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){let r=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[r],{rotationOrbit:i,rotationX:o}=this.getNormalizedRotation(n),s=nr("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:nr("button",{type:"button",onClick:()=>{for(let a of Object.values(this.viewports))this.resetOrbitView(a)},title:this.props.label,style:{position:"relative",width:26,height:26},children:[nr("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateY(${i}deg)`},children:nr("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),nr("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateX(${o}deg)`},children:nr("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})});io(s,e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){let r=this.getViewId(e),n=this.getViewState(r);if("rotationOrbit"in n||"rotationX"in n){let i={...n,rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new Gs({transitionProps:["rotationOrbit","rotationX"]})};this.deck._onViewStateChange({viewId:r,viewState:i,interactionState:{}})}}getNormalizedRotation(e){let r=this.getViewState(this.getViewId(e)),[n,i]=this.getRotation(r),o=ehe(n),s=ehe(i);return{rotationOrbit:o,rotationX:s}}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){let r=this.getViewManager();return e&&r.getViewState(e)||r.viewState}getViewManager(){let e=this.deck?.viewManager;if(!e)throw new Error("wigdet must be added to a deck instance");return e}};ly.defaultProps={...Tn.defaultProps,id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",strokeWidth:1.5,transitionDuration:200};function ehe(t){let e=((t+180)%360+360)%360-180,r=10,n=e-90;return Math.abs(n)<r&&(n<r?e=90+r:n>-r&&(e=90-r)),e}var uy=class extends Tn{constructor(e={}){super(e,uy.defaultProps),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){let r=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[r],[i,o]=this.getRotation(n),s=nr("div",{className:"deck-widget-button",style:{perspective:100},children:nr("button",{type:"button",onClick:()=>{for(let a of Object.values(this.viewports))this.handleCompassReset(a)},title:this.props.label,style:{transform:`rotateX(${o}deg)`},children:nr("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:nr("g",{transform:`rotate(${i},13,13)`,children:[nr("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),nr("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})});io(s,e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof ll?[-e.bearing,e.pitch]:e instanceof bf?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){let r=this.viewId||e.id||"default-view";if(e instanceof ll){let n={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new wf};this.deck._onViewStateChange({viewId:r,viewState:n,interactionState:{}})}}};uy.defaultProps={...Tn.defaultProps,id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",transitionDuration:200};var hy=class extends Tn{constructor(e={}){super(e,hy.defaultProps),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){let n=50+this.scaleWidth,i=10;io(nr("svg",{className:"deck-widget-scale",width:n,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[nr("text",{x:50+5,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),nr("line",{x1:50,y1:"15",x2:50+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),nr("line",{x1:50,y1:"15",x2:50,y2:15-i,stroke:"black",strokeWidth:"6"}),nr("line",{x1:50+this.scaleWidth,y1:"15",x2:50+this.scaleWidth,y2:15-i,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;let{latitude:r,zoom:n}=e,i=h9e(r,n),{candidate:o,candidatePixels:s}=f9e(i);this.scaleValue=o,this.scaleWidth=s,o>=1e3?this.scaleText=`${(o/1e3).toFixed(1)} km`:this.scaleText=`${o} m`,this.updateHTML()}handleClick(){}};hy.defaultProps={...Tn.defaultProps,id:"scale",placement:"bottom-left",label:"Scale",viewId:null};function h9e(t,e){return 40075016686e-3*Math.cos(t*Math.PI/180)/Math.pow(2,e+8)}function f9e(t){let i=150*t,o=Math.floor(Math.log10(i)),s=Math.pow(10,o),a=[1,2,5],l=a[0]*s,u=l/t;for(let f=0;f<a.length;f++){let m=a[f]*s,v=m/t;if(v>=100&&v<=200){l=m,u=v;break}if(v>200){l=f>0?a[f-1]*s:m,u=l/t;break}f===a.length-1&&v<100&&(l=a[0]*s*10,u=l/t)}return{candidate:l,candidatePixels:u}}var S3,Ca,cU,the,KL=0,lhe=[],Ga=ss,rhe=Ga.__b,nhe=Ga.__r,ihe=Ga.diffed,ohe=Ga.__c,she=Ga.unmount,ahe=Ga.__;function uU(t,e){Ga.__h&&Ga.__h(Ca,t,KL||e),KL=0;var r=Ca.__H||(Ca.__H={__:[],__h:[]});return t>=r.__.length&&r.__.push({}),r.__[t]}function fy(t){return KL=1,p9e(hhe,t)}function p9e(t,e,r){var n=uU(S3++,2);if(n.t=t,!n.__c&&(n.__=[r?r(e):hhe(void 0,e),function(a){var l=n.__N?n.__N[0]:n.__[0],u=n.t(l,a);l!==u&&(n.__N=[u,n.__[1]],n.__c.setState({}))}],n.__c=Ca,!Ca.u)){var i=function(a,l,u){if(!n.__c.__H)return!0;var f=n.__c.__H.__.filter(function(v){return!!v.__c});if(f.every(function(v){return!v.__N}))return!o||o.call(this,a,l,u);var m=!1;return f.forEach(function(v){if(v.__N){var E=v.__[0];v.__=v.__N,v.__N=void 0,E!==v.__[0]&&(m=!0)}}),!(!m&&n.__c.props===a)&&(!o||o.call(this,a,l,u))};Ca.u=!0;var o=Ca.shouldComponentUpdate,s=Ca.componentWillUpdate;Ca.componentWillUpdate=function(a,l,u){if(this.__e){var f=o;o=void 0,i(a,l,u),o=f}s&&s.call(this,a,l,u)},Ca.shouldComponentUpdate=i}return n.__N||n.__}function ZL(t,e){var r=uU(S3++,3);!Ga.__s&&uhe(r.__H,e)&&(r.__=t,r.i=e,Ca.__H.__h.push(r))}function py(t){return KL=5,d9e(function(){return{current:t}},[])}function d9e(t,e){var r=uU(S3++,7);return uhe(r.__H,e)&&(r.__=t(),r.__H=e,r.__h=t),r.__}function m9e(){for(var t;t=lhe.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach($L),t.__H.__h.forEach(lU),t.__H.__h=[]}catch(e){t.__H.__h=[],Ga.__e(e,t.__v)}}Ga.__b=function(t){Ca=null,rhe&&rhe(t)},Ga.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),ahe&&ahe(t,e)},Ga.__r=function(t){nhe&&nhe(t),S3=0;var e=(Ca=t.__c).__H;e&&(cU===Ca?(e.__h=[],Ca.__h=[],e.__.forEach(function(r){r.__N&&(r.__=r.__N),r.i=r.__N=void 0})):(e.__h.forEach($L),e.__h.forEach(lU),e.__h=[],S3=0)),cU=Ca},Ga.diffed=function(t){ihe&&ihe(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(lhe.push(e)!==1&&the===Ga.requestAnimationFrame||((the=Ga.requestAnimationFrame)||A9e)(m9e)),e.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.i=void 0})),cU=Ca=null},Ga.__c=function(t,e){e.some(function(r){try{r.__h.forEach($L),r.__h=r.__h.filter(function(n){return!n.__||lU(n)})}catch(n){e.some(function(i){i.__h&&(i.__h=[])}),e=[],Ga.__e(n,r.__v)}}),ohe&&ohe(t,e)},Ga.unmount=function(t){she&&she(t);var e,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{$L(n)}catch(i){e=i}}),r.__H=void 0,e&&Ga.__e(e,r.__v))};var che=typeof requestAnimationFrame=="function";function A9e(t){var e,r=function(){clearTimeout(n),che&&cancelAnimationFrame(e),setTimeout(t)},n=setTimeout(r,100);che&&(e=requestAnimationFrame(r))}function $L(t){var e=Ca,r=t.__c;typeof r=="function"&&(t.__c=void 0,r()),Ca=e}function lU(t){var e=Ca;t.__c=t.__(),Ca=e}function uhe(t,e){return!t||t.length!==e.length||e.some(function(r,n){return r!==t[n]})}function hhe(t,e){return typeof e=="function"?e(t):e}var QL=t=>{let[e,r]=fy(!1),n=py(null),i=()=>r(!e),o=a=>{n.current&&!n.current.contains(a.target)&&r(!1)};ZL(()=>(document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[]);let s=a=>{t.onSelect(a),r(!1)};return nr("div",{className:"dropdown-container",ref:n,style:{position:"relative",display:"inline-block",...t.style},children:[nr("button",{onClick:i,style:{width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid #ccc",borderRadius:"4px",background:"#fff",cursor:"pointer",padding:0},children:"\u25BC"}),e&&nr("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(a=>nr("li",{onClick:()=>s(a),style:{padding:"4px 8px",cursor:"pointer",whiteSpace:"nowrap"},children:a},a))})]})};var g9e="current",fhe="deck-geocoder-history",JL=class{constructor(e){this.addressText="",this.errorText="",this.addressHistory=[],this.props={maxEntries:5,...e},this.addressHistory=this.loadPreviousAddresses()}async geocode(e,r,n){this.errorText="",this.addressText=r;try{let i=await e.geocode(r,n);if(i)return this.storeAddress(this.addressText),i;this.errorText="Invalid address"}catch(i){this.errorText=`${i.message}`}return null}loadPreviousAddresses(){try{let e=window.localStorage.getItem(fhe),r=e&&JSON.parse(e);return Array.isArray(r)?r.filter(i=>typeof i=="string"):[]}catch{}return[]}storeAddress(e){let r=e.trim();if(!r||r===g9e)return;let n=[r,...this.addressHistory.filter(i=>i!==r)];this.addressHistory=n.slice(0,this.props.maxEntries);try{window.localStorage.setItem(fhe,JSON.stringify(this.addressHistory))}catch{}}};var y9e="https://maps.googleapis.com/maps/api/geocode/json",_9e="https://api.mapbox.com/geocoding/v5/mapbox.places",x9e="https://api.opencagedata.com/geocode/v1/json",e4={name:"google",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${y9e}?address=${r}&key=${e}`);switch(n.status){case"OK":let i=n.results.length>0&&n.results[0].geometry.location;return i?{longitude:i.lng,latitude:i.lat}:null;default:throw new Error(`Google Geocoder failed: ${n.status}`)}}},t4={name:"google",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${_9e}/${r}.json?access_token=${e}`);if(Array.isArray(n.features)&&n.features.length>0){let i=n.features[0].center;if(Array.isArray(i)&&i.length>=2)return{longitude:i[0],latitude:i[1]}}return null}},r4={name:"opencage",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${x9e}?q=${r}&key=${e}`);if(Array.isArray(n.results)&&n.results.length>0){let i=n.results[0].geometry;return{longitude:i.lng,latitude:i.lat}}return null}},n4={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw new Error("Geolocation not supported");return new Promise((t,e)=>{navigator.geolocation.getCurrentPosition(r=>{let{longitude:n,latitude:i}=r.coords;t({longitude:n,latitude:i})},r=>e(new Error(r.message)))})}};async function hU(t){let e;try{e=await fetch(t)}catch(n){throw new Error(`CORS error? ${n}. ${t}: `)}if(!e.ok)throw new Error(`${e.statusText}. ${t}: `);let r=await e.json();if(!r)throw new Error(`No data returned. ${t}`);return r}var ov={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37\xB048'N, 122\xB027'W",async geocode(t){return v9e(t)||null}};function v9e(t){t=t.trim();let e=t.split(/[,;]/).map(i=>i.trim());if(e.length<2)return null;let r=phe(e[0]),n=phe(e[1]);return r===null||n===null?null:Math.abs(r)>90&&Math.abs(n)<=90?{longitude:r,latitude:n}:Math.abs(n)>90&&Math.abs(r)<=90?{longitude:n,latitude:r}:{latitude:r,longitude:n}}function phe(t){if(t=t.trim(),t.includes("\xB0")||t.includes("'")||t.includes('"')){let n=b9e(t);return isNaN(n)?null:n}let e=1;/[SW]/i.test(t)&&(e=-1),t=t.replace(/[NSEW]/gi,"");let r=parseFloat(t);return isNaN(r)?null:e*r}function b9e(t){let e=/(\d+)[°d]\s*(\d+)?['′m]?\s*(\d+(?:\.\d+)?)?[\"″s]?\s*([NSEW])?/i,r=t.match(e);if(!r)return NaN;let n=parseFloat(r[1])||0,i=parseFloat(r[2])||0,o=parseFloat(r[3])||0,s=r[4]||"",a=n+i/60+o/3600;return/[SW]/i.test(s)&&(a=-a),a}var dhe="current",dy=class extends Tn{constructor(e={}){super(e,dy.defaultProps),this.className="deck-widget-geocoder",this.placement="top-left",this.geocodeHistory=new JL({}),this.addressText="",this.geocoder=ov,this.setInput=r=>{this.addressText=r},this.handleKeyPress=r=>{r.key==="Enter"&&this.handleSubmit()},this.handleSelect=r=>{this.setInput(r),this.handleSubmit()},this.handleSubmit=()=>{this.geocode(this.addressText)},this.geocode=async r=>{let i=this.props._geolocation&&r===dhe?n4:this.geocoder,o=await this.geocodeHistory.geocode(i,this.addressText,this.props.apiKey);o&&this.setViewState(o)},this.viewports={},this.setProps(this.props)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this.geocoder=w9e(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){let r=this.props._geolocation?[dhe,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];io(nr("div",{className:"deck-widget-geocoder",style:{pointerEvents:"auto",display:"flex",alignItems:"center",flexWrap:"wrap"},children:[nr("input",{type:"text",placeholder:this.geocoder.placeholderLocation??"Enter address or location",value:this.geocodeHistory.addressText,onInput:n=>this.setInput(n.target?.value||""),onKeyPress:this.handleKeyPress,style:{flex:"1 1 auto",minWidth:"200px",margin:0,padding:"8px",boxSizing:"border-box"}}),nr(QL,{menuItems:r,onSelect:this.handleSelect,style:{margin:2,padding:"4px 2px",boxSizing:"border-box"}}),this.geocodeHistory.errorText&&nr("div",{className:"error",children:this.geocodeHistory.errorText})]}),e)}setViewState(e){let r=this.props.viewId||e?.id||"default-view",i={...this.viewports[r]||{},...e};this.props.transitionDuration>0&&(i.transitionDuration=this.props.transitionDuration,i.transitionInterpolator="latitude"in i?new wf:new Gs),this.deck._onViewStateChange({viewId:r,viewState:i,interactionState:{}})}onViewportChange(e){this.viewports[e.id]=e}};dy.defaultProps={...Tn.defaultProps,id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:ov,apiKey:"",_geolocation:!1};function w9e(t){switch(t.geocoder){case"google":return e4;case"mapbox":return t4;case"opencage":return r4;case"coordinates":return ov;case"custom":if(!t.customGeocoder)throw new Error("Custom geocoder is not defined");return t.customGeocoder;default:throw new Error(`Unknown geocoder: ${t.geocoder}`)}}var my=class extends Tn{constructor(e={}){super(e,my.defaultProps),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){io(nr(Ic,{onClick:()=>{this.handleClick().catch(r=>Ar.error(r)())},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(){let e=this.fullscreen,r=document.fullscreenElement===this.getContainer();e!==r&&(this.fullscreen=!this.fullscreen),this.updateHTML()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.updateHTML()}async requestFullscreen(){let 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")}};my.defaultProps={...Tn.defaultProps,id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",container:void 0};var Ay=class extends Tn{constructor(e){super(e,Ay.defaultProps),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",io(nr(T9e,{orientation:this.props.orientation,initialSplit:this.props.initialSplit,onChange:this.props.onChange,onDragStart:this.props.onDragStart,onDragEnd:this.props.onDragEnd}),e)}};Ay.defaultProps={...Tn.defaultProps,id:"splitter-widget",viewId1:"",viewId2:"",orientation:"vertical",initialSplit:.5,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}};function T9e({orientation:t,initialSplit:e,onChange:r,onDragStart:n,onDragEnd:i}){let[o,s]=fy(e),a=py(!1),l=py(null),u=S=>{a.current=!0,n?.(),document.addEventListener("mousemove",f),document.addEventListener("mouseup",m),S.preventDefault()},f=S=>{if(!a.current||!l.current)return;let L=l.current.getBoundingClientRect(),O;t==="vertical"?O=(S.clientX-L.left)/L.width:O=(S.clientY-L.top)/L.height,O=Math.min(Math.max(O,.05),.95),s(O),r?.(O)},m=S=>{a.current&&(a.current=!1,i?.(),document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",m))},v=t==="vertical"?{position:"absolute",top:0,bottom:0,left:`${o*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:`${o*100}%`,height:"4px",cursor:"row-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"};return nr("div",{ref:l,style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:nr("div",{style:v,onMouseDown:u})})}function i4(t){let[e,r]=fy(!1),n=py(null),i=v=>{n.current&&!n.current.contains(v.target)&&r(!1)};ZL(()=>(document.addEventListener("mousedown",i),()=>{document.removeEventListener("mousedown",i)}),[n]);let[o,s]=fy(t.initialItem),a=v=>{s(v),r(!1),t.onItemSelected(v)},l=()=>r(!e),u=t.menuItems.find(v=>v.value===o),f=t.label||u?.label||"",m=t.icon||u?.icon;return nr("div",{style:{position:"relative",display:"inline-block"},ref:n,children:[nr(Ic,{className:t.className,label:f,onClick:l,children:m}),e&&nr("div",{className:"deck-widget-icon-menu",children:nr(iv,{orientation:"vertical",children:t.menuItems.map(v=>nr(sy,{label:v.label,onClick:()=>a(v.value),children:v.icon},v.value))})})]})}var gy=class extends Tn{constructor(e={}){super(e,gy.defaultProps),this.className="deck-widget-view-selector",this.placement="top-left",this.handleSelectMode=r=>{this.viewMode=r,this.updateHTML(),this.props.onViewModeChange(r)},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){io(nr(i4,{className:"deck-widget-view-selector",menuItems:E9e.map(r=>({...r,icon:r.icon()})),initialItem:this.props.initialViewMode,onItemSelected:this.handleSelectMode}),e)}};gy.defaultProps={...Tn.defaultProps,id:"view-selector",placement:"top-left",viewId:null,label:"Split View",initialViewMode:"single",onViewModeChange:()=>{}};var fU={width:"24px",height:"24px"},pU={single:()=>nr("svg",{width:"24",height:"24",style:fU,children:nr("rect",{x:"4",y:"4",width:"16",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})}),"split-horizontal":()=>nr("svg",{width:"24",height:"24",style:fU,children:[nr("rect",{x:"4",y:"4",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),nr("rect",{x:"4",y:"13",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]}),"split-vertical":()=>nr("svg",{width:"24",height:"24",style:fU,children:[nr("rect",{x:"4",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),nr("rect",{x:"13",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]})},E9e=[{value:"single",icon:pU.single,label:"Single View"},{value:"split-horizontal",icon:pU["split-horizontal"],label:"Split Horizontal"},{value:"split-vertical",icon:pU["split-vertical"],label:"Split Vertical"}];var yy=class extends Tn{constructor(e){super(e,yy.defaultProps),this.className="deck-widget-info",this.placement="fill",this.setProps(this.props)}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onCreateRootElement(){let e=super.onCreateRootElement();return Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute"}).forEach(([n,i])=>e.style.setProperty(n,i)),e}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){if(this.props.mode==="hover"&&this.props.getTooltip){let r=this.props.getTooltip(e,this);this.setProps({visible:r!==null,...r,style:{zIndex:"1",...r?.style}})}}onClick(e){if(this.props.mode==="click"&&this.props.getTooltip){let r=this.props.getTooltip(e,this);return this.setProps({visible:r!==null,...r}),r!==null}return this.props.onClick?.(this,e)||!1}onAdd({deck:e,viewId:r}){this.deck=e,r?this.viewport=e.getViewports().find(n=>n.id===r):this.viewport=e.getViewports()[0]}onRenderHTML(e){if(!this.viewport)return;let[r,n]=this.props.position,[i,o]=this.viewport.project([r,n]),s=this.props.minOffset||0,a=10,l=8,u=16,f=o>this.viewport.height/2,m=this.props.style&&this.props.style.background||"rgba(255,255,255,0.9)",v=this.props.visible?nr("div",{className:"popup-container",style:{position:"absolute",left:0,top:0},children:[nr("div",{className:"popup-content",style:{background:m,padding:"10px",position:"relative",...this.props.style},children:this.props.text}),nr("div",{className:"popup-arrow",style:{position:"absolute",width:"0px",height:"0px"}})]}):null;io(v,e),requestAnimationFrame(()=>{if(!this.props.visible||!e.firstChild||!this.viewport)return;let E=e.firstChild,S=E.querySelector(".popup-content"),L=E.querySelector(".popup-arrow");if(!S||!L)return;let O=S.getBoundingClientRect(),q=O.width,G=O.height,H=i-q/2,Y;f?Y=o-a-l-G:Y=o+a+l,H<s&&(H=s),H+q>this.viewport.width-s&&(H=this.viewport.width-s-q),f?Y<s&&(Y=s):Y+G+l>this.viewport.height-s&&(Y=this.viewport.height-s-G-l),E.style.left=`${H}px`,E.style.top=`${Y}px`,E.style.transform="";let te=i-H-u/2;te=Math.max(te,0),te=Math.min(te,q-u),f?(L.style.left=`${te}px`,L.style.bottom=`-${l}px`,L.style.top="",L.style.borderLeft=`${u/2}px solid transparent`,L.style.borderRight=`${u/2}px solid transparent`,L.style.borderTop=`${l}px solid ${m}`,L.style.borderBottom=""):(L.style.left=`${te}px`,L.style.top=`-${l}px`,L.style.bottom="",L.style.borderLeft=`${u/2}px solid transparent`,L.style.borderRight=`${u/2}px solid transparent`,L.style.borderBottom=`${l}px solid ${m}`,L.style.borderTop="")})}};yy.defaultProps={...Tn.defaultProps,id:"info",position:[0,0],text:"",visible:!1,minOffset:0,viewId:null,mode:"hover",getTooltip:void 0,onClick:void 0};var M9e={position:"absolute",top:"100%",left:0,background:"white",border:"1px solid #ccc",borderRadius:"4px",marginTop:"var(--menu-gap, 4px)",zIndex:100},S9e={background:"white",border:"none",padding:"4px",cursor:"pointer",pointerEvents:"auto"},o4=t=>{let{menuItems:e,onItemSelected:r,position:n,style:i}=t,o={...M9e,...i,left:`${n.x}px`,top:`${n.y}px`};return nr("div",{style:o,children:e.map(({key:s,label:a})=>nr("button",{style:{...S9e,display:"block"},onClick:l=>r(s),children:a},s))})};var C9e=2,I9e=3,_y=class extends Tn{constructor(e){super(e,_y.defaultProps),this.className="deck-widget-context-menu",this.placement="fill",this.pickInfo=null,this.pickInfo=null,this.setProps(this.props)}onAdd({deck:e}){let r=document.createElement("div");return r.classList.add("deck-widget","deck-widget-context-menu"),Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute",pointerEvents:"auto"}).forEach(([i,o])=>r.style.setProperty(i,o)),e.getCanvas()?.addEventListener("click",()=>this.hide()),e.getCanvas()?.addEventListener("contextmenu",i=>this.handleContextMenu(i)),r}onRenderHTML(e){let{visible:r,position:n,menuItems:i}=this.props,o=r&&i.length?nr(o4,{menuItems:i,onItemSelected:s=>this.props.onMenuItemSelected(s,this.pickInfo),position:n,style:{pointerEvents:"auto"}}):null;io(o,e)}handleContextMenu(e){if(e&&(e.button===C9e||e.which===I9e)){this.pickInfo=this.deck?.pickObject({x:e.clientX,y:e.clientY})||null;let r=this.pickInfo&&this.props.getMenuItems?.(this.pickInfo,this)||[],n=r.length>0;return this.setProps({visible:n,position:{x:e.clientX,y:e.clientY},menuItems:r}),this.updateHTML(),e.preventDefault(),n}return!1}hide(){this.setProps({visible:!1})}};_y.defaultProps={...Tn.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)};var xy=class extends Tn{constructor(e={}){super(e,xy.defaultProps),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=r=>{let n=r.target,i=Number(n.value);this.currentTime=i,this.props.onTimeChange(i),this.updateHTML()},this.tick=()=>{let[r,n]=this.props.timeRange,i=this.currentTime+this.props.step;i>n&&(i=r),this.currentTime=i,this.props.onTimeChange(i),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){io(nr("div",{style:{display:"flex",alignItems:"center",pointerEvents:"auto"},children:[nr(Ic,{label:this.playing?"Pause":"Play",onClick:this.handlePlayPause,children:nr("div",{className:"text",children:this.playing?"\u23F8":"\u25B6"})}),nr("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()}};xy.defaultProps={...Tn.defaultProps,id:"timeline",placement:"bottom-left",viewId:null,timeRange:[0,100],step:1,initialTime:void 0,onTimeChange:()=>{},playInterval:1e3};var vy=class extends Tn{constructor(e={}){super(e,vy.defaultProps),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){io(nr(Ic,{className:"deck-widget-camera",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture){this.props.onCapture(this);return}let e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){return this.deck?.getCanvas()?.toDataURL(e)}downloadDataURL(e,r){let n=document.createElement("a");n.href=e,n.download=r,n.click()}};vy.defaultProps={...Tn.defaultProps,id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0};var mhe={"--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"},Ahe={"--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"},s4={"--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"},a4={"--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"};var by=class extends Tn{constructor(e={}){super(e,by.defaultProps),this.className="deck-widget-theme",this.placement="top-left",this.themeMode="dark",this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}setProps(e){let{lightModeTheme:r,darkModeTheme:n}=this.props;switch(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e),this.themeMode){case"light":e.lightModeTheme&&!Gi(e.lightModeTheme,r,1)&&this._setThemeMode("light");break;case"dark":e.darkModeTheme&&!Gi(e.darkModeTheme,n,1)&&this._setThemeMode("dark");break;default:Ar.warn(`Invalid theme mode ${this.themeMode}`)()}}onRenderHTML(e){let{lightModeLabel:r,darkModeLabel:n}=this.props;io(nr(Ic,{onClick:this._handleClick.bind(this),label:this.themeMode==="dark"?n:r,className:this.themeMode==="dark"?"deck-widget-moon":"deck-widget-sun"}),e)}onAdd(){this._setThemeMode(this.themeMode)}_handleClick(){let e=this.themeMode==="dark"?"light":"dark";this._setThemeMode(e)}_setThemeMode(e){this.themeMode=e;let r=this.rootElement?.closest(".deck-widget-container");if(r){let n=e==="dark"?this.props.darkModeTheme:this.props.lightModeTheme;sg(r,n);let i=this.themeMode==="dark"?this.props.darkModeLabel:this.props.lightModeLabel;Ar.log(1,`Switched theme to ${i}`,n)(),this.updateHTML()}}_getInitialThemeMode(){let{initialThemeMode:e}=this.props;return e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e}};by.defaultProps={...Tn.defaultProps,id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTheme:s4,darkModeLabel:"Dark Mode",darkModeTheme:a4,initialThemeMode:"auto"};var wy=class extends Tn{constructor(e={}){super(e,wy.defaultProps),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){io(this.loading&&nr(Ic,{className:"deck-widget-spinner",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}onRedraw({layers:e}){let r=e.some(n=>!n.isLoaded);r!==this.loading&&(this.loading=r,this.updateHTML())}handleClick(){}};wy.defaultProps={...Tn.defaultProps,id:"loading",placement:"top-left",viewId:null,label:"Loading layer data"};var Ty=class extends Tn{constructor(e={}){super(e,Ty.defaultProps),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){let r=this._getFps();io(nr(Ic,{children:nr("div",{className:"text",children:["FPS",nr("br",{}),r]})}),e)}_animate(){let e=this._getFps();this._lastFps!==e&&(this._lastFps=e,this.updateHTML()),requestAnimationFrame(()=>this._animate())}_getFps(){return Math.round(this.deck.metrics.fps??0)}};Ty.defaultProps={...Tn.defaultProps,id:"fps",placement:"top-left",viewId:null};Fn();var P9e="\u25B6",R9e="\u2B07",dU=t=>`${t.name}: ${t.count}`;function ghe(t){return t<1e3?`${t.toFixed(2)}ms`:`${(t/1e3).toFixed(2)}s`}function L9e(t){return`${(t/1e6).toFixed(1)} MB`}var yhe={count:dU,averageTime:t=>`${t.name}: ${ghe(t.getAverageTime())}`,totalTime:t=>`${t.name}: ${ghe(t.time)}`,fps:t=>`${t.name}: ${Math.round(t.getHz())}fps`,memory:t=>`${t.name}: ${L9e(t.count)}`},Ey=class extends Tn{constructor(e={}){super(e,Ey.defaultProps),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={...yhe},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(let r in e.formatters){let n=e.formatters[r];this._formatters[r]=typeof n=="string"?yhe[n]||dU:n}e.resetOnUpdate&&(this._resetOnUpdate={...e.resetOnUpdate}),super.setProps(e)}onAdd(){this._stats=this._getStats(),this.updateHTML()}onRenderHTML(e){let r=this._stats,n=this.collapsed,i=this.props.title||r?.id||"Stats",o=[];!n&&r&&r.forEach(s=>{let a=this._getLines(s);this._resetOnUpdate&&this._resetOnUpdate[s.name]&&s.reset(),a.forEach((l,u)=>{o.push(nr("div",{style:{whiteSpace:"pre"},children:l},`${s.name}-${u}`))})}),io(nr("div",{className:"deck-widget-stats-container",style:{cursor:"default"},children:[nr("div",{className:"deck-widget-stats-header",style:{cursor:"pointer",pointerEvents:"auto"},onClick:this._toggleCollapsed,children:[n?P9e:R9e," ",i]}),!n&&nr("div",{className:"deck-widget-stats-content",children:o})]}),e)}onRedraw(){let 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(gp.stats.stats.values())[0];case"device":let r=this.deck?.device?.statsManager.stats.values();return r?Array.from(r)[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||""]||dU)(e).split(`
|
|
5635
|
+
`},A3=class extends sI{getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(e=Boolean(this.props.clipByInstance)),this.state.clipByInstance=e,e?{modules:[lUe],inject:uUe}:{modules:[hUe],inject:fUe}}draw(){let{clipBounds:e}=this.props,r={};if(this.state.clipByInstance)r.bounds=e;else{let n=this.projectPosition([e[0],e[1],0]),i=this.projectPosition([e[2],e[3],0]);r.bounds=[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[0],i[0]),Math.max(n[1],i[1])]}this.setShaderModuleProps({clip:r})}};A3.defaultProps=cUe;A3.extensionName="ClipExtension";var Sz=A3;var g3={x:0,y:1,z:2};function Jg(t,e={}){let{start:r=0,end:n=t.length,plane:i="xy"}=e,o=e.size||2,s=0,a=g3[i[0]],l=g3[i[1]];for(let u=r,f=n-o;u<n;u+=o)s+=(t[u+a]-t[f+a])*(t[u+l]+t[f+l]),f=u;return s/2}function Iz(t,e,r=2,n,i="xy"){let o=e&&e.length,s=o?e[0]*r:t.length,a=Kle(t,0,s,r,!0,n&&n[0],i),l=[];if(!a||a.next===a.prev)return l;let u,f,m,v,E,S,L;if(o&&(a=_Ue(t,e,a,r,n,i)),t.length>80*r){v=f=t[0],E=m=t[1];for(let O=r;O<s;O+=r)S=t[O],L=t[O+1],S<v&&(v=S),L<E&&(E=L),S>f&&(f=S),L>m&&(m=L);u=Math.max(f-v,m-E),u=u!==0?32767/u:0}return y3(a,l,r,v,E,u,0),l}function Kle(t,e,r,n,i,o,s){let a,l;o===void 0&&(o=Jg(t,{start:e,end:r,size:n,plane:s}));let u=g3[s[0]],f=g3[s[1]];if(i===o<0)for(a=e;a<r;a+=n)l=$le(a,t[a+u],t[a+f],l);else for(a=r-n;a>=e;a-=n)l=$le(a,t[a+u],t[a+f],l);return l&&CL(l,l.next)&&(x3(l),l=l.next),l}function ey(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(CL(r,r.next)||Ks(r.prev,r,r.next)===0)){if(x3(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function y3(t,e,r,n,i,o,s){if(!t)return;!s&&o&&TUe(t,n,i,o);let a=t,l,u;for(;t.prev!==t.next;){if(l=t.prev,u=t.next,o?AUe(t,n,i,o):mUe(t)){e.push(l.i/r|0),e.push(t.i/r|0),e.push(u.i/r|0),x3(t),t=u.next,a=u.next;continue}if(t=u,t===a){s?s===1?(t=gUe(ey(t),e,r),y3(t,e,r,n,i,o,2)):s===2&&yUe(t,e,r,n,i,o):y3(ey(t),e,r,n,i,o,1);break}}}function mUe(t){let e=t.prev,r=t,n=t.next;if(Ks(e,r,n)>=0)return!1;let i=e.x,o=r.x,s=n.x,a=e.y,l=r.y,u=n.y,f=i<o?i<s?i:s:o<s?o:s,m=a<l?a<u?a:u:l<u?l:u,v=i>o?i>s?i:s:o>s?o:s,E=a>l?a>u?a:u:l>u?l:u,S=n.next;for(;S!==e;){if(S.x>=f&&S.x<=v&&S.y>=m&&S.y<=E&&$x(i,a,o,l,s,u,S.x,S.y)&&Ks(S.prev,S,S.next)>=0)return!1;S=S.next}return!0}function AUe(t,e,r,n){let i=t.prev,o=t,s=t.next;if(Ks(i,o,s)>=0)return!1;let a=i.x,l=o.x,u=s.x,f=i.y,m=o.y,v=s.y,E=a<l?a<u?a:u:l<u?l:u,S=f<m?f<v?f:v:m<v?m:v,L=a>l?a>u?a:u:l>u?l:u,O=f>m?f>v?f:v:m>v?m:v,q=Cz(E,S,e,r,n),G=Cz(L,O,e,r,n),H=t.prevZ,Y=t.nextZ;for(;H&&H.z>=q&&Y&&Y.z<=G;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&$x(a,f,l,m,u,v,H.x,H.y)&&Ks(H.prev,H,H.next)>=0||(H=H.prevZ,Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&$x(a,f,l,m,u,v,Y.x,Y.y)&&Ks(Y.prev,Y,Y.next)>=0))return!1;Y=Y.nextZ}for(;H&&H.z>=q;){if(H.x>=E&&H.x<=L&&H.y>=S&&H.y<=O&&H!==i&&H!==s&&$x(a,f,l,m,u,v,H.x,H.y)&&Ks(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;Y&&Y.z<=G;){if(Y.x>=E&&Y.x<=L&&Y.y>=S&&Y.y<=O&&Y!==i&&Y!==s&&$x(a,f,l,m,u,v,Y.x,Y.y)&&Ks(Y.prev,Y,Y.next)>=0)return!1;Y=Y.nextZ}return!0}function gUe(t,e,r){let n=t;do{let i=n.prev,o=n.next.next;!CL(i,o)&&Zle(i,n,n.next,o)&&_3(i,o)&&_3(o,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(o.i/r|0),x3(n),x3(n.next),n=t=o),n=n.next}while(n!==t);return ey(n)}function yUe(t,e,r,n,i,o){let s=t;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&SUe(s,a)){let l=Qle(s,a);s=ey(s,s.next),l=ey(l,l.next),y3(s,e,r,n,i,o,0),y3(l,e,r,n,i,o,0);return}a=a.next}s=s.next}while(s!==t)}function _Ue(t,e,r,n,i,o){let s=[],a,l,u,f,m;for(a=0,l=e.length;a<l;a++)u=e[a]*n,f=a<l-1?e[a+1]*n:t.length,m=Kle(t,u,f,n,!1,i&&i[a+1],o),m===m.next&&(m.steiner=!0),s.push(MUe(m));for(s.sort(xUe),a=0;a<s.length;a++)r=vUe(s[a],r);return r}function xUe(t,e){return t.x-e.x}function vUe(t,e){let r=bUe(t,e);if(!r)return e;let n=Qle(r,t);return ey(n,n.next),ey(r,r.next)}function bUe(t,e){let r=e,n=t.x,i=t.y,o=-1/0,s;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){let v=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(v<=n&&v>o&&(o=v,s=r.x<r.next.x?r:r.next,v===n))return s}r=r.next}while(r!==e);if(!s)return null;let a=s,l=s.x,u=s.y,f=1/0,m;r=s;do n>=r.x&&r.x>=l&&n!==r.x&&$x(i<u?n:o,i,l,u,i<u?o:n,i,r.x,r.y)&&(m=Math.abs(i-r.y)/(n-r.x),_3(r,t)&&(m<f||m===f&&(r.x>s.x||r.x===s.x&&wUe(s,r)))&&(s=r,f=m)),r=r.next;while(r!==a);return s}function wUe(t,e){return Ks(t.prev,t,e.prev)<0&&Ks(e.next,t,t.next)<0}function TUe(t,e,r,n){let i=t;do i.z===0&&(i.z=Cz(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,EUe(i)}function EUe(t){let e,r,n=1,i,o,s,a,l,u;do{for(o=t,t=null,u=null,i=0;o;){for(i++,a=o,s=0,r=0;r<n&&(s++,a=a.nextZ,!!a);r++);for(l=n;s>0||l>0&&a;)s!==0&&(l===0||!a||o.z<=a.z)?(e=o,o=o.nextZ,s--):(e=a,a=a.nextZ,l--),u?u.nextZ=e:t=e,e.prevZ=u,u=e;o=a}u.nextZ=null,n*=2}while(i>1);return t}function Cz(t,e,r,n,i){return t=(t-r)*i|0,e=(e-n)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function MUe(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function $x(t,e,r,n,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(n-a)>=(r-s)*(e-a)&&(r-s)*(o-a)>=(i-s)*(n-a)}function SUe(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!CUe(t,e)&&(_3(t,e)&&_3(e,t)&&IUe(t,e)&&(Ks(t.prev,t,e.prev)||Ks(t,e.prev,e))||CL(t,e)&&Ks(t.prev,t,t.next)>0&&Ks(e.prev,e,e.next)>0)}function Ks(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function CL(t,e){return t.x===e.x&&t.y===e.y}function Zle(t,e,r,n){let i=SL(Ks(t,e,r)),o=SL(Ks(t,e,n)),s=SL(Ks(r,n,t)),a=SL(Ks(r,n,e));return!!(i!==o&&s!==a||i===0&&ML(t,r,e)||o===0&&ML(t,n,e)||s===0&&ML(r,t,n)||a===0&&ML(r,e,n))}function ML(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function SL(t){return t>0?1:t<0?-1:0}function CUe(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Zle(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function _3(t,e){return Ks(t.prev,t,t.next)<0?Ks(t,e,t.next)>=0&&Ks(t,t.prev,e)>=0:Ks(t,e,t.prev)<0||Ks(t,t.next,e)<0}function IUe(t,e){let r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Qle(t,e){let r=new v3(t.i,t.x,t.y),n=new v3(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function $le(t,e,r,n){let i=new v3(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function x3(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var v3=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Lz(t,e,r){let n=BUe(t),i=Object.keys(n).filter(o=>n[o]!==Array);return kUe(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||i,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function BUe(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let i=r.properties[n];e[n]=VUe(i,e[n])}return e}function kUe(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:i,linePositionsCount:o,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:u,polygonRingsCount:f,polygonFeaturesCount:m,propArrayTypes:v,coordLength:E}=e,{numericPropKeys:S=[],PositionDataType:L=Float32Array,triangulate:O=!0}=r,q=t[0]&&"id"in t[0],G=t.length>65535?Uint32Array:Uint16Array,H={type:"Point",positions:new L(n*E),globalFeatureIds:new G(n),featureIds:i>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},Y={type:"LineString",pathIndices:o>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new L(o*E),globalFeatureIds:new G(o),featureIds:a>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},te={type:"Polygon",polygonIndices:l>65535?new Uint32Array(u+1):new Uint16Array(u+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new L(l*E),globalFeatureIds:new G(l),featureIds:m>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};O&&(te.triangles=[]);for(let le of[H,Y,te])for(let ie of S){let J=v[ie];le.numericProps[ie]=new J(le.positions.length/E)}Y.pathIndices[s]=o,te.polygonIndices[u]=l,te.primitivePolygonIndices[f]=l;let D={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let le of t){let ie=le.geometry,J=le.properties||{};switch(ie.type){case"Point":DUe(ie,H,D,E,J),H.properties.push(Rz(J,S)),q&&H.fields.push({id:le.id}),D.pointFeature++;break;case"LineString":NUe(ie,Y,D,E,J),Y.properties.push(Rz(J,S)),q&&Y.fields.push({id:le.id}),D.lineFeature++;break;case"Polygon":FUe(ie,te,D,E,J),te.properties.push(Rz(J,S)),q&&te.fields.push({id:le.id}),D.polygonFeature++;break;default:throw new Error("Invalid geometry type")}D.feature++}return UUe(H,Y,te,E)}function DUe(t,e,r,n,i){e.positions.set(t.data,r.pointPosition*n);let o=t.data.length/n;Oz(e,i,r.pointPosition,o),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+o),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+o),r.pointPosition+=o}function NUe(t,e,r,n,i){e.positions.set(t.data,r.linePosition*n);let o=t.data.length/n;Oz(e,i,r.linePosition,o),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+o),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+o);for(let s=0,a=t.indices.length;s<a;++s){let l=t.indices[s],u=s===a-1?t.data.length:t.indices[s+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(u-l)/n}}function FUe(t,e,r,n,i){e.positions.set(t.data,r.polygonPosition*n);let o=t.data.length/n;Oz(e,i,r.polygonPosition,o),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+o),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+o);for(let s=0,a=t.indices.length;s<a;++s){let l=r.polygonPosition;e.polygonIndices[r.polygonObject++]=l;let u=t.areas[s],f=t.indices[s],m=t.indices[s+1];for(let E=0,S=f.length;E<S;++E){let L=f[E],O=E===S-1?m===void 0?t.data.length:m[0]:f[E+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(O-L)/n}let v=r.polygonPosition;zUe(e,u,f,{startPosition:l,endPosition:v,coordLength:n})}}function zUe(t,e,r,{startPosition:n,endPosition:i,coordLength:o}){if(!t.triangles)return;let s=n*o,a=i*o,l=t.positions.subarray(s,a),u=r[0],f=r.slice(1).map(v=>(v-u)/o),m=Iz(l,f,o,e);for(let v=0,E=m.length;v<E;++v)t.triangles.push(n+m[v])}function Pz(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function UUe(t,e,r,n){let i={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Pz(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Pz(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Pz(r.numericProps,1)}};return i.polygons&&r.triangles&&(i.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),i}function Oz(t,e,r,n){for(let i in t.numericProps)if(i in e){let o=e[i];t.numericProps[i].fill(o,r,r+n)}}function Rz(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function VUe(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function RL(t,e){let r=e?.globalFeatureId;return r!==void 0?jUe(t,r):HUe(t,e?.type)}function jUe(t,e){let r=rue(t);for(let n of r){let i=0,o=n.featureIds.value[0];for(let s=0;s<n.featureIds.value.length;s++){let a=n.featureIds.value[s];if(a!==o){if(e===n.globalFeatureIds.value[i])return IL(n,i,s);i=s,o=a}}if(e===n.globalFeatureIds.value[i])return IL(n,i,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function HUe(t,e){let r=rue(t,e);return WUe(r)}function tue(t,e,r){switch(t.type){case"Point":return YUe(t,e,r);case"LineString":return XUe(t,e,r);case"Polygon":return nue(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function rue(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function WUe(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,i=r.featureIds.value[0];for(let o=0;o<r.featureIds.value.length;o++){let s=r.featureIds.value[o];s!==i&&(e.push(IL(r,n,o)),n=o,i=s)}e.push(IL(r,n,r.featureIds.value.length))}return e}function IL(t,e,r){let n=tue(t,e,r),i=GUe(t,e,r),o=qUe(t,e,r);return{type:"Feature",geometry:n,properties:i,...o}}function qUe(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function GUe(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let i in t.numericProps)n[i]=t.numericProps[i].value[e];return n}function nue(t,e=-1/0,r=1/0){let{positions:n}=t,i=t.polygonIndices.value.filter(l=>l>=e&&l<=r),o=t.primitivePolygonIndices.value.filter(l=>l>=e&&l<=r);if(!(i.length>2)){let l=[];for(let u=0;u<o.length-1;u++){let f=o[u],m=o[u+1],v=PL(n,f,m);l.push(v)}return{type:"Polygon",coordinates:l}}let a=[];for(let l=0;l<i.length-1;l++){let u=i[l],f=i[l+1],m=nue(t,u,f).coordinates;a.push(m)}return{type:"MultiPolygon",coordinates:a}}function XUe(t,e=-1/0,r=1/0){let{positions:n}=t,i=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(i.length>2))return{type:"LineString",coordinates:PL(n,i[0],i[1])};let s=[];for(let a=0;a<i.length-1;a++){let l=PL(n,i[a],i[a+1]);s.push(l)}return{type:"MultiLineString",coordinates:s}}function YUe(t,e,r){let{positions:n}=t,i=PL(n,e,r);return i.length>1?{type:"MultiPoint",coordinates:i}:{type:"Point",coordinates:i[0]}}function PL(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let i=e;i<r;i++){let o=Array();for(let s=i*t.size;s<(i+1)*t.size;s++)o.push(Number(t.value[s]));n.push(o)}return n}var Uz=vc(uue(),1);function hue(t){let e=t.length;if(e<=1)return[t];let r=[],n,i;for(let o=0;o<e;o++){let s=fVe(t[o]);s!==0&&(i===void 0&&(i=s<0),i===s<0?(n&&r.push(n),n=[t[o]]):n&&n.push(t[o]))}return n&&r.push(n),r}function fVe(t){let e=0;for(let r=0,n=t.length-1,i,o;r<t.length;n=r++)i=t[r],o=t[n],e+=(o[0]-i[0])*(i[1]+o[1]);return e}function fue(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?pVe(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function pVe(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}var Qx=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,i,o){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=i,this._values=o,e.readFields(fue,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,i=0,o=0,s=0,a=[],l;for(;e.pos<r;){if(i<=0){let u=e.readVarint();n=u&7,i=u>>3}if(i--,n===1||n===2)o+=e.readSVarint(),s+=e.readSVarint(),n===1&&(l&&a.push(l),l=[]),l&&l.push([o,s]);else if(n===7)l&&l.push(l[0].slice());else throw new Error(`unknown command ${n}`)}return l&&a.push(l),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,i=0,o=0,s=0,a=1/0,l=-1/0,u=1/0,f=-1/0;for(;e.pos<r;){if(i<=0){let m=e.readVarint();n=m&7,i=m>>3}if(i--,n===1||n===2)o+=e.readSVarint(),s+=e.readSVarint(),o<a&&(a=o),o>l&&(l=o),s<u&&(u=s),s>f&&(f=s);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,u,l,f]}_toGeoJSON(e){let r=this.loadGeometry(),n=Qx.types[this.type],i,o;switch(this.type){case 1:let a=[];for(i=0;i<r.length;i++)a[i]=r[i][0];r=a,e(r,this);break;case 2:for(i=0;i<r.length;i++)e(r[i],this);break;case 3:for(r=hue(r),i=0;i<r.length;i++)for(o=0;o<r[i].length;o++)e(r[i][o],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let s={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(s.id=this.id),s}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:i}=e,o=this.extent*Math.pow(2,i),s=this.extent*r,a=this.extent*n;function l(u){for(let f=0;f<u.length;f++){let m=u[f];m[0]=(m[0]+s)*360/o-180;let v=180-(m[1]+a)*360/o;m[1]=360/Math.PI*Math.atan(Math.exp(v*Math.PI/180))-90}}return this._toGeoJSON(l)}};var BL=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(dVe,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new Qx(this._pbf,r,this.extent,this._keys,this._values)}};function dVe(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(mVe(r)))}function mVe(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var kL=class{layers;constructor(e,r){this.layers=e.readFields(AVe,{},r)}};function AVe(t,e,r){if(t===3&&r){let n=new BL(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function pue(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Jg(t.data)]],indices:[t.indices]};let n=[],i=[],o=[],s=[],a,l=0;for(let u,f=0,m;f<e;f++){m=t.indices[f]-l,u=t.indices[f+1]-l||t.data.length;let v=t.data.slice(m,u),E=Jg(v);if(E===0){let S=t.data.slice(0,m),L=t.data.slice(u);t.data=S.concat(L),l+=u-m;continue}a===void 0&&(a=E<0),a===E<0?(s.length&&(n.push(o),i.push(s)),s=[m],o=[E]):(o.push(E),s.push(m))}return o&&n.push(o),s.length&&i.push(s),{type:r,areas:n,indices:i,data:t.data}}function due(t,e,r,n){for(let i=0,o=t.length;i<o;i+=2){t[i]=(t[i]+e)*360/n-180;let s=180-(t[i+1]+r)*360/n;t[i+1]=360/Math.PI*Math.atan(Math.exp(s*Math.PI/180))-90}}function mue(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?gVe(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function gVe(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}var Aue,ty,Dz,DL,Nz,Fz,b3;var NL=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,i,o,s){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=i,this._values=o,this._geometryInfo=s,e.readFields(mue,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Aue=e.readVarint()+e.pos,ty=1,DL=0,Nz=0,Fz=0,b3=0;let r=[],n=[];for(;e.pos<Aue;)if(DL<=0&&(Dz=e.readVarint(),ty=Dz&7,DL=Dz>>3),DL--,ty===1||ty===2)Nz+=e.readSVarint(),Fz+=e.readSVarint(),ty===1&&r.push(b3),n.push(Nz,Fz),b3+=2;else if(ty===7){if(b3>0){let i=r[r.length-1];n.push(n[i],n[i+1]),b3+=2}}else throw new Error(`unknown command ${ty}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let i=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/i,n={type:"LineString",...r};break;case 3:n=pue(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let s of n.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=n.data.length/i;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let o={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(o.id=this.id),o}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:i}=e,o=this.extent*Math.pow(2,i),s=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(l=>due(l,s,a,o))}};var FL=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(yVe,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new NL(this._pbf,n,this.extent,this._keys,this._values,r)}};function yVe(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(_Ve(r)))}function _Ve(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var zL=class{layers;constructor(e,r){this.layers=e.readFields(xVe,{},r)}};function xVe(t,e,r){if(t===3&&r){let n=new FL(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Vz(t,e){let r=bVe(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:zz(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:gue(t,r)};case"geojson":return gue(t,r);case"binary-geometry":return zz(t,r);case"binary":return zz(t,r);default:throw new Error(n||"undefined shape")}}function zz(t,e){let[r,n]=vVe(t,e),i=Lz(r,n);return i.byteLength=t.byteLength,i}function vVe(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let i=new zL(new Uz.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(i.layers)).forEach(s=>{let a=i.layers[s];if(a)for(let l=0;l<a.length;l++){let u=a.feature(l,n),f=TVe(u,e,s);r.push(f)}}),[r,n]}function gue(t,e){if(t.byteLength<=0)return[];let r=[],n=new kL(new Uz.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(o=>{let s=n.layers[o];if(s)for(let a=0;a<s.length;a++){let l=s.feature(a),u=wVe(l,e,o);r.push(u)}}),r}function bVe(t){if(!t?.mvt)throw new Error("mvt options required");let e=t.mvt?.coordinates==="wgs84",{tileIndex:r}=t.mvt,n=r&&Number.isFinite(r.x)&&Number.isFinite(r.y)&&Number.isFinite(r.z);if(e&&!n)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function wVe(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:EVe);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function TVe(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:MVe);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function EVe(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let i=t[n];i[0]/=r,i[1]/=r}}function MVe(t,e){let{extent:r}=e;for(let n=0,i=t.length;n<i;++n)t[n]/=r}var SVe="4.2.1",UL={dataType:null,batchType:null,name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:SVe,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},CVe={...UL,parse:async(t,e)=>Vz(t,e),parseSync:Vz,binary:!0};var IVe={Point:yue,MultiPoint:PVe,LineString:_ue,MultiLineString:RVe,Polygon:xue,MultiPolygon:LVe};function yue([t,e],[r,n],i){let o=nc(r[0],n[0],t),s=nc(r[1],n[1],e);return i.unprojectFlat([o,s])}function jz(t,e,r){return t.map(n=>yue(n,e,r))}function PVe(t,e,r){return jz(t,e,r)}function _ue(t,e,r){return jz(t,e,r)}function RVe(t,e,r){return t.map(n=>_ue(n,e,r))}function xue(t,e,r){return t.map(n=>jz(n,e,r))}function LVe(t,e,r){return t.map(n=>xue(n,e,r))}function vue(t,e,r){let n=r.projectFlat([e.west,e.north]),i=r.projectFlat([e.east,e.south]),o=[n,i];return{...t,coordinates:IVe[t.type](t.coordinates,o,r)}}var OVe=["points","lines","polygons"];function Hz(t,e,r,n){for(let i of OVe){let o=t[i]&&BVe(t[i],e,r,n);if(o>=0)return o}return-1}function BVe(t,e,r,n){let i=t.featureIds.value;if(!i.length)return-1;let o=0,s=i[i.length-1]+1;if(n){let l=kVe(t,n);if(l)o=l[0],s=l[1]+1;else return-1}let a=-1;if(e in t.numericProps){let l=t.numericProps[e].value.findIndex((u,f)=>u===r&&i[f]>=o&&i[f]<s);return l>=0?t.globalFeatureIds.value[l]:-1}else e?a=bue(t.properties,l=>l[e]===r,o,s):t.fields&&(a=bue(t.fields,l=>l.id===r,o,s));return a>=0?DVe(t,a):-1}function kVe(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let i=0;i<n.length;i++){let{layerName:o}=n[i];o&&(r[o]?r[o][1]=i:r[o]=[i,i])}t.__layers=r}return t.__layers[e]}function DVe(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,i=t.globalFeatureIds.value;for(let o=0;o<n.length;o++)r[n[o]]=i[o];t.__ids=r}return t.__ids[e]}function bue(t,e,r,n){for(let i=r;i<n;i++)if(e(t[i],i))return i;return-1}var Wz=512,NVe={...bg.defaultProps,data:b0,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[UL],binary:!0},w3=class extends Bg{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:i}){i.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:i}),this._setWGS84PropertyForTiles());let{highlightColor:o}=e;o!==r.highlightColor&&Array.isArray(o)&&this.setState({highlightColor:o})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!k6(e)){let{onDataLoad:n,fetch:i}=this.props;this.setState({data:null,tileJSON:null});try{r=await i(e,{propName:"data",layer:this,loaders:[]})}catch(o){this.raiseError(o,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:i}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(i)||r.maxzoom<i)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:i,signal:o}=e,s=Fp(r,e);if(!s)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:l}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:i},gis:n?{format:"binary"}:{}},l(s,{propName:"data",layer:this,loadOptions:a,signal:o})}renderSubLayers(e){let{x:r,y:n,z:i}=e.tile.index,o=Math.pow(2,i),s=Wz/o,a=-s,l=Wz*r/o,u=Wz*(1-n/o),f=new Dn().scale([s,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[l,u,0],e.coordinateSystem=Kr.CARTESIAN,e.extensions=[...e.extensions||[],new Sz]);let m=super.renderSubLayers(e);return this.state.binary&&!(m instanceof bg)&&Ar.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),m}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:i}=this.state,o=e.object,s=null,a=null;o&&(s=qz(o,r),a=wue(o));let{highlightColor:l}=this.props;typeof l=="function"&&(l=l(e)),(n!==s||i!==a)&&this.setState({highlightColor:l,hoveredFeatureId:s,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=RL(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=Eue(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:i}=this.state,{uniqueIdProperty:o,highlightedFeatureId:s}=this.props,a=e.content,l=Tue(s);if(!(Tue(r)||l))return-1;let f=l?s:r;return Array.isArray(a)?a.findIndex(m=>{let v=qz(m,o)===f,E=l||wue(m)===n;return v&&E}):a&&i?Hz(a,o,f,l?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,i=n.width,o=n.height,s=n.x,a=n.y,l=[this.id];return r.pickObjects({x:s,y:a,width:i,height:o,layerIds:l,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,i=[];for(let o of r){let s=qz(o.object,this.props.uniqueIdProperty);s===void 0?i.push(o.object):n.has(s)||(n.add(s),i.push(o.object))}return i}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:i}=n;if(n._contentWGS84===void 0&&D6(i)){let o=this.state.binary?RL(n.content):n.content;n._contentWGS84=o.map(s=>Eue(s,i,this.context.viewport))}return n._contentWGS84}})})}};w3.layerName="MVTLayer";w3.defaultProps=NVe;var Mue=w3;function qz(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function wue(t){return t.properties?.layerName||null}function Tue(t){return t!=null&&t!==""}function Eue(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>vue(t.geometry,e,r).coordinates}),n}var Sue="0123456789bcdefghjkmnpqrstuvwxyz",Cue={};for(let t=0;t<Sue.length;t++)Cue[Sue.charAt(t)]=t;var FVe=-90,zVe=90,UVe=-180,VVe=180;function jVe(t){let e=!0,r=zVe,n=FVe,i=VVe,o=UVe,s,a=0;for(let l=0,u=t.length;l<u;l++){let f=t[l].toLowerCase();a=Cue[f];for(let m=4;m>=0;m--){let v=a>>m&1;e?(s=(i+o)/2,v===1?o=s:i=s):(s=(r+n)/2,v===1?n=s:r=s),e=!e}}return[n,o,r,i]}function Iue(t){let[e,r,n,i]=jVe(t);return[i,n,i,e,r,e,r,n,i,n]}var HVe={getGeohash:{type:"accessor",value:t=>t.geohash}},T3=class extends Lh{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,i)=>Iue(r(n,i))}}};T3.layerName="GeohashLayer";T3.defaultProps=HVe;var Pue=T3;function Jx(t,e=""){if(!t)throw new Error(`JSON conversion error ${e}`)}function Lue(t,e){let r=qVe(e),n=t;for(let i of r)n=WVe(n)?n[i]:void 0;return n}function WVe(t){return t!==null&&typeof t=="object"}var Rue={};function qVe(t){if(typeof t=="string"){let e=Rue[t];return e||(e=t.split("."),Rue[t]=e),e}return Array.isArray(t)?t:[t]}var Gz=vc(Oue(),1);var Bue={"||":(t,e)=>t||e,"&&":(t,e)=>t&&e,"|":(t,e)=>t|e,"^":(t,e)=>t^e,"&":(t,e)=>t&e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,"<":(t,e)=>t<e,">":(t,e)=>t>e,"<=":(t,e)=>t<=e,">=":(t,e)=>t>=e,"<<":(t,e)=>t<<e,">>":(t,e)=>t>>e,">>>":(t,e)=>t>>>e,"+":(t,e)=>t+e,"-":(t,e)=>t-e,"*":(t,e)=>t*e,"/":(t,e)=>t/e,"%":(t,e)=>t%e},GVe={"-":t=>-t,"+":t=>+t,"~":t=>~t,"!":t=>!t};function kue(t,e){return t.map(function(r){return Cc(r,e)})}function Due(t,e){let r=Cc(t.object,e),n;if(t.computed?n=Cc(t.property,e):n=t.property.name,/^__proto__|prototype|constructor$/.test(n))throw Error(`Access to member "${n}" disallowed.`);return[r,r[n]]}function Cc(t,e){let r=t;switch(r.type){case"ArrayExpression":return kue(r.elements,e);case"BinaryExpression":return Bue[r.operator](Cc(r.left,e),Cc(r.right,e));case"CallExpression":let n,i,o;return r.callee.type==="MemberExpression"?(o=Due(r.callee,e),n=o[0],i=o[1]):i=Cc(r.callee,e),typeof i!="function"?void 0:i.apply(n,kue(r.arguments,e));case"ConditionalExpression":return Cc(r.test,e)?Cc(r.consequent,e):Cc(r.alternate,e);case"Identifier":return e[r.name];case"Literal":return r.value;case"LogicalExpression":return r.operator==="||"?Cc(r.left,e)||Cc(r.right,e):r.operator==="&&"?Cc(r.left,e)&&Cc(r.right,e):Bue[r.operator](Cc(r.left,e),Cc(r.right,e));case"MemberExpression":return Due(r,e)[1];case"ThisExpression":return e;case"UnaryExpression":return GVe[r.operator](Cc(r.argument,e));default:return}}var Xz={"-":t=>t};function ry(t,e){if(t in Xz)return Xz[t];let r,n=(0,Gz.default)(t);return n.type==="Identifier"?r=i=>Lue(i,t):(Yz(n,i=>{if(i.type==="CallExpression")throw new Error("Function calls not allowed in JSON expressions")}),r=i=>Cc(n,i)),Xz[t]=r,r}function Yz(t,e){if(Array.isArray(t))t.forEach(r=>Yz(r,e));else if(t&&typeof t=="object"){t.type&&e(t);for(let r in t)Yz(t[r],e)}}var ev="@@=",$z="@@#",Nue="@@type",jL="@@function";var Fue=t=>t&&typeof t=="object",cm=class{constructor(...e){this.typeKey=Nue,this.functionKey=jL,this.log=console,this.classes={},this.reactComponents={},this.enumerations={},this.constants={},this.functions={},this.React=null,this.convertFunction=ry,this.preProcessClassProps=(r,n)=>n,this.postProcessConvertedJson=r=>r;for(let r of e)this.merge(r)}merge(e){for(let r in e)switch(r){case"layers":case"views":Object.assign(this.classes,e[r]);break;default:if(r in this){let n=e[r];this[r]=Fue(this[r])?Object.assign(this[r],n):n}}}validate(e){return Jx(!this.typeKey||typeof this.typeKey=="string"),Jx(Fue(this.classes)),!0}};function XVe(t){return typeof t=="string"&&t.startsWith(ev)}function YVe(t){return t.replace(ev,"")}function tv(t,e){let r={};for(let n in t){let i=t[n];XVe(i)&&(i=YVe(i),i=ry(i,e)),r[n]=i}return r}function zue(t,e,r){let n=r.classes[t],i=r.reactComponents[t];if(!n&&!i){let{log:o}=r;if(o){let s=JSON.stringify(e,null,0).slice(0,40);o.warn(`JSON converter: No registered class of type ${t}(${s}...) `)}return null}return n?$Ve(n,e,r):KVe(i,e,r)}function $Ve(t,e,r){return r.preProcessClassProps&&(e=r.preProcessClassProps(t,e,r)),e=tv(e,r),new t(e)}function KVe(t,e,r){let{React:n}=r,{children:i=[]}=e;return delete e.children,r.preProcessClassProps&&(e=r.preProcessClassProps(t,e,r)),e=tv(e,r),n.createElement(t,e,i)}function Uue(t,e,r){let n=r.functions[t];if(!n){let{log:i}=r;if(i){let o=JSON.stringify(e,null,0).slice(0,40);i.warn(`JSON converter: No registered function ${t}(${o}...) `)}return null}return n(e)}function Kz(t){return typeof t=="string"?JSON.parse(t):t}var Zz=t=>t&&typeof t=="object",ny=class{constructor(e){this.log=console,this.onJSONChange=()=>{},this.json=null,this.convertedJson=null,this.setProps(e)}finalize(){}setProps(e){"configuration"in e&&(this.configuration=e.configuration instanceof cm?e.configuration:new cm(e.configuration)),"onJSONChange"in e&&(this.onJSONChange=e.onJSONChange)}mergeConfiguration(e){this.configuration.merge(e)}convert(e){if(!e||e===this.json)return this.convertedJson;this.json=e;let r=Kz(e),n=ZVe(r,this.configuration);return n=this.configuration.postProcessConvertedJson(n),this.convertedJson=n,n}convertJson(e){return this.convert(e)}};function ZVe(t,e){return e=new cm(e),Qz(t,"",e)}function Qz(t,e,r){return Array.isArray(t)?t.map((n,i)=>Qz(n,String(i),r)):QVe(t,r)?JVe(t,r):Zz(t)?jL in t?e9e(t,r):Jz(t,r):typeof t=="string"?t9e(t,e,r):t}function QVe(t,e){let{typeKey:r}=e;return Zz(t)&&Boolean(t[r])}function JVe(t,e){let{typeKey:r}=e,n=t[r],i={...t};return delete i[r],i=Jz(i,e),zue(n,i,e)}function e9e(t,e){let{functionKey:r}=e,n=t[r],i={...t};return delete i[r],i=Jz(i,e),Uue(n,i,e)}function Jz(t,e){Jx(Zz(t));let r={};for(let n in t){let i=t[n];r[n]=Qz(i,n,e)}return r}function t9e(t,e,r){if(t.startsWith(ev)&&r.convertFunction)return t=t.replace(ev,""),r.convertFunction(t,r);if(t.startsWith($z)){if(t=t.replace($z,""),r.constants[t])return r.constants[t];let[n,i]=t.split(".");return r.enumerations[n][i]}return t}var rv={onInitialize:t=>t,onFinalize:t=>t,onMessage:t=>t},qp=class{static setCallbacks({onInitialize:e,onFinalize:r,onMessage:n}){e&&(rv.onInitialize=e),r&&(rv.onFinalize=r),n&&(rv.onMessage=n)}constructor(e="Transport"){this._messageQueue=[],this.userData={},this._destroyed=!1,this.name=e}getRootDOMElement(){return typeof document<"u"?document.body:null}sendJSONMessage(){console.error("Back-channel not implemented for this transport")}sendBinaryMessage(){console.error("Back-channel not implemented for this transport")}_initialize(e={}){let r={transport:this,...e};rv.onInitialize(r)}_finalize(e={}){let r={transport:this,...e};rv.onFinalize(r),this._destroyed=!0}_messageReceived(e={}){e={transport:this,...e},console.debug("Delivering transport message",e),rv.onMessage(e)}static _stringifyJSONSafe(e){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))try{return JSON.parse(JSON.stringify(i))}catch{return}r.add(i)}return i})}};function Vue(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null||Object.keys(t).length!==Object.keys(e).length)return!1;for(let r in t)if(!(r in e)||t[r]!==e[r])return!1;for(let r in e)if(!(r in t))return!1;return!0}var YL,ss,Gue,r9e,iy,jue,Xue,eU,iU,tU,rU,n9e,M3={},Yue=[],i9e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,oU=Array.isArray;function z0(t,e){for(var r in e)t[r]=e[r];return t}function $ue(t){var e=t.parentNode;e&&e.removeChild(t)}function o9e(t,e,r){var n,i,o,s={};for(o in e)o=="key"?n=e[o]:o=="ref"?i=e[o]:s[o]=e[o];if(arguments.length>2&&(s.children=arguments.length>3?YL.call(arguments,2):r),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)s[o]===void 0&&(s[o]=t.defaultProps[o]);return WL(t,s,n,i,null)}function WL(t,e,r,n,i){var o={type:t,props:e,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++Gue,__i:-1,__u:0};return i==null&&ss.vnode!=null&&ss.vnode(o),o}function nv(t){return t.children}function qL(t,e){this.props=t,this.context=e}function oy(t,e){if(e==null)return t.__?oy(t.__,t.__i+1):null;for(var r;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null)return r.__e;return typeof t.type=="function"?oy(t):null}function Kue(t){var e,r;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null){t.__e=t.__c.base=r.__e;break}return Kue(t)}}function Hue(t){(!t.__d&&(t.__d=!0)&&iy.push(t)&&!XL.__r++||jue!==ss.debounceRendering)&&((jue=ss.debounceRendering)||Xue)(XL)}function XL(){var t,e,r,n,i,o,s,a;for(iy.sort(eU);t=iy.shift();)t.__d&&(e=iy.length,n=void 0,o=(i=(r=t).__v).__e,s=[],a=[],r.__P&&((n=z0({},i)).__v=i.__v+1,ss.vnode&&ss.vnode(n),sU(r.__P,n,i,r.__n,r.__P.namespaceURI,32&i.__u?[o]:null,s,o??oy(i),!!(32&i.__u),a),n.__v=i.__v,n.__.__k[n.__i]=n,Jue(s,n,a),n.__e!=o&&Kue(n)),iy.length>e&&iy.sort(eU));XL.__r=0}function Zue(t,e,r,n,i,o,s,a,l,u,f){var m,v,E,S,L,O=n&&n.__k||Yue,q=e.length;for(r.__d=l,s9e(r,e,O),l=r.__d,m=0;m<q;m++)(E=r.__k[m])!=null&&typeof E!="boolean"&&typeof E!="function"&&(v=E.__i===-1?M3:O[E.__i]||M3,E.__i=m,sU(t,E,v,i,o,s,a,l,u,f),S=E.__e,E.ref&&v.ref!=E.ref&&(v.ref&&aU(v.ref,null,E),f.push(E.ref,E.__c||S,E)),L==null&&S!=null&&(L=S),65536&E.__u||v.__k===E.__k?l=Que(E,l,t):typeof E.type=="function"&&E.__d!==void 0?l=E.__d:S&&(l=S.nextSibling),E.__d=void 0,E.__u&=-196609);r.__d=l,r.__e=L}function s9e(t,e,r){var n,i,o,s,a,l=e.length,u=r.length,f=u,m=0;for(t.__k=[],n=0;n<l;n++)s=n+m,(i=t.__k[n]=(i=e[n])==null||typeof i=="boolean"||typeof i=="function"?null:typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?WL(null,i,null,null,null):oU(i)?WL(nv,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?WL(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)!=null?(i.__=t,i.__b=t.__b+1,a=a9e(i,r,s,f),i.__i=a,o=null,a!==-1&&(f--,(o=r[a])&&(o.__u|=131072)),o==null||o.__v===null?(a==-1&&m--,typeof i.type!="function"&&(i.__u|=65536)):a!==s&&(a==s-1?m--:a==s+1?m++:a>s?f>l-s?m+=a-s:m--:a<s&&(a==s-m?m-=a-s:m++),a!==n+m&&(i.__u|=65536))):(o=r[s])&&o.key==null&&o.__e&&!(131072&o.__u)&&(o.__e==t.__d&&(t.__d=oy(o)),nU(o,o,!1),r[s]=null,f--);if(f)for(n=0;n<u;n++)(o=r[n])!=null&&!(131072&o.__u)&&(o.__e==t.__d&&(t.__d=oy(o)),nU(o,o))}function Que(t,e,r){var n,i;if(typeof t.type=="function"){for(n=t.__k,i=0;n&&i<n.length;i++)n[i]&&(n[i].__=t,e=Que(n[i],e,r));return e}t.__e!=e&&(e&&t.type&&!r.contains(e)&&(e=oy(t)),r.insertBefore(t.__e,e||null),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function a9e(t,e,r,n){var i=t.key,o=t.type,s=r-1,a=r+1,l=e[r];if(l===null||l&&i==l.key&&o===l.type&&!(131072&l.__u))return r;if(n>(l!=null&&!(131072&l.__u)?1:0))for(;s>=0||a<e.length;){if(s>=0){if((l=e[s])&&!(131072&l.__u)&&i==l.key&&o===l.type)return s;s--}if(a<e.length){if((l=e[a])&&!(131072&l.__u)&&i==l.key&&o===l.type)return a;a++}}return-1}function Wue(t,e,r){e[0]==="-"?t.setProperty(e,r??""):t[e]=r==null?"":typeof r!="number"||i9e.test(e)?r:r+"px"}function HL(t,e,r,n,i){var o;e:if(e==="style")if(typeof r=="string")t.style.cssText=r;else{if(typeof n=="string"&&(t.style.cssText=n=""),n)for(e in n)r&&e in r||Wue(t.style,e,"");if(r)for(e in r)n&&r[e]===n[e]||Wue(t.style,e,r[e])}else if(e[0]==="o"&&e[1]==="n")o=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in t||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=r,r?n?r.u=n.u:(r.u=iU,t.addEventListener(e,o?rU:tU,o)):t.removeEventListener(e,o?rU:tU,o);else{if(i=="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]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&e[4]!=="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&r==1?"":r))}}function que(t){return function(e){if(this.l){var r=this.l[e.type+t];if(e.t==null)e.t=iU++;else if(e.t<r.u)return;return r(ss.event?ss.event(e):e)}}}function sU(t,e,r,n,i,o,s,a,l,u){var f,m,v,E,S,L,O,q,G,H,Y,te,D,le,ie,J,X=e.type;if(e.constructor!==void 0)return null;128&r.__u&&(l=!!(32&r.__u),o=[a=e.__e=r.__e]),(f=ss.__b)&&f(e);e:if(typeof X=="function")try{if(q=e.props,G="prototype"in X&&X.prototype.render,H=(f=X.contextType)&&n[f.__c],Y=f?H?H.props.value:f.__:n,r.__c?O=(m=e.__c=r.__c).__=m.__E:(G?e.__c=m=new X(q,Y):(e.__c=m=new qL(q,Y),m.constructor=X,m.render=l9e),H&&H.sub(m),m.props=q,m.state||(m.state={}),m.context=Y,m.__n=n,v=m.__d=!0,m.__h=[],m._sb=[]),G&&m.__s==null&&(m.__s=m.state),G&&X.getDerivedStateFromProps!=null&&(m.__s==m.state&&(m.__s=z0({},m.__s)),z0(m.__s,X.getDerivedStateFromProps(q,m.__s))),E=m.props,S=m.state,m.__v=e,v)G&&X.getDerivedStateFromProps==null&&m.componentWillMount!=null&&m.componentWillMount(),G&&m.componentDidMount!=null&&m.__h.push(m.componentDidMount);else{if(G&&X.getDerivedStateFromProps==null&&q!==E&&m.componentWillReceiveProps!=null&&m.componentWillReceiveProps(q,Y),!m.__e&&(m.shouldComponentUpdate!=null&&m.shouldComponentUpdate(q,m.__s,Y)===!1||e.__v===r.__v)){for(e.__v!==r.__v&&(m.props=q,m.state=m.__s,m.__d=!1),e.__e=r.__e,e.__k=r.__k,e.__k.forEach(function(me){me&&(me.__=e)}),te=0;te<m._sb.length;te++)m.__h.push(m._sb[te]);m._sb=[],m.__h.length&&s.push(m);break e}m.componentWillUpdate!=null&&m.componentWillUpdate(q,m.__s,Y),G&&m.componentDidUpdate!=null&&m.__h.push(function(){m.componentDidUpdate(E,S,L)})}if(m.context=Y,m.props=q,m.__P=t,m.__e=!1,D=ss.__r,le=0,G){for(m.state=m.__s,m.__d=!1,D&&D(e),f=m.render(m.props,m.state,m.context),ie=0;ie<m._sb.length;ie++)m.__h.push(m._sb[ie]);m._sb=[]}else do m.__d=!1,D&&D(e),f=m.render(m.props,m.state,m.context),m.state=m.__s;while(m.__d&&++le<25);m.state=m.__s,m.getChildContext!=null&&(n=z0(z0({},n),m.getChildContext())),G&&!v&&m.getSnapshotBeforeUpdate!=null&&(L=m.getSnapshotBeforeUpdate(E,S)),Zue(t,oU(J=f!=null&&f.type===nv&&f.key==null?f.props.children:f)?J:[J],e,r,n,i,o,s,a,l,u),m.base=e.__e,e.__u&=-161,m.__h.length&&s.push(m),O&&(m.__E=m.__=null)}catch(me){if(e.__v=null,l||o!=null){for(e.__u|=l?160:32;a&&a.nodeType===8&&a.nextSibling;)a=a.nextSibling;o[o.indexOf(a)]=null,e.__e=a}else e.__e=r.__e,e.__k=r.__k;ss.__e(me,e,r)}else o==null&&e.__v===r.__v?(e.__k=r.__k,e.__e=r.__e):e.__e=c9e(r.__e,e,r,n,i,o,s,l,u);(f=ss.diffed)&&f(e)}function Jue(t,e,r){e.__d=void 0;for(var n=0;n<r.length;n++)aU(r[n],r[++n],r[++n]);ss.__c&&ss.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){ss.__e(o,i.__v)}})}function c9e(t,e,r,n,i,o,s,a,l){var u,f,m,v,E,S,L,O=r.props,q=e.props,G=e.type;if(G==="svg"?i="http://www.w3.org/2000/svg":G==="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((E=o[u])&&"setAttribute"in E==!!G&&(G?E.localName===G:E.nodeType===3)){t=E,o[u]=null;break}}if(t==null){if(G===null)return document.createTextNode(q);t=document.createElementNS(i,G,q.is&&q),o=null,a=!1}if(G===null)O===q||a&&t.data===q||(t.data=q);else{if(o=o&&YL.call(t.childNodes),O=r.props||M3,!a&&o!=null)for(O={},u=0;u<t.attributes.length;u++)O[(E=t.attributes[u]).name]=E.value;for(u in O)if(E=O[u],u!="children"){if(u=="dangerouslySetInnerHTML")m=E;else if(u!=="key"&&!(u in q)){if(u=="value"&&"defaultValue"in q||u=="checked"&&"defaultChecked"in q)continue;HL(t,u,null,E,i)}}for(u in q)E=q[u],u=="children"?v=E:u=="dangerouslySetInnerHTML"?f=E:u=="value"?S=E:u=="checked"?L=E:u==="key"||a&&typeof E!="function"||O[u]===E||HL(t,u,E,O[u],i);if(f)a||m&&(f.__html===m.__html||f.__html===t.innerHTML)||(t.innerHTML=f.__html),e.__k=[];else if(m&&(t.innerHTML=""),Zue(t,oU(v)?v:[v],e,r,n,G==="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,s,o?o[0]:r.__k&&oy(r,0),a,l),o!=null)for(u=o.length;u--;)o[u]!=null&&$ue(o[u]);a||(u="value",S!==void 0&&(S!==t[u]||G==="progress"&&!S||G==="option"&&S!==O[u])&&HL(t,u,S,O[u],i),u="checked",L!==void 0&&L!==t[u]&&HL(t,u,L,O[u],i))}return t}function aU(t,e,r){try{if(typeof t=="function"){var n=typeof t.__u=="function";n&&t.__u(),n&&e==null||(t.__u=t(e))}else t.current=e}catch(i){ss.__e(i,r)}}function nU(t,e,r){var n,i;if(ss.unmount&&ss.unmount(t),(n=t.ref)&&(n.current&&n.current!==t.__e||aU(n,null,e)),(n=t.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(o){ss.__e(o,e)}n.base=n.__P=null}if(n=t.__k)for(i=0;i<n.length;i++)n[i]&&nU(n[i],e,r||typeof t.type!="function");r||t.__e==null||$ue(t.__e),t.__c=t.__=t.__e=t.__d=void 0}function l9e(t,e,r){return this.constructor(t,r)}function io(t,e,r){var n,i,o,s;ss.__&&ss.__(t,e),i=(n=typeof r=="function")?null:r&&r.__k||e.__k,o=[],s=[],sU(e,t=(!n&&r||e).__k=o9e(nv,null,[t]),i||M3,M3,e.namespaceURI,!n&&r?[r]:i?null:e.firstChild?YL.call(e.childNodes):null,o,!n&&r?r:i?i.__e:e.firstChild,n,s),Jue(o,t,s)}YL=Yue.slice,ss={__e:function(t,e,r,n){for(var i,o,s;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,n||{}),s=i.__d),s)return i.__E=i}catch(a){t=a}throw t}},Gue=0,r9e=function(t){return t!=null&&t.constructor==null},qL.prototype.setState=function(t,e){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=z0({},this.state),typeof t=="function"&&(t=t(z0({},r),this.props)),t&&z0(r,t),t!=null&&this.__v&&(e&&this._sb.push(e),Hue(this))},qL.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Hue(this))},qL.prototype.render=nv,iy=[],Xue=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,eU=function(t,e){return t.__v.__b-e.__v.__b},XL.__r=0,iU=0,tU=que(!1),rU=que(!0),n9e=0;var u9e=0,A7t=Array.isArray;function nr(t,e,r,n,i,o){e||(e={});var s,a,l=e;if("ref"in l)for(a in l={},e)a=="ref"?s=e[a]:l[a]=e[a];var u={type:t,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--u9e,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(s=t.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return ss.vnode&&ss.vnode(u),u}var iv=t=>{let{children:e,orientation:r="horizontal"}=t;return nr("div",{className:`deck-widget-button-group ${r}`,children:e})};var sy=t=>{let{className:e="",label:r,onClick:n,children:i}=t;return nr("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:n,title:r,children:i||nr("div",{className:"deck-widget-icon"})})};var ay=class extends Tn{constructor(e={}){super(e,ay.defaultProps),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){let r=nr(iv,{orientation:this.props.orientation,children:[nr(sy,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),nr(sy,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});io(r,e)}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,r){let n=this.viewId||e?.id||"default-view",i={...e,zoom:r};this.props.transitionDuration>0&&(i.transitionDuration=this.props.transitionDuration,i.transitionInterpolator="latitude"in i?new wf:new Gs({transitionProps:["zoom"]})),this.setViewState(n,i)}handleZoomIn(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}setViewState(e,r){this.deck._onViewStateChange({viewId:e,viewState:r,interactionState:{}})}};ay.defaultProps={...Tn.defaultProps,id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",viewId:null};var Ic=t=>{let{className:e="",label:r,onClick:n,children:i}=t;return nr("div",{className:"deck-widget-button",children:nr("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:n,title:r,children:i||nr("div",{className:"deck-widget-icon"})})})};var cy=class extends Tn{constructor(e={}){super(e,cy.defaultProps),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){io(nr(Ic,{className:"deck-widget-reset-focus",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){let e=this.props.initialViewState||this.deck?.props.initialViewState;this.setViewState(e)}setViewState(e){let r=this.props.viewId||"default-view",n={...r!=="default-view"?e?.[r]:e};this.deck._onViewStateChange({viewId:r,viewState:n,interactionState:{}})}};cy.defaultProps={...Tn.defaultProps,id:"reset-view",placement:"top-left",label:"Reset View",initialViewState:void 0,viewId:null};var ly=class extends Tn{constructor(e={}){super(e,ly.defaultProps),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){let r=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[r],{rotationOrbit:i,rotationX:o}=this.getNormalizedRotation(n),s=nr("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:nr("button",{type:"button",onClick:()=>{for(let a of Object.values(this.viewports))this.resetOrbitView(a)},title:this.props.label,style:{position:"relative",width:26,height:26},children:[nr("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateY(${i}deg)`},children:nr("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),nr("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateX(${o}deg)`},children:nr("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})});io(s,e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){let r=this.getViewId(e),n=this.getViewState(r);if("rotationOrbit"in n||"rotationX"in n){let i={...n,rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new Gs({transitionProps:["rotationOrbit","rotationX"]})};this.deck._onViewStateChange({viewId:r,viewState:i,interactionState:{}})}}getNormalizedRotation(e){let r=this.getViewState(this.getViewId(e)),[n,i]=this.getRotation(r),o=ehe(n),s=ehe(i);return{rotationOrbit:o,rotationX:s}}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){let r=this.getViewManager();return e&&r.getViewState(e)||r.viewState}getViewManager(){let e=this.deck?.viewManager;if(!e)throw new Error("wigdet must be added to a deck instance");return e}};ly.defaultProps={...Tn.defaultProps,id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",strokeWidth:1.5,transitionDuration:200};function ehe(t){let e=((t+180)%360+360)%360-180,r=10,n=e-90;return Math.abs(n)<r&&(n<r?e=90+r:n>-r&&(e=90-r)),e}var uy=class extends Tn{constructor(e={}){super(e,uy.defaultProps),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){let r=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[r],[i,o]=this.getRotation(n),s=nr("div",{className:"deck-widget-button",style:{perspective:100},children:nr("button",{type:"button",onClick:()=>{for(let a of Object.values(this.viewports))this.handleCompassReset(a)},title:this.props.label,style:{transform:`rotateX(${o}deg)`},children:nr("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:nr("g",{transform:`rotate(${i},13,13)`,children:[nr("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),nr("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})});io(s,e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof ll?[-e.bearing,e.pitch]:e instanceof bf?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){let r=this.viewId||e.id||"default-view";if(e instanceof ll){let n={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new wf};this.deck._onViewStateChange({viewId:r,viewState:n,interactionState:{}})}}};uy.defaultProps={...Tn.defaultProps,id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",transitionDuration:200};var hy=class extends Tn{constructor(e={}){super(e,hy.defaultProps),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){let n=50+this.scaleWidth,i=10;io(nr("svg",{className:"deck-widget-scale",width:n,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[nr("text",{x:50+5,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),nr("line",{x1:50,y1:"15",x2:50+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),nr("line",{x1:50,y1:"15",x2:50,y2:15-i,stroke:"black",strokeWidth:"6"}),nr("line",{x1:50+this.scaleWidth,y1:"15",x2:50+this.scaleWidth,y2:15-i,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;let{latitude:r,zoom:n}=e,i=h9e(r,n),{candidate:o,candidatePixels:s}=f9e(i);this.scaleValue=o,this.scaleWidth=s,o>=1e3?this.scaleText=`${(o/1e3).toFixed(1)} km`:this.scaleText=`${o} m`,this.updateHTML()}handleClick(){}};hy.defaultProps={...Tn.defaultProps,id:"scale",placement:"bottom-left",label:"Scale",viewId:null};function h9e(t,e){return 40075016686e-3*Math.cos(t*Math.PI/180)/Math.pow(2,e+8)}function f9e(t){let i=150*t,o=Math.floor(Math.log10(i)),s=Math.pow(10,o),a=[1,2,5],l=a[0]*s,u=l/t;for(let f=0;f<a.length;f++){let m=a[f]*s,v=m/t;if(v>=100&&v<=200){l=m,u=v;break}if(v>200){l=f>0?a[f-1]*s:m,u=l/t;break}f===a.length-1&&v<100&&(l=a[0]*s*10,u=l/t)}return{candidate:l,candidatePixels:u}}var S3,Ca,cU,the,KL=0,lhe=[],Ga=ss,rhe=Ga.__b,nhe=Ga.__r,ihe=Ga.diffed,ohe=Ga.__c,she=Ga.unmount,ahe=Ga.__;function uU(t,e){Ga.__h&&Ga.__h(Ca,t,KL||e),KL=0;var r=Ca.__H||(Ca.__H={__:[],__h:[]});return t>=r.__.length&&r.__.push({}),r.__[t]}function fy(t){return KL=1,p9e(hhe,t)}function p9e(t,e,r){var n=uU(S3++,2);if(n.t=t,!n.__c&&(n.__=[r?r(e):hhe(void 0,e),function(a){var l=n.__N?n.__N[0]:n.__[0],u=n.t(l,a);l!==u&&(n.__N=[u,n.__[1]],n.__c.setState({}))}],n.__c=Ca,!Ca.u)){var i=function(a,l,u){if(!n.__c.__H)return!0;var f=n.__c.__H.__.filter(function(v){return!!v.__c});if(f.every(function(v){return!v.__N}))return!o||o.call(this,a,l,u);var m=!1;return f.forEach(function(v){if(v.__N){var E=v.__[0];v.__=v.__N,v.__N=void 0,E!==v.__[0]&&(m=!0)}}),!(!m&&n.__c.props===a)&&(!o||o.call(this,a,l,u))};Ca.u=!0;var o=Ca.shouldComponentUpdate,s=Ca.componentWillUpdate;Ca.componentWillUpdate=function(a,l,u){if(this.__e){var f=o;o=void 0,i(a,l,u),o=f}s&&s.call(this,a,l,u)},Ca.shouldComponentUpdate=i}return n.__N||n.__}function ZL(t,e){var r=uU(S3++,3);!Ga.__s&&uhe(r.__H,e)&&(r.__=t,r.i=e,Ca.__H.__h.push(r))}function py(t){return KL=5,d9e(function(){return{current:t}},[])}function d9e(t,e){var r=uU(S3++,7);return uhe(r.__H,e)&&(r.__=t(),r.__H=e,r.__h=t),r.__}function m9e(){for(var t;t=lhe.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach($L),t.__H.__h.forEach(lU),t.__H.__h=[]}catch(e){t.__H.__h=[],Ga.__e(e,t.__v)}}Ga.__b=function(t){Ca=null,rhe&&rhe(t)},Ga.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),ahe&&ahe(t,e)},Ga.__r=function(t){nhe&&nhe(t),S3=0;var e=(Ca=t.__c).__H;e&&(cU===Ca?(e.__h=[],Ca.__h=[],e.__.forEach(function(r){r.__N&&(r.__=r.__N),r.i=r.__N=void 0})):(e.__h.forEach($L),e.__h.forEach(lU),e.__h=[],S3=0)),cU=Ca},Ga.diffed=function(t){ihe&&ihe(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(lhe.push(e)!==1&&the===Ga.requestAnimationFrame||((the=Ga.requestAnimationFrame)||A9e)(m9e)),e.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.i=void 0})),cU=Ca=null},Ga.__c=function(t,e){e.some(function(r){try{r.__h.forEach($L),r.__h=r.__h.filter(function(n){return!n.__||lU(n)})}catch(n){e.some(function(i){i.__h&&(i.__h=[])}),e=[],Ga.__e(n,r.__v)}}),ohe&&ohe(t,e)},Ga.unmount=function(t){she&&she(t);var e,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{$L(n)}catch(i){e=i}}),r.__H=void 0,e&&Ga.__e(e,r.__v))};var che=typeof requestAnimationFrame=="function";function A9e(t){var e,r=function(){clearTimeout(n),che&&cancelAnimationFrame(e),setTimeout(t)},n=setTimeout(r,100);che&&(e=requestAnimationFrame(r))}function $L(t){var e=Ca,r=t.__c;typeof r=="function"&&(t.__c=void 0,r()),Ca=e}function lU(t){var e=Ca;t.__c=t.__(),Ca=e}function uhe(t,e){return!t||t.length!==e.length||e.some(function(r,n){return r!==t[n]})}function hhe(t,e){return typeof e=="function"?e(t):e}var QL=t=>{let[e,r]=fy(!1),n=py(null),i=()=>r(!e),o=a=>{n.current&&!n.current.contains(a.target)&&r(!1)};ZL(()=>(document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[]);let s=a=>{t.onSelect(a),r(!1)};return nr("div",{className:"dropdown-container",ref:n,style:{position:"relative",display:"inline-block",...t.style},children:[nr("button",{onClick:i,style:{width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid #ccc",borderRadius:"4px",background:"#fff",cursor:"pointer",padding:0},children:"\u25BC"}),e&&nr("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(a=>nr("li",{onClick:()=>s(a),style:{padding:"4px 8px",cursor:"pointer",whiteSpace:"nowrap"},children:a},a))})]})};var g9e="current",fhe="deck-geocoder-history",JL=class{constructor(e){this.addressText="",this.errorText="",this.addressHistory=[],this.props={maxEntries:5,...e},this.addressHistory=this.loadPreviousAddresses()}async geocode(e,r,n){this.errorText="",this.addressText=r;try{let i=await e.geocode(r,n);if(i)return this.storeAddress(this.addressText),i;this.errorText="Invalid address"}catch(i){this.errorText=`${i.message}`}return null}loadPreviousAddresses(){try{let e=window.localStorage.getItem(fhe),r=e&&JSON.parse(e);return Array.isArray(r)?r.filter(i=>typeof i=="string"):[]}catch{}return[]}storeAddress(e){let r=e.trim();if(!r||r===g9e)return;let n=[r,...this.addressHistory.filter(i=>i!==r)];this.addressHistory=n.slice(0,this.props.maxEntries);try{window.localStorage.setItem(fhe,JSON.stringify(this.addressHistory))}catch{}}};var y9e="https://maps.googleapis.com/maps/api/geocode/json",_9e="https://api.mapbox.com/geocoding/v5/mapbox.places",x9e="https://api.opencagedata.com/geocode/v1/json",e4={name:"google",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${y9e}?address=${r}&key=${e}`);switch(n.status){case"OK":let i=n.results.length>0&&n.results[0].geometry.location;return i?{longitude:i.lng,latitude:i.lat}:null;default:throw new Error(`Google Geocoder failed: ${n.status}`)}}},t4={name:"google",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${_9e}/${r}.json?access_token=${e}`);if(Array.isArray(n.features)&&n.features.length>0){let i=n.features[0].center;if(Array.isArray(i)&&i.length>=2)return{longitude:i[0],latitude:i[1]}}return null}},r4={name:"opencage",requiresApiKey:!0,async geocode(t,e){let r=encodeURIComponent(t),n=await hU(`${x9e}?q=${r}&key=${e}`);if(Array.isArray(n.results)&&n.results.length>0){let i=n.results[0].geometry;return{longitude:i.lng,latitude:i.lat}}return null}},n4={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw new Error("Geolocation not supported");return new Promise((t,e)=>{navigator.geolocation.getCurrentPosition(r=>{let{longitude:n,latitude:i}=r.coords;t({longitude:n,latitude:i})},r=>e(new Error(r.message)))})}};async function hU(t){let e;try{e=await fetch(t)}catch(n){throw new Error(`CORS error? ${n}. ${t}: `)}if(!e.ok)throw new Error(`${e.statusText}. ${t}: `);let r=await e.json();if(!r)throw new Error(`No data returned. ${t}`);return r}var ov={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37\xB048'N, 122\xB027'W",async geocode(t){return v9e(t)||null}};function v9e(t){t=t.trim();let e=t.split(/[,;]/).map(i=>i.trim());if(e.length<2)return null;let r=phe(e[0]),n=phe(e[1]);return r===null||n===null?null:Math.abs(r)>90&&Math.abs(n)<=90?{longitude:r,latitude:n}:Math.abs(n)>90&&Math.abs(r)<=90?{longitude:n,latitude:r}:{latitude:r,longitude:n}}function phe(t){if(t=t.trim(),t.includes("\xB0")||t.includes("'")||t.includes('"')){let n=b9e(t);return isNaN(n)?null:n}let e=1;/[SW]/i.test(t)&&(e=-1),t=t.replace(/[NSEW]/gi,"");let r=parseFloat(t);return isNaN(r)?null:e*r}function b9e(t){let e=/(\d+)[°d]\s*(\d+)?['′m]?\s*(\d+(?:\.\d+)?)?[\"″s]?\s*([NSEW])?/i,r=t.match(e);if(!r)return NaN;let n=parseFloat(r[1])||0,i=parseFloat(r[2])||0,o=parseFloat(r[3])||0,s=r[4]||"",a=n+i/60+o/3600;return/[SW]/i.test(s)&&(a=-a),a}var dhe="current",dy=class extends Tn{constructor(e={}){super(e,dy.defaultProps),this.className="deck-widget-geocoder",this.placement="top-left",this.geocodeHistory=new JL({}),this.addressText="",this.geocoder=ov,this.setInput=r=>{this.addressText=r},this.handleKeyPress=r=>{r.key==="Enter"&&this.handleSubmit()},this.handleSelect=r=>{this.setInput(r),this.handleSubmit()},this.handleSubmit=()=>{this.geocode(this.addressText)},this.geocode=async r=>{let i=this.props._geolocation&&r===dhe?n4:this.geocoder,o=await this.geocodeHistory.geocode(i,this.addressText,this.props.apiKey);o&&this.setViewState(o)},this.viewports={},this.setProps(this.props)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this.geocoder=w9e(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){let r=this.props._geolocation?[dhe,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];io(nr("div",{className:"deck-widget-geocoder",style:{pointerEvents:"auto",display:"flex",alignItems:"center",flexWrap:"wrap"},children:[nr("input",{type:"text",placeholder:this.geocoder.placeholderLocation??"Enter address or location",value:this.geocodeHistory.addressText,onInput:n=>this.setInput(n.target?.value||""),onKeyPress:this.handleKeyPress,style:{flex:"1 1 auto",minWidth:"200px",margin:0,padding:"8px",boxSizing:"border-box"}}),nr(QL,{menuItems:r,onSelect:this.handleSelect,style:{margin:2,padding:"4px 2px",boxSizing:"border-box"}}),this.geocodeHistory.errorText&&nr("div",{className:"error",children:this.geocodeHistory.errorText})]}),e)}setViewState(e){let r=this.props.viewId||e?.id||"default-view",i={...this.viewports[r]||{},...e};this.props.transitionDuration>0&&(i.transitionDuration=this.props.transitionDuration,i.transitionInterpolator="latitude"in i?new wf:new Gs),this.deck._onViewStateChange({viewId:r,viewState:i,interactionState:{}})}onViewportChange(e){this.viewports[e.id]=e}};dy.defaultProps={...Tn.defaultProps,id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:ov,apiKey:"",_geolocation:!1};function w9e(t){switch(t.geocoder){case"google":return e4;case"mapbox":return t4;case"opencage":return r4;case"coordinates":return ov;case"custom":if(!t.customGeocoder)throw new Error("Custom geocoder is not defined");return t.customGeocoder;default:throw new Error(`Unknown geocoder: ${t.geocoder}`)}}var my=class extends Tn{constructor(e={}){super(e,my.defaultProps),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){io(nr(Ic,{onClick:()=>{this.handleClick().catch(r=>Ar.error(r)())},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(){let e=this.fullscreen,r=document.fullscreenElement===this.getContainer();e!==r&&(this.fullscreen=!this.fullscreen),this.updateHTML()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.updateHTML()}async requestFullscreen(){let 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")}};my.defaultProps={...Tn.defaultProps,id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",container:void 0};var Ay=class extends Tn{constructor(e){super(e,Ay.defaultProps),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",io(nr(T9e,{orientation:this.props.orientation,initialSplit:this.props.initialSplit,onChange:this.props.onChange,onDragStart:this.props.onDragStart,onDragEnd:this.props.onDragEnd}),e)}};Ay.defaultProps={...Tn.defaultProps,id:"splitter-widget",viewId1:"",viewId2:"",orientation:"vertical",initialSplit:.5,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}};function T9e({orientation:t,initialSplit:e,onChange:r,onDragStart:n,onDragEnd:i}){let[o,s]=fy(e),a=py(!1),l=py(null),u=S=>{a.current=!0,n?.(),document.addEventListener("mousemove",f),document.addEventListener("mouseup",m),S.preventDefault()},f=S=>{if(!a.current||!l.current)return;let L=l.current.getBoundingClientRect(),O;t==="vertical"?O=(S.clientX-L.left)/L.width:O=(S.clientY-L.top)/L.height,O=Math.min(Math.max(O,.05),.95),s(O),r?.(O)},m=S=>{a.current&&(a.current=!1,i?.(),document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",m))},v=t==="vertical"?{position:"absolute",top:0,bottom:0,left:`${o*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:`${o*100}%`,height:"4px",cursor:"row-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"};return nr("div",{ref:l,style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:nr("div",{style:v,onMouseDown:u})})}function i4(t){let[e,r]=fy(!1),n=py(null),i=v=>{n.current&&!n.current.contains(v.target)&&r(!1)};ZL(()=>(document.addEventListener("mousedown",i),()=>{document.removeEventListener("mousedown",i)}),[n]);let[o,s]=fy(t.initialItem),a=v=>{s(v),r(!1),t.onItemSelected(v)},l=()=>r(!e),u=t.menuItems.find(v=>v.value===o),f=t.label||u?.label||"",m=t.icon||u?.icon;return nr("div",{style:{position:"relative",display:"inline-block"},ref:n,children:[nr(Ic,{className:t.className,label:f,onClick:l,children:m}),e&&nr("div",{className:"deck-widget-icon-menu",children:nr(iv,{orientation:"vertical",children:t.menuItems.map(v=>nr(sy,{label:v.label,onClick:()=>a(v.value),children:v.icon},v.value))})})]})}var gy=class extends Tn{constructor(e={}){super(e,gy.defaultProps),this.className="deck-widget-view-selector",this.placement="top-left",this.handleSelectMode=r=>{this.viewMode=r,this.updateHTML(),this.props.onViewModeChange(r)},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){io(nr(i4,{className:"deck-widget-view-selector",menuItems:E9e.map(r=>({...r,icon:r.icon()})),initialItem:this.props.initialViewMode,onItemSelected:this.handleSelectMode}),e)}};gy.defaultProps={...Tn.defaultProps,id:"view-selector",placement:"top-left",viewId:null,label:"Split View",initialViewMode:"single",onViewModeChange:()=>{}};var fU={width:"24px",height:"24px"},pU={single:()=>nr("svg",{width:"24",height:"24",style:fU,children:nr("rect",{x:"4",y:"4",width:"16",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})}),"split-horizontal":()=>nr("svg",{width:"24",height:"24",style:fU,children:[nr("rect",{x:"4",y:"4",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),nr("rect",{x:"4",y:"13",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]}),"split-vertical":()=>nr("svg",{width:"24",height:"24",style:fU,children:[nr("rect",{x:"4",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),nr("rect",{x:"13",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]})},E9e=[{value:"single",icon:pU.single,label:"Single View"},{value:"split-horizontal",icon:pU["split-horizontal"],label:"Split Horizontal"},{value:"split-vertical",icon:pU["split-vertical"],label:"Split Vertical"}];var yy=class extends Tn{constructor(e){super(e,yy.defaultProps),this.className="deck-widget-info",this.placement="fill",this.setProps(this.props)}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onCreateRootElement(){let e=super.onCreateRootElement();return Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute"}).forEach(([n,i])=>e.style.setProperty(n,i)),e}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){if(this.props.mode==="hover"&&this.props.getTooltip){let r=this.props.getTooltip(e,this);this.setProps({visible:r!==null,...r,style:{zIndex:"1",...r?.style}})}}onClick(e){if(this.props.mode==="click"&&this.props.getTooltip){let r=this.props.getTooltip(e,this);return this.setProps({visible:r!==null,...r}),r!==null}return this.props.onClick?.(this,e)||!1}onAdd({deck:e,viewId:r}){this.deck=e,r?this.viewport=e.getViewports().find(n=>n.id===r):this.viewport=e.getViewports()[0]}onRenderHTML(e){if(!this.viewport)return;let[r,n]=this.props.position,[i,o]=this.viewport.project([r,n]),s=this.props.minOffset||0,a=10,l=8,u=16,f=o>this.viewport.height/2,m=this.props.style&&this.props.style.background||"rgba(255,255,255,0.9)",v=this.props.visible?nr("div",{className:"popup-container",style:{position:"absolute",left:0,top:0},children:[nr("div",{className:"popup-content",style:{background:m,padding:"10px",position:"relative",...this.props.style},children:this.props.text}),nr("div",{className:"popup-arrow",style:{position:"absolute",width:"0px",height:"0px"}})]}):null;io(v,e),requestAnimationFrame(()=>{if(!this.props.visible||!e.firstChild||!this.viewport)return;let E=e.firstChild,S=E.querySelector(".popup-content"),L=E.querySelector(".popup-arrow");if(!S||!L)return;let O=S.getBoundingClientRect(),q=O.width,G=O.height,H=i-q/2,Y;f?Y=o-a-l-G:Y=o+a+l,H<s&&(H=s),H+q>this.viewport.width-s&&(H=this.viewport.width-s-q),f?Y<s&&(Y=s):Y+G+l>this.viewport.height-s&&(Y=this.viewport.height-s-G-l),E.style.left=`${H}px`,E.style.top=`${Y}px`,E.style.transform="";let te=i-H-u/2;te=Math.max(te,0),te=Math.min(te,q-u),f?(L.style.left=`${te}px`,L.style.bottom=`-${l}px`,L.style.top="",L.style.borderLeft=`${u/2}px solid transparent`,L.style.borderRight=`${u/2}px solid transparent`,L.style.borderTop=`${l}px solid ${m}`,L.style.borderBottom=""):(L.style.left=`${te}px`,L.style.top=`-${l}px`,L.style.bottom="",L.style.borderLeft=`${u/2}px solid transparent`,L.style.borderRight=`${u/2}px solid transparent`,L.style.borderBottom=`${l}px solid ${m}`,L.style.borderTop="")})}};yy.defaultProps={...Tn.defaultProps,id:"info",position:[0,0],text:"",visible:!1,minOffset:0,viewId:null,mode:"hover",getTooltip:void 0,onClick:void 0};var M9e={position:"absolute",top:"100%",left:0,background:"white",border:"1px solid #ccc",borderRadius:"4px",marginTop:"var(--menu-gap, 4px)",zIndex:100},S9e={background:"white",border:"none",padding:"4px",cursor:"pointer",pointerEvents:"auto"},o4=t=>{let{menuItems:e,onItemSelected:r,position:n,style:i}=t,o={...M9e,...i,left:`${n.x}px`,top:`${n.y}px`};return nr("div",{style:o,children:e.map(({key:s,label:a})=>nr("button",{style:{...S9e,display:"block"},onClick:l=>r(s),children:a},s))})};var C9e=2,I9e=3,_y=class extends Tn{constructor(e){super(e,_y.defaultProps),this.className="deck-widget-context-menu",this.placement="fill",this.pickInfo=null,this.pickInfo=null,this.setProps(this.props)}onAdd({deck:e}){let r=document.createElement("div");return r.classList.add("deck-widget","deck-widget-context-menu"),Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute",pointerEvents:"auto"}).forEach(([i,o])=>r.style.setProperty(i,o)),e.getCanvas()?.addEventListener("click",()=>this.hide()),e.getCanvas()?.addEventListener("contextmenu",i=>this.handleContextMenu(i)),r}onRenderHTML(e){let{visible:r,position:n,menuItems:i}=this.props,o=r&&i.length?nr(o4,{menuItems:i,onItemSelected:s=>this.props.onMenuItemSelected(s,this.pickInfo),position:n,style:{pointerEvents:"auto"}}):null;io(o,e)}handleContextMenu(e){if(e&&(e.button===C9e||e.which===I9e)){this.pickInfo=this.deck?.pickObject({x:e.clientX,y:e.clientY})||null;let r=this.pickInfo&&this.props.getMenuItems?.(this.pickInfo,this)||[],n=r.length>0;return this.setProps({visible:n,position:{x:e.clientX,y:e.clientY},menuItems:r}),this.updateHTML(),e.preventDefault(),n}return!1}hide(){this.setProps({visible:!1})}};_y.defaultProps={...Tn.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)};var xy=class extends Tn{constructor(e={}){super(e,xy.defaultProps),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=r=>{let n=r.target,i=Number(n.value);this.currentTime=i,this.props.onTimeChange(i),this.updateHTML()},this.tick=()=>{let[r,n]=this.props.timeRange,i=this.currentTime+this.props.step;i>n&&(i=r),this.currentTime=i,this.props.onTimeChange(i),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){io(nr("div",{style:{display:"flex",alignItems:"center",pointerEvents:"auto"},children:[nr(Ic,{label:this.playing?"Pause":"Play",onClick:this.handlePlayPause,children:nr("div",{className:"text",children:this.playing?"\u23F8":"\u25B6"})}),nr("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()}};xy.defaultProps={...Tn.defaultProps,id:"timeline",placement:"bottom-left",viewId:null,timeRange:[0,100],step:1,initialTime:void 0,onTimeChange:()=>{},playInterval:1e3};var vy=class extends Tn{constructor(e={}){super(e,vy.defaultProps),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){io(nr(Ic,{className:"deck-widget-camera",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture){this.props.onCapture(this);return}let e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){return this.deck?.getCanvas()?.toDataURL(e)}downloadDataURL(e,r){let n=document.createElement("a");n.href=e,n.download=r,n.click()}};vy.defaultProps={...Tn.defaultProps,id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0};var mhe={"--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"},Ahe={"--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"},s4={"--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"},a4={"--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"};var by=class extends Tn{constructor(e={}){super(e,by.defaultProps),this.className="deck-widget-theme",this.placement="top-left",this.themeMode="dark",this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}setProps(e){let{lightModeTheme:r,darkModeTheme:n}=this.props;switch(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e),this.themeMode){case"light":e.lightModeTheme&&!Gi(e.lightModeTheme,r,1)&&this._setThemeMode("light");break;case"dark":e.darkModeTheme&&!Gi(e.darkModeTheme,n,1)&&this._setThemeMode("dark");break;default:Ar.warn(`Invalid theme mode ${this.themeMode}`)()}}onRenderHTML(e){let{lightModeLabel:r,darkModeLabel:n}=this.props;io(nr(Ic,{onClick:this._handleClick.bind(this),label:this.themeMode==="dark"?n:r,className:this.themeMode==="dark"?"deck-widget-moon":"deck-widget-sun"}),e)}onAdd(){this._setThemeMode(this.themeMode)}_handleClick(){let e=this.themeMode==="dark"?"light":"dark";this._setThemeMode(e)}_setThemeMode(e){this.themeMode=e;let r=this.rootElement?.closest(".deck-widget-container");if(r){let n=e==="dark"?this.props.darkModeTheme:this.props.lightModeTheme;sg(r,n);let i=this.themeMode==="dark"?this.props.darkModeLabel:this.props.lightModeLabel;Ar.log(1,`Switched theme to ${i}`,n)(),this.updateHTML()}}_getInitialThemeMode(){let{initialThemeMode:e}=this.props;return e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e}};by.defaultProps={...Tn.defaultProps,id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTheme:s4,darkModeLabel:"Dark Mode",darkModeTheme:a4,initialThemeMode:"auto"};var wy=class extends Tn{constructor(e={}){super(e,wy.defaultProps),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){io(this.loading&&nr(Ic,{className:"deck-widget-spinner",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}onRedraw({layers:e}){let r=e.some(n=>!n.isLoaded);r!==this.loading&&(this.loading=r,this.updateHTML())}handleClick(){}};wy.defaultProps={...Tn.defaultProps,id:"loading",placement:"top-left",viewId:null,label:"Loading layer data"};var Ty=class extends Tn{constructor(e={}){super(e,Ty.defaultProps),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){let r=this._getFps();io(nr(Ic,{children:nr("div",{className:"text",children:["FPS",nr("br",{}),r]})}),e)}_animate(){let e=this._getFps();this._lastFps!==e&&(this._lastFps=e,this.updateHTML()),requestAnimationFrame(()=>this._animate())}_getFps(){return Math.round(this.deck?.metrics.fps??0)}};Ty.defaultProps={...Tn.defaultProps,id:"fps",placement:"top-left",viewId:null};Fn();var P9e="\u25B6",R9e="\u2B07",dU=t=>`${t.name}: ${t.count}`;function ghe(t){return t<1e3?`${t.toFixed(2)}ms`:`${(t/1e3).toFixed(2)}s`}function L9e(t){return`${(t/1e6).toFixed(1)} MB`}var yhe={count:dU,averageTime:t=>`${t.name}: ${ghe(t.getAverageTime())}`,totalTime:t=>`${t.name}: ${ghe(t.time)}`,fps:t=>`${t.name}: ${Math.round(t.getHz())}fps`,memory:t=>`${t.name}: ${L9e(t.count)}`},Ey=class extends Tn{constructor(e={}){super(e,Ey.defaultProps),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={...yhe},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(let r in e.formatters){let n=e.formatters[r];this._formatters[r]=typeof n=="string"?yhe[n]||dU:n}e.resetOnUpdate&&(this._resetOnUpdate={...e.resetOnUpdate}),super.setProps(e)}onAdd(){this._stats=this._getStats(),this.updateHTML()}onRenderHTML(e){let r=this._stats,n=this.collapsed,i=this.props.title||r?.id||"Stats",o=[];!n&&r&&r.forEach(s=>{let a=this._getLines(s);this._resetOnUpdate&&this._resetOnUpdate[s.name]&&s.reset(),a.forEach((l,u)=>{o.push(nr("div",{style:{whiteSpace:"pre"},children:l},`${s.name}-${u}`))})}),io(nr("div",{className:"deck-widget-stats-container",style:{cursor:"default"},children:[nr("div",{className:"deck-widget-stats-header",style:{cursor:"pointer",pointerEvents:"auto"},onClick:this._toggleCollapsed,children:[n?P9e:R9e," ",i]}),!n&&nr("div",{className:"deck-widget-stats-content",children:o})]}),e)}onRedraw(){let 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(gp.stats.stats.values())[0];case"device":let r=this.deck?.device?.statsManager.stats.values();return r?Array.from(r)[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||""]||dU)(e).split(`
|
|
5634
5636
|
`)}};Ey.defaultProps={...Tn.defaultProps,type:"deck",placement:"top-left",viewId:null,stats:void 0,title:"Stats",framesPerUpdate:1,formatters:{},resetOnUpdate:{},id:"stats"};var c4=class{constructor(e){this.map=null,this.width=0,this.height=0,this.props={...e},this._initialize(this.props)}finalize(){this.map?.remove(),this.map=null}setProps(e){let r=this.props,n={...this.props,...e};if(this.props=n,!this.map)return;this._update(r,n)&&this.redraw()}redraw(){let e=this.map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}getMap(){return this.map}_initialize(e){let{mapLib:r,container:n}=e;r.accessToken=e.mapboxApiAccessToken||"",this.map=new e.mapLib.Map({container:n,maxZoom:24,...e.mapOptions,..._he(e.viewState),style:e.mapStyle,interactive:!1,trackResize:!1}),Object.defineProperty(n,"offsetWidth",{get:()=>this.width}),Object.defineProperty(n,"clientWidth",{get:()=>this.width}),Object.defineProperty(n,"offsetHeight",{get:()=>this.height}),Object.defineProperty(n,"clientHeight",{get:()=>this.height}),this.map.resize()}_update(e,r){e.mapStyle!==r.mapStyle&&this.map.setStyle(r.mapStyle);let i=e.width!==r.width||e.height!==r.height;i&&(this.width=r.width,this.height=r.height,this.map.resize());let o=e.viewState,s=r.viewState,a=s.latitude!==o.latitude||s.longitude!==o.longitude||s.zoom!==o.zoom||s.pitch!==o.pitch||s.bearing!==o.bearing;return a&&this.map.jumpTo(_he(s)),i||a}};function _he(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing??0,pitch:t.pitch??0}}var xhe={position:"absolute",left:0,top:0,width:"100%",height:"100%"};function O9e(t){let{container:e=document.body}=t;if(typeof e=="string"&&(e=document.getElementById(e)),!e)throw Error("Deck: container not found");window.getComputedStyle(e).position==="static"&&(e.style.position="relative");let n=document.createElement("div");e.appendChild(n),Object.assign(n.style,xhe);let i=document.createElement("canvas");return e.appendChild(i),Object.assign(i.style,xhe),{container:e,mapCanvas:n,deckCanvas:i}}var My=class extends C1{constructor(e){if(typeof document>"u")throw Error("Deck can only be used in the browser");let{mapCanvas:r,deckCanvas:n}=O9e(e),i=e.viewState||e.initialViewState,o=Number.isFinite(i&&i.latitude),{map:s=globalThis.mapboxgl||globalThis.maplibregl}=e;super({canvas:n,...e}),s&&s.Map?this._map=o&&new c4({...e,width:0,height:0,viewState:i,container:r,mapLib:s}):this._map=s}getMapboxMap(){return this._map&&this._map.getMap()}finalize(){this._map&&this._map.finalize(),super.finalize()}setProps(e){"mapStyle"in e&&this._map&&this._map.setProps({mapStyle:e.mapStyle}),super.setProps(e)}_drawLayers(e,r){if(this._map){let n=this.getViewports()[0];n&&this._map.setProps({width:n.width,height:n.height,viewState:n})}super._drawLayers(e,r)}};var bhe=t=>t.charAt(0)===t.charAt(0).toUpperCase(),B9e=t=>t.charAt(0)===t.charAt(0).toLowerCase()&&t.charAt(0)!=="_";function mU(t={},e){let r={},n=Object.keys(t).filter(e);for(let i of n)r[i]=t[i];return r}var k9e={classes:mU(C3,bhe),enumerations:{COORDINATE_SYSTEM:Kr,GL:pp}};RA([R2]);var U0=new ny({configuration:k9e});function D9e(t,e){let r={classes:mU(t,bhe),functions:mU(t,B9e)};e.mergeConfiguration(r)}function N9e(t,e){if(!t)return;let r={};function n(){Object.values(r).every(o=>o)&&typeof e=="function"&&e()}function i(o,s){D9e(s,U0),r[o]=s,n()}t.forEach(({libraryName:o,resourceUri:s})=>{if(r[o]=!1,o in window){i(o,window[o]);return}Object.defineProperty(window,o,{set:a=>i(o,a),get:()=>r[o]}),ZH(s)})}function whe(t,e){let r=U0.convert(t);e.setProps(r)}function vhe(t,e){return t.filter(r=>r&&r.id&&!e.find(n=>n.id===r.id))}function F9e({mapProvider:t,props:e,mapboxApiKey:r,googleMapsKey:n,handleEvent:i,getTooltip:o,container:s,onError:a}){let l=i?{onClick:f=>i("deck-click-event",f),onHover:f=>i("deck-hover-event",f),onResize:f=>i("deck-resize-event",f),onViewStateChange:({viewState:f,interactionState:m,oldViewState:v})=>{let E=new ll(f);f.nw=E.unproject([0,0]),f.se=E.unproject([E.width,E.height]),i("deck-view-state-change-event",f)},onDragStart:f=>i("deck-drag-start-event",f),onDrag:f=>i("deck-drag-event",f),onDragEnd:f=>i("deck-drag-end-event",f)}:{};l.onError=a;let u={...l,getTooltip:o,container:s};switch(t){case"mapbox":return Ar.info("Using Mapbox base maps")(),new My({...u,...e,map:QB,mapboxApiAccessToken:r,onLoad:KH});case"carto":return Ar.info("Using Carto base maps")(),new My({map:QB,...u,...e});case"google_maps":return Ar.info("Using Google Maps base maps")(),G$({...u,...e,googleMapsKey:n});default:return Ar.info("No recognized map provider specified")(),new My({...u,...e,map:null,mapboxApiAccessToken:null})}}function l4({mapboxApiKey:t,googleMapsKey:e,container:r,jsonInput:n,tooltip:i,handleEvent:o,customLibraries:s,configuration:a,showError:l}){let u,f=m=>{if(l){let v=window.document.createElement("pre");v.textContent=`Error: ${m.message}
|
|
5635
5637
|
Source: ${m.source}
|
|
5636
5638
|
Line: ${m.lineno}:${m.colno}
|