@deck.gl/jupyter-widget 9.0.5 → 9.0.6
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 +6 -6
- package/dist/index.js.map +3 -3
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -550,7 +550,7 @@ ${n}${o}${t.type.toUpperCase()}: ${t.message}
|
|
|
550
550
|
<code style="user-select:text;"><pre>
|
|
551
551
|
${n}
|
|
552
552
|
</pre></code>`,s.style.top="10px",s.style.left="10px",s.style.position="absolute",s.style.zIndex="9999",s.style.width="100%",s.style.textAlign="left",document.body.appendChild(s);let l=document.getElementsByClassName("luma-compiler-log-error");l[0]?.scrollIntoView&&l[0].scrollIntoView(),s.onclick=()=>{let u=`data:text/plain,${encodeURIComponent(this.source)}`;navigator.clipboard.writeText(u)}}},Cp=o3;si(Cp,"defaultProps",{...hn.defaultProps,language:"auto",stage:void 0,source:"",sourceMap:null,entryPoint:"main",debug:"errors"});function Gie(t){return n3(t.source).name||t.id||oa(`unnamed ${t.stage}-shader`)}var s3=class extends hn{get[Symbol.toStringTag](){return"Sampler"}constructor(e,r){super(e,r,s3.defaultProps)}},Mp=s3;si(Mp,"defaultProps",{...hn.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var a3=class extends hn{get[Symbol.toStringTag](){return"Framebuffer"}width;height;colorAttachments=[];depthStencilAttachment=null;constructor(e,r={}){super(e,r,a3.defaultProps),this.width=this.props.width,this.height=this.props.height}resize(e){let r=!e;if(e){let[i,n]=Array.isArray(e)?e:[e.width,e.height];r=r||n!==this.height||i!==this.width,this.width=i,this.height=n}r&&(Kt.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=>{if(typeof r=="string"){let i=this.createColorTexture(r);return this.attachResource(i),i.view}return r instanceof bo?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 bo?this.depthStencilAttachment=e.view:this.depthStencilAttachment=e}createColorTexture(e){return this.device.createTexture({id:"color-attachment",usage:bo.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}createDepthStencilTexture(e){return this.device.createTexture({id:"depth-stencil-attachment",usage:bo.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}resizeAttachments(e,r){for(let i=0;i<this.colorAttachments.length;++i)if(this.colorAttachments[i]){let n=this.device._createTexture({...this.colorAttachments[i].props,width:e,height:r});this.destroyAttachedResource(this.colorAttachments[i]),this.colorAttachments[i]=n.view,this.attachResource(n.view)}if(this.depthStencilAttachment){let i=this.device._createTexture({...this.depthStencilAttachment.props,width:e,height:r});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=i.view,this.attachResource(i)}}},yf=a3;si(yf,"defaultProps",{...hn.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var l3=class extends hn{get[Symbol.toStringTag](){return"RenderPipeline"}shaderLayout;bufferLayout;linkStatus="pending";hash="";constructor(e,r){super(e,r,l3.defaultProps),this.shaderLayout=this.props.shaderLayout,this.bufferLayout=this.props.bufferLayout||[]}setUniformsWebGL(e){throw new Error("Use uniform blocks")}},Ah=l3;si(Ah,"defaultProps",{...hn.defaultProps,vs:null,vertexEntryPoint:"vertexMain",vsConstants:{},fs:null,fragmentEntryPoint:"fragmentMain",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var c3=class extends hn{get[Symbol.toStringTag](){return"RenderPass"}constructor(e,r){super(e,r,c3.defaultProps)}},L0=c3;si(L0,"defaultProps",{...hn.defaultProps,framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0});var u3=class extends hn{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";constructor(e,r){super(e,r,u3.defaultProps)}},tm=u3;si(tm,"defaultProps",{...hn.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0});var h3=class extends hn{get[Symbol.toStringTag](){return"CommandEncoder"}constructor(e,r){super(e,r,h3.defaultProps)}},F0=h3;si(F0,"defaultProps",{...hn.defaultProps,measureExecutionTime:void 0});var f3=class extends hn{get[Symbol.toStringTag](){return"CommandBuffer"}constructor(e,r){super(e,r,f3.defaultProps)}},N0=f3;si(N0,"defaultProps",{...hn.defaultProps});function QU(t){let[e,r]=qie[t],i=e==="i32"||e==="u32",n=e!=="u32",o=Xie[e]*r,s=Wie(e,r);return{dataType:e,components:r,defaultVertexFormat:s,byteLength:o,integer:i,signed:n}}function Wie(t,e){let r;switch(t){case"f32":r="float32";break;case"i32":r="sint32";break;case"u32":r="uint32";break;case"f16":return e<=2?"float16x2":"float16x4"}return e===1?r:`${r}x${e}`}var qie={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]},Xie={f32:4,f16:2,i32:4,u32:4};function d3(t){let e;t.endsWith("-webgl")&&(t.replace("-webgl",""),e=!0);let[r,i]=t.split("x"),n=r,o=i?parseInt(i):1,s=X2(n),l={type:n,components:o,byteLength:s.byteLength*o,integer:s.integer,signed:s.signed,normalized:s.normalized};return e&&(l.webglOnly=!0),l}function Z2(t,e){let r={};for(let i of t.attributes)r[i.name]=Yie(t,e,i.name);return r}function $U(t,e,r=16){let i=Z2(t,e),n=new Array(r).fill(null);for(let o of Object.values(i))n[o.location]=o;return n}function Yie(t,e,r){let i=Kie(t,r),n=Zie(e,r);if(!i)return null;let o=QU(i.type),s=n?.vertexFormat||o.defaultVertexFormat,l=d3(s);return{attributeName:n?.attributeName||i.name,bufferName:n?.bufferName||i.name,location:i.location,shaderType:i.type,shaderDataType:o.dataType,shaderComponents:o.components,vertexFormat:s,bufferDataType:l.type,bufferComponents:l.components,normalized:l.normalized,integer:o.integer,stepMode:n?.stepMode||i.stepMode,byteOffset:n?.byteOffset||0,byteStride:n?.byteStride||0}}function Kie(t,e){let r=t.attributes.find(i=>i.name===e);return r||Kt.warn(`shader layout attribute "${e}" not present in shader`),r||null}function Zie(t,e){Jie(t);let r=Qie(t,e);return r||(r=$ie(t,e),r)?r:(Kt.warn(`layout for attribute "${e}" not present in buffer layout`),null)}function Jie(t){for(let e of t)(e.attributes&&e.format||!e.attributes&&!e.format)&&Kt.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`)}function Qie(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 $ie(t,e){for(let r of t){let i=r.byteStride;if(typeof r.byteStride!="number")for(let o of r.attributes||[]){let s=d3(o.format);i+=s.byteLength}let n=r.attributes?.find(o=>o.attribute===e);if(n)return{attributeName:n.attribute,bufferName:r.name,stepMode:r.stepMode,vertexFormat:n.format,byteOffset:n.byteOffset,byteStride:i}}return null}function p3(t,e){let r={...t,attributes:t.attributes.map(i=>({...i}))};for(let i of e?.attributes||[]){let n=r.attributes.find(o=>o.name===i.name);n?(n.type=i.type||n.type,n.stepMode=i.stepMode||n.stepMode):Kt.warn(`shader layout attribute ${i.name} not present in shader`)}return r}var A3=class extends hn{get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(e,r){super(e,r,A3.defaultProps),this.maxVertexAttributes=e.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null),this.attributeInfos=$U(r.renderPipeline.shaderLayout,r.renderPipeline.bufferLayout,this.maxVertexAttributes)}setConstantWebGL(e,r){throw new Error("constant attributes not supported")}},k0=A3;si(k0,"defaultProps",{...hn.defaultProps,renderPipeline:null});var m3=class extends hn{get[Symbol.toStringTag](){return"TransformFeedback"}constructor(e,r){super(e,r,m3.defaultProps)}},U0=m3;si(U0,"defaultProps",{...hn.defaultProps,layout:void 0,buffers:{}});var g3=class extends hn{get[Symbol.toStringTag](){return"QuerySet"}constructor(e,r){super(e,r,g3.defaultProps)}},z0=g3;si(z0,"defaultProps",{...hn.defaultProps,type:void 0,count:void 0});var ene={f32:{type:"f32",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<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}};function ez(t){let e=ene[t];return Yi(t),e}function tz(t,e){switch(e){case 1:return t;case 2:return t+t%2;default:return t+(4-t%4)%4}}var J2;function Q2(t){return(!J2||J2.byteLength<t)&&(J2=new ArrayBuffer(t)),J2}function _3(t,e){let r=Q2(t.BYTES_PER_ELEMENT*e);return new t(r,0,e)}function y3(t){let{target:e,source:r,start:i=0,count:n=1}=t,o=r.length,s=n*o,l=0;for(let u=i;l<o;l++)e[u++]=r[l];for(;l<s;)l<s-l?(e.copyWithin(i+l,i,i+l),l*=2):(e.copyWithin(i+l,i,i+s-l),l=s);return t.target}var rz=1024,$2=class{layout={};byteLength;constructor(e){let r=0;for(let[n,o]of Object.entries(e)){let s=ez(o),{type:l,components:u}=s;r=tz(r,u);let f=r;r+=u,this.layout[n]={type:l,size:u,offset:f}}r+=(4-r%4)%4;let i=r*4;this.byteLength=Math.max(i,rz)}getData(e){let r=Math.max(this.byteLength,rz),i=Q2(r),n={i32:new Int32Array(i),u32:new Uint32Array(i),f32:new Float32Array(i),f16:new Uint16Array(i)};for(let[o,s]of Object.entries(e)){let l=this.layout[o];if(!l){Kt.warn(`Supplied uniform value ${o} not present in uniform block layout`)();continue}let{type:u,size:f,offset:v}=l,T=n[u];if(f===1){if(typeof s!="number"&&typeof s!="boolean"){Kt.warn(`Supplied value for single component uniform ${o} is not a number: ${s}`)();continue}T[v]=Number(s)}else{let E=wp(s);if(!E){Kt.warn(`Supplied value for multi component / array uniform ${o} is not a numeric array: ${s}`)();continue}T.set(E,v)}}return new Uint8Array(i)}has(e){return Boolean(this.layout[e])}get(e){return this.layout[e]}};function iz(t,e,r=16){if(t!==e)return!1;let i=wp(t);if(!i)return!1;let n=wp(e);if(n&&i.length===n.length){for(let o=0;o<i.length;++o)if(n[o]!==i[o])return!1}return!0}function nz(t){let e=wp(t);return e?e.slice():t}var eT=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name,e?.name&&e?.shaderLayout){let r=e?.shaderLayout.bindings?.find(n=>n.type==="uniform"&&n.name===e?.name);if(!r)throw new Error(e?.name);let i=r;for(let n of i.uniforms||[])this.bindingLayout[n.name]=n}}setUniforms(e){for(let[r,i]of Object.entries(e))this._setUniform(r,i),this.needsRedraw||this.setNeedsRedraw(`${this.name}.${r}=${i}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,r){iz(this.uniforms[e],r)||(this.uniforms[e]=nz(r),this.modifiedUniforms[e]=!0,this.modified=!0)}};var lx=class{uniformBlocks=new Map;uniformBufferLayouts=new Map;uniformBuffers=new Map;constructor(e){for(let[r,i]of Object.entries(e)){let n=r,o=new $2(i.uniformTypes||{});this.uniformBufferLayouts.set(n,o);let s=new eT({name:r});s.setUniforms(i.defaultUniforms||{}),this.uniformBlocks.set(n,s)}}destroy(){for(let e of this.uniformBuffers.values())e.destroy()}setUniforms(e){for(let[r,i]of Object.entries(e))this.uniformBlocks.get(r).setUniforms(i);this.updateUniformBuffers()}getUniformBufferByteLength(e){return this.uniformBufferLayouts.get(e).byteLength}getUniformBufferData(e){let r=this.uniformBlocks.get(e).getAllUniforms();return this.uniformBufferLayouts.get(e).getData(r)}createUniformBuffer(e,r,i){i&&this.setUniforms(i);let n=this.getUniformBufferByteLength(r),o=e.createBuffer({usage:Xi.UNIFORM|Xi.COPY_DST,byteLength:n}),s=this.getUniformBufferData(r);return o.write(s),o}getManagedUniformBuffer(e,r){if(!this.uniformBuffers.get(r)){let i=this.getUniformBufferByteLength(r),n=e.createBuffer({usage:Xi.UNIFORM|Xi.COPY_DST,byteLength:i});this.uniformBuffers.set(r,n)}return this.uniformBuffers.get(r)}updateUniformBuffers(){let e=!1;for(let r of this.uniformBlocks.keys()){let i=this.updateUniformBuffer(r);e||=i}return e&&Kt.log(3,`UniformStore.updateUniformBuffers(): ${e}`)(),e}updateUniformBuffer(e){let r=this.uniformBlocks.get(e),i=this.uniformBuffers.get(e),n=!1;if(i&&r.needsRedraw){n||=r.needsRedraw;let o=this.getUniformBufferData(e);this.uniformBuffers.get(e).write(o);let l=this.uniformBlocks.get(e).getAllUniforms();Kt.log(4,`Writing to uniform buffer ${String(e)}`,o,l)()}return n}};function tT(t){let e=ArrayBuffer.isView(t)?t.constructor:t;switch(e){case Float32Array:return"float32";case Uint16Array:return"uint16";case Uint32Array:return"uint32";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int8Array:return"sint8";case Int16Array:return"sint16";case Int32Array:return"sint32";default:throw new Error(e.constructor.name)}}function cx(t){switch(t){case"float32":return Float32Array;case"uint32":return Uint32Array;case"sint32":return Int32Array;case"uint16":case"unorm16":return Uint16Array;case"sint16":case"snorm16":return Int16Array;case"uint8":case"unorm8":return Uint8Array;case"sint8":case"snorm8":return Int8Array;default:throw new Error(t)}}function v3(t,e,r){if(!e||e>4)throw new Error(`size ${e}`);let i=e,n=tT(t);if(n==="uint8"||n==="sint8"){if(i===1||i===3)throw new Error(`size: ${e}`);return r&&(n=n.replace("int","norm")),`${n}x${i}`}if(n==="uint16"||n==="sint16"){if(i===1||i===3)throw new Error(`size: ${e}`);return r&&(n=n.replace("int","norm")),`${n}x${i}`}return i===1?n:`${n}x${i}`}function oz(t){return wp(t)!==null||typeof t=="number"||typeof t=="boolean"}function ux(t){let e={bindings:{},uniforms:{}};return Object.keys(t).forEach(r=>{let i=t[r];oz(i)?e.uniforms[r]=i:e.bindings[r]=i}),e}function x3(t,e,r){let{removedProps:i={},deprecatedProps:n={},replacedProps:o={}}=r;for(let l in i)if(l in e){let f=i[l]?`${t}.${i[l]}`:"N/A";Kt.removed(`${t}.${l}`,f)()}for(let l in n)if(l in e){let u=n[l];Kt.deprecated(`${t}.${l}`,`${t}.${u}`)()}let s=null;for(let[l,u]of Object.entries(o))l in e&&(Kt.deprecated(`${t}.${l}`,`${t}.${u}`)(),s=s||Object.assign({},e),s[u]=e[l],delete s[l]);return s||e}var tne="";async function b3(t,e){return await new Promise((r,i)=>{try{let n=new Image;n.onload=()=>r(n),n.onerror=()=>i(new Error(`Could not load image ${t}.`)),n.crossOrigin=e?.crossOrigin||"anonymous",n.src=t.startsWith("http")?t:tne+t}catch(n){i(n)}})}async function hx(t,e){let r=document.getElementsByTagName("head")[0];if(!r)throw new Error("loadScript");let i=document.createElement("script");return i.setAttribute("type","text/javascript"),i.setAttribute("src",t),e&&(i.id=e),new Promise((n,o)=>{i.onload=n,i.onerror=s=>o(new Error(`Unable to load script '${t}': ${s}`)),r.appendChild(i)})}function fx(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 i=0;i<t.length;i++)if(!fx(t[i],e[i],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let o of i)if(!e.hasOwnProperty(o)||!fx(t[o],e[o],r-1))return!1;return!0}return!1}function w3(t){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60)}function T3(t){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t)}var vf;(function(t){t[t.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",t[t.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",t[t.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ZERO=0]="ZERO",t[t.ONE=1]="ONE",t[t.SRC_COLOR=768]="SRC_COLOR",t[t.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.DST_ALPHA=772]="DST_ALPHA",t[t.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",t[t.DST_COLOR=774]="DST_COLOR",t[t.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",t[t.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",t[t.CONSTANT_COLOR=32769]="CONSTANT_COLOR",t[t.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",t[t.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",t[t.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",t[t.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",t[t.BLEND_EQUATION=32777]="BLEND_EQUATION",t[t.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",t[t.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",t[t.BLEND_DST_RGB=32968]="BLEND_DST_RGB",t[t.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",t[t.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",t[t.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",t[t.BLEND_COLOR=32773]="BLEND_COLOR",t[t.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",t[t.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",t[t.LINE_WIDTH=2849]="LINE_WIDTH",t[t.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",t[t.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",t[t.CULL_FACE_MODE=2885]="CULL_FACE_MODE",t[t.FRONT_FACE=2886]="FRONT_FACE",t[t.DEPTH_RANGE=2928]="DEPTH_RANGE",t[t.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",t[t.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",t[t.DEPTH_FUNC=2932]="DEPTH_FUNC",t[t.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",t[t.STENCIL_FUNC=2962]="STENCIL_FUNC",t[t.STENCIL_FAIL=2964]="STENCIL_FAIL",t[t.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",t[t.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",t[t.STENCIL_REF=2967]="STENCIL_REF",t[t.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",t[t.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",t[t.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",t[t.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",t[t.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",t[t.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",t[t.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",t[t.VIEWPORT=2978]="VIEWPORT",t[t.SCISSOR_BOX=3088]="SCISSOR_BOX",t[t.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",t[t.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",t[t.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",t[t.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",t[t.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",t[t.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",t[t.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",t[t.RED_BITS=3410]="RED_BITS",t[t.GREEN_BITS=3411]="GREEN_BITS",t[t.BLUE_BITS=3412]="BLUE_BITS",t[t.ALPHA_BITS=3413]="ALPHA_BITS",t[t.DEPTH_BITS=3414]="DEPTH_BITS",t[t.STENCIL_BITS=3415]="STENCIL_BITS",t[t.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",t[t.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",t[t.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",t[t.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",t[t.SAMPLES=32937]="SAMPLES",t[t.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",t[t.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",t[t.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",t[t.VENDOR=7936]="VENDOR",t[t.RENDERER=7937]="RENDERER",t[t.VERSION=7938]="VERSION",t[t.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",t[t.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",t[t.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",t[t.STATIC_DRAW=35044]="STATIC_DRAW",t[t.STREAM_DRAW=35040]="STREAM_DRAW",t[t.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",t[t.ARRAY_BUFFER=34962]="ARRAY_BUFFER",t[t.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",t[t.BUFFER_SIZE=34660]="BUFFER_SIZE",t[t.BUFFER_USAGE=34661]="BUFFER_USAGE",t[t.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",t[t.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",t[t.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",t[t.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",t[t.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",t[t.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",t[t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",t[t.CULL_FACE=2884]="CULL_FACE",t[t.FRONT=1028]="FRONT",t[t.BACK=1029]="BACK",t[t.FRONT_AND_BACK=1032]="FRONT_AND_BACK",t[t.BLEND=3042]="BLEND",t[t.DEPTH_TEST=2929]="DEPTH_TEST",t[t.DITHER=3024]="DITHER",t[t.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",t[t.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",t[t.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",t[t.SCISSOR_TEST=3089]="SCISSOR_TEST",t[t.STENCIL_TEST=2960]="STENCIL_TEST",t[t.NO_ERROR=0]="NO_ERROR",t[t.INVALID_ENUM=1280]="INVALID_ENUM",t[t.INVALID_VALUE=1281]="INVALID_VALUE",t[t.INVALID_OPERATION=1282]="INVALID_OPERATION",t[t.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",t[t.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",t[t.CW=2304]="CW",t[t.CCW=2305]="CCW",t[t.DONT_CARE=4352]="DONT_CARE",t[t.FASTEST=4353]="FASTEST",t[t.NICEST=4354]="NICEST",t[t.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",t[t.BYTE=5120]="BYTE",t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.SHORT=5122]="SHORT",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.INT=5124]="INT",t[t.UNSIGNED_INT=5125]="UNSIGNED_INT",t[t.FLOAT=5126]="FLOAT",t[t.DOUBLE=5130]="DOUBLE",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.ALPHA=6406]="ALPHA",t[t.RGB=6407]="RGB",t[t.RGBA=6408]="RGBA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",t[t.VERTEX_SHADER=35633]="VERTEX_SHADER",t[t.COMPILE_STATUS=35713]="COMPILE_STATUS",t[t.DELETE_STATUS=35712]="DELETE_STATUS",t[t.LINK_STATUS=35714]="LINK_STATUS",t[t.VALIDATE_STATUS=35715]="VALIDATE_STATUS",t[t.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",t[t.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",t[t.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",t[t.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",t[t.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",t[t.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",t[t.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",t[t.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",t[t.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",t[t.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",t[t.SHADER_TYPE=35663]="SHADER_TYPE",t[t.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",t[t.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",t[t.NEVER=512]="NEVER",t[t.LESS=513]="LESS",t[t.EQUAL=514]="EQUAL",t[t.LEQUAL=515]="LEQUAL",t[t.GREATER=516]="GREATER",t[t.NOTEQUAL=517]="NOTEQUAL",t[t.GEQUAL=518]="GEQUAL",t[t.ALWAYS=519]="ALWAYS",t[t.KEEP=7680]="KEEP",t[t.REPLACE=7681]="REPLACE",t[t.INCR=7682]="INCR",t[t.DECR=7683]="DECR",t[t.INVERT=5386]="INVERT",t[t.INCR_WRAP=34055]="INCR_WRAP",t[t.DECR_WRAP=34056]="DECR_WRAP",t[t.NEAREST=9728]="NEAREST",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE=5890]="TEXTURE",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",t[t.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",t[t.TEXTURE0=33984]="TEXTURE0",t[t.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",t[t.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",t[t.FLOAT_VEC2=35664]="FLOAT_VEC2",t[t.FLOAT_VEC3=35665]="FLOAT_VEC3",t[t.FLOAT_VEC4=35666]="FLOAT_VEC4",t[t.INT_VEC2=35667]="INT_VEC2",t[t.INT_VEC3=35668]="INT_VEC3",t[t.INT_VEC4=35669]="INT_VEC4",t[t.BOOL=35670]="BOOL",t[t.BOOL_VEC2=35671]="BOOL_VEC2",t[t.BOOL_VEC3=35672]="BOOL_VEC3",t[t.BOOL_VEC4=35673]="BOOL_VEC4",t[t.FLOAT_MAT2=35674]="FLOAT_MAT2",t[t.FLOAT_MAT3=35675]="FLOAT_MAT3",t[t.FLOAT_MAT4=35676]="FLOAT_MAT4",t[t.SAMPLER_2D=35678]="SAMPLER_2D",t[t.SAMPLER_CUBE=35680]="SAMPLER_CUBE",t[t.LOW_FLOAT=36336]="LOW_FLOAT",t[t.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",t[t.HIGH_FLOAT=36338]="HIGH_FLOAT",t[t.LOW_INT=36339]="LOW_INT",t[t.MEDIUM_INT=36340]="MEDIUM_INT",t[t.HIGH_INT=36341]="HIGH_INT",t[t.FRAMEBUFFER=36160]="FRAMEBUFFER",t[t.RENDERBUFFER=36161]="RENDERBUFFER",t[t.RGBA4=32854]="RGBA4",t[t.RGB5_A1=32855]="RGB5_A1",t[t.RGB565=36194]="RGB565",t[t.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",t[t.STENCIL_INDEX=6401]="STENCIL_INDEX",t[t.STENCIL_INDEX8=36168]="STENCIL_INDEX8",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL",t[t.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",t[t.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",t[t.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",t[t.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",t[t.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",t[t.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",t[t.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",t[t.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",t[t.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",t[t.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",t[t.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",t[t.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",t[t.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",t[t.NONE=0]="NONE",t[t.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",t[t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",t[t.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",t[t.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",t[t.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",t[t.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",t[t.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",t[t.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",t[t.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",t[t.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",t[t.READ_BUFFER=3074]="READ_BUFFER",t[t.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",t[t.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",t[t.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",t[t.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",t[t.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",t[t.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",t[t.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",t[t.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",t[t.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",t[t.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",t[t.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",t[t.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",t[t.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",t[t.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",t[t.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",t[t.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",t[t.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",t[t.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",t[t.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",t[t.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",t[t.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",t[t.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",t[t.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",t[t.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",t[t.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",t[t.RED=6403]="RED",t[t.RGB8=32849]="RGB8",t[t.RGBA8=32856]="RGBA8",t[t.RGB10_A2=32857]="RGB10_A2",t[t.TEXTURE_3D=32879]="TEXTURE_3D",t[t.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",t[t.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",t[t.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",t[t.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",t[t.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",t[t.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",t[t.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",t[t.SRGB=35904]="SRGB",t[t.SRGB8=35905]="SRGB8",t[t.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",t[t.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",t[t.RGBA32F=34836]="RGBA32F",t[t.RGB32F=34837]="RGB32F",t[t.RGBA16F=34842]="RGBA16F",t[t.RGB16F=34843]="RGB16F",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",t[t.R11F_G11F_B10F=35898]="R11F_G11F_B10F",t[t.RGB9_E5=35901]="RGB9_E5",t[t.RGBA32UI=36208]="RGBA32UI",t[t.RGB32UI=36209]="RGB32UI",t[t.RGBA16UI=36214]="RGBA16UI",t[t.RGB16UI=36215]="RGB16UI",t[t.RGBA8UI=36220]="RGBA8UI",t[t.RGB8UI=36221]="RGB8UI",t[t.RGBA32I=36226]="RGBA32I",t[t.RGB32I=36227]="RGB32I",t[t.RGBA16I=36232]="RGBA16I",t[t.RGB16I=36233]="RGB16I",t[t.RGBA8I=36238]="RGBA8I",t[t.RGB8I=36239]="RGB8I",t[t.RED_INTEGER=36244]="RED_INTEGER",t[t.RGB_INTEGER=36248]="RGB_INTEGER",t[t.RGBA_INTEGER=36249]="RGBA_INTEGER",t[t.R8=33321]="R8",t[t.RG8=33323]="RG8",t[t.R16F=33325]="R16F",t[t.R32F=33326]="R32F",t[t.RG16F=33327]="RG16F",t[t.RG32F=33328]="RG32F",t[t.R8I=33329]="R8I",t[t.R8UI=33330]="R8UI",t[t.R16I=33331]="R16I",t[t.R16UI=33332]="R16UI",t[t.R32I=33333]="R32I",t[t.R32UI=33334]="R32UI",t[t.RG8I=33335]="RG8I",t[t.RG8UI=33336]="RG8UI",t[t.RG16I=33337]="RG16I",t[t.RG16UI=33338]="RG16UI",t[t.RG32I=33339]="RG32I",t[t.RG32UI=33340]="RG32UI",t[t.R8_SNORM=36756]="R8_SNORM",t[t.RG8_SNORM=36757]="RG8_SNORM",t[t.RGB8_SNORM=36758]="RGB8_SNORM",t[t.RGBA8_SNORM=36759]="RGBA8_SNORM",t[t.RGB10_A2UI=36975]="RGB10_A2UI",t[t.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",t[t.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",t[t.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",t[t.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",t[t.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",t[t.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",t[t.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",t[t.HALF_FLOAT=5131]="HALF_FLOAT",t[t.RG=33319]="RG",t[t.RG_INTEGER=33320]="RG_INTEGER",t[t.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",t[t.CURRENT_QUERY=34917]="CURRENT_QUERY",t[t.QUERY_RESULT=34918]="QUERY_RESULT",t[t.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",t[t.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",t[t.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",t[t.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",t[t.DRAW_BUFFER0=34853]="DRAW_BUFFER0",t[t.DRAW_BUFFER1=34854]="DRAW_BUFFER1",t[t.DRAW_BUFFER2=34855]="DRAW_BUFFER2",t[t.DRAW_BUFFER3=34856]="DRAW_BUFFER3",t[t.DRAW_BUFFER4=34857]="DRAW_BUFFER4",t[t.DRAW_BUFFER5=34858]="DRAW_BUFFER5",t[t.DRAW_BUFFER6=34859]="DRAW_BUFFER6",t[t.DRAW_BUFFER7=34860]="DRAW_BUFFER7",t[t.DRAW_BUFFER8=34861]="DRAW_BUFFER8",t[t.DRAW_BUFFER9=34862]="DRAW_BUFFER9",t[t.DRAW_BUFFER10=34863]="DRAW_BUFFER10",t[t.DRAW_BUFFER11=34864]="DRAW_BUFFER11",t[t.DRAW_BUFFER12=34865]="DRAW_BUFFER12",t[t.DRAW_BUFFER13=34866]="DRAW_BUFFER13",t[t.DRAW_BUFFER14=34867]="DRAW_BUFFER14",t[t.DRAW_BUFFER15=34868]="DRAW_BUFFER15",t[t.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",t[t.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",t[t.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",t[t.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",t[t.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",t[t.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",t[t.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",t[t.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",t[t.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",t[t.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",t[t.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",t[t.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",t[t.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",t[t.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",t[t.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",t[t.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",t[t.SAMPLER_3D=35679]="SAMPLER_3D",t[t.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",t[t.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",t[t.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",t[t.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",t[t.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",t[t.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",t[t.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",t[t.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",t[t.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",t[t.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",t[t.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",t[t.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",t[t.MAX_SAMPLES=36183]="MAX_SAMPLES",t[t.SAMPLER_BINDING=35097]="SAMPLER_BINDING",t[t.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",t[t.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",t[t.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",t[t.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",t[t.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",t[t.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",t[t.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",t[t.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",t[t.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",t[t.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",t[t.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",t[t.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",t[t.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",t[t.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",t[t.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",t[t.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",t[t.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",t[t.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",t[t.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",t[t.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",t[t.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",t[t.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",t[t.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",t[t.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",t[t.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",t[t.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",t[t.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",t[t.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",t[t.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",t[t.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",t[t.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",t[t.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",t[t.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",t[t.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",t[t.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",t[t.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",t[t.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",t[t.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",t[t.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",t[t.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",t[t.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",t[t.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",t[t.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",t[t.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",t[t.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",t[t.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",t[t.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",t[t.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",t[t.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",t[t.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",t[t.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",t[t.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",t[t.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",t[t.UNIFORM_TYPE=35383]="UNIFORM_TYPE",t[t.UNIFORM_SIZE=35384]="UNIFORM_SIZE",t[t.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",t[t.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",t[t.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",t[t.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",t[t.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",t[t.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",t[t.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",t[t.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",t[t.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",t[t.OBJECT_TYPE=37138]="OBJECT_TYPE",t[t.SYNC_CONDITION=37139]="SYNC_CONDITION",t[t.SYNC_STATUS=37140]="SYNC_STATUS",t[t.SYNC_FLAGS=37141]="SYNC_FLAGS",t[t.SYNC_FENCE=37142]="SYNC_FENCE",t[t.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",t[t.UNSIGNALED=37144]="UNSIGNALED",t[t.SIGNALED=37145]="SIGNALED",t[t.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",t[t.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",t[t.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",t[t.WAIT_FAILED=37149]="WAIT_FAILED",t[t.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",t[t.COLOR=6144]="COLOR",t[t.DEPTH=6145]="DEPTH",t[t.STENCIL=6146]="STENCIL",t[t.MIN=32775]="MIN",t[t.MAX=32776]="MAX",t[t.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",t[t.STREAM_READ=35041]="STREAM_READ",t[t.STREAM_COPY=35042]="STREAM_COPY",t[t.STATIC_READ=35045]="STATIC_READ",t[t.STATIC_COPY=35046]="STATIC_COPY",t[t.DYNAMIC_READ=35049]="DYNAMIC_READ",t[t.DYNAMIC_COPY=35050]="DYNAMIC_COPY",t[t.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",t[t.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",t[t.INVALID_INDEX=4294967295]="INVALID_INDEX",t[t.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",t[t.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",t[t.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",t[t.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",t[t.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",t[t.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",t[t.R16_EXT=33322]="R16_EXT",t[t.RG16_EXT=33324]="RG16_EXT",t[t.RGB16_EXT=32852]="RGB16_EXT",t[t.RGBA16_EXT=32859]="RGBA16_EXT",t[t.R16_SNORM_EXT=36760]="R16_SNORM_EXT",t[t.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",t[t.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",t[t.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",t[t.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",t[t.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",t[t.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",t[t.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",t[t.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",t[t.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",t[t.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",t[t.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",t[t.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",t[t.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",t[t.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",t[t.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",t[t.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",t[t.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",t[t.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",t[t.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",t[t.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",t[t.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",t[t.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",t[t.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",t[t.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",t[t.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",t[t.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",t[t.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",t[t.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",t[t.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",t[t.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",t[t.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",t[t.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",t[t.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",t[t.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",t[t.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",t[t.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",t[t.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",t[t.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",t[t.LINE_WEBGL=6913]="LINE_WEBGL",t[t.FILL_WEBGL=6914]="FILL_WEBGL",t[t.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",t[t.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",t[t.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",t[t.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",t[t.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",t[t.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",t[t.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",t[t.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",t[t.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",t[t.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",t[t.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",t[t.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",t[t.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",t[t.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",t[t.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",t[t.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",t[t.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",t[t.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",t[t.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",t[t.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",t[t.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",t[t.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",t[t.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",t[t.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(vf||(vf={}));var px={[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},ya=(t,e,r)=>e?t.enable(r):t.disable(r),sz=(t,e,r)=>t.hint(r,e),Qc=(t,e,r)=>t.pixelStorei(r,e),az=(t,e,r)=>{let i=r===36006?36009:36008;return t.bindFramebuffer(i,e)},dx=(t,e,r)=>{let n={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];t.bindBuffer(n,e)};function E3(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}var lz={[3042]:ya,[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]:ya,[2885]:(t,e)=>t.cullFace(e),[2929]:ya,[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]:ya,[35723]:sz,[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]:az,[36010]:az,[34964]:dx,[36662]:dx,[36663]:dx,[35053]:dx,[35055]:dx,[2886]:(t,e)=>t.frontFace(e),[33170]:sz,[2849]:(t,e)=>t.lineWidth(e),[32823]:ya,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:ya,[32926]:ya,[32928]:ya,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:ya,[3088]:(t,e)=>t.scissor(...e),[2960]:ya,[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]:ya,[10754]:ya,[12288]:ya,[12289]:ya,[12290]:ya,[12291]:ya,[12292]:ya,[12293]:ya,[12294]:ya,[12295]:ya,[3333]:Qc,[3317]:Qc,[37440]:Qc,[37441]:Qc,[37443]:Qc,[3330]:Qc,[3332]:Qc,[3331]:Qc,[3314]:Qc,[32878]:Qc,[3316]:Qc,[3315]:Qc,[32877]:Qc,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),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=E3(e)?e:[e,e];let[r,i]=e;t.stencilMaskSeparate(1028,r),t.stencilMaskSeparate(1029,i)},stencilFunc:(t,e)=>{e=E3(e)&&e.length===3?[...e,...e]:e;let[r,i,n,o,s,l]=e;t.stencilFuncSeparate(1028,r,i,n),t.stencilFuncSeparate(1029,o,s,l)},stencilOp:(t,e)=>{e=E3(e)&&e.length===3?[...e,...e]:e;let[r,i,n,o,s,l]=e;t.stencilOpSeparate(1028,r,i,n),t.stencilOpSeparate(1029,o,s,l)},viewport:(t,e)=>t.viewport(...e)};function Ys(t,e,r){return e[t]!==void 0?e[t]:r[t]}var cz={blendEquation:(t,e,r)=>t.blendEquationSeparate(Ys(32777,e,r),Ys(34877,e,r)),blendFunc:(t,e,r)=>t.blendFuncSeparate(Ys(32969,e,r),Ys(32968,e,r),Ys(32971,e,r),Ys(32970,e,r)),polygonOffset:(t,e,r)=>t.polygonOffset(Ys(32824,e,r),Ys(10752,e,r)),sampleCoverage:(t,e,r)=>t.sampleCoverage(Ys(32938,e,r),Ys(32939,e,r)),stencilFuncFront:(t,e,r)=>t.stencilFuncSeparate(1028,Ys(2962,e,r),Ys(2967,e,r),Ys(2963,e,r)),stencilFuncBack:(t,e,r)=>t.stencilFuncSeparate(1029,Ys(34816,e,r),Ys(36003,e,r),Ys(36004,e,r)),stencilOpFront:(t,e,r)=>t.stencilOpSeparate(1028,Ys(2964,e,r),Ys(2965,e,r),Ys(2966,e,r)),stencilOpBack:(t,e,r)=>t.stencilOpSeparate(1029,Ys(34817,e,r),Ys(34818,e,r),Ys(34819,e,r))},S3={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 i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[e];return i?t({[i]:r}):{valueChanged:!0}},blendColor:(t,e,r,i,n)=>t({[32773]:new Float32Array([e,r,i,n])}),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,i,n)=>t({[32969]:e,[32968]:r,[32971]:i,[32970]:n}),clearColor:(t,e,r,i,n)=>t({[3106]:new Float32Array([e,r,i,n])}),clearDepth:(t,e)=>t({[2931]:e}),clearStencil:(t,e)=>t({[2961]:e}),colorMask:(t,e,r,i,n)=>t({[3107]:[e,r,i,n]}),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,i,n)=>t({[3088]:new Int32Array([e,r,i,n])}),stencilMask:(t,e)=>t({[2968]:e,[36005]:e}),stencilMaskSeparate:(t,e,r)=>t({[e===1028?2968:36005]:r}),stencilFunc:(t,e,r,i)=>t({[2962]:e,[2967]:r,[2963]:i,[34816]:e,[36003]:r,[36004]:i}),stencilFuncSeparate:(t,e,r,i,n)=>t({[e===1028?2962:34816]:r,[e===1028?2967:36003]:i,[e===1028?2963:36004]:n}),stencilOp:(t,e,r,i)=>t({[2964]:e,[2965]:r,[2966]:i,[34817]:e,[34818]:r,[34819]:i}),stencilOpSeparate:(t,e,r,i,n)=>t({[e===1028?2964:34817]:r,[e===1028?2965:34818]:i,[e===1028?2966:34819]:n}),viewport:(t,e,r,i,n)=>t({[2978]:[e,r,i,n]})},xf=(t,e)=>t.isEnabled(e),C3={[3042]:xf,[2884]:xf,[2929]:xf,[3024]:xf,[32823]:xf,[32926]:xf,[32928]:xf,[3089]:xf,[2960]:xf,[35977]:xf},uz=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 mh(t,e){if(rne(e))return;let r={};for(let n in e){let o=Number(n),s=lz[n];s&&(typeof s=="string"?r[s]=!0:s(t,e[n],o))}let i=t.state&&t.state.cache;if(i)for(let n in r){let o=cz[n];o(t,e,i)}}function rT(t,e=px){if(typeof e=="number"){let n=e,o=C3[n];return o?o(t,n):t.getParameter(n)}let r=Array.isArray(e)?e:Object.keys(e),i={};for(let n of r){let o=C3[n];i[n]=o?o(t,Number(n)):t.getParameter(Number(n))}return i}function hz(t){mh(t,px)}function rne(t){for(let e in t)return!1;return!0}function fz(t,e){if(t===e)return!0;let r=Array.isArray(t)||ArrayBuffer.isView(t),i=Array.isArray(e)||ArrayBuffer.isView(e);if(r&&i&&t.length===e.length){for(let n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0}return!1}var M3=class{gl;program=null;stateStack=[];enable=!0;cache;log;constructor(e,{copyState:r=!1,log:i=()=>{}}={}){this.gl=e,this.cache=r?rT(e):Object.assign({},px),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){Yi(this.stateStack.length>0);let e=this.stateStack[this.stateStack.length-1];mh(this.gl,e),this.stateStack.pop()}_updateCache(e){let r=!1,i,n=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in e){Yi(o!==void 0);let s=e[o],l=this.cache[o];fz(s,l)||(r=!0,i=l,n&&!(o in n)&&(n[o]=l),this.cache[o]=s)}return{valueChanged:r,oldValue:i}}};function rm(t){return t.state}function I3(t,e){let{enable:r=!0,copyState:i}=e;if(Yi(i!==void 0),!t.state){t.state=new M3(t,{copyState:i}),nne(t);for(let o in S3){let s=S3[o];ine(t,o,s)}dz(t,"getParameter"),dz(t,"isEnabled")}let n=rm(t);return n.enable=r,t}function Ip(t){let e=rm(t);e||(I3(t,{copyState:!1}),e=rm(t)),e.push()}function yd(t){let e=rm(t);Yi(e),e.pop()}function dz(t,e){let r=t[e].bind(t);t[e]=function(n){if(n===void 0||uz.has(n))return r(n);let o=rm(t);return n in o.cache||(o.cache[n]=r(n)),o.enable?o.cache[n]:r(n)},Object.defineProperty(t[e],"name",{value:`${e}-from-cache`,configurable:!1})}function ine(t,e,r){if(!t[e])return;let i=t[e].bind(t);t[e]=function(...o){let s=rm(t),{valueChanged:l,oldValue:u}=r(s._updateCache,...o);return l&&i(...o),u},Object.defineProperty(t[e],"name",{value:`${e}-to-cache`,configurable:!1})}function nne(t){let e=t.useProgram.bind(t);t.useProgram=function(i){let n=rm(t);n.program!==i&&(e(i),n.program=i)}}var one={powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function pz(t,e){e={...one,...e};let r=null,i=o=>r=o.statusMessage||r;t.addEventListener("webglcontextcreationerror",i,!1);let n=null;if(n||=t.getContext("webgl2",e),t.removeEventListener("webglcontextcreationerror",i,!1),!n)throw new Error(`Failed to create WebGL context: ${r||"Unknown error"}`);if(e.onContextLost){let{onContextLost:o}=e;t.addEventListener("webglcontextlost",s=>o(s),!1)}if(e.onContextRestored){let{onContextRestored:o}=e;t.addEventListener("webglcontextrestored",s=>o(s),!1)}return n}function Ru(t,e,r){return r[e]===void 0&&(r[e]=t.getExtension(e)||null),r[e]}function Az(t,e){let r=t.getParameter(7936),i=t.getParameter(7937);Ru(t,"WEBGL_debug_renderer_info",e);let n=e.WEBGL_debug_renderer_info,o=t.getParameter(n?n.UNMASKED_VENDOR_WEBGL:7936),s=t.getParameter(n?n.UNMASKED_RENDERER_WEBGL:7937),l=o||r,u=s||i,f=t.getParameter(7938),v=mz(l,u),T=sne(l,u),E=ane(l,u);return{type:"webgl",gpu:v,gpuType:E,gpuBackend:T,vendor:l,renderer:u,version:f,shadingLanguage:"glsl",shadingLanguageVersion:300}}function mz(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 sne(t,e){return/Metal/i.exec(t)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(t)||/ANGLE/i.exec(e)?"opengl":"unknown"}function ane(t,e){if(/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e))return"cpu";switch(mz(t,e)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function iT(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 Dl="texture-compression-bc",Ho="texture-compression-astc",bf="texture-compression-etc2",lne="texture-compression-etc1-webgl",nT="texture-compression-pvrtc-webgl",P3="texture-compression-atc-webgl",Ax="float32-renderable-webgl",R3="float16-renderable-webgl",cne="rgb9e5ufloat_renderable-webgl",B3="snorm8-renderable-webgl",mx="norm16-renderable-webgl",O3="snorm16-renderable-webgl",oT="float32-filterable",gz="float16-filterable-webgl",gx="WEBGL_compressed_texture_s3tc",_x="WEBGL_compressed_texture_s3tc_srgb",V0="EXT_texture_compression_rgtc",j0="EXT_texture_compression_bptc",une="WEBGL_compressed_texture_etc",hne="WEBGL_compressed_texture_astc",fne="WEBGL_compressed_texture_etc1",dne="WEBGL_compressed_texture_pvrtc",pne="WEBGL_compressed_texture_atc",_z="EXT_texture_norm16",yz="EXT_render_snorm",Ane="EXT_color_buffer_float",sT={"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":[yz],"norm16-renderable-webgl":[_z],"snorm16-renderable-webgl":[_z,yz],"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":[gx,_x,V0,j0],"texture-compression-bc5-webgl":[V0],"texture-compression-bc7-webgl":[j0],"texture-compression-etc2":[une],"texture-compression-astc":[hne],"texture-compression-etc1-webgl":[fne],"texture-compression-pvrtc-webgl":[dne],"texture-compression-atc-webgl":[pne]};function vz(t){return t in sT}function xz(t,e,r){return(sT[e]||[]).every(n=>Ru(t,n,r))}var aT={"rgb8unorm-unsized":{gl:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,rb:!0},r8snorm:{gl:36756,b:1,c:1,render:B3},r8uint:{gl:33330,b:1,c:1,rb:!0},r8sint:{gl:33329,b:1,c:1,rb:!0},rg8unorm:{gl:33323,b:2,c:2,rb:!0},rg8snorm:{gl:36757,b:2,c:2,render:B3},rg8uint:{gl:33336,b:2,c:2,rb:!0},rg8sint:{gl:33335,b:2,c:2,rb:!0},r16uint:{gl:33332,b:2,c:1,rb:!0},r16sint:{gl:33331,b:2,c:1,rb:!0},r16float:{gl:33325,b:2,c:1,render:R3,filter:"float16-filterable-webgl",rb:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:mx,rb:!0},"r16snorm-webgl":{gl:36760,b:2,c:1,f:O3},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,rb:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,rb:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,rb:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,b:4,c:4,bpp:4},rgba8snorm:{gl:36759,b:4,c:4,render:B3},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:R3,filter:gz,rb:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,render:mx},"rg16snorm-webgl":{gl:36761,b:2,c:2,render:O3},r32uint:{gl:33334,b:4,c:1,bpp:4,rb:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,rb:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:Ax,filter:oT},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:cne},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:Ax,rb:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,rb:!0},"rgb10a2uint-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,rb:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:mx},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:mx},rg32uint:{gl:33340,b:8,c:2,rb:!0},rg32sint:{gl:33339,b:8,c:2,rb:!0},rg32float:{gl:33328,b:8,c:2,render:Ax,filter:oT,rb:!0},rgba16uint:{gl:36214,b:8,c:4,rb:!0},rgba16sint:{gl:36232,b:8,c:4,rb:!0},rgba16float:{gl:34842,b:8,c:4,render:R3,filter:gz},"rgba16unorm-webgl":{gl:32859,b:2,c:4,render:mx,rb:!0},"rgba16snorm-webgl":{gl:36763,b:2,c:4,render:O3},"rgb32float-webgl":{gl:34837,render:Ax,filter:oT,gl2ext:Ane,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,rb:!0},rgba32sint:{gl:36226,b:16,c:4,rb:!0},rgba32float:{gl:34836,b:16,c:4,render:Ax,filter:oT,rb:!0},stencil8:{gl:36168,b:1,c:1,attachment:36128,rb:!0},depth16unorm:{gl:33189,b:2,c:1,attachment:36096,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096,dataFormat:6402,types:[5125]},depth32float:{gl:36012,b:4,c:1,attachment:36096,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,dataFormat:34041,types:[34042],rb:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:gx,f:Dl},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:_x,f:Dl},"bc1-rgba-unorm":{gl:33777,x:gx,f:Dl},"bc1-rgba-unorm-srgb":{gl:35916,x:_x,f:Dl},"bc2-rgba-unorm":{gl:33778,x:gx,f:Dl},"bc2-rgba-unorm-srgb":{gl:35918,x:_x,f:Dl},"bc3-rgba-unorm":{gl:33779,x:gx,f:Dl},"bc3-rgba-unorm-srgb":{gl:35919,x:_x,f:Dl},"bc4-r-unorm":{gl:36283,x:V0,f:Dl},"bc4-r-snorm":{gl:36284,x:V0,f:Dl},"bc5-rg-unorm":{gl:36285,x:V0,f:Dl},"bc5-rg-snorm":{gl:36286,x:V0,f:Dl},"bc6h-rgb-ufloat":{gl:36495,x:j0,f:Dl},"bc6h-rgb-float":{gl:36494,x:j0,f:Dl},"bc7-rgba-unorm":{gl:36492,x:j0,f:Dl},"bc7-rgba-unorm-srgb":{gl:36493,x:j0,f:Dl},"etc2-rgb8unorm":{gl:37492,f:bf},"etc2-rgb8unorm-srgb":{gl:37494,f:bf},"etc2-rgb8a1unorm":{gl:37496,f:bf},"etc2-rgb8a1unorm-srgb":{gl:37497,f:bf},"etc2-rgba8unorm":{gl:37493,f:bf},"etc2-rgba8unorm-srgb":{gl:37495,f:bf},"eac-r11unorm":{gl:37488,f:bf},"eac-r11snorm":{gl:37489,f:bf},"eac-rg11unorm":{gl:37490,f:bf},"eac-rg11snorm":{gl:37491,f:bf},"astc-4x4-unorm":{gl:37808,f:Ho},"astc-4x4-unorm-srgb":{gl:37840,f:Ho},"astc-5x4-unorm":{gl:37809,f:Ho},"astc-5x4-unorm-srgb":{gl:37841,f:Ho},"astc-5x5-unorm":{gl:37810,f:Ho},"astc-5x5-unorm-srgb":{gl:37842,f:Ho},"astc-6x5-unorm":{gl:37811,f:Ho},"astc-6x5-unorm-srgb":{gl:37843,f:Ho},"astc-6x6-unorm":{gl:37812,f:Ho},"astc-6x6-unorm-srgb":{gl:37844,f:Ho},"astc-8x5-unorm":{gl:37813,f:Ho},"astc-8x5-unorm-srgb":{gl:37845,f:Ho},"astc-8x6-unorm":{gl:37814,f:Ho},"astc-8x6-unorm-srgb":{gl:37846,f:Ho},"astc-8x8-unorm":{gl:37815,f:Ho},"astc-8x8-unorm-srgb":{gl:37847,f:Ho},"astc-10x5-unorm":{gl:37819,f:Ho},"astc-10x5-unorm-srgb":{gl:37851,f:Ho},"astc-10x6-unorm":{gl:37817,f:Ho},"astc-10x6-unorm-srgb":{gl:37849,f:Ho},"astc-10x8-unorm":{gl:37818,f:Ho},"astc-10x8-unorm-srgb":{gl:37850,f:Ho},"astc-10x10-unorm":{gl:37819,f:Ho},"astc-10x10-unorm-srgb":{gl:37851,f:Ho},"astc-12x10-unorm":{gl:37820,f:Ho},"astc-12x10-unorm-srgb":{gl:37852,f:Ho},"astc-12x12-unorm":{gl:37821,f:Ho},"astc-12x12-unorm-srgb":{gl:37853,f:Ho},"pvrtc-rgb4unorm-webgl":{gl:35840,f:nT},"pvrtc-rgba4unorm-webgl":{gl:35842,f:nT},"pvrtc-rbg2unorm-webgl":{gl:35841,f:nT},"pvrtc-rgba2unorm-webgl":{gl:35843,f:nT},"etc1-rbg-unorm-webgl":{gl:36196,f:lne},"atc-rgb-unorm-webgl":{gl:35986,f:P3},"atc-rgba-unorm-webgl":{gl:35986,f:P3},"atc-rgbai-unorm-webgl":{gl:34798,f:P3}},mne={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},gne={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function lT(t,e,r){let i=aT[e];if(!i||i.gl===void 0)return!1;let n=i.x||i.gl2ext;return n?Boolean(Ru(t,n,r)):!0}function D3(t){let r=aT[t]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${t}`);return r}function bz(t,e,r){if(!lT(t,e,r)||e.startsWith("depth")||e.startsWith("stencil"))return!1;try{if(Y2(e).signed)return!1}catch{return!1}return e.endsWith("32float")?Boolean(Ru(t,"OES_texture_float_linear, extensions",r)):e.endsWith("16float")?Boolean(Ru(t,"OES_texture_half_float_linear, extensions",r)):!0}function wz(t,e,r){return!(!lT(t,e,r)||typeof e=="number")}function H0(t){let e=aT[t],r=D3(t),i=Y2(t);return{format:r,dataFormat:e?.dataFormat||_ne(i.format,i.integer,i.normalized,r),type:i.dataType?iT(i.dataType):e?.types?.[0]||5121,compressed:i.compressed}}function Tz(t){let e=aT[t];if(!e?.attachment)throw new Error(`${t} is not a depth stencil format`);return e.attachment}function L3(t){let e=H0(t),r=mne[e.dataFormat]||4,i=gne[e.type]||1;return r*i}function _ne(t,e,r,i){if(i===6408||i===6407)return i;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;default:return 6408}}var Ez={"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"},cT=class extends sx{gl;extensions;testedFeatures=new Set;constructor(e,r,i){super([],i),this.gl=e,this.extensions=r,Ru(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),vz(e)&&xz(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(Ez),...Object.keys(sT)]}getWebGLFeature(e){let r=Ez[e];return Boolean(typeof r=="string"?Ru(this.gl,r,this.extensions):r)}};var uT=class extends ox{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 maxInterStageShaderComponents(){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]}};function Bu(t,e,r){if(yne(e))return r(t);let{nocatch:i=!0}=e;Ip(t),mh(t,e);let n;if(i)n=r(t),yd(t);else try{n=r(t)}finally{yd(t)}return n}function yne(t){for(let e in t)return!1;return!0}function Cz(t,e,r,i){if(Tp(e))return i(t);let n=t;Ip(n.gl);try{return vne(t,e),mh(n.gl,r),i(t)}finally{yd(n.gl)}}function vne(t,e){let r=t,{gl:i}=r;if(e.cullMode)switch(e.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(e.frontFace&&i.frontFace(im("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&i.enable(34383),e.depthBias!==void 0&&(i.enable(32823),i.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=im("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=im("polygonMode",e.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,s),o?.polygonModeWEBGL(1029,s)}e.polygonOffsetLine&&i.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&i.enable(12288),e.clipDistance1&&i.enable(12289),e.clipDistance2&&i.enable(12290),e.clipDistance3&&i.enable(12291),e.clipDistance4&&i.enable(12292),e.clipDistance5&&i.enable(12293),e.clipDistance6&&i.enable(12294),e.clipDistance7&&i.enable(12295)),e.depthWriteEnabled!==void 0&&i.depthMask(bne("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(fT("depthCompare",e.depthCompare))),e.stencilWriteMask){let n=e.stencilWriteMask;i.stencilMaskSeparate(1028,n),i.stencilMaskSeparate(1029,n)}if(e.stencilReadMask&&Kt.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let n=e.stencilReadMask||4294967295,o=fT("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,n),i.stencilFuncSeparate(1029,o,0,n)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let n=F3("stencilPassOperation",e.stencilPassOperation),o=F3("stencilFailOperation",e.stencilFailOperation),s=F3("stencilDepthFailOperation",e.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,s,n),i.stencilOpSeparate(1029,o,s,n)}if(e.blendColorOperation||e.blendAlphaOperation){i.enable(3042);let n=Sz("blendColorOperation",e.blendColorOperation||"add"),o=Sz("blendAlphaOperation",e.blendAlphaOperation||"add");i.blendEquationSeparate(n,o);let s=hT("blendColorSrcFactor",e.blendColorSrcFactor||"one"),l=hT("blendColorDstFactor",e.blendColorDstFactor||"zero"),u=hT("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),f=hT("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");i.blendFuncSeparate(s,l,u,f)}}function fT(t,e){return im(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function F3(t,e){return im(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Sz(t,e){return im(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function hT(t,e){return im(t,e,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function xne(t,e){return`Illegal parameter ${e} for ${t}`}function im(t,e,r){if(!(e in r))throw new Error(xne(t,e));return r[e]}function bne(t,e){return e}function dT(t){let e={};return t.addressModeU&&(e[10242]=N3(t.addressModeU)),t.addressModeV&&(e[10243]=N3(t.addressModeV)),t.addressModeW&&(e[32882]=N3(t.addressModeW)),t.magFilter&&(e[10240]=Mz(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=wne(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]=fT("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function N3(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Mz(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function wne(t,e){if(!e)return Mz(t);switch(t){case"nearest":return e==="nearest"?9984:9986;case"linear":return e==="nearest"?9985:9987}}var Jl=class extends Xi{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;constructor(e,r={}){super(e,r),this.device=e,this.gl=this.device.gl;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),e.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Tne(this.props.usage),this.glUsage=Ene(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)}_initWithData(e,r=0,i=e.byteLength+r){let n=this.glTarget;this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.glUsage),this.gl.bufferSubData(n,r,e),this.gl.bindBuffer(n,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(e,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(e){Yi(e>=0);let r=e;e===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.trackAllocatedMemory(e),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(e,r=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,r,e),this.gl.bindBuffer(36663,null),this._setDebugData(e,r,e.byteLength)}async readAsync(e=0,r){return this.readSyncWebGL(e,r)}readSyncWebGL(e=0,r){r=r??this.byteLength-e;let i=new Uint8Array(r),n=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,i,n,r),this.gl.bindBuffer(36662,null),this._setDebugData(i,e,r),i}};function Tne(t){return t&Xi.INDEX?34963:t&Xi.VERTEX?34962:t&Xi.UNIFORM?35345:34962}function Ene(t){return t&Xi.INDEX||t&Xi.VERTEX?35044:t&Xi.UNIFORM?35048:35044}var nm=class extends Mp{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=dT(r),this.handle=this.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,i]of Object.entries(e)){let n=Number(r);switch(n){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,n,i);break;default:this.device.gl.samplerParameteri(this.handle,n,i);break}}}};var gh=class extends Sp{device;gl;handle;texture;constructor(e,r){super(e,{...bo.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}};var Sne={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},pT=class extends bo{MAX_ATTRIBUTES;device;gl;handle;sampler=void 0;view=void 0;glFormat=void 0;type=void 0;dataFormat=void 0;mipmaps=void 0;target;textureUnit=void 0;loaded=!1;_video;constructor(e,r){super(e,{...Sne,format:"rgba8unorm",...r}),this.device=e,this.gl=this.device.gl,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Cne(this.props),this.loaded=!1,typeof this.props?.data=="string"&&Object.assign(this.props,{data:b3(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}createView(e){return new gh(this.device,{...e,texture:this})}initialize(e={}){if(this.props.dimension==="cube")return this.initializeCube(e);let r=e.data;if(r instanceof Promise)return r.then(U=>this.initialize(Object.assign({},e,{pixels:U,data:U}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(e)),this;let{parameters:n={}}=e,{pixels:o=null,pixelStore:s={},textureUnit:l=void 0,mipmaps:u=!0}=e;r||(r=o);let{width:f,height:v,dataFormat:T,type:E,compressed:M=!1}=e,{depth:O=0}=e,F=D3(e.format);return{width:f,height:v,compressed:M,dataFormat:T,type:E}=this._deduceParameters({format:e.format,type:E,dataFormat:T,compressed:M,data:r,width:f,height:v}),this.width=f,this.height=v,this.glFormat=F,this.type=E,this.dataFormat=T,this.textureUnit=l,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),this.mipmaps=u,this.setImageData({data:r,width:f,height:v,depth:O,format:F,type:E,dataFormat:T,parameters:s,compressed:M}),this.setSampler(e.sampler),this._setSamplerParameters(n),this.view=this.createView({...this.props,mipLevelCount:1,arrayLayerCount:1}),u&&this.device.isTextureFormatFilterable(e.format)&&this.generateMipmap(),i&&(this._video={video:r,parameters:n,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(e){let{mipmaps:r=!0,parameters:i={}}=e;return this.setCubeMapImageData(e).then(()=>{this.loaded=!0,r&&this.generateMipmap(e),this.setSampler(e.sampler),this._setSamplerParameters(i)}),this}setSampler(e={}){let r;e instanceof nm?(this.sampler=e,r=e.props):(this.sampler=new nm(this.device,e),r=e);let i=dT(r);return this._setSamplerParameters(i),this}resize(e){let{height:r,width:i,mipmaps:n=!1}=e;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:n}):this}update(){if(this._video){let{video:e,parameters:r,lastTime:i}=this._video;if(i===e.currentTime||e.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:e,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=e.currentTime}}generateMipmap(e={}){return this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Bu(this.gl,e,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this}setImageData(e){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(e);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:n=0,glFormat:o=this.glFormat,offset:s=0,parameters:l={}}=e,{data:u=null,type:f=this.type,width:v=this.width,height:T=this.height,dataFormat:E=this.dataFormat,compressed:M=!1}=e;u||(u=i),{type:f,dataFormat:E,compressed:M,width:v,height:T}=this._deduceParameters({format:this.props.format,type:f,dataFormat:E,compressed:M,data:u,width:v,height:T});let{gl:O}=this;O.bindTexture(this.target,this.handle);let F=null;if({data:u,dataType:F}=this._getDataType({data:u,compressed:M}),Bu(this.gl,l,()=>{switch(F){case"null":O.texImage2D(r,n,o,v,T,0,E,f,u);break;case"typed-array":O.texImage2D(r,n,o,v,T,0,E,f,u,s);break;case"buffer":this.device.gl.bindBuffer(35052,u.handle||u),this.device.gl.texImage2D(r,n,o,v,T,0,E,f,s),this.device.gl.bindBuffer(35052,null);break;case"browser-object":O.texImage2D(r,n,o,v,T,0,E,f,u);break;case"compressed":for(let[U,G]of u.entries())O.compressedTexImage2D(r,U,G.format,G.width,G.height,0,G.data);break;default:Yi(!1,"Unknown image data type")}}),u&&u.byteLength)this.trackAllocatedMemory(u.byteLength,"Texture");else{let U=L3(this.props.format);this.trackAllocatedMemory(this.width*this.height*U,"Texture")}return this.loaded=!0,this}setSubImageData({target:e=this.target,pixels:r=null,data:i=null,x:n=0,y:o=0,width:s=this.width,height:l=this.height,level:u=0,glFormat:f=this.glFormat,type:v=this.type,dataFormat:T=this.dataFormat,compressed:E=!1,offset:M=0,parameters:O={}}){if({type:v,dataFormat:T,compressed:E,width:s,height:l}=this._deduceParameters({format:this.props.format,type:v,dataFormat:T,compressed:E,data:i,width:s,height:l}),Yi(this.depth===1,"texSubImage not supported for 3D textures"),i||(i=r),i&&i.data){let F=i;i=F.data,s=F.shape[0],l=F.shape[1]}i instanceof Jl&&(i=i.handle),this.gl.bindTexture(this.target,this.handle),Bu(this.gl,O,()=>{E?this.gl.compressedTexSubImage2D(e,u,n,o,s,l,f,i):i===null?this.gl.texSubImage2D(e,u,n,o,s,l,T,v,null):ArrayBuffer.isView(i)?this.gl.texSubImage2D(e,u,n,o,s,l,T,v,i,M):typeof WebGLBuffer<"u"&&i instanceof WebGLBuffer?(this.device.gl.bindBuffer(35052,i),this.device.gl.texSubImage2D(e,u,n,o,s,l,T,v,M),this.device.gl.bindBuffer(35052,null)):this.device.gl.texSubImage2D(e,u,n,o,s,l,T,v,i)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(e={}){return Kt.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(e=this.textureUnit){let{gl:r}=this;return e!==void 0&&(this.textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.target,this.handle),e}unbind(e=this.textureUnit){let{gl:r}=this;return e!==void 0&&(this.textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.target,null),e}_getDataType({data:e,compressed:r=!1}){return r?{data:e,dataType:"compressed"}:e===null?{data:e,dataType:"null"}:ArrayBuffer.isView(e)?{data:e,dataType:"typed-array"}:e instanceof Jl?{data:e.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer?{data:e,dataType:"buffer"}:{data:e,dataType:"browser-object"}}_deduceParameters(e){let{format:r,data:i}=e,{width:n,height:o,dataFormat:s,type:l,compressed:u}=e,f=H0(r);return s=s||f.dataFormat,l=l||f.type,u=u||f.compressed,{width:n,height:o}=this._deduceImageSize(i,n,o),{dataFormat:s,type:l,compressed:u,width:n,height:o,format:r,data:i}}_deduceImageSize(e,r,i){let n;return typeof ImageData<"u"&&e instanceof ImageData?n={width:e.width,height:e.height}:typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement?n={width:e.naturalWidth,height:e.naturalHeight}:typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement?n={width:e.width,height:e.height}:typeof ImageBitmap<"u"&&e instanceof ImageBitmap?n={width:e.width,height:e.height}:typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement?n={width:e.videoWidth,height:e.videoHeight}:e?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},Yi(n,"Could not deduced texture size"),Yi(r===void 0||n.width===r,"Deduced texture width does not match supplied width"),Yi(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}async setCubeMapImageData(e){let{gl:r}=this,{width:i,height:n,pixels:o,data:s,format:l=6408,type:u=5121}=e,f=o||s,v=await Promise.all(pT.FACES.map(T=>{let E=f[T];return Promise.all(Array.isArray(E)?E:[E])}));this.bind(),pT.FACES.forEach((T,E)=>{v[E].length>1&&this.props.mipmaps!==!1&&Kt.warn(`${this.id} has mipmap and multiple LODs.`)(),v[E].forEach((M,O)=>{i&&n?r.texImage2D(T,O,l,i,n,0,l,u,M):r.texImage2D(T,O,l,l,u,M)})}),this.unbind()}setImageDataForFace(e){let{face:r,width:i,height:n,pixels:o,data:s,format:l=6408,type:u=5121}=e,{gl:f}=this,v=o||s;return this.bind(),v instanceof Promise?v.then(T=>this.setImageDataForFace(Object.assign({},e,{face:r,data:T,pixels:T}))):this.width||this.height?f.texImage2D(r,0,l,i,n,0,l,u,v):f.texImage2D(r,0,l,l,u,v),this}setImageData3D(e){let{level:r=0,dataFormat:i,format:n,type:o,width:s,height:l,depth:u=1,offset:f=0,data:v,parameters:T={}}=e;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let E=H0(n);if(Bu(this.gl,T,()=>{ArrayBuffer.isView(v)&&this.gl.texImage3D(this.target,r,E.format,s,l,u,0,E.dataFormat,E.type,v),v instanceof Jl&&(this.gl.bindBuffer(35052,v.handle),this.gl.texImage3D(this.target,r,i,s,l,u,0,n,o,f))}),v&&v.byteLength)this.trackAllocatedMemory(v.byteLength,"Texture");else{let M=L3(this.props.format);this.trackAllocatedMemory(this.width*this.height*this.depth*M,"Texture")}return this.loaded=!0,this}_setSamplerParameters(e){if(!Tp(e)){Mne(e),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(e)){let n=Number(r),o=i;switch(n){case 33082:case 33083:this.gl.texParameterf(this.target,n,o);break;default:this.gl.texParameteri(this.target,n,o);break}}this.gl.bindTexture(this.target,null)}}},Ql=pT;si(Ql,"FACES",[34069,34070,34071,34072,34073,34074]);function Cne(t){switch(t.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(t.dimension)}}function Mne(t){Kt.log(1,"texture sampler parameters",t)()}var wf=class extends yf{device;gl;handle;get texture(){return this.colorAttachments[0]}constructor(e,r){super(e,r);let i=r.handle===null;if(this.device=e,this.gl=e.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){e.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures();let n=this.gl.bindFramebuffer(36160,this.handle);for(let o=0;o<this.colorAttachments.length;++o){let s=this.colorAttachments[o],l=36064+o;s&&this._attachOne(l,s)}if(this.depthStencilAttachment&&this._attachOne(Tz(this.depthStencilAttachment.props.format),this.depthStencilAttachment),r.check!==!1){let o=this.gl.checkFramebufferStatus(36160);if(o!==36053)throw new Error(`Framebuffer ${Pne(o)}`)}this.gl.bindFramebuffer(36160,n)}}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}createDepthStencilTexture(e){return new Ql(this.device,{id:`${this.id}-depth-stencil`,format:e,width:this.width,height:this.height,mipmaps:!1})}resizeAttachments(e,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;e===void 0&&(e=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.texture.resize({width:e,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.texture.resize({width:e,height:r}),this}_attachOne(e,r){if(Array.isArray(r)){let[i,n=0,o=0]=r;return this._attachTexture(e,i,n,o),i}if(r instanceof Ql)return this._attachTexture(e,r,0,0),r;if(r instanceof gh){let i=r;return this._attachTexture(e,i.texture,i.props.baseMipLevel,i.props.baseArrayLayer),r.texture}throw new Error("attach")}_attachTexture(e,r,i,n){let{gl:o}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:o.framebufferTextureLayer(36160,e,r.target,n,i);break;case 34067:let s=Ine(i);o.framebufferTexture2D(36160,e,s,r.handle,n);break;case 3553:o.framebufferTexture2D(36160,e,3553,r.handle,n);break;default:Yi(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function Ine(t){return t<34069?t+34069:t}function Pne(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 AT=class extends Ep{device;presentationSize;_framebuffer=null;constructor(e,r){super(r),this.device=e,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new wf(this.device,{handle:null}),this._framebuffer}update(){let e=this.getPixelSize();(e[0]!==this.presentationSize[0]||e[1]!==this.presentationSize[1])&&(this.presentationSize=e,this.resize())}resize(e){if(this.device.gl&&this.canvas){let r=this.getDevicePixelRatio(e?.useDevicePixels);this.setDevicePixelRatio(r,e);return}}commit(){}};var Rne={spector:Kt.get("spector")||Kt.get("inspect")},Bne="https://spectorcdn.babylonjs.com/spector.bundle.js",One=1,Ec=null,Iz=!1;async function Pz(t){if(!globalThis.SPECTOR)try{await hx(Bne)}catch(e){Kt.warn(String(e))}}function Rz(t){if(t={...Rne,...t},!t?.spector||(!Ec&&globalThis.SPECTOR&&(Kt.probe(One,"SPECTOR found and initialized")(),Ec=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=Ec)),!Ec))return null;if(Iz||(Iz=!0,Ec.spyCanvases(),Ec?.onCaptureStarted.add(e=>Kt.info("Spector capture started:",e)()),Ec?.onCapture.add(e=>{Kt.info("Spector capture complete:",e)(),Ec?.getResultUI(),Ec?.resultView.display(),Ec?.resultView.addCapture(e)})),t?.canvas){if(typeof t.spector=="string"&&t.spector!==t.canvas.id)return Ec;Ec?.startCapture(t?.canvas,500),new Promise(e=>setTimeout(e,2e3)).then(e=>{Kt.info("Spector capture stopped after 2 seconds")(),Ec?.stopCapture()})}return Ec}var Dne="https://unpkg.com/webgl-debug@2.0.1/index.js";function Bz(t){return t.luma=t.luma||{},t.luma}async function Oz(){Ol()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await hx(Dne))}function Dz(t,e={}){return t?e.debug?Fne(t,e):Lne(t):null}function Lne(t){let e=Bz(t);return e.realContext?e.realContext:t}function Fne(t,e){if(!globalThis.WebGLDebugUtils)return Kt.warn("webgl-debug not loaded")(),t;let r=Bz(t);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...vf,...t});let i=globalThis.WebGLDebugUtils.makeDebugContext(t,Nne.bind(null,e),kne.bind(null,e));for(let s in vf)!(s in i)&&typeof vf[s]=="number"&&(i[s]=vf[s]);class n{}Object.setPrototypeOf(i,Object.getPrototypeOf(t)),Object.setPrototypeOf(n,i);let o=Object.create(n);return r.realContext=t,r.debugContext=o,o.debug=!0,o}function k3(t,e){e=Array.from(e).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,e);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${t}(${r})`}function Nne(t,e,r,i){i=Array.from(i).map(l=>l===void 0?"undefined":l);let n=globalThis.WebGLDebugUtils.glEnumToString(e),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),s=`${n} in gl.${r}(${o})`;Kt.error(s)();debugger;if(t.throwOnError)throw new Error(s)}function kne(t,e,r){let i="";if(Kt.level>=1&&(i=k3(e,r),Kt.log(1,i)()),t.break&&t.break.length>0&&(i=i||k3(e,r),t.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let n of r)if(n===void 0){if(i=i||k3(e,r),t.throwOnError)throw new Error(`Undefined argument: ${i}`);Kt.error(`Undefined argument: ${i}`)();debugger}}function Fz(t){let e=t.split(/\r?\n/),r=[];for(let i of e){if(i.length<=1)continue;let n=i.split(":");if(n.length===2){let[T,E]=n;r.push({message:E.trim(),type:Lz(T),lineNum:0,linePos:0});continue}let[o,s,l,...u]=n,f=parseInt(l,10);isNaN(f)&&(f=0);let v=parseInt(s,10);isNaN(v)&&(v=0),r.push({message:u.join(":").trim(),type:Lz(o),lineNum:f,linePos:v})}return r}function Lz(t){let e=["warning","error","info"],r=t.toLowerCase();return e.includes(r)?r:"info"}var mT=class extends Cp{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)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let e=this.device.gl.getShaderInfoLog(this.handle);return Fz(e)}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)}async _compile(e){e=(n=>n.startsWith("#version ")?n:`#version 100
|
|
553
|
-
${n}`)(e);let{gl:i}=this.device;if(i.shaderSource(this.handle,e),i.compileShader(this.handle),Kt.level===0){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}Kt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Kt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var Une=256,zne=1024,Vne=16384,U3=6144,jne=[1,2,4,8],gT=class extends L0{device;glParameters;constructor(e,r){super(e,r),this.device=e,Ip(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){yd(this.device.gl)}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),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"),e[2967]=e.stencilReference),e.colorMask&&(r.colorMask=jne.map(i=>Boolean(i&e.colorMask))),this.glParameters=r,mh(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Vne,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Une,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=zne,e.clearStencil=this.props.clearStencil),r!==0&&Bu(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){Bu(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(U3,e,r);break;case Uint32Array:this.device.gl.clearBufferuiv(U3,e,r);break;case Float32Array:default:this.device.gl.clearBufferfv(U3,e,r);break}})}};var Hne="Failed to deduce GL constant from typed array";function Nz(t){switch(ArrayBuffer.isView(t)?t.constructor:t){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Hne)}}function yx(t,e){let{clamped:r=!0}=e||{};switch(t){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Gne={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Wne={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Pp=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(e){return yx(e.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(e){return Yi(e.size),yx(e.type||5126).BYTES_PER_ELEMENT*e.size}static resolve(...e){return new Pp(Gne,...e)}constructor(...e){e.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Pp.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Pp.getBytesPerVertex(this)}_assign(e={}){return e=x3("Accessor",e,Wne),e.type!==void 0&&(this.type=e.type,(e.type===5124||e.type===5125)&&(this.integer=!0)),e.size!==void 0&&(this.size=e.size),e.offset!==void 0&&(this.offset=e.offset),e.stride!==void 0&&(this.stride=e.stride),e.normalize!==void 0&&(this.normalized=e.normalize),e.normalized!==void 0&&(this.normalized=e.normalized),e.integer!==void 0&&(this.integer=e.integer),e.divisor!==void 0&&(this.divisor=e.divisor),e.buffer!==void 0&&(this.buffer=e.buffer),e.index!==void 0&&(typeof e.index=="boolean"?this.index=e.index?1:0:this.index=e.index),e.instanced!==void 0&&(this.divisor=e.instanced?1:0),e.isInstanced!==void 0&&(this.divisor=e.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function kz(t){return qne.includes(t)}var qne=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Uz={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function z3(t){let e=Uz[t];if(!e)throw new Error("uniform");let[r,i,,n]=e;return{format:n,components:i,glType:r}}function zz(t){let e=Uz[t];if(!e)throw new Error("attribute");let[,r,,i,n]=e;return{attributeType:i,vertexFormat:n,components:r}}function Vz(t,e){let r={attributes:[],bindings:[]};r.attributes=Xne(t,e);let i=Zne(t,e);for(let l of i){let u=l.uniforms.map(f=>({name:f.name,format:f.format,byteOffset:f.byteOffset,byteStride:f.byteStride,arrayLength:f.arrayLength}));r.bindings.push({type:"uniform",name:l.name,location:l.location,visibility:(l.vertex?1:0)&(l.fragment?2:0),minBindingSize:l.byteLength,uniforms:u})}let n=Kne(t,e),o=0;for(let l of n)if(kz(l.type)){let{viewDimension:u,sampleType:f}=Qne(l.type);r.bindings.push({type:"texture",name:l.name,location:o,viewDimension:u,sampleType:f}),l.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=Yne(t,e);return s?.length&&(r.varyings=s),r}function Xne(t,e){let r=[],i=t.getProgramParameter(e,35721);for(let n=0;n<i;n++){let o=t.getActiveAttrib(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l}=o,u=t.getAttribLocation(e,s);if(u>=0){let{attributeType:f}=zz(l),v=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:u,stepMode:v,type:f})}}return r.sort((n,o)=>n.location-o.location),r}function Yne(t,e){let r=[],i=t.getProgramParameter(e,35971);for(let n=0;n<i;n++){let o=t.getTransformFeedbackVarying(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l,size:u}=o,{glType:f,components:v}=z3(l),T=new Pp({type:f,size:u*v}),E={location:n,name:s,accessor:T};r.push(E)}return r.sort((n,o)=>n.location-o.location),r}function Kne(t,e){let r=[],i=t.getProgramParameter(e,35718);for(let n=0;n<i;n++){let o=t.getActiveUniform(e,n);if(!o)throw new Error("activeInfo");let{name:s,size:l,type:u}=o,{name:f,isArray:v}=$ne(s),T=t.getUniformLocation(e,f),E={location:T,name:f,size:l,type:u,isArray:v};if(r.push(E),E.size>1)for(let M=0;M<E.size;M++){let O=`${f}[${M}]`;T=t.getUniformLocation(e,O);let F={...E,name:O,location:T};r.push(F)}}return r}function Zne(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),i=[],n=t.getProgramParameter(e,35382);for(let o=0;o<n;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:[]},l=r(o,35395)||[],u=t.getActiveUniforms(e,l,35383),f=t.getActiveUniforms(e,l,35384),v=t.getActiveUniforms(e,l,35387),T=t.getActiveUniforms(e,l,35388);for(let E=0;E<s.uniformCount;++E){let M=t.getActiveUniform(e,l[E]);if(!M)throw new Error("activeInfo");s.uniforms.push({name:M.name,format:z3(u[E]).format,type:u[E],arrayLength:f[E],byteOffset:v[E],byteStride:T[E]})}i.push(s)}return i.sort((o,s)=>o.location-s.location),i}var Jne={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Qne(t){let e=Jne[t];if(!e)throw new Error("sampler");let[r,i]=e;return{viewDimension:r,sampleType:i}}function $ne(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])}}function jz(t,e,r,i){let n=t,o=i;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 i!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,i);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 n.uniform1uiv(e,s,1);case 36294:return n.uniform2uiv(e,s,2);case 36295:return n.uniform3uiv(e,s,3);case 36296:return n.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 n.uniformMatrix2x3fv(e,!1,s);case 35686:return n.uniformMatrix2x4fv(e,!1,s);case 35687:return n.uniformMatrix3x2fv(e,!1,s);case 35688:return n.uniformMatrix3x4fv(e,!1,s);case 35689:return n.uniformMatrix4x2fv(e,!1,s);case 35690:return n.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}function Hz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(t)}}function Gz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(t)}}var Wz=4,_T=class extends Ah{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:n=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,n)),this._linkShaders(),Kt.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Vz(this.device.gl,this.handle),Kt.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=p3(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":Kt.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(e,r){for(let[i,n]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===i)||this.shaderLayout.bindings.find(s=>s.name===`${i}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(l=>`"${l.name}"`).join(", ");r?.disableWarnings||Kt.warn(`Unknown binding "${i}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||Kt.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof Jl)&&!(n.buffer instanceof Jl))throw new Error("buffer value");break;case"texture":if(!(n instanceof gh||n instanceof Ql||n instanceof wf))throw new Error("texture value");break;case"sampler":Kt.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=n}}draw(e){let{renderPass:r,parameters:i=this.props.parameters,topology:n=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:l,firstVertex:u=0,transformFeedback:f}=e,v=Hz(n),T=Boolean(o.indexBuffer),E=o.indexBuffer?.glIndexType,M=Number(l)>0;if(this.linkStatus!=="success")return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||s===0)return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(s===0)return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let O=r;return Cz(this.device,i,O.glParameters,()=>{T&&M?this.device.gl.drawElementsInstanced(v,s||0,E,u,l||0):T?this.device.gl.drawElements(v,s||0,E,u):M?this.device.gl.drawArraysInstanced(v,u,s||0,l||0):this.device.gl.drawArrays(v,u,s||0),f&&f.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(e){let{bindings:r}=ux(e);Object.keys(r).forEach(i=>{Kt.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,e)}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Kt.time(Wz,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Kt.timeEnd(Wz,`linkProgram for ${this.id}`)(),Kt.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}Kt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Kt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(e){switch(e){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${e}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_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")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let[,r]of Object.entries(this.bindings))r instanceof Ql&&(r.update(),e=e&&r.loaded);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,l=e.getUniformBlockIndex(this.handle,s);if(l===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,i,l),o instanceof Jl?e.bindBufferBase(35345,i,o.handle):e.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof gh||o instanceof Ql||o instanceof wf))throw new Error("texture");let u;if(o instanceof gh)u=o.texture;else if(o instanceof Ql)u=o;else if(o instanceof wf&&o.colorAttachments[0]instanceof gh)Kt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),u=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(u.target,u.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:n,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&jz(this.device.gl,i,n,s)}}};var yT=class extends N0{device;commands=[];constructor(e){super(e,{}),this.device=e}submitCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":eoe(this.device,r.options);break;case"copy-buffer-to-texture":toe(this.device,r.options);break;case"copy-texture-to-buffer":roe(this.device,r.options);break;case"copy-texture-to-texture":ioe(this.device,r.options);break}}};function eoe(t,e){let r=e.source,i=e.destination;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,i.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 toe(t,e){throw new Error("Not implemented")}function roe(t,e){let{source:r,mipLevel:i=0,aspect:n="all",width:o=e.source.width,height:s=e.source.height,depthOrArrayLayers:l=0,origin:u=[0,0],destination:f,byteOffset:v=0,bytesPerRow:T,rowsPerImage:E}=e;if(n!=="all")throw new Error("not supported");if(i!==0||l!==0||T||E)throw new Error("not implemented");let{framebuffer:M,destroyFramebuffer:O}=qz(r),F;try{let U=f,G=o||M.width,J=s||M.height,K=H0(M.texture.props.format),ne=K.dataFormat,ge=K.type;t.gl.bindBuffer(35051,U.handle),F=t.gl.bindFramebuffer(36160,M.handle),t.gl.readPixels(u[0],u[1],G,J,ne,ge,v)}finally{t.gl.bindBuffer(35051,null),F!==void 0&&t.gl.bindFramebuffer(36160,F),O&&M.destroy()}}function ioe(t,e){let{source:r,destinationMipLevel:i=0,origin:n=[0,0],destinationOrigin:o=[0,0],destination:s}=e,{width:l=e.destination.width,height:u=e.destination.height}=e,{framebuffer:f,destroyFramebuffer:v}=qz(r),[T,E]=n,[M,O,F]=o,U=t.gl.bindFramebuffer(36160,f.handle),G=null,J;if(s instanceof Ql)G=s,l=Number.isFinite(l)?l:G.width,u=Number.isFinite(u)?u:G.height,G.bind(0),J=G.target;else throw new Error("invalid destination");switch(J){case 3553:case 34067:t.gl.copyTexSubImage2D(J,i,M,O,T,E,l,u);break;case 35866:case 32879:t.gl.copyTexSubImage3D(J,i,M,O,F,T,E,l,u);break;default:}G&&G.unbind(),t.gl.bindFramebuffer(36160,U),v&&f.destroy()}function qz(t){if(t instanceof bo){let{width:e,height:r,id:i}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${i}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var vT=class extends F0{device;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new yT(e)}destroy(){}finish(){this.commandBuffer.submitCommands()}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,i){}};var G0=class extends k0{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return HP()==="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 i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:l,normalized:u,integer:f,divisor:v}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),f?this.device.gl.vertexAttribIPointer(e,n,o,s,l):this.device.gl.vertexAttribPointer(e,n,o,u,s,l),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,v||0),this.attributes[e]=i,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 i=iT(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let n=G0.isConstantAttributeZeroSupported(this.device)||e!==0;(r||n)&&(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 i=noe(r),n=i.byteLength*e,o=i.length*e;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!ooe(i,this.bufferValue),s){let l=_3(r.constructor,o);y3({target:l,source:i,start:0,count:o}),this.buffer.write(l),this.bufferValue=r}return this.buffer}};function noe(t){return Array.isArray(t)?new Float32Array(t):t}function ooe(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 xT=class extends U0{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(Gz(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 i=this._getVaryingIndex(e),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[e]=n,Kt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(e){if(Xz(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 Jl)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=e.buffer.byteLength}=e;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(e){if(Xz(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:i,byteOffset:n}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,n,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,i=0,n){let o=r&&r.handle;!o||n===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,i,n)}};function Xz(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var bT=class extends z0{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");this.handle=this.device.gl.createQuery(),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((i,n)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>e?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};function V3(t){switch(t){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Yi(!1),0}}function Yz(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Yi(!1),0}}function Kz(t,e){let{sourceX:r=0,sourceY:i=0,sourceFormat:n=6408,sourceAttachment:o=36064}=e||{},{target:s=null,sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=Jz(t);Yi(v);let{gl:E,handle:M}=v;l=l||v.width,u=u||v.height;let O=o-36064;f=f||v.colorAttachments[O]?.texture?.type||5121,s=aoe(s,f,n,l,u),f=f||Nz(s);let F=E.bindFramebuffer(36160,M);return E.readPixels(r,i,l,u,n,f,s),E.bindFramebuffer(36160,F||null),T&&v.destroy(),s}function Zz(t,e){let{target:r,sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=Jz(t);Yi(v),l=l||v.width,u=u||v.height;let E=v;f=f||5121;let M=r;if(!M){let F=V3(o),U=Yz(f),G=s+l*u*F*U;M=E.device.createBuffer({byteLength:G})}let O=t.device.createCommandEncoder();return O.copyTextureToBuffer({source:t,width:l,height:u,origin:[i,n],destination:M,byteOffset:s}),O.destroy(),T&&v.destroy(),M}function Jz(t){return t instanceof yf?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:soe(t),deleteFramebuffer:!0}}function soe(t,e){let{device:r,width:i,height:n,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[t]})}function aoe(t,e,r,i,n){if(t)return t;e=e||5121;let o=yx(e,{clamped:!1}),s=V3(r);return new o(i*n*s)}var loe=256,coe=1024,uoe=16384;var hoe="clear: bad arguments";function Qz(t,e){let{framebuffer:r=null,color:i=null,depth:n=null,stencil:o=null}=e||{},s={};r&&(s.framebuffer=r);let l=0;i&&(l|=uoe,i!==!0&&(s.clearColor=i)),n&&(l|=loe,n!==!0&&(s.clearDepth=n)),o&&(l|=coe,n!==!0&&(s.clearStencil=n)),Yi(l!==0,hoe);let u=t.gl;Bu(u,s,()=>{u.clear(l)})}var vx=1,W0=class extends wc{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(e){if(e instanceof W0)return e;if(e?.device instanceof wc)return e.device;if(!foe(e))throw new Error("Invalid WebGL2RenderingContext");return new W0({gl:e})}static async create(e={}){Kt.groupCollapsed(vx,"WebGLDevice created")();let r=[];e.debug&&r.push(Oz()),e.spector&&r.push(Pz()),typeof e.canvas=="string"&&r.push(Ep.pageLoaded);let i=await Promise.allSettled(r);for(let s of i)s.status==="rejected"&&Kt.error(`Failed to initialize debug libraries ${s.reason}`)();if(Kt.probe(vx+1,"DOM is loaded")(),e.gl?.device)return Kt.warn("reattaching existing device")(),W0.attach(e.gl);let n=new W0(e),o=`Created ${n.type}${n.debug?" debug":""} context: ${n.info.vendor}, ${n.info.renderer} for canvas: ${n.canvasContext.id}`;return Kt.probe(vx,o)(),Kt.table(vx,n.info)(),Kt.groupEnd(vx)(),n}constructor(e){super({...e,id:e.id||oa("webgl-device")});let r=e.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=e.gl?.canvas||e.canvas;this.canvasContext=new AT(this,{...e,canvas:i}),this.lost=new Promise(l=>{this._resolveContextLost=l});let n=e.gl||null;if(n||=pz(this.canvasContext.canvas,{...e,onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!n)throw new Error("WebGL context creation failed");this.handle=n,this.gl=n,this.gl.device=this,this.gl._version=2,this.info=Az(this.gl,this._extensions),this.limits=new uT(this.gl),this.features=new cT(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:s=!1}=e;I3(this.gl,{enable:o,copyState:s,log:(...l)=>Kt.log(1,...l)()}),e.debug&&(this.gl=Dz(this.gl,{...e,throwOnError:!0}),this.debug=!0,Kt.level=Math.max(Kt.level,1),Kt.warn("WebGL debug mode activated. Performance reduced.")()),e.spector&&(this.spectorJS=Rz({...this.props,canvas:this.handle.canvas}))}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(e){return lT(this.gl,e,this._extensions)}isTextureFormatFilterable(e){return bz(this.gl,e,this._extensions)}isTextureFormatRenderable(e){return wz(this.gl,e,this._extensions)}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._getBufferProps(e);return new Jl(this,r)}_createTexture(e){return new Ql(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new nm(this,e)}createShader(e){return new mT(this,e)}createFramebuffer(e){return new wf(this,e)}createVertexArray(e){return new G0(this,e)}createTransformFeedback(e){return new xT(this,e)}createQuerySet(e){return new bT(this,e)}createRenderPipeline(e){return new _T(this,e)}beginRenderPass(e){return new gT(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(e){return new vT(this,e)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(e,r){return Kz(e,r)}readPixelsToBufferWebGL(e,r){return Zz(e,r)}setParametersWebGL(e){mh(this.gl,e)}getParametersWebGL(e){return rT(this.gl,e)}withParametersWebGL(e,r){return Bu(this.gl,e,r)}clearWebGL(e){Qz(this,e)}resetWebGL(){Kt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),hz(this.gl)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;loseDevice(){let e=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(e=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){Ip(this.gl)}popState(){yd(this.gl)}setSpectorMetadata(e,r){e.__SPECTOR_Metadata=r}getGLKey(e,r){r=r||this.gl2||this.gl;let i=Number(e);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(e)}_constants;setConstantAttributeWebGL(e,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let n=this._constants[e];switch(n&&moe(n,r)&&Kt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:doe(this,e,r);break;case Int32Array:poe(this,e,r);break;case Uint32Array:Aoe(this,e,r);break;default:Yi(!1)}}getExtension(e){return Ru(this.gl,e,this._extensions),this._extensions}},Tf=W0;si(Tf,"type","webgl");function foe(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}function doe(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:Yi(!1)}}function poe(t,e,r){t.gl.vertexAttribI4iv(e,r)}function Aoe(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function moe(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 $z,e5,r5={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function wT(){return document.createElement("div")}function goe(t){if(!t.picked)return null;if(t.object===$z)return e5;let e={html:yoe(t.object),style:r5};return e5=e,$z=t.object,e}var _oe=new Set(["position","index"]);function yoe(t){let e=wT();for(let r in t){if(_oe.has(r))continue;let i=wT();i.className="header",i.textContent=r;let n=wT();n.className="value",n.textContent=xoe(t[r]);let o=wT();voe(o,i,n),o.appendChild(i),o.appendChild(n),e.appendChild(o)}return e.innerHTML}function voe(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 xoe(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 t5(t,e){let r,i=t,n="properties",o=/{[^}]*}/g,s=u=>u.replace(/[{}]/g,""),l=[...new Set(t.match(o).map(s))];for(let u of l){if(u.includes(".")){r=e;let f=u.split(".");for(let v of f)if(r.hasOwnProperty(v))r=r[v];else{r=void 0;break}}else e.hasOwnProperty(u)?r=e[u]:e[n]&&e[n].hasOwnProperty(u)?r=e[n][u]:r=void 0;i=i.replaceAll(`{${u}}`,r)}return i}function j3(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||r5};return t.html?r.html=t5(t.html,e.object):r.text=t5(t.text,e.object),r}:goe:null}function i5(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function n5(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 s5=ga(o5()),boe="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",W3=s5.default;function a5(t=boe){i5(t)}function l5(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var q3={};function c5(t){if(!q3[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),q3[t]=new Promise(i=>{e.onload=i})}return q3[t]}var u5="4.1.4";var X3,woe=(X3=globalThis.loaders)===null||X3===void 0?void 0:X3.parseImageNode,Y3=typeof Image<"u",K3=typeof ImageBitmap<"u",Toe=Boolean(woe),Z3=_d?!0:Toe;function h5(t){switch(t){case"auto":return K3||Y3||Z3;case"imagebitmap":return K3;case"image":return Y3;case"data":return Z3;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function f5(){if(K3)return"imagebitmap";if(Y3)return"image";if(Z3)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function d5(t){let e=Eoe(t);if(!e)throw new Error("Not an image");return e}function xx(t){switch(d5(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 Eoe(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 Soe=/^data:image\/svg\+xml/,Coe=/\.svg((\?|#).*)?$/;function TT(t){return t&&(Soe.test(t)||Coe.test(t))}function p5(t,e){if(TT(e)){let i=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(i=unescape(encodeURIComponent(i)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(i)}`}return J3(t,e)}function J3(t,e){if(TT(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function ET(t,e,r){let i=p5(t,r),n=self.URL||self.webkitURL,o=typeof i!="string"&&n.createObjectURL(i);try{return await Moe(o||i,e)}finally{o&&n.revokeObjectURL(o)}}async function Moe(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,n)=>{try{r.onload=()=>i(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";n(new Error(s))}}catch(o){n(o)}})}var Ioe={},A5=!0;async function m5(t,e,r){let i;TT(r)?i=await ET(t,e,r):i=J3(t,r);let n=e&&e.imagebitmap;return await Poe(i,n)}async function Poe(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Roe(e)||!A5)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),A5=!1}return await createImageBitmap(t)}function Roe(t){for(let e in t||Ioe)return!1;return!0}function g5(t){return!Loe(t,"ftyp",4)||!(t[8]&96)?null:Boe(t)}function Boe(t){switch(Ooe(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Ooe(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Doe(t){return[...t].map(e=>e.charCodeAt(0))}function Loe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Doe(e);for(let n=0;n<i.length;++n)if(i[n]!==t[n+r])return!1;return!0}var Ef=!1,bx=!0;function om(t){let e=wx(t);return Noe(e)||zoe(e)||koe(e)||Uoe(e)||Foe(e)}function Foe(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=g5(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Noe(t){let e=wx(t);return e.byteLength>=24&&e.getUint32(0,Ef)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Ef),height:e.getUint32(20,Ef)}:null}function koe(t){let e=wx(t);return e.byteLength>=10&&e.getUint32(0,Ef)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,bx),height:e.getUint16(8,bx)}:null}function Uoe(t){let e=wx(t);return e.byteLength>=14&&e.getUint16(0,Ef)===16973&&e.getUint32(2,bx)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,bx),height:e.getUint32(22,bx)}:null}function zoe(t){let e=wx(t);if(!(e.byteLength>=3&&e.getUint16(0,Ef)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:n}=Voe(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,Ef);if(n.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Ef),width:e.getUint16(o+7,Ef)};if(!i.has(s))return null;o+=2,o+=e.getUint16(o,Ef)}return null}function Voe(){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 wx(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 _5(t,e){var r;let{mimeType:i}=om(t)||{},n=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return On(n),await n(t,i)}async function y5(t,e,r){e=e||{};let n=(e.image||{}).type||"auto",{url:o}=r||{},s=joe(n),l;switch(s){case"imagebitmap":l=await m5(t,e,o);break;case"image":l=await ET(t,e,o);break;case"data":l=await _5(t,e);break;default:On(!1)}return n==="data"&&(l=xx(l)),l}function joe(t){switch(t){case"auto":case"data":return f5();default:return h5(t),t}}var Hoe=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Goe=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Woe={image:{type:"auto",decode:!0}},Sf={id:"image",module:"images",name:"Images",version:u5,mimeTypes:Goe,extensions:Hoe,parse:y5,tests:[t=>Boolean(om(new DataView(t)))],options:Woe};var Q3={};function $3(t){if(Q3[t]===void 0){let e=_d?Xoe(t):qoe(t);Q3[t]=e}return Q3[t]}function qoe(t){var e,r;let i=["image/png","image/jpeg","image/gif"],n=((e=globalThis.loaders)===null||e===void 0?void 0:e.imageFormatsNode)||i,o=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return Boolean(o)&&n.includes(t)}function Xoe(t){switch(t){case"image/avif":case"image/webp":return Yoe(t);default:return!0}}function Yoe(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Koe=new bc({id:"deck"}),ur=Koe;var eR={};function v5(t){eR=t}function Ks(t,e,r,i){ur.level>0&&eR[t]&&eR[t].call(null,e,r,i)}function Zoe(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var x5={id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:Zoe,parseTextSync:JSON.parse};function Joe(){let t="9.0.5",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(ur.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:ur,_registerLoggers:v5},em([x5,[Sf,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var ST=Joe();function Cf(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var tR={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 w5(t){let e={};for(let[r,i]of Object.entries(t))e[r]=Qoe(i);return e}function T5(t,e,r){let i={};for(let[n,o]of Object.entries(e))t&&n in t&&!o.private?(o.validate&&Cf(o.validate(t[n],o),`${r}: invalid ${n}`),i[n]=t[n]):i[n]=o.value;return i}function Qoe(t){let e=b5(t);if(e!=="object")return{value:t,...tR[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...tR[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=b5(t.value),{...t,...tR[e],type:e}):{type:"object",value:null};throw new Error("props")}function b5(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var E5=`#ifdef MODULE_LOGDEPTH
|
|
553
|
+
${n}`)(e);let{gl:i}=this.device;if(i.shaderSource(this.handle,e),i.compileShader(this.handle),Kt.level===0){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}Kt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Kt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var Une=256,zne=1024,Vne=16384,U3=6144,jne=[1,2,4,8],gT=class extends L0{device;glParameters;constructor(e,r){super(e,r),this.device=e,Ip(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){yd(this.device.gl)}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),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"),e[2967]=e.stencilReference),e.colorMask&&(r.colorMask=jne.map(i=>Boolean(i&e.colorMask))),this.glParameters=r,mh(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Vne,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Une,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=zne,e.clearStencil=this.props.clearStencil),r!==0&&Bu(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){Bu(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(U3,e,r);break;case Uint32Array:this.device.gl.clearBufferuiv(U3,e,r);break;case Float32Array:default:this.device.gl.clearBufferfv(U3,e,r);break}})}};var Hne="Failed to deduce GL constant from typed array";function Nz(t){switch(ArrayBuffer.isView(t)?t.constructor:t){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Hne)}}function yx(t,e){let{clamped:r=!0}=e||{};switch(t){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Gne={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Wne={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Pp=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(e){return yx(e.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(e){return Yi(e.size),yx(e.type||5126).BYTES_PER_ELEMENT*e.size}static resolve(...e){return new Pp(Gne,...e)}constructor(...e){e.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Pp.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Pp.getBytesPerVertex(this)}_assign(e={}){return e=x3("Accessor",e,Wne),e.type!==void 0&&(this.type=e.type,(e.type===5124||e.type===5125)&&(this.integer=!0)),e.size!==void 0&&(this.size=e.size),e.offset!==void 0&&(this.offset=e.offset),e.stride!==void 0&&(this.stride=e.stride),e.normalize!==void 0&&(this.normalized=e.normalize),e.normalized!==void 0&&(this.normalized=e.normalized),e.integer!==void 0&&(this.integer=e.integer),e.divisor!==void 0&&(this.divisor=e.divisor),e.buffer!==void 0&&(this.buffer=e.buffer),e.index!==void 0&&(typeof e.index=="boolean"?this.index=e.index?1:0:this.index=e.index),e.instanced!==void 0&&(this.divisor=e.instanced?1:0),e.isInstanced!==void 0&&(this.divisor=e.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function kz(t){return qne.includes(t)}var qne=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Uz={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function z3(t){let e=Uz[t];if(!e)throw new Error("uniform");let[r,i,,n]=e;return{format:n,components:i,glType:r}}function zz(t){let e=Uz[t];if(!e)throw new Error("attribute");let[,r,,i,n]=e;return{attributeType:i,vertexFormat:n,components:r}}function Vz(t,e){let r={attributes:[],bindings:[]};r.attributes=Xne(t,e);let i=Zne(t,e);for(let l of i){let u=l.uniforms.map(f=>({name:f.name,format:f.format,byteOffset:f.byteOffset,byteStride:f.byteStride,arrayLength:f.arrayLength}));r.bindings.push({type:"uniform",name:l.name,location:l.location,visibility:(l.vertex?1:0)&(l.fragment?2:0),minBindingSize:l.byteLength,uniforms:u})}let n=Kne(t,e),o=0;for(let l of n)if(kz(l.type)){let{viewDimension:u,sampleType:f}=Qne(l.type);r.bindings.push({type:"texture",name:l.name,location:o,viewDimension:u,sampleType:f}),l.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=Yne(t,e);return s?.length&&(r.varyings=s),r}function Xne(t,e){let r=[],i=t.getProgramParameter(e,35721);for(let n=0;n<i;n++){let o=t.getActiveAttrib(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l}=o,u=t.getAttribLocation(e,s);if(u>=0){let{attributeType:f}=zz(l),v=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:u,stepMode:v,type:f})}}return r.sort((n,o)=>n.location-o.location),r}function Yne(t,e){let r=[],i=t.getProgramParameter(e,35971);for(let n=0;n<i;n++){let o=t.getTransformFeedbackVarying(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l,size:u}=o,{glType:f,components:v}=z3(l),T=new Pp({type:f,size:u*v}),E={location:n,name:s,accessor:T};r.push(E)}return r.sort((n,o)=>n.location-o.location),r}function Kne(t,e){let r=[],i=t.getProgramParameter(e,35718);for(let n=0;n<i;n++){let o=t.getActiveUniform(e,n);if(!o)throw new Error("activeInfo");let{name:s,size:l,type:u}=o,{name:f,isArray:v}=$ne(s),T=t.getUniformLocation(e,f),E={location:T,name:f,size:l,type:u,isArray:v};if(r.push(E),E.size>1)for(let M=0;M<E.size;M++){let O=`${f}[${M}]`;T=t.getUniformLocation(e,O);let F={...E,name:O,location:T};r.push(F)}}return r}function Zne(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),i=[],n=t.getProgramParameter(e,35382);for(let o=0;o<n;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:[]},l=r(o,35395)||[],u=t.getActiveUniforms(e,l,35383),f=t.getActiveUniforms(e,l,35384),v=t.getActiveUniforms(e,l,35387),T=t.getActiveUniforms(e,l,35388);for(let E=0;E<s.uniformCount;++E){let M=t.getActiveUniform(e,l[E]);if(!M)throw new Error("activeInfo");s.uniforms.push({name:M.name,format:z3(u[E]).format,type:u[E],arrayLength:f[E],byteOffset:v[E],byteStride:T[E]})}i.push(s)}return i.sort((o,s)=>o.location-s.location),i}var Jne={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Qne(t){let e=Jne[t];if(!e)throw new Error("sampler");let[r,i]=e;return{viewDimension:r,sampleType:i}}function $ne(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])}}function jz(t,e,r,i){let n=t,o=i;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 i!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,i);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 n.uniform1uiv(e,s,1);case 36294:return n.uniform2uiv(e,s,2);case 36295:return n.uniform3uiv(e,s,3);case 36296:return n.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 n.uniformMatrix2x3fv(e,!1,s);case 35686:return n.uniformMatrix2x4fv(e,!1,s);case 35687:return n.uniformMatrix3x2fv(e,!1,s);case 35688:return n.uniformMatrix3x4fv(e,!1,s);case 35689:return n.uniformMatrix4x2fv(e,!1,s);case 35690:return n.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}function Hz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(t)}}function Gz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(t)}}var Wz=4,_T=class extends Ah{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:n=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,n)),this._linkShaders(),Kt.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Vz(this.device.gl,this.handle),Kt.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=p3(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":Kt.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(e,r){for(let[i,n]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===i)||this.shaderLayout.bindings.find(s=>s.name===`${i}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(l=>`"${l.name}"`).join(", ");r?.disableWarnings||Kt.warn(`Unknown binding "${i}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||Kt.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof Jl)&&!(n.buffer instanceof Jl))throw new Error("buffer value");break;case"texture":if(!(n instanceof gh||n instanceof Ql||n instanceof wf))throw new Error("texture value");break;case"sampler":Kt.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=n}}draw(e){let{renderPass:r,parameters:i=this.props.parameters,topology:n=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:l,firstVertex:u=0,transformFeedback:f}=e,v=Hz(n),T=Boolean(o.indexBuffer),E=o.indexBuffer?.glIndexType,M=Number(l)>0;if(this.linkStatus!=="success")return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||s===0)return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(s===0)return Kt.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let O=r;return Cz(this.device,i,O.glParameters,()=>{T&&M?this.device.gl.drawElementsInstanced(v,s||0,E,u,l||0):T?this.device.gl.drawElements(v,s||0,E,u):M?this.device.gl.drawArraysInstanced(v,u,s||0,l||0):this.device.gl.drawArrays(v,u,s||0),f&&f.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(e){let{bindings:r}=ux(e);Object.keys(r).forEach(i=>{Kt.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,e)}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Kt.time(Wz,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Kt.timeEnd(Wz,`linkProgram for ${this.id}`)(),Kt.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}Kt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Kt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(e){switch(e){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${e}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_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")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let[,r]of Object.entries(this.bindings))r instanceof Ql&&(r.update(),e=e&&r.loaded);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,l=e.getUniformBlockIndex(this.handle,s);if(l===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,i,l),o instanceof Jl?e.bindBufferBase(35345,i,o.handle):e.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof gh||o instanceof Ql||o instanceof wf))throw new Error("texture");let u;if(o instanceof gh)u=o.texture;else if(o instanceof Ql)u=o;else if(o instanceof wf&&o.colorAttachments[0]instanceof gh)Kt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),u=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(u.target,u.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:n,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&jz(this.device.gl,i,n,s)}}};var yT=class extends N0{device;commands=[];constructor(e){super(e,{}),this.device=e}submitCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":eoe(this.device,r.options);break;case"copy-buffer-to-texture":toe(this.device,r.options);break;case"copy-texture-to-buffer":roe(this.device,r.options);break;case"copy-texture-to-texture":ioe(this.device,r.options);break}}};function eoe(t,e){let r=e.source,i=e.destination;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,i.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 toe(t,e){throw new Error("Not implemented")}function roe(t,e){let{source:r,mipLevel:i=0,aspect:n="all",width:o=e.source.width,height:s=e.source.height,depthOrArrayLayers:l=0,origin:u=[0,0],destination:f,byteOffset:v=0,bytesPerRow:T,rowsPerImage:E}=e;if(n!=="all")throw new Error("not supported");if(i!==0||l!==0||T||E)throw new Error("not implemented");let{framebuffer:M,destroyFramebuffer:O}=qz(r),F;try{let U=f,G=o||M.width,J=s||M.height,K=H0(M.texture.props.format),ne=K.dataFormat,ge=K.type;t.gl.bindBuffer(35051,U.handle),F=t.gl.bindFramebuffer(36160,M.handle),t.gl.readPixels(u[0],u[1],G,J,ne,ge,v)}finally{t.gl.bindBuffer(35051,null),F!==void 0&&t.gl.bindFramebuffer(36160,F),O&&M.destroy()}}function ioe(t,e){let{source:r,destinationMipLevel:i=0,origin:n=[0,0],destinationOrigin:o=[0,0],destination:s}=e,{width:l=e.destination.width,height:u=e.destination.height}=e,{framebuffer:f,destroyFramebuffer:v}=qz(r),[T,E]=n,[M,O,F]=o,U=t.gl.bindFramebuffer(36160,f.handle),G=null,J;if(s instanceof Ql)G=s,l=Number.isFinite(l)?l:G.width,u=Number.isFinite(u)?u:G.height,G.bind(0),J=G.target;else throw new Error("invalid destination");switch(J){case 3553:case 34067:t.gl.copyTexSubImage2D(J,i,M,O,T,E,l,u);break;case 35866:case 32879:t.gl.copyTexSubImage3D(J,i,M,O,F,T,E,l,u);break;default:}G&&G.unbind(),t.gl.bindFramebuffer(36160,U),v&&f.destroy()}function qz(t){if(t instanceof bo){let{width:e,height:r,id:i}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${i}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var vT=class extends F0{device;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new yT(e)}destroy(){}finish(){this.commandBuffer.submitCommands()}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,i){}};var G0=class extends k0{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return HP()==="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 i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:l,normalized:u,integer:f,divisor:v}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),f?this.device.gl.vertexAttribIPointer(e,n,o,s,l):this.device.gl.vertexAttribPointer(e,n,o,u,s,l),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,v||0),this.attributes[e]=i,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 i=iT(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let n=G0.isConstantAttributeZeroSupported(this.device)||e!==0;(r||n)&&(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 i=noe(r),n=i.byteLength*e,o=i.length*e;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!ooe(i,this.bufferValue),s){let l=_3(r.constructor,o);y3({target:l,source:i,start:0,count:o}),this.buffer.write(l),this.bufferValue=r}return this.buffer}};function noe(t){return Array.isArray(t)?new Float32Array(t):t}function ooe(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 xT=class extends U0{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(Gz(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 i=this._getVaryingIndex(e),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[e]=n,Kt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(e){if(Xz(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 Jl)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=e.buffer.byteLength}=e;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(e){if(Xz(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:i,byteOffset:n}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,n,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,i=0,n){let o=r&&r.handle;!o||n===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,i,n)}};function Xz(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var bT=class extends z0{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");this.handle=this.device.gl.createQuery(),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((i,n)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>e?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};function V3(t){switch(t){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Yi(!1),0}}function Yz(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Yi(!1),0}}function Kz(t,e){let{sourceX:r=0,sourceY:i=0,sourceFormat:n=6408,sourceAttachment:o=36064}=e||{},{target:s=null,sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=Jz(t);Yi(v);let{gl:E,handle:M}=v;l=l||v.width,u=u||v.height;let O=o-36064;f=f||v.colorAttachments[O]?.texture?.type||5121,s=aoe(s,f,n,l,u),f=f||Nz(s);let F=E.bindFramebuffer(36160,M);return E.readPixels(r,i,l,u,n,f,s),E.bindFramebuffer(36160,F||null),T&&v.destroy(),s}function Zz(t,e){let{target:r,sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=Jz(t);Yi(v),l=l||v.width,u=u||v.height;let E=v;f=f||5121;let M=r;if(!M){let F=V3(o),U=Yz(f),G=s+l*u*F*U;M=E.device.createBuffer({byteLength:G})}let O=t.device.createCommandEncoder();return O.copyTextureToBuffer({source:t,width:l,height:u,origin:[i,n],destination:M,byteOffset:s}),O.destroy(),T&&v.destroy(),M}function Jz(t){return t instanceof yf?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:soe(t),deleteFramebuffer:!0}}function soe(t,e){let{device:r,width:i,height:n,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[t]})}function aoe(t,e,r,i,n){if(t)return t;e=e||5121;let o=yx(e,{clamped:!1}),s=V3(r);return new o(i*n*s)}var loe=256,coe=1024,uoe=16384;var hoe="clear: bad arguments";function Qz(t,e){let{framebuffer:r=null,color:i=null,depth:n=null,stencil:o=null}=e||{},s={};r&&(s.framebuffer=r);let l=0;i&&(l|=uoe,i!==!0&&(s.clearColor=i)),n&&(l|=loe,n!==!0&&(s.clearDepth=n)),o&&(l|=coe,n!==!0&&(s.clearStencil=n)),Yi(l!==0,hoe);let u=t.gl;Bu(u,s,()=>{u.clear(l)})}var vx=1,W0=class extends wc{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(e){if(e instanceof W0)return e;if(e?.device instanceof wc)return e.device;if(!foe(e))throw new Error("Invalid WebGL2RenderingContext");return new W0({gl:e})}static async create(e={}){Kt.groupCollapsed(vx,"WebGLDevice created")();let r=[];e.debug&&r.push(Oz()),e.spector&&r.push(Pz()),typeof e.canvas=="string"&&r.push(Ep.pageLoaded);let i=await Promise.allSettled(r);for(let s of i)s.status==="rejected"&&Kt.error(`Failed to initialize debug libraries ${s.reason}`)();if(Kt.probe(vx+1,"DOM is loaded")(),e.gl?.device)return Kt.warn("reattaching existing device")(),W0.attach(e.gl);let n=new W0(e),o=`Created ${n.type}${n.debug?" debug":""} context: ${n.info.vendor}, ${n.info.renderer} for canvas: ${n.canvasContext.id}`;return Kt.probe(vx,o)(),Kt.table(vx,n.info)(),Kt.groupEnd(vx)(),n}constructor(e){super({...e,id:e.id||oa("webgl-device")});let r=e.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=e.gl?.canvas||e.canvas;this.canvasContext=new AT(this,{...e,canvas:i}),this.lost=new Promise(l=>{this._resolveContextLost=l});let n=e.gl||null;if(n||=pz(this.canvasContext.canvas,{...e,onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!n)throw new Error("WebGL context creation failed");this.handle=n,this.gl=n,this.gl.device=this,this.gl._version=2,this.info=Az(this.gl,this._extensions),this.limits=new uT(this.gl),this.features=new cT(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:s=!1}=e;I3(this.gl,{enable:o,copyState:s,log:(...l)=>Kt.log(1,...l)()}),e.debug&&(this.gl=Dz(this.gl,{...e,throwOnError:!0}),this.debug=!0,Kt.level=Math.max(Kt.level,1),Kt.warn("WebGL debug mode activated. Performance reduced.")()),e.spector&&(this.spectorJS=Rz({...this.props,canvas:this.handle.canvas}))}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(e){return lT(this.gl,e,this._extensions)}isTextureFormatFilterable(e){return bz(this.gl,e,this._extensions)}isTextureFormatRenderable(e){return wz(this.gl,e,this._extensions)}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._getBufferProps(e);return new Jl(this,r)}_createTexture(e){return new Ql(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new nm(this,e)}createShader(e){return new mT(this,e)}createFramebuffer(e){return new wf(this,e)}createVertexArray(e){return new G0(this,e)}createTransformFeedback(e){return new xT(this,e)}createQuerySet(e){return new bT(this,e)}createRenderPipeline(e){return new _T(this,e)}beginRenderPass(e){return new gT(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(e){return new vT(this,e)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(e,r){return Kz(e,r)}readPixelsToBufferWebGL(e,r){return Zz(e,r)}setParametersWebGL(e){mh(this.gl,e)}getParametersWebGL(e){return rT(this.gl,e)}withParametersWebGL(e,r){return Bu(this.gl,e,r)}clearWebGL(e){Qz(this,e)}resetWebGL(){Kt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),hz(this.gl)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;loseDevice(){let e=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(e=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){Ip(this.gl)}popState(){yd(this.gl)}setSpectorMetadata(e,r){e.__SPECTOR_Metadata=r}getGLKey(e,r){r=r||this.gl2||this.gl;let i=Number(e);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(e)}_constants;setConstantAttributeWebGL(e,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let n=this._constants[e];switch(n&&moe(n,r)&&Kt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:doe(this,e,r);break;case Int32Array:poe(this,e,r);break;case Uint32Array:Aoe(this,e,r);break;default:Yi(!1)}}getExtension(e){return Ru(this.gl,e,this._extensions),this._extensions}},Tf=W0;si(Tf,"type","webgl");function foe(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}function doe(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:Yi(!1)}}function poe(t,e,r){t.gl.vertexAttribI4iv(e,r)}function Aoe(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function moe(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 $z,e5,r5={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function wT(){return document.createElement("div")}function goe(t){if(!t.picked)return null;if(t.object===$z)return e5;let e={html:yoe(t.object),style:r5};return e5=e,$z=t.object,e}var _oe=new Set(["position","index"]);function yoe(t){let e=wT();for(let r in t){if(_oe.has(r))continue;let i=wT();i.className="header",i.textContent=r;let n=wT();n.className="value",n.textContent=xoe(t[r]);let o=wT();voe(o,i,n),o.appendChild(i),o.appendChild(n),e.appendChild(o)}return e.innerHTML}function voe(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 xoe(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 t5(t,e){let r,i=t,n="properties",o=/{[^}]*}/g,s=u=>u.replace(/[{}]/g,""),l=[...new Set(t.match(o).map(s))];for(let u of l){if(u.includes(".")){r=e;let f=u.split(".");for(let v of f)if(r.hasOwnProperty(v))r=r[v];else{r=void 0;break}}else e.hasOwnProperty(u)?r=e[u]:e[n]&&e[n].hasOwnProperty(u)?r=e[n][u]:r=void 0;i=i.replaceAll(`{${u}}`,r)}return i}function j3(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||r5};return t.html?r.html=t5(t.html,e.object):r.text=t5(t.text,e.object),r}:goe:null}function i5(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function n5(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 s5=ga(o5()),boe="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",W3=s5.default;function a5(t=boe){i5(t)}function l5(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var q3={};function c5(t){if(!q3[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),q3[t]=new Promise(i=>{e.onload=i})}return q3[t]}var u5="4.1.4";var X3,woe=(X3=globalThis.loaders)===null||X3===void 0?void 0:X3.parseImageNode,Y3=typeof Image<"u",K3=typeof ImageBitmap<"u",Toe=Boolean(woe),Z3=_d?!0:Toe;function h5(t){switch(t){case"auto":return K3||Y3||Z3;case"imagebitmap":return K3;case"image":return Y3;case"data":return Z3;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function f5(){if(K3)return"imagebitmap";if(Y3)return"image";if(Z3)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function d5(t){let e=Eoe(t);if(!e)throw new Error("Not an image");return e}function xx(t){switch(d5(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 Eoe(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 Soe=/^data:image\/svg\+xml/,Coe=/\.svg((\?|#).*)?$/;function TT(t){return t&&(Soe.test(t)||Coe.test(t))}function p5(t,e){if(TT(e)){let i=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(i=unescape(encodeURIComponent(i)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(i)}`}return J3(t,e)}function J3(t,e){if(TT(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function ET(t,e,r){let i=p5(t,r),n=self.URL||self.webkitURL,o=typeof i!="string"&&n.createObjectURL(i);try{return await Moe(o||i,e)}finally{o&&n.revokeObjectURL(o)}}async function Moe(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,n)=>{try{r.onload=()=>i(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";n(new Error(s))}}catch(o){n(o)}})}var Ioe={},A5=!0;async function m5(t,e,r){let i;TT(r)?i=await ET(t,e,r):i=J3(t,r);let n=e&&e.imagebitmap;return await Poe(i,n)}async function Poe(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Roe(e)||!A5)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),A5=!1}return await createImageBitmap(t)}function Roe(t){for(let e in t||Ioe)return!1;return!0}function g5(t){return!Loe(t,"ftyp",4)||!(t[8]&96)?null:Boe(t)}function Boe(t){switch(Ooe(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Ooe(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Doe(t){return[...t].map(e=>e.charCodeAt(0))}function Loe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Doe(e);for(let n=0;n<i.length;++n)if(i[n]!==t[n+r])return!1;return!0}var Ef=!1,bx=!0;function om(t){let e=wx(t);return Noe(e)||zoe(e)||koe(e)||Uoe(e)||Foe(e)}function Foe(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=g5(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Noe(t){let e=wx(t);return e.byteLength>=24&&e.getUint32(0,Ef)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Ef),height:e.getUint32(20,Ef)}:null}function koe(t){let e=wx(t);return e.byteLength>=10&&e.getUint32(0,Ef)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,bx),height:e.getUint16(8,bx)}:null}function Uoe(t){let e=wx(t);return e.byteLength>=14&&e.getUint16(0,Ef)===16973&&e.getUint32(2,bx)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,bx),height:e.getUint32(22,bx)}:null}function zoe(t){let e=wx(t);if(!(e.byteLength>=3&&e.getUint16(0,Ef)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:n}=Voe(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,Ef);if(n.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Ef),width:e.getUint16(o+7,Ef)};if(!i.has(s))return null;o+=2,o+=e.getUint16(o,Ef)}return null}function Voe(){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 wx(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 _5(t,e){var r;let{mimeType:i}=om(t)||{},n=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return On(n),await n(t,i)}async function y5(t,e,r){e=e||{};let n=(e.image||{}).type||"auto",{url:o}=r||{},s=joe(n),l;switch(s){case"imagebitmap":l=await m5(t,e,o);break;case"image":l=await ET(t,e,o);break;case"data":l=await _5(t,e);break;default:On(!1)}return n==="data"&&(l=xx(l)),l}function joe(t){switch(t){case"auto":case"data":return f5();default:return h5(t),t}}var Hoe=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Goe=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Woe={image:{type:"auto",decode:!0}},Sf={id:"image",module:"images",name:"Images",version:u5,mimeTypes:Goe,extensions:Hoe,parse:y5,tests:[t=>Boolean(om(new DataView(t)))],options:Woe};var Q3={};function $3(t){if(Q3[t]===void 0){let e=_d?Xoe(t):qoe(t);Q3[t]=e}return Q3[t]}function qoe(t){var e,r;let i=["image/png","image/jpeg","image/gif"],n=((e=globalThis.loaders)===null||e===void 0?void 0:e.imageFormatsNode)||i,o=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return Boolean(o)&&n.includes(t)}function Xoe(t){switch(t){case"image/avif":case"image/webp":return Yoe(t);default:return!0}}function Yoe(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Koe=new bc({id:"deck"}),ur=Koe;var eR={};function v5(t){eR=t}function Ks(t,e,r,i){ur.level>0&&eR[t]&&eR[t].call(null,e,r,i)}function Zoe(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var x5={id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:Zoe,parseTextSync:JSON.parse};function Joe(){let t="9.0.6",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(ur.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:ur,_registerLoggers:v5},em([x5,[Sf,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var ST=Joe();function Cf(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var tR={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 w5(t){let e={};for(let[r,i]of Object.entries(t))e[r]=Qoe(i);return e}function T5(t,e,r){let i={};for(let[n,o]of Object.entries(e))t&&n in t&&!o.private?(o.validate&&Cf(o.validate(t[n],o),`${r}: invalid ${n}`),i[n]=t[n]):i[n]=o.value;return i}function Qoe(t){let e=b5(t);if(e!=="object")return{value:t,...tR[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...tR[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=b5(t.value),{...t,...tR[e],type:e}):{type:"object",value:null};throw new Error("props")}function b5(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var E5=`#ifdef MODULE_LOGDEPTH
|
|
554
554
|
logdepth_adjustPosition(gl_Position);
|
|
555
555
|
#endif
|
|
556
556
|
`,S5=`#ifdef MODULE_MATERIAL
|
|
@@ -1715,7 +1715,7 @@ void main() {
|
|
|
1715
1715
|
void main() {
|
|
1716
1716
|
fragColor = ${t}(texSrc, texSize, coordinate);
|
|
1717
1717
|
}
|
|
1718
|
-
`;function ihe(t,e){if(e.filter){let r=typeof e.filter=="string"?e.filter:`${t.name}_filterColor`;return the(r)}if(e.sampler){let r=typeof e.sampler=="string"?e.sampler:`${t.name}_sampleColor`;return rhe(r)}return""}var nhe={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant-alpha",blendAlphaDstFactor:"zero"},Ed=class extends bh{constructor(){super(...arguments),this._colorEncoderState=null}render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):super.render(e)}_drawPickingBuffer({layers:e,layerFilter:r,views:i,viewports:n,onViewportActive:o,pickingFBO:s,deviceRect:{x:l,y:u,width:f,height:v},cullRect:T,effects:E,pass:M="picking",pickZ:O,moduleParameters:F}){this.pickZ=O;let U=this._resetColorEncoder(O),G=[l,u,f,v],J=super.render({target:s,layers:e,layerFilter:r,views:i,viewports:n,onViewportActive:o,cullRect:T,effects:E?.filter(ne=>ne.useInPicking),pass:M,isPicking:!0,moduleParameters:F,clearColor:[0,0,0,0],colorMask:15,scissorRect:G});return this._colorEncoderState=null,{decodePickingColor:U&&she.bind(null,U),stats:J}}shouldDrawLayer(e){let{pickable:r,operation:i}=e.props;return r&&i.includes("draw")||i.includes("terrain")||i.includes("mask")}getModuleParameters(){return{picking:{isActive:1,isAttribute:this.pickZ},lightSources:{}}}getLayerParameters(e,r,i){let n={depthMask:!0,depthTest:!0,depthRange:[0,1],...e.props.parameters},{pickable:o,operation:s}=e.props;return!this._colorEncoderState||s.includes("terrain")?n.blend=!1:o&&s.includes("draw")&&(Object.assign(n,nhe),n.blend=!0,n.blendColor=ohe(this._colorEncoderState,e,i)),n}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function ohe(t,e,r){let{byLayer:i,byAlpha:n}=t,o,s=i.get(e);return s?(s.viewports.push(r),o=s.a):(o=i.size+1,o<=255?(s={a:o,layer:e,viewports:[r]},i.set(e,s),n[o]=s):(ur.warn("Too many pickable layers, only picking the first 255")(),o=0)),[0,0,0,o/255]}function she(t,e){let r=t.byAlpha[e[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(e)}}var Hp={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"},d_=Symbol.for("component"),Gu=Symbol.for("propTypes"),yE=Symbol.for("deprecatedProps"),Sd=Symbol.for("asyncPropDefaults"),Rf=Symbol.for("asyncPropOriginal"),Eh=Symbol.for("asyncPropResolved");function Bf(t,e=()=>!0){return Array.isArray(t)?OV(t,e,[]):e(t)?[t]:[]}function OV(t,e,r){let i=-1;for(;++i<t.length;){let n=t[i];Array.isArray(n)?OV(n,e,r):e(n)&&r.push(n)}return r}function vE({target:t,source:e,start:r=0,count:i=1}){let n=e.length,o=i*n,s=0;for(let l=r;s<n;s++)t[l++]=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}var r1=class{constructor(e,r,i){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=i,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 i=++this._loadCount,n=e;typeof e=="string"&&(n=_a(e)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(o=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=o)}).catch(o=>{this._loadCount===i&&(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 i1=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:i=!1,persistent:n=!0}){let o=this._resources[e];o?o.setData(r,i):(o=new r1(e,r,this._context),this._resources[e]=o),o.persistent=n}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 i in r){let n=r[i],o=this._resources[n.resourceId];o&&o.unsubscribe(n)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:r,consumerId:i,requestId:n="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 l=o[e];if(this._track(i,n,l,r),l)return l.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let e in this._resources)this._resources[e].delete()}_track(e,r,i,n){let o=this._consumers,s=o[e]=o[e]||{},l=s[r],u=l&&l.resourceId&&this._resources[l.resourceId];u&&(u.unsubscribe(l),this.prune()),i&&(l?(l.onChange=n,l.resourceId=i.id):l={onChange:n,resourceId:i.id},s[r]=l,i.subscribe(l))}_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 ahe="layerManager.setLayers",lhe="layerManager.activateViewport",ym=class{constructor(e,r){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=l=>{Ks(lhe,this,l),l&&(this.context.viewport=l)};let{deck:i,stats:n,viewport:o,timeline:s}=r||{};this.layers=[],this.resourceManager=new i1({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:i,shaderAssembler:a_(),defaultShaderModules:[],renderPass:void 0,stats:n||new Bl({id:"deck.gl"}),viewport:o||new xl({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:s||new _m,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 i of this.layers){let n=i.getNeedsRedraw(e);r=r||n}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(i=>r.id.indexOf(i)===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){Ks(ahe,this,r,e),this._lastRenderedLayers=e;let i=Bf(e,Boolean);for(let n of i)n.context=this.context;this._updateLayers(this.layers,i)}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(i=>i.name===e.name)||(r.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){let{defaultShaderModules:r}=this.context,i=r.findIndex(n=>n.name===e.name);i>=0&&(r.splice(i,1),this._defaultShaderModulesChanged=!0)}_handleError(e,r,i){i.raiseError(r,`${e} of ${i}`)}_updateLayers(e,r){let i={};for(let s of e)i[s.id]?ur.warn(`Multiple old layers with same id ${s.id}`)():i[s.id]=s;if(this._defaultShaderModulesChanged){for(let s of e)s.setNeedsUpdate(),s.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let n=[];this._updateSublayersRecursively(r,i,n),this._finalizeOldLayers(i);let o=!1;for(let s of n)if(s.hasUniformTransition()){o=`Uniform transition in ${s}`;break}this._needsUpdate=o,this.layers=n}_updateSublayersRecursively(e,r,i){for(let n of e){n.context=this.context;let o=r[n.id];o===null&&ur.warn(`Multiple new layers with same id ${n.id}`)(),r[n.id]=null;let s=null;try{this._debug&&o!==n&&n.validateProps(),o?(this._transferLayerState(o,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),s=n.isComposite?n.getSubLayers():null}catch(l){this._handleError("matching",l,n)}s&&this._updateSublayersRecursively(s,r,i)}}_finalizeOldLayers(e){for(let r in e){let i=e[r];i&&this._finalizeLayer(i)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=Hp.INITIALIZED}catch(r){this._handleError("initialization",r,e)}}_transferLayerState(e,r){r._transferState(e),r.lifecycle=Hp.MATCHED,r!==e&&(e.lifecycle=Hp.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(r){this._handleError("update",r,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=Hp.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=Hp.FINALIZED}catch(r){this._handleError("finalization",r,e)}}};function Ls(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 i=0;i<t.length;i++)if(!Ls(t[i],e[i],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let o of i)if(!e.hasOwnProperty(o)||!Ls(t[o],e[o],r-1))return!1;return!0}return!1}var n1=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,i=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(i):i}getViewport(e){return this._viewportMap[e]}unproject(e,r){let i=this.getViewports(),n={x:e[0],y:e[1]};for(let o=i.length-1;o>=0;--o){let s=i[o];if(s.containsPixel(n)){let l=e.slice();return l[0]-=s.x,l[1]-=s.y,s.unproject(l,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=Bf(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?(!Ls(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):ur.warn("missing `viewState` or `initialViewState`")()}_onViewStateChange(e,r){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...r,viewId:e})}_createController(e,r){let i=r.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,r.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:o=>this.getView(e.id)?.makeViewport({viewState:o,width:this.width,height:this.height})})}_updateController(e,r,i,n){let o=e.controller;if(o&&i){let s={...r,...o,id:e.id,x:i.x,y:i.y,width:i.width,height:i.height};return(!n||n.constructor!==o.type)&&(n=this._createController(e,s)),n&&n.setProps(s),n}return null}_rebuildViewports(){let{views:e}=this,r=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let n=e.length;n--;){let o=e[n],s=this.getViewState(o),l=o.makeViewport({viewState:s,width:this.width,height:this.height}),u=r[o.id],f=Boolean(o.controller);f&&!u&&(i=!0),(i||!f)&&u&&(u.finalize(),u=null),this.controllers[o.id]=this._updateController(o,s,l,u),l&&this._viewports.unshift(l)}for(let n in r){let o=r[n];o&&!this.controllers[n]&&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((i,n)=>!e[n].equals(r[n]))}};var che=/([0-9]+\.?[0-9]*)(%|px)/;function Cd(t){switch(typeof t){case"number":return{position:t,relative:!1};case"string":let e=che.exec(t);if(e&&e.length>=3){let r=e[2]==="%",i=parseFloat(e[1]);return{position:r?i/100:i,relative:r}}default:throw new Error(`Could not parse position string ${t}`)}}function Md(t,e){return t.relative?Math.round(t.position*e):t.position}var ec=class{constructor(e={}){let{id:r,x:i=0,y:n=0,width:o="100%",height:s="100%",padding:l=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=Cd(i),this._y=Cd(n),this._width=Cd(o),this._height=Cd(s),this._padding=l&&{left:Cd(l.left||0),right:Cd(l.right||0),top:Cd(l.top||0),bottom:Cd(l.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.ViewportType===e.ViewportType&&Ls(this.props,e.props,2)}makeViewport({width:e,height:r,viewState:i}){i=this.filterViewState(i);let n=this.getDimensions({width:e,height:r});return!n.height||!n.width?null:new this.ViewportType({...i,...this.props,...n})}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 i in this.props.viewState)i!=="id"&&(r[i]=this.props.viewState[i]);return r}return e}getDimensions({width:e,height:r}){let i={x:Md(this._x,e),y:Md(this._y,r),width:Md(this._width,e),height:Md(this._height,r)};return this._padding&&(i.padding={left:Md(this._padding.left,e),top:Md(this._padding.top,r),right:Md(this._padding.right,e),bottom:Md(this._padding.bottom,r)}),i}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 Sh=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 DV=()=>{},o1={BREAK:1,SNAP_TO_END:2,IGNORE:3},uhe=t=>t,hhe=o1.BREAK,s1=class{constructor(e){this._onTransitionUpdate=r=>{let{time:i,settings:{interpolator:n,startProps:o,endProps:s,duration:l,easing:u}}=r,f=u(i/l),v=n.interpolateProps(o,s,f);this.propsInTransition=this.getControllerState({...this.props,...v}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new Sh(e.timeline),this.onViewStateChange=e.onViewStateChange||DV,this.onStateChange=e.onStateChange||DV}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,i=this.props;if(this.props=e,!i||this._shouldIgnoreViewportChange(i,e))return!1;if(this._isTransitionEnabled(e)){let n=i;if(this.transition.inProgress){let{interruption:o,endProps:s}=this.transition.settings;n={...i,...o===o1.SNAP_TO_END?s:this.propsInTransition||i}}this._triggerTransition(n,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:i}=e;return(r>0||r==="auto")&&Boolean(i)}_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===o1.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let i=this.getControllerState(e),n=this.getControllerState(r).shortestPathFrom(i),o=r.transitionInterpolator,s=o.getDuration?o.getDuration(e,r):r.transitionDuration;if(s===0)return;let l=o.initializeProps(e,n);this.propsInTransition={};let u={duration:s,easing:r.transitionEasing||uhe,interpolator:o,interruption:r.transitionInterruption||hhe,startProps:l.start,endProps:l.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(u),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 os(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Id=class{constructor(e){let{compare:r,extract:i,required:n}=e;this._propsToCompare=r,this._propsToExtract=i||r,this._requiredProps=n}arePropsEqual(e,r){for(let i of this._propsToCompare)if(!(i in e)||!(i in r)||!Cs(e[i],r[i]))return!1;return!0}initializeProps(e,r){let i={},n={};for(let o of this._propsToExtract)(o in e||o in r)&&(i[o]=e[o],n[o]=r[o]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let i=e[r];os(Number.isFinite(i)||Array.isArray(i),`${r} is required for transition`)})}};var fhe=["longitude","latitude","zoom","bearing","pitch"],dhe=["longitude","latitude","zoom"],bl=class extends Id{constructor(e={}){let r=Array.isArray(e)?e:e.transitionProps,i=Array.isArray(e)?{}:e;i.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:fhe,required:dhe},super(i.transitionProps),this.opts=i}initializeProps(e,r){let i=super.initializeProps(e,r),{makeViewport:n,around:o}=this.opts;if(n&&o){let s=n(e),l=n(r),u=s.unproject(o);i.start.around=o,Object.assign(i.end,{around:l.project(u),aroundPosition:u,width:r.width,height:r.height})}return i}interpolateProps(e,r,i){let n={};for(let o of this._propsToExtract)n[o]=Oa(e[o]||0,r[o]||0,i);if(r.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...r,...n});Object.assign(n,o.panByPosition(r.aroundPosition,Oa(e.around,r.around,i)))}return n}};var Gp={transitionDuration:0},phe=300,xE=t=>1-(1-t)*(1-t),p_={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},vm={},tc=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 s1({...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"tripanstart":return r?!1:this._onTriplePanStart(e);case"tripanmove":return this._onTriplePan(e);case"tripanend":return this._onTriplePanEnd(e);case"doubletap":return this._onDoubleTap(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:i}=this.props,{offsetCenter:n}=e;return[n.x-r,n.y-i]}isPointInBounds(e,r){let{width:i,height:n}=this.props;if(r&&r.handled)return!1;let o=e[0]>=0&&e[0]<=i&&e[1]>=0&&e[1]<=n;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?phe:0;let{scrollZoom:i=!0,dragPan:n=!0,dragRotate:o=!0,doubleClickZoom:s=!0,touchZoom:l=!0,touchRotate:u=!1,keyboard:f=!0}=e,v=Boolean(this.onViewStateChange);this.toggleEvents(p_.WHEEL,v&&i),this.toggleEvents(p_.PAN,v),this.toggleEvents(p_.PINCH,v&&(l||u)),this.toggleEvents(p_.TRIPLE_PAN,v&&u),this.toggleEvents(p_.DOUBLE_TAP,v&&s),this.toggleEvents(p_.KEYBOARD,v&&f),this.scrollZoom=i,this.dragPan=n,this.dragRotate=o,this.doubleClickZoom=s,this.touchZoom=l,this.touchRotate=u,this.keyboard=f}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(i=>{this._events[i]!==r&&(this._events[i]=r,r?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(e,r=null,i={}){let n={...e.getViewportProps(),...r},o=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(i),o){let s=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,interactionState:this._interactionState,oldViewState:s})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState})}_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 i=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(i=!i);let n=this.controllerState[i?"panStart":"rotateStart"]({pos:r});return this._panMove=i,this.updateViewport(n,Gp,{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),i=this.controllerState.pan({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*r/2,i[1]+e.velocityY*r/2],o=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isPanning:!0})}else{let i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),i=this.controllerState.rotate({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*r/2,i[1]+e.velocityY*r/2],o=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isRotating:!0})}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,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:i=.01,smooth:n=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:o}=e,s=2/(1+Math.exp(-Math.abs(o*i)));o<0&&s!==0&&(s=1/s);let l=this.controllerState.zoom({pos:r,scale:s});return this.updateViewport(l,{...this._getTransitionProps({around:r}),transitionDuration:n?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.controllerState.rotateStart({pos:r});return this.updateViewport(i,Gp,{isDragging:!0}),!0}_onTriplePan(e){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(e);r[0]-=e.deltaX;let i=this.controllerState.rotate({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&e.velocityY){let i=this.getCenter(e),n=[i[0],i[1]+=e.velocityY*r/2],o=this.controllerState.rotate({pos:n});this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return vm._startPinchRotation=e.rotation,vm._lastPinchEvent=e,this.updateViewport(i,Gp,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:i}=e,n=this.getCenter(e);r=r.zoom({pos:n,scale:i})}if(this.touchRotate){let{rotation:i}=e;r=r.rotate({deltaAngleX:vm._startPinchRotation-i})}return this.updateViewport(r,Gp,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),vm._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:i}=vm;if(this.touchZoom&&r&&i&&e.scale!==i.scale){let n=this.getCenter(e),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),l=(s-Math.log2(i.scale))/(e.deltaTime-i.deltaTime),u=Math.pow(2,s+l*r/2);o=o.zoom({pos:n,scale:u}).zoomEnd(),this.updateViewport(o,{...this._getTransitionProps({around:n}),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let n=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return vm._startPinchRotation=null,vm._lastPinchEvent=null,!0}_onDoubleTap(e){if(!this.doubleClickZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.isFunctionKeyPressed(e),n=this.controllerState.zoom({pos:r,scale:i?.5:2});return this.updateViewport(n,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:i,moveSpeed:n,rotateSpeedX:o,rotateSpeedY:s}=this.keyboard===!0?{}:this.keyboard,{controllerState:l}=this,u,f={};switch(e.srcEvent.code){case"Minus":u=r?l.zoomOut(i).zoomOut(i):l.zoomOut(i),f.isZooming=!0;break;case"Equal":u=r?l.zoomIn(i).zoomIn(i):l.zoomIn(i),f.isZooming=!0;break;case"ArrowLeft":r?(u=l.rotateLeft(o),f.isRotating=!0):(u=l.moveLeft(n),f.isPanning=!0);break;case"ArrowRight":r?(u=l.rotateRight(o),f.isRotating=!0):(u=l.moveRight(n),f.isPanning=!0);break;case"ArrowUp":r?(u=l.rotateUp(s),f.isRotating=!0):(u=l.moveUp(n),f.isPanning=!0);break;case"ArrowDown":r?(u=l.rotateDown(s),f.isRotating=!0):(u=l.moveDown(n),f.isPanning=!0);break;default:return!1}return this.updateViewport(u,this._getTransitionProps(),f),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?Gp:e?{...r,transitionInterpolator:new bl({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Pd=class{constructor(e,r){this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var LV=5,Ahe=1.2,a1=class extends Pd{constructor(e){let{width:r,height:i,latitude:n,longitude:o,zoom:s,bearing:l=0,pitch:u=0,altitude:f=1.5,position:v=[0,0,0],maxZoom:T=20,minZoom:E=0,maxPitch:M=60,minPitch:O=0,startPanLngLat:F,startZoomLngLat:U,startRotatePos:G,startBearing:J,startPitch:K,startZoom:ne,normalize:ge=!0}=e;os(Number.isFinite(o)),os(Number.isFinite(n)),os(Number.isFinite(s)),super({width:r,height:i,latitude:n,longitude:o,zoom:s,bearing:l,pitch:u,altitude:f,maxZoom:T,minZoom:E,maxPitch:M,minPitch:O,normalize:ge,position:v},{startPanLngLat:F,startZoomLngLat:U,startRotatePos:G,startBearing:J,startPitch:K,startZoom:ne}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:r}){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,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:i=0}){let{startRotatePos:n,startBearing:o,startPitch:s}=this.getState();if(!n||o===void 0||s===void 0)return this;let l;return e?l=this._getNewRotation(e,n,s,o):l={bearing:o+r,pitch:s+i},this._getUpdatedState(l)}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:i}){let{startZoom:n,startZoomLngLat:o}=this.getState();if(o||(n=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let{maxZoom:s,minZoom:l}=this.getViewportProps(),u=n+Math.log2(i);u=Zn(u,l,s);let f=this.makeViewport({...this.getViewportProps(),zoom:u});return this._getUpdatedState({zoom:u,...f.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(),i={...this.getViewportProps()},{bearing:n,longitude:o}=i;return Math.abs(n-r.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(o-r.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n}=e;e.zoom=Zn(n,i,r);let{maxPitch:o,minPitch:s,pitch:l}=e;e.pitch=Zn(l,s,o);let{normalize:u=!0}=e;return u&&Object.assign(e,HB(e)),e}_zoomFromCenter(e){let{width:r,height:i}=this.getViewportProps();return this.zoom({pos:[r/2,i/2],scale:e})}_panFromCenter(e){let{width:r,height:i}=this.getViewportProps();return this.pan({startPos:[r/2,i/2],pos:[r/2+e[0],i/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,i,n){let o=e[0]-r[0],s=e[1]-r[1],l=e[1],u=r[1],{width:f,height:v}=this.getViewportProps(),T=o/f,E=0;s>0?Math.abs(v-u)>LV&&(E=s/(u-v)*Ahe):s<0&&u>LV&&(E=1-l/u),E=Zn(E,-1,1);let{minPitch:M,maxPitch:O}=this.getViewportProps(),F=n+180*T,U=i;return E>0?U=i+E*(O-i):E<0&&(U=i-E*(M-i)),{pitch:U,bearing:F}}},xm=class extends tc{constructor(){super(...arguments),this.ControllerState=a1,this.transition={transitionDuration:300,transitionInterpolator:new bl({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 $B=class extends ec{get ViewportType(){return Sc}get ControllerType(){return xm}},Rd=$B;(()=>{$B.displayName="MapView"})();var mhe=new Vp;function ghe(t,e){let r=t.order??1/0,i=e.order??1/0;return r-i}var l1=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(i=>i.id===e.id)){let i=r.findIndex(n=>ghe(n,e)>0);i<0?r.push(e):r.splice(i,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&(Ls(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 n of this.effects)r[n.id]=n;let i=[];for(let n of e){let o=r[n.id],s=n;o&&o!==n?o.setProps?(o.setProps(n.props),s=o):o.cleanup(this._context):o||n.setup(this._context),i.push(s),delete r[n.id]}for(let n in r)r[n].cleanup(this._context);this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),e.some(n=>n instanceof Vp)||this._resolvedEffects.push(mhe),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 c1=class extends bh{shouldDrawLayer(e){let{operation:r}=e.props;return r.includes("draw")||r.includes("terrain")}};var _he="deckRenderer.renderLayers",bm=class{constructor(e){this.device=e,this.gl=e.gl,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new c1(e),this.pickLayersPass=new Ed(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,i={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};i.effects&&this._preRender(i.effects,i);let n=this.lastPostProcessEffect?this.renderBuffers[0]:i.target;this.lastPostProcessEffect&&(i.clearColor=[0,0,0,0],i.clearCanvas=!0);let o=r.render({...i,target:n});i.effects&&this._postRender(i.effects,i),this.renderCount++,Ks(_he,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 i of e)r.preRenderStats[i.id]=i.preRender(r),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:e}=this,r=this.device.canvasContext.getDrawingBufferSize();e.length===0&&[0,1].map(i=>{let n=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"}});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${i}`,colorAttachments:[n]}))});for(let i of e)i.resize(r)}_postRender(e,r){let{renderBuffers:i}=this,n={...r,inputBuffer:i[0],swapBuffer:i[1]};for(let o of e)if(o.postRender){n.target=o.id===this.lastPostProcessEffect?r.target:void 0;let s=o.postRender(n);n.inputBuffer=s,n.swapBuffer=s===i[0]?i[1]:i[0]}}};var yhe={pickedColor:null,pickedObjectIndex:-1};function FV({pickedColors:t,decodePickingColor:e,deviceX:r,deviceY:i,deviceRadius:n,deviceRect:o}){let{x:s,y:l,width:u,height:f}=o,v=n*n,T=-1,E=0;for(let M=0;M<f;M++){let O=M+l-i,F=O*O;if(F>v)E+=4*u;else for(let U=0;U<u;U++){if(t[E+3]-1>=0){let J=U+s-r,K=J*J+F;K<=v&&(v=K,T=E)}E+=4}}if(T>=0){let M=t.slice(T,T+4),O=e(M);if(O){let F=Math.floor(T/4/u),U=T/4-F*u;return{...O,pickedColor:M,pickedX:s+U,pickedY:l+F}}ur.error("Picked non-existent layer. Is picking buffer corrupt?")()}return yhe}function NV({pickedColors:t,decodePickingColor:e}){let r=new Map;if(t){for(let i=0;i<t.length;i+=4)if(t[i+3]-1>=0){let o=t.slice(i,i+4),s=o.join(",");if(!r.has(s)){let l=e(o);l?r.set(s,{...l,color:o}):ur.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(r.values())}function eO({pickInfo:t,viewports:e,pixelRatio:r,x:i,y:n,z:o}){let s=e[0];e.length>1&&(s=vhe(t?.pickedViewports||e,{x:i,y:n}));let l;if(s){let u=[i-s.x,n-s.y];o!==void 0&&(u[2]=o),l=s.unproject(u)}return{color:null,layer:null,viewport:s,index:-1,picked:!1,x:i,y:n,pixel:[i,n],coordinate:l,devicePixel:t&&"pickedX"in t?[t.pickedX,t.pickedY]:void 0,pixelRatio:r}}function kV(t){let{pickInfo:e,lastPickedInfo:r,mode:i,layers:n}=t,{pickedColor:o,pickedLayer:s,pickedObjectIndex:l}=e,u=s?[s]:[];if(i==="hover"){let T=r.index,E=r.layerId,M=s?s.props.id:null;if(M!==E||l!==T){if(M!==E){let O=n.find(F=>F.props.id===E);O&&u.unshift(O)}r.layerId=M,r.index=l,r.info=null}}let f=eO(t),v=new Map;return v.set(null,f),u.forEach(T=>{let E={...f};T===s&&(E.color=o,E.index=l,E.picked=!0),E=tO({layer:T,info:E,mode:i});let M=E.layer;T===s&&i==="hover"&&(r.info=E),v.set(M.id,E),i==="hover"&&M.updateAutoHighlight(E)}),v}function tO({layer:t,info:e,mode:r}){for(;t&&e;){let i=e.layer||null;e.sourceLayer=i,e.layer=t,e=t.getPickingInfo({info:e,mode:r,sourceLayer:i}),t=t.parent}return e}function vhe(t,e){for(let r=t.length-1;r>=0;r--){let i=t[r];if(i.containsPixel(e))return i}return t[0]}var u1=class{constructor(e){this._pickable=!0,this.device=e,this.pickLayersPass=new Ed(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()}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:r,layers:i,viewports:n},o=this.lastPickedInfo.info){let s=o&&o.layer&&o.layer.id,l=o&&o.viewport&&o.viewport.id,u=s?i.find(E=>E.id===s):null,f=l&&n.find(E=>E.id===l)||n[0],v=f&&f.unproject([e-f.x,r-f.y]);return{...o,...{x:e,y:r,viewport:f,coordinate:v,layer:u}}}_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 e=this.device.gl;this.pickingFBO?.resize({width:e.canvas.width,height:e.canvas.height}),this.depthFBO?.resize({width:e.canvas.width,height:e.canvas.height})}_getPickable(e){if(this._pickable===!1)return null;let r=e.filter(i=>this.pickLayersPass.shouldDrawLayer(i)&&!i.isComposite);return r.length?r:null}_pickClosestObject({layers:e,views:r,viewports:i,x:n,y:o,radius:s=0,depth:l=1,mode:u="query",unproject3D:f,onViewportActive:v,effects:T}){let E=this.device.canvasContext.cssToDeviceRatio(),M=this._getPickable(e);if(!M||i.length===0)return{result:[],emptyInfo:eO({viewports:i,x:n,y:o,pixelRatio:E})};this._resizeBuffer();let O=this.device.canvasContext.cssToDevicePixels([n,o],!0),F=[O.x+Math.floor(O.width/2),O.y+Math.floor(O.height/2)],U=Math.round(s*E),{width:G,height:J}=this.pickingFBO,K=this._getPickingRect({deviceX:F[0],deviceY:F[1],deviceRadius:U,deviceWidth:G,deviceHeight:J}),ne={x:n-s,y:o-s,width:s*2+1,height:s*2+1},ge,H=[],me=new Set;for(let he=0;he<l;he++){let $;if(K){let we=this._drawAndSample({layers:M,views:r,viewports:i,onViewportActive:v,deviceRect:K,cullRect:ne,effects:T,pass:`picking:${u}`});$=FV({...we,deviceX:F[0],deviceY:F[1],deviceRadius:U,deviceRect:K})}else $={pickedColor:null,pickedObjectIndex:-1};let Z;if($.pickedLayer&&f&&this.depthFBO){let{pickedColors:we}=this._drawAndSample({layers:[$.pickedLayer],views:r,viewports:i,onViewportActive:v,deviceRect:{x:$.pickedX,y:$.pickedY,width:1,height:1},cullRect:ne,effects:T,pass:`picking:${u}:z`},!0);we[3]&&(Z=we[0])}$.pickedLayer&&he+1<l&&(me.add($.pickedLayer),$.pickedLayer.disablePickingIndex($.pickedObjectIndex)),ge=kV({pickInfo:$,lastPickedInfo:this.lastPickedInfo,mode:u,layers:M,viewports:i,x:n,y:o,z:Z,pixelRatio:E});for(let we of ge.values())we.layer&&H.push(we);if(!$.pickedColor)break}for(let he of me)he.restorePickingColors();return{result:H,emptyInfo:ge.get(null)}}_pickVisibleObjects({layers:e,views:r,viewports:i,x:n,y:o,width:s=1,height:l=1,mode:u="query",maxObjects:f=null,onViewportActive:v,effects:T}){let E=this._getPickable(e);if(!E||i.length===0)return[];this._resizeBuffer();let M=this.device.canvasContext.cssToDeviceRatio(),O=this.device.canvasContext.cssToDevicePixels([n,o],!0),F=O.x,U=O.y+O.height,G=this.device.canvasContext.cssToDevicePixels([n+s,o+l],!0),J=G.x+G.width,K=G.y,ne={x:F,y:K,width:J-F,height:U-K},ge=this._drawAndSample({layers:E,views:r,viewports:i,onViewportActive:v,deviceRect:ne,cullRect:{x:n,y:o,width:s,height:l},effects:T,pass:`picking:${u}`}),H=NV(ge),me=new Map,he=[],$=Number.isFinite(f);for(let Z=0;Z<H.length&&!($&&he.length>=f);Z++){let we=H[Z],Oe={color:we.pickedColor,layer:null,index:we.pickedObjectIndex,picked:!0,x:n,y:o,pixelRatio:M};Oe=tO({layer:we.pickedLayer,info:Oe,mode:u});let fe=Oe.layer.id;me.has(fe)||me.set(fe,new Set);let Le=me.get(fe),ht=Oe.object??Oe.index;Le.has(ht)||(Le.add(ht),he.push(Oe))}return he}_drawAndSample({layers:e,views:r,viewports:i,onViewportActive:n,deviceRect:o,cullRect:s,effects:l,pass:u},f=!1){let v=f?this.depthFBO:this.pickingFBO,T={layers:e,layerFilter:this.layerFilter,views:r,viewports:i,onViewportActive:n,pickingFBO:v,deviceRect:o,cullRect:s,effects:l,pass:u,pickZ:f,preRenderStats:{}};for(let J of l)J.useInPicking&&(T.preRenderStats[J.id]=J.preRender(T));let{decodePickingColor:E}=this.pickLayersPass.render(T),{x:M,y:O,width:F,height:U}=o,G=new(f?Float32Array:Uint8Array)(F*U*4);return this.device.readPixelsToArrayWebGL(v,{sourceX:M,sourceY:O,sourceWidth:F,sourceHeight:U,target:G}),{pickedColors:G,decodePickingColor:E}}_getPickingRect({deviceX:e,deviceY:r,deviceRadius:i,deviceWidth:n,deviceHeight:o}){let s=Math.max(0,e-i),l=Math.max(0,r-i),u=Math.min(n,e+i+1)-s,f=Math.min(o,r+i+1)-l;return u<=0||f<=0?null:{x:s,y:l,width:u,height:f}}};var xhe={"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}},bhe="top-left",UV="__root",bE=class{constructor({deck:e,parentElement:r}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,this.parentElement=r}getWidgets(){return this.resolvedWidgets}setProps(e){e.widgets&&!Ls(e.widgets,this.widgets,1)&&this._setWidgets(e.widgets)}finalize(){for(let e of this.getWidgets())this._remove(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._add(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}_setWidgets(e){let r={};for(let i of this.resolvedWidgets)r[i.id]=i;this.resolvedWidgets.length=0;for(let i of this.defaultWidgets)r[i.id]=null,this.resolvedWidgets.push(i);for(let i of e){let n=r[i.id];n?n.viewId!==i.viewId||n.placement!==i.placement?(this._remove(n),this._add(i)):i!==n&&(n.setProps(i.props),i=n):this._add(i),r[i.id]=null,this.resolvedWidgets.push(i)}for(let i in r){let n=r[i];n&&this._remove(n)}this.widgets=e}_add(e){let{viewId:r=null,placement:i=bhe}=e,n=e.onAdd({deck:this.deck,viewId:r});n&&this._getContainer(r,i).append(n),e._element=n}_remove(e){e.onRemove(),e._element&&e._element.remove(),e._element=void 0}_getContainer(e,r){let i=e||UV,n=this.containers[i];n||(n=document.createElement("div"),n.style.pointerEvents="none",n.style.position="absolute",n.style.overflow="hidden",this.parentElement?.append(n),this.containers[i]=n);let o=n.querySelector(`.${r}`);return o||(o=document.createElement("div"),o.className=r,o.style.position="absolute",Object.assign(o.style,xhe[r]),n.append(o)),o}_updateContainers(){let e=this.deck.width,r=this.deck.height;for(let i in this.containers){let n=this.lastViewports[i]||null,o=i===UV||n,s=this.containers[i];o?(s.style.display="block",s.style.left=`${n?n.x:0}px`,s.style.top=`${n?n.y:0}px`,s.style.width=`${n?n.width:e}px`,s.style.height=`${n?n.height:r}px`):s.style.display="none"}}onRedraw({viewports:e,layers:r}){let i=e.reduce((o,s)=>(o[s.id]=s,o),{}),{lastViewports:n}=this;for(let o of this.getWidgets()){let{viewId:s}=o;if(s){let l=i[s];l&&(o.onViewportChange&&!l.equals(n[s])&&o.onViewportChange(l),o.onRedraw?.({viewports:[l],layers:r}))}else{if(o.onViewportChange)for(let l of e)l.equals(n[l.id])||o.onViewportChange(l);o.onRedraw?.({viewports:e,layers:r})}}this.lastViewports=i,this._updateContainers()}onHover(e,r){for(let i of this.getWidgets()){let{viewId:n}=i;(!n||n===e.viewport?.id)&&i.onHover?.(e,r)}}onEvent(e,r){let i=kx[r.type];if(i)for(let n of this.getWidgets()){let{viewId:o}=n;(!o||o===e.viewport?.id)&&n[i.handler]?.(e,r)}}};var whe={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"},h1=class{constructor(){this.id="default-tooltip",this.placement="fill",this.props={},this.isVisible=!1}onAdd({deck:e}){let r=document.createElement("div");return r.className="deck-tooltip",Object.assign(r.style,whe),this.deck=e,this.element=r,r}onRemove(){this.deck=void 0,this.element=void 0}setProps(){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&e!==this.lastViewport&&this.setTooltip(null)}onHover(e){let{deck:r}=this,i=r&&r.props.getTooltip;if(!i)return;let n=i(e);this.lastViewport=e.viewport,this.setTooltip(n,e.x,e.y)}setTooltip(e,r,i){let n=this.element;if(n){if(typeof e=="string")n.innerText=e;else if(e)e.text&&(n.innerText=e.text),e.html&&(n.innerHTML=e.html),e.className&&(n.className=e.className);else{this.isVisible=!1,n.style.display="none";return}this.isVisible=!0,n.style.display="block",n.style.transform=`translate(${r}px, ${i}px)`,e&&typeof e=="object"&&"style"in e&&Object.assign(n.style,e.style)}}};var wm=ga(zV());var The={mousedown:1,mousemove:2,mouseup:4};function Ehe(t,e){for(let r=0;r<t.length;r++)if(e(t[r]))return!0;return!1}function VV(t){let e=t.prototype.handler;t.prototype.handler=function(i){let n=this.store;i.button>0&&i.type==="pointerdown"&&(Ehe(n,o=>o.pointerId===i.pointerId)||n.push(i)),e.call(this,i)}}function jV(t){t.prototype.handler=function(r){let i=The[r.type];i&1&&r.button>=0&&(this.pressed=!0),i&2&&r.which===0&&(i=4),this.pressed&&(i&4&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:"mouse",srcEvent:r}))}}VV(wm.PointerEventInput);jV(wm.MouseInput);var HV=wm.Manager,Ch=wm;var Mh=class{constructor(e,r,i){this.element=e,this.callback=r,this.options={enable:!0,...i}}};var GV=Ch?[[Ch.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Ch.Rotate,{enable:!1}],[Ch.Pinch,{enable:!1}],[Ch.Swipe,{enable:!1}],[Ch.Pan,{threshold:0,enable:!1}],[Ch.Press,{enable:!1}],[Ch.Tap,{event:"doubletap",taps:2,enable:!1}],[Ch.Tap,{event:"anytap",enable:!1}],[Ch.Tap,{enable:!1}]]:null,rO={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},WV={doubletap:["tap"]},qV={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},A_={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},XV={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},iO={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"};var YV=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",Tm=typeof window<"u"?window:global;var TE=!1;try{let t={get passive(){return TE=!0,!0}};Tm.addEventListener("test",null,t),Tm.removeEventListener("test",null)}catch{TE=!1}var She=YV.indexOf("firefox")!==-1,{WHEEL_EVENTS:Che}=A_,KV="wheel",ZV=4.000244140625,Mhe=40,Ihe=.25,f1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{if(!this.options.enable)return;let o=n.deltaY;Tm.WheelEvent&&(She&&n.deltaMode===Tm.WheelEvent.DOM_DELTA_PIXEL&&(o/=Tm.devicePixelRatio),n.deltaMode===Tm.WheelEvent.DOM_DELTA_LINE&&(o*=Mhe)),o!==0&&o%ZV===0&&(o=Math.floor(o/ZV)),n.shiftKey&&o&&(o=o*Ihe),this.callback({type:KV,center:{x:n.clientX,y:n.clientY},delta:-o,srcEvent:n,pointerType:"mouse",target:n.target})},this.events=(this.options.events||[]).concat(Che),this.events.forEach(n=>e.addEventListener(n,this.handleEvent,TE?{passive:!1}:!1))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===KV&&(this.options.enable=r)}};var{MOUSE_EVENTS:Phe}=A_,JV="pointermove",QV="pointerover",$V="pointerout",e9="pointerenter",t9="pointerleave",d1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=o=>{this.handleOverEvent(o),this.handleOutEvent(o),this.handleEnterEvent(o),this.handleLeaveEvent(o),this.handleMoveEvent(o)},this.pressed=!1;let{enable:n}=this.options;this.enableMoveEvent=n,this.enableLeaveEvent=n,this.enableEnterEvent=n,this.enableOutEvent=n,this.enableOverEvent=n,this.events=(this.options.events||[]).concat(Phe),this.events.forEach(o=>e.addEventListener(o,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===JV&&(this.enableMoveEvent=r),e===QV&&(this.enableOverEvent=r),e===$V&&(this.enableOutEvent=r),e===e9&&(this.enableEnterEvent=r),e===t9&&(this.enableLeaveEvent=r)}handleOverEvent(e){this.enableOverEvent&&e.type==="mouseover"&&this._emit(QV,e)}handleOutEvent(e){this.enableOutEvent&&e.type==="mouseout"&&this._emit($V,e)}handleEnterEvent(e){this.enableEnterEvent&&e.type==="mouseenter"&&this._emit(e9,e)}handleLeaveEvent(e){this.enableLeaveEvent&&e.type==="mouseleave"&&this._emit(t9,e)}handleMoveEvent(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":e.which===0&&(this.pressed=!1),this.pressed||this._emit(JV,e);break;case"mouseup":this.pressed=!1;break;default:}}_emit(e,r){this.callback({type:e,center:{x:r.clientX,y:r.clientY},srcEvent:r,pointerType:"mouse",target:r.target})}};var{KEY_EVENTS:Rhe}=A_,r9="keydown",i9="keyup",p1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{let o=n.target||n.srcElement;o.tagName==="INPUT"&&o.type==="text"||o.tagName==="TEXTAREA"||(this.enableDownEvent&&n.type==="keydown"&&this.callback({type:r9,srcEvent:n,key:n.key,target:n.target}),this.enableUpEvent&&n.type==="keyup"&&this.callback({type:i9,srcEvent:n,key:n.key,target:n.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(Rhe),e.tabIndex=this.options.tabIndex||0,e.style.outline="none",this.events.forEach(n=>e.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===r9&&(this.enableDownEvent=r),e===i9&&(this.enableUpEvent=r)}};var n9="contextmenu",A1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{this.options.enable&&this.callback({type:n9,center:{x:n.clientX,y:n.clientY},srcEvent:n,pointerType:"mouse",target:n.target})},e.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(e,r){e===n9&&(this.options.enable=r)}};var Bhe={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},Ohe=1,Dhe=2,Lhe=3,Fhe=0,Nhe=1,khe=2,Uhe=1,zhe=2,Vhe=4;function o9(t){let e=Bhe[t.srcEvent.type];if(!e)return null;let{buttons:r,button:i,which:n}=t.srcEvent,o=!1,s=!1,l=!1;return e===4||e===2&&!Number.isFinite(r)?(o=n===Ohe,s=n===Dhe,l=n===Lhe):e===2?(o=Boolean(r&Uhe),s=Boolean(r&Vhe),l=Boolean(r&zhe)):e===1&&(o=i===Fhe,s=i===Nhe,l=i===khe),{leftButton:o,middleButton:s,rightButton:l}}function s9(t,e){let r=t.center;if(!r)return null;let i=e.getBoundingClientRect(),n=i.width/e.offsetWidth||1,o=i.height/e.offsetHeight||1,s={x:(r.x-i.left-e.clientLeft)/n,y:(r.y-i.top-e.clientTop)/o};return{center:r,offsetCenter:s}}var nO={srcElement:"root",priority:0},m1=class{constructor(e){this.handleEvent=r=>{if(this.isEmpty())return;let i=this._normalizeEvent(r),n=r.srcEvent.target;for(;n&&n!==i.rootElement;){if(this._emit(i,n),i.handled)return;n=n.parentNode}this._emit(i,"root")},this.eventManager=e,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(e,r,i,n=!1,o=!1){let{handlers:s,handlersByElement:l}=this,u=nO;typeof i=="string"||i&&i.addEventListener?u={...nO,srcElement:i}:i&&(u={...nO,...i});let f=l.get(u.srcElement);f||(f=[],l.set(u.srcElement,f));let v={type:e,handler:r,srcElement:u.srcElement,priority:u.priority};n&&(v.once=!0),o&&(v.passive=!0),s.push(v),this._active=this._active||!v.passive;let T=f.length-1;for(;T>=0&&!(f[T].priority>=v.priority);)T--;f.splice(T+1,0,v)}remove(e,r){let{handlers:i,handlersByElement:n}=this;for(let o=i.length-1;o>=0;o--){let s=i[o];if(s.type===e&&s.handler===r){i.splice(o,1);let l=n.get(s.srcElement);l.splice(l.indexOf(s),1),l.length===0&&n.delete(s.srcElement)}}this._active=i.some(o=>!o.passive)}_emit(e,r){let i=this.handlersByElement.get(r);if(i){let n=!1,o=()=>{e.handled=!0},s=()=>{e.handled=!0,n=!0},l=[];for(let u=0;u<i.length;u++){let{type:f,handler:v,once:T}=i[u];if(v({...e,type:f,stopPropagation:o,stopImmediatePropagation:s}),T&&l.push(i[u]),n)break}for(let u=0;u<l.length;u++){let{type:f,handler:v}=l[u];this.remove(f,v)}}}_normalizeEvent(e){let r=this.eventManager.getElement();return{...e,...o9(e),...s9(e,r),preventDefault:()=>{e.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:r}}};var jhe={events:null,recognizers:null,recognizerOptions:{},Manager:HV,touchAction:"none",tabIndex:0},m_=class{constructor(e=null,r){this._onBasicInput=n=>{let{srcEvent:o}=n,s=qV[o.type];s&&this.manager.emit(s,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={...jhe,...r},this.events=new Map,this.setElement(e);let{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(e){if(this.element&&this.destroy(),this.element=e,!e)return;let{options:r}=this,i=r.Manager;this.manager=new i(e,{touchAction:r.touchAction,recognizers:r.recognizers||GV}).on("hammer.input",this._onBasicInput),r.recognizers||Object.keys(rO).forEach(n=>{let o=this.manager.get(n);o&&rO[n].forEach(s=>{o.recognizeWith(s)})});for(let n in r.recognizerOptions){let o=this.manager.get(n);if(o){let s=r.recognizerOptions[n];delete s.enable,o.set(s)}}this.wheelInput=new f1(e,this._onOtherEvent,{enable:!1}),this.moveInput=new d1(e,this._onOtherEvent,{enable:!1}),this.keyInput=new p1(e,this._onOtherEvent,{enable:!1,tabIndex:r.tabIndex}),this.contextmenuInput=new A1(e,this._onOtherEvent,{enable:!1});for(let[n,o]of this.events)o.isEmpty()||(this._toggleRecognizer(o.recognizerName,!0),this.manager.on(n,o.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(e,r,i){this._addEventHandler(e,r,i,!1)}once(e,r,i){this._addEventHandler(e,r,i,!0)}watch(e,r,i){this._addEventHandler(e,r,i,!1,!0)}off(e,r){this._removeEventHandler(e,r)}_toggleRecognizer(e,r){let{manager:i}=this;if(!i)return;let n=i.get(e);if(n&&n.options.enable!==r){n.set({enable:r});let o=WV[e];o&&!this.options.recognizers&&o.forEach(s=>{let l=i.get(s);r?(l.requireFailure(e),n.dropRequireFailure(s)):l.dropRequireFailure(e)})}this.wheelInput.enableEventType(e,r),this.moveInput.enableEventType(e,r),this.keyInput.enableEventType(e,r),this.contextmenuInput.enableEventType(e,r)}_addEventHandler(e,r,i,n,o){if(typeof e!="string"){i=r;for(let v in e)this._addEventHandler(v,e[v],i,n,o);return}let{manager:s,events:l}=this,u=iO[e]||e,f=l.get(u);f||(f=new m1(this),l.set(u,f),f.recognizerName=XV[u]||u,s&&s.on(u,f.handleEvent)),f.add(e,r,i,n,o),f.isEmpty()||this._toggleRecognizer(f.recognizerName,!0)}_removeEventHandler(e,r){if(typeof e!="string"){for(let s in e)this._removeEventHandler(s,e[s]);return}let{events:i}=this,n=iO[e]||e,o=i.get(n);if(o&&(o.remove(e,r),o.isEmpty())){let{recognizerName:s}=o,l=!1;for(let u of i.values())if(u.recognizerName===s&&!u.isEmpty()){l=!0;break}l||this._toggleRecognizer(s,!1)}}};function Wp(){}var Hhe=({isDragging:t})=>t?"grabbing":"grab",a9={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{type:"webgl"},gl:null,glOptions:{},canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:Wp,onWebGLInitialized:Wp,onResize:Wp,onViewStateChange:Wp,onInteractionStateChange:Wp,onBeforeRender:Wp,onAfterRender:Wp,onLoad:Wp,onError:t=>ur.error(t.message,t.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:Hhe,getTooltip:null,debug:!1,drawPickingColors:!1},EE=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 Bl({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=i=>{let{_pickRequest:n}=this;if(i.type==="pointerleave")n.x=-1,n.y=-1,n.radius=0;else{if(i.leftButton||i.rightButton)return;{let o=i.offsetCenter;if(!o)return;n.x=o.x,n.y=o.y,n.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:n.x,y:n.y}),n.event=i},this._onEvent=i=>{let n=kx[i.type],o=i.offsetCenter;if(!n||!o||!this.layerManager)return;let s=this.layerManager.getLayers(),l=this.deckPicker.getLastPickedObject({x:o.x,y:o.y,layers:s,viewports:this.getViewports(o)},this._lastPointerDownInfo),{layer:u}=l,f=u&&(u[n.handler]||u.props[n.handler]),v=this.props[n.handler],T=!1;f&&(T=f.call(u,l,i)),T||(v?.(l,i),this.widgetManager.onEvent(l,i))},this._onPointerDown=i=>{let n=i.offsetCenter,o=this._pick("pickObject","pickObject Time",{x:n.x,y:n.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=o.result[0]||o.emptyInfo},this.props={...a9,...e},e=this.props,e.viewState&&e.initialViewState&&ur.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:e.gl&&(e.gl instanceof WebGLRenderingContext&&ur.error("WebGL1 context not supported.")(),this.device=Tf.attach(e.gl));let r=this.device;r||(Tc.registerDevices([Tf]),r=Tc.createDevice({...e.deviceProps,canvas:this._createCanvas(e)}),r.then(i=>{this.device=i})),this.animationLoop=this._createAnimationLoop(r,e),this.setProps(e),e._typedArrayManagerProps&&wh.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.canvas&&(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null)}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&ur.removed("onLayerHover","onHover")(),"onLayerClick"in e&&ur.removed("onLayerClick","onClick")(),e.initialViewState&&!Ls(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);Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop?.setProps(r),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 i=this.viewManager.needsRedraw(e),n=this.layerManager.needsRedraw(e),o=this.effectManager.needsRedraw(e),s=this.deckRenderer.needsRedraw(e);return r=r||i||n||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 os(this.viewManager),this.viewManager.views}getViewports(e){return os(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 i in e)this.layerManager.resourceManager.add({resourceId:i,data:e[i],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,i){os(this.deckPicker);let{stats:n}=this;n.get("Pick Count").incrementCount(),n.get(r).timeStart();let o=this.deckPicker[e]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return n.get(r).timeEnd(),o}_createCanvas(e){let r=e.canvas;return typeof r=="string"&&(r=document.getElementById(r),os(r)),r||(r=document.createElement("canvas"),r.id=e.id||"deckgl-overlay",(e.parent||document.body).appendChild(r)),Object.assign(r.style,e.style),r}_setCanvasSize(e){if(!this.canvas)return;let{width:r,height:i}=e;if(r||r===0){let n=Number.isFinite(r)?`${r}px`:r;this.canvas.style.width=n}if(i||i===0){let n=Number.isFinite(i)?`${i}px`:i;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=n}}_updateCanvasSize(){let{canvas:e}=this;if(!e)return;let r=e.clientWidth??e.width,i=e.clientHeight??e.height;(r!==this.width||i!==this.height)&&(this.width=r,this.height=i,this.viewManager?.setProps({width:r,height:i}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:r,height:i}))}_createAnimationLoop(e,r){let{gl:i,onError:n,useDevicePixels:o}=r;return new Kx({device:e,useDevicePixels:o,autoResizeDrawingBuffer:!i,autoResizeViewport:!1,onInitialize:s=>this._setDevice(s.device),onRender:this._onRenderFrame.bind(this),onError:n})}_getViewState(){return this.props.viewState||this.viewState||{}}_getViews(){let{views:e}=this.props,r=Array.isArray(e)?e:e?[e]:[new Rd({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(){let{_pickRequest:e}=this;if(e.event){let{result:r,emptyInfo:i}=this._pick("pickObject","pickObject Time",e);this.cursorState.isHovering=r.length>0;let n=i,o=!1;for(let s of r)n=s,o=s.layer?.onHover(s,e.event)||o;o||(this.props.onHover?.(n,e.event),this.widgetManager.onHover(n,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.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),this.device instanceof Tf&&this.props.onWebGLInitialized(this.device.gl);let r=new _m;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new m_(this.props.parent||this.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let n in kx)this.eventManager.on(n,this._onEvent);this.viewManager=new n1({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 i=this.viewManager.getViewports()[0];this.layerManager=new ym(this.device,{deck:this,stats:this.stats,viewport:i,timeline:r}),this.effectManager=new l1({deck:this,device:this.device}),this.deckRenderer=new bm(this.device),this.deckPicker=new u1(this.device),this.widgetManager=new bE({deck:this,parentElement:this.canvas?.parentElement}),this.widgetManager.addDefault(new h1),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(e,r){let{device:i,gl:n}=this.layerManager.context;this.props.onBeforeRender({device:i,gl:n});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:i,gl:n})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),ur.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.layerManager.updateLayers(),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 i=Tc.stats.get("Memory Usage");e.bufferMemory=i.get("Buffer Memory").count,e.textureMemory=i.get("Texture Memory").count,e.renderbufferMemory=i.get("Renderbuffer Memory").count,e.gpuMemory=i.get("GPU Memory").count}},Bd=EE;(()=>{EE.defaultProps=a9})(),(()=>{EE.VERSION=ST})();function l9(t){switch(t){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return cx(t)}}var c9=tT;function g1(t,e){return{attribute:t,format:e.size>1?`${e.type}x${e.size}`:e.type,byteOffset:e.offset||0}}function qp(t){return t.stride||t.size*t.bytesPerElement}function u9(t,e){return t.type===e.type&&t.size===e.size&&qp(t)===qp(e)&&(t.offset||0)===(e.offset||0)}function oO(t,e){e.offset&&ur.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let r=qp(t),i=e.vertexOffset!==void 0?e.vertexOffset:t.vertexOffset||0,n=e.elementOffset||0,o=i*r+n*t.bytesPerElement+(t.offset||0);return{...e,offset:o,stride:r}}function Ghe(t,e){let r=oO(t,e);return{high:r,low:{...r,offset:r.offset+t.size*4}}}var _1=class{constructor(e,r,i){this._buffer=null,this.device=e,this.id=r.id||"",this.size=r.size||1;let n=r.logicalType||r.type,o=n==="float64",{defaultValue:s}=r;s=Number.isFinite(s)?[s]:s||new Array(this.size).fill(0);let l;o?l="float32":!n&&r.isIndexed?l="uint32":l=n||"float32";let u=l9(n||l);this.doublePrecision=o,o&&r.fp64===!1&&(u=Float32Array),this.value=null,this.settings={...r,defaultType:u,defaultValue:s,logicalType:n,type:l,normalized:l.includes("norm"),size:this.size,bytesPerElement:u.BYTES_PER_ELEMENT},this.state={...i,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*qp(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),wh.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,r=null){let i={};if(this.state.constant){let n=this.value;if(r){let o=oO(this.getAccessor(),r),s=o.offset/n.BYTES_PER_ELEMENT,l=o.size||this.size;i[e]=n.subarray(s,s+l)}else i[e]=n}else i[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?i[`${e}64Low`]=i[e]:i[`${e}64Low`]=new Float32Array(this.size)),i}getBufferLayout(e=this.id,r=null){let i=this.getAccessor(),n=[],o={name:this.id,byteStride:qp(i),attributes:n};if(this.doublePrecision){let s=Ghe(i,r||{});n.push(g1(e,{...i,...s.high}),g1(`${e}64Low`,{...i,...s.low}))}else if(r){let s=oO(i,r);n.push(g1(e,{...i,...s}))}else n.push(g1(e,i));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:i,size:n}=this,o=i*n;if(r&&o&&r.length>=o){let s=new Array(n).fill(1/0),l=new Array(n).fill(-1/0);for(let u=0;u<o;)for(let f=0;f<n;f++){let v=r[u++];v<s[f]&&(s[f]=v),v>l[f]&&(l[f]=v)}e=[s,l]}}return this.state.bounds=e,e}setData(e){let{state:r}=this,i;ArrayBuffer.isView(e)?i={value:e}:e instanceof Xi?i={buffer:e}:i=e;let n={...this.settings,...i};if(ArrayBuffer.isView(i.value)){if(!i.type)if(this.doublePrecision&&i.value instanceof Float64Array)n.type="float32";else{let s=c9(i.value);n.type=n.normalized?s.replace("int","norm"):s}n.bytesPerElement=i.value.BYTES_PER_ELEMENT,n.stride=qp(n)}if(r.bounds=null,i.constant){let o=i.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(i.buffer){let o=i.buffer;r.externalBuffer=o,r.constant=!1,this.value=i.value||null}else if(i.value){this._checkExternalBuffer(i);let o=i.value;r.externalBuffer=null,r.constant=!1,this.value=o;let{buffer:s}=this,l=qp(n),u=(n.vertexOffset||0)*l;if(this.doublePrecision&&o instanceof Float64Array&&(o=fE(o,n)),this.settings.isIndexed){let v=this.settings.defaultType;o.constructor!==v&&(o=new v(o))}let f=o.byteLength+u+l*2;(!s||s.byteLength<f)&&(s=this._createBuffer(f)),s.write(o,u)}return this.setAccessor(n),!0}updateSubBuffer(e={}){this.state.bounds=null;let r=this.value,{startOffset:i=0,endOffset:n}=e;this.buffer.write(this.doublePrecision&&r instanceof Float64Array?fE(r,{size:this.size,startIndex:i,endIndex:n}):r.subarray(i,n),i*r.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,r=!1){let{state:i}=this,n=i.allocatedValue,o=wh.allocate(n,e+1,{size:this.size,type:this.settings.defaultType,copy:r});this.value=o;let{byteOffset:s}=this,{buffer:l}=this;return(!l||l.byteLength<o.byteLength+s)&&(l=this._createBuffer(o.byteLength+s),r&&n&&l.write(n instanceof Float64Array?fE(n,this):n,s)),i.allocatedValue=o,i.constant=!1,i.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 i=this.settings.defaultType,n=!1;if(this.doublePrecision&&(n=r.BYTES_PER_ELEMENT<4),n)throw new Error(`Attribute ${this.id} does not support ${r.constructor.name}`);!(r instanceof i)&&this.settings.normalized&&!("normalized"in e)&&ur.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,i){let{defaultValue:n,size:o}=this.settings;if(Number.isFinite(e))return r[i]=e,r;if(!e){let s=o;for(;--s>=0;)r[i+s]=n[s];return r}switch(o){case 4:r[i+3]=Number.isFinite(e[3])?e[3]:n[3];case 3:r[i+2]=Number.isFinite(e[2])?e[2]:n[2];case 2:r[i+1]=Number.isFinite(e[1])?e[1]:n[1];case 1:r[i+0]=Number.isFinite(e[0])?e[0]:n[0];break;default:let s=o;for(;--s>=0;)r[i+s]=Number.isFinite(e[s])?e[s]:n[s]}return r}_areValuesEqual(e,r){if(!e||!r)return!1;let{size:i}=this;for(let n=0;n<i;n++)if(e[n]!==r[n])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();let{isIndexed:r,type:i}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:r?Xi.INDEX:Xi.VERTEX,indexType:r?i:void 0,byteLength:e}),this._buffer}};var h9=[],f9=[];function Js(t,e=0,r=1/0){let i=h9,n={index:-1,data:t,target:[]};return t?typeof t[Symbol.iterator]=="function"?i=t:t.length>0&&(f9.length=t.length,i=f9):i=h9,(e>0||Number.isFinite(r))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(e,r),n.index=e-1),{iterable:i,objectInfo:n}}function SE(t){return t&&t[Symbol.asyncIterator]}function CE(t,e){let{size:r,stride:i,offset:n,startIndices:o,nested:s}=e,l=t.BYTES_PER_ELEMENT,u=i?i/l:r,f=n?n/l:0,v=Math.floor((t.length-f)/u);return(T,{index:E,target:M})=>{if(!o){let G=E*u+f;for(let J=0;J<r;J++)M[J]=t[G+J];return M}let O=o[E],F=o[E+1]||v,U;if(s){U=new Array(F-O);for(let G=O;G<F;G++){let J=G*u+f;M=new Array(r);for(let K=0;K<r;K++)M[K]=t[J+K];U[G-O]=M}}else if(u===r)U=t.subarray(O*r+f,F*r+f);else{U=new t.constructor((F-O)*r);let G=0;for(let J=O;J<F;J++){let K=J*u+f;for(let ne=0;ne<r;ne++)U[G++]=t[K+ne]}}return U}}var d9=[],y1=[[0,1/0]];function p9(t,e){if(t===y1||(e[0]<0&&(e[0]=0),e[0]>=e[1]))return t;let r=[],i=t.length,n=0;for(let o=0;o<i;o++){let s=t[o];s[1]<e[0]?(r.push(s),n=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(n,0,e),r}var qhe={interpolation:{duration:0,easing:t=>t},spring:{stiffness:.05,damping:.5}};function ME(t,e){if(!t)return null;Number.isFinite(t)&&(t={type:"interpolation",duration:t});let r=t.type||"interpolation";return{...qhe[r],...e,...t,type:r}}var Od=class extends _1{constructor(e,r){super(e,r,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:y1}),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){this.state.layoutChanged||=!u9(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,i=this.settings.transition,n=Array.isArray(r)?e[r.find(o=>e[o])]:e[r];return ME(n,i)}setNeedsUpdate(e=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),r){let{startRow:i=0,endRow:n=1/0}=r;this.state.updateRanges=p9(this.state.updateRanges,[i,n])}else this.state.updateRanges=y1}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=d9}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:r,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(e,r.updateRanges!==y1),!0):!1}updateBuffer({numInstances:e,data:r,props:i,context:n}){if(!this.needsUpdate())return!1;let{state:{updateRanges:o},settings:{update:s,noAlloc:l}}=this,u=!0;if(s){for(let[f,v]of o)s.call(n,this,{data:r,startRow:f,endRow:v,props:i,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[f,v]of o){let T=Number.isFinite(f)?this.getVertexOffset(f):0,E=Number.isFinite(v)?this.getVertexOffset(v):l||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:T,endOffset:E})}this._checkAttributeArray()}else u=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),u}setConstantValue(e){return e===void 0||typeof e=="function"?!1:(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:i,settings:n}=this;if(!e)return i.binaryValue=null,i.binaryAccessor=null,!1;if(n.noAlloc)return!1;if(i.binaryValue===e)return this.clearNeedsUpdate(),!0;if(i.binaryValue=e,this.setNeedsRedraw(),n.transform||r!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let s=e;os(ArrayBuffer.isView(s.value),`invalid ${n.accessor}`);let l=Boolean(s.size)&&s.size!==this.size;return i.binaryAccessor=CE(s.value,{size:s.size||this.size,stride:s.stride,offset:s.offset,startIndices:r,nested:l}),!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 i in e)Object.assign(r,super.getValue(i,e[i]));return r}getBufferLayout(){this.state.layoutChanged=!1;let e=this.settings.shaderAttributes,r=super.getBufferLayout();if(!e)return r;for(let i in e){let n=super.getBufferLayout(i,e[i]);r.attributes.push(...n.attributes)}return r}_autoUpdater(e,{data:r,startRow:i,endRow:n,props:o,numInstances:s}){if(e.constant)return;let{settings:l,state:u,value:f,size:v,startIndices:T}=e,{accessor:E,transform:M}=l,O=u.binaryAccessor||(typeof E=="function"?E:o[E]);os(typeof O=="function",`accessor "${E}" is not a function`);let F=e.getVertexOffset(i),{iterable:U,objectInfo:G}=Js(r,i,n);for(let J of U){G.index++;let K=O(J,G);if(M&&(K=M.call(this,K)),T){let ne=(G.index<T.length-1?T[G.index+1]:s)-T[G.index];if(K&&Array.isArray(K[0])){let ge=F;for(let H of K)e._normalizeValue(H,f,ge),ge+=v}else K&&K.length>v?f.set(K,F):(e._normalizeValue(K,G.target,0),vE({target:f,source:G.target,start:F,count:ne}));F+=ne*v}else e._normalizeValue(K,f,F),F+=v}}_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 i=!0;switch(r){case 4:i=i&&Number.isFinite(e[3]);case 3:i=i&&Number.isFinite(e[2]);case 2:i=i&&Number.isFinite(e[1]);case 1:i=i&&Number.isFinite(e[0]);break;default:i=!1}if(!i)throw new Error(`Illegal attribute generated for ${this.id}`)}}};function sO(t){let{source:e,target:r,start:i=0,size:n,getData:o}=t,s=t.end||r.length,l=e.length,u=s-i;if(l>u){r.set(e.subarray(0,u),i);return}if(r.set(e,i),!o)return;let f=l;for(;f<u;){let v=o(f,e);for(let T=0;T<n;T++)r[i+f]=v[T]||0,f++}}function A9({source:t,target:e,size:r,getData:i,sourceStartIndices:n,targetStartIndices:o}){if(!n||!o)return sO({source:t,target:e,size:r,getData:i}),e;let s=0,l=0,u=i&&((v,T)=>i(v+l,T)),f=Math.min(n.length,o.length);for(let v=1;v<f;v++){let T=n[v]*r,E=o[v]*r;sO({source:t.subarray(s,T),target:e,start:l,end:E,size:r,getData:u}),s=T,l=E}return l<e.length&&sO({source:[],target:e,start:l,size:r,getData:u}),e}function m9(t){let{device:e,settings:r,value:i}=t,n=new Od(e,r);return n.setData({value:i instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:r.normalized}),n}function IE(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 PE(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 RE(t){t.push(t.shift())}function g9(t,e){let{doublePrecision:r,settings:i,value:n,size:o}=t,s=r&&n instanceof Float64Array?2:1,l=0,{shaderAttributes:u}=t.settings;if(u)for(let f of Object.values(u))l=Math.max(l,f.vertexOffset??0);return(i.noAlloc?n.length:(e+l)*o)*s}function BE({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 OE({device:t,buffer:e,attribute:r,fromLength:i,toLength:n,fromStartIndices:o,getData:s=l=>l}){let l=r.doublePrecision&&r.value instanceof Float64Array?2:1,u=r.size*l,f=r.byteOffset,v=r.settings.bytesPerElement<4?f/r.settings.bytesPerElement*4:f,T=r.startIndices,E=o&&T,M=r.isConstant;if(!E&&e&&i>=n)return e;let O=r.value instanceof Float64Array?Float32Array:r.value.constructor,F=M?r.value:new O(r.getBuffer().readSyncWebGL(f,n*O.BYTES_PER_ELEMENT).buffer);if(r.settings.normalized&&!M){let K=s;s=(ne,ge)=>r.normalizeConstant(K(ne,ge))}let U=M?(K,ne)=>s(F,ne):(K,ne)=>s(F.subarray(K+f,K+f+u),ne),G=e?new Float32Array(e.readSyncWebGL(v,i*4).buffer):new Float32Array(0),J=new Float32Array(n);return A9({source:G,target:J,sourceStartIndices:o,targetStartIndices:T,size:u,getData:U}),(!e||e.byteLength<J.byteLength+v)&&(e?.destroy(),e=t.createBuffer({byteLength:J.byteLength+v,usage:35050})),e.write(J,v),e}var g_=class{constructor({device:e,attribute:r,timeline:i}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new Sh(i),this.attribute=r,this.attributeInTransition=m9(r),this.currentStartIndices=r.startIndices}get inProgress(){return this.transition.inProgress}start(e,r,i=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=g9(this.attribute,r),this.transition.start({...e,duration:i})}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 v1=class extends g_{constructor({device:e,attribute:r,timeline:i}){super({device:e,attribute:r,timeline:i}),this.type="interpolation",this.transform=Yhe(e,r)}start(e,r){let i=this.currentLength,n=this.currentStartIndices;if(super.start(e,r,e.duration),e.duration<=0){this.transition.cancel();return}let{buffers:o,attribute:s}=this;RE(o),o[0]=OE({device:this.device,buffer:o[0],attribute:s,fromLength:i,toLength:this.currentLength,fromStartIndices:n,getData:e.enter}),o[1]=BE({device:this.device,source:o[0],target:o[1]}),this.setBuffer(o[1]);let{transform:l}=this,u=l.model;u.setVertexCount(Math.floor(this.currentLength/s.size)),s.isConstant?(u.setAttributes({aFrom:o[0]}),u.setConstantAttributes({aTo:s.value})):u.setAttributes({aFrom:o[0],aTo:s.getBuffer()}),l.transformFeedback.setBuffers({vCurrent:o[1]})}onUpdate(){let{duration:e,easing:r}=this.settings,{time:i}=this.transition,n=i/e;r&&(n=r(n));let{model:o}=this.transform;o.setUniforms({time:n}),o.device.gl.bindBuffer(34962,null),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}},Xhe=`#version 300 es
|
|
1718
|
+
`;function ihe(t,e){if(e.filter){let r=typeof e.filter=="string"?e.filter:`${t.name}_filterColor`;return the(r)}if(e.sampler){let r=typeof e.sampler=="string"?e.sampler:`${t.name}_sampleColor`;return rhe(r)}return""}var nhe={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant-alpha",blendAlphaDstFactor:"zero"},Ed=class extends bh{constructor(){super(...arguments),this._colorEncoderState=null}render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):super.render(e)}_drawPickingBuffer({layers:e,layerFilter:r,views:i,viewports:n,onViewportActive:o,pickingFBO:s,deviceRect:{x:l,y:u,width:f,height:v},cullRect:T,effects:E,pass:M="picking",pickZ:O,moduleParameters:F}){this.pickZ=O;let U=this._resetColorEncoder(O),G=[l,u,f,v],J=super.render({target:s,layers:e,layerFilter:r,views:i,viewports:n,onViewportActive:o,cullRect:T,effects:E?.filter(ne=>ne.useInPicking),pass:M,isPicking:!0,moduleParameters:F,clearColor:[0,0,0,0],colorMask:15,scissorRect:G});return this._colorEncoderState=null,{decodePickingColor:U&&she.bind(null,U),stats:J}}shouldDrawLayer(e){let{pickable:r,operation:i}=e.props;return r&&i.includes("draw")||i.includes("terrain")||i.includes("mask")}getModuleParameters(){return{picking:{isActive:1,isAttribute:this.pickZ},lightSources:{}}}getLayerParameters(e,r,i){let n={depthMask:!0,depthTest:!0,depthRange:[0,1],...e.props.parameters},{pickable:o,operation:s}=e.props;return!this._colorEncoderState||s.includes("terrain")?n.blend=!1:o&&s.includes("draw")&&(Object.assign(n,nhe),n.blend=!0,n.blendColor=ohe(this._colorEncoderState,e,i)),n}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}};function ohe(t,e,r){let{byLayer:i,byAlpha:n}=t,o,s=i.get(e);return s?(s.viewports.push(r),o=s.a):(o=i.size+1,o<=255?(s={a:o,layer:e,viewports:[r]},i.set(e,s),n[o]=s):(ur.warn("Too many pickable layers, only picking the first 255")(),o=0)),[0,0,0,o/255]}function she(t,e){let r=t.byAlpha[e[3]];return r&&{pickedLayer:r.layer,pickedViewports:r.viewports,pickedObjectIndex:r.layer.decodePickingColor(e)}}var Hp={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"},d_=Symbol.for("component"),Gu=Symbol.for("propTypes"),yE=Symbol.for("deprecatedProps"),Sd=Symbol.for("asyncPropDefaults"),Rf=Symbol.for("asyncPropOriginal"),Eh=Symbol.for("asyncPropResolved");function Bf(t,e=()=>!0){return Array.isArray(t)?OV(t,e,[]):e(t)?[t]:[]}function OV(t,e,r){let i=-1;for(;++i<t.length;){let n=t[i];Array.isArray(n)?OV(n,e,r):e(n)&&r.push(n)}return r}function vE({target:t,source:e,start:r=0,count:i=1}){let n=e.length,o=i*n,s=0;for(let l=r;s<n;s++)t[l++]=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}var r1=class{constructor(e,r,i){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=i,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 i=++this._loadCount,n=e;typeof e=="string"&&(n=_a(e)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(o=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=o)}).catch(o=>{this._loadCount===i&&(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 i1=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:i=!1,persistent:n=!0}){let o=this._resources[e];o?o.setData(r,i):(o=new r1(e,r,this._context),this._resources[e]=o),o.persistent=n}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 i in r){let n=r[i],o=this._resources[n.resourceId];o&&o.unsubscribe(n)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:r,consumerId:i,requestId:n="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 l=o[e];if(this._track(i,n,l,r),l)return l.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let e in this._resources)this._resources[e].delete()}_track(e,r,i,n){let o=this._consumers,s=o[e]=o[e]||{},l=s[r],u=l&&l.resourceId&&this._resources[l.resourceId];u&&(u.unsubscribe(l),this.prune()),i&&(l?(l.onChange=n,l.resourceId=i.id):l={onChange:n,resourceId:i.id},s[r]=l,i.subscribe(l))}_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 ahe="layerManager.setLayers",lhe="layerManager.activateViewport",ym=class{constructor(e,r){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=l=>{Ks(lhe,this,l),l&&(this.context.viewport=l)};let{deck:i,stats:n,viewport:o,timeline:s}=r||{};this.layers=[],this.resourceManager=new i1({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:i,shaderAssembler:a_(),defaultShaderModules:[],renderPass:void 0,stats:n||new Bl({id:"deck.gl"}),viewport:o||new xl({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:s||new _m,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 i of this.layers){let n=i.getNeedsRedraw(e);r=r||n}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(i=>r.id.indexOf(i)===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){Ks(ahe,this,r,e),this._lastRenderedLayers=e;let i=Bf(e,Boolean);for(let n of i)n.context=this.context;this._updateLayers(this.layers,i)}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(i=>i.name===e.name)||(r.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){let{defaultShaderModules:r}=this.context,i=r.findIndex(n=>n.name===e.name);i>=0&&(r.splice(i,1),this._defaultShaderModulesChanged=!0)}_handleError(e,r,i){i.raiseError(r,`${e} of ${i}`)}_updateLayers(e,r){let i={};for(let s of e)i[s.id]?ur.warn(`Multiple old layers with same id ${s.id}`)():i[s.id]=s;if(this._defaultShaderModulesChanged){for(let s of e)s.setNeedsUpdate(),s.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let n=[];this._updateSublayersRecursively(r,i,n),this._finalizeOldLayers(i);let o=!1;for(let s of n)if(s.hasUniformTransition()){o=`Uniform transition in ${s}`;break}this._needsUpdate=o,this.layers=n}_updateSublayersRecursively(e,r,i){for(let n of e){n.context=this.context;let o=r[n.id];o===null&&ur.warn(`Multiple new layers with same id ${n.id}`)(),r[n.id]=null;let s=null;try{this._debug&&o!==n&&n.validateProps(),o?(this._transferLayerState(o,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),s=n.isComposite?n.getSubLayers():null}catch(l){this._handleError("matching",l,n)}s&&this._updateSublayersRecursively(s,r,i)}}_finalizeOldLayers(e){for(let r in e){let i=e[r];i&&this._finalizeLayer(i)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=Hp.INITIALIZED}catch(r){this._handleError("initialization",r,e)}}_transferLayerState(e,r){r._transferState(e),r.lifecycle=Hp.MATCHED,r!==e&&(e.lifecycle=Hp.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(r){this._handleError("update",r,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=Hp.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=Hp.FINALIZED}catch(r){this._handleError("finalization",r,e)}}};function Ls(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 i=0;i<t.length;i++)if(!Ls(t[i],e[i],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let o of i)if(!e.hasOwnProperty(o)||!Ls(t[o],e[o],r-1))return!1;return!0}return!1}var n1=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,i=r&&this.viewState[r.getViewStateId()]||this.viewState;return r?r.filterViewState(i):i}getViewport(e){return this._viewportMap[e]}unproject(e,r){let i=this.getViewports(),n={x:e[0],y:e[1]};for(let o=i.length-1;o>=0;--o){let s=i[o];if(s.containsPixel(n)){let l=e.slice();return l[0]-=s.x,l[1]-=s.y,s.unproject(l,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=Bf(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?(!Ls(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):ur.warn("missing `viewState` or `initialViewState`")()}_createController(e,r){let i=r.type;return new i({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,i,n){let o=e.controller;if(o&&i){let s={...r,...o,id:e.id,x:i.x,y:i.y,width:i.width,height:i.height};return(!n||n.constructor!==o.type)&&(n=this._createController(e,s)),n&&n.setProps(s),n}return null}_rebuildViewports(){let{views:e}=this,r=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let n=e.length;n--;){let o=e[n],s=this.getViewState(o),l=o.makeViewport({viewState:s,width:this.width,height:this.height}),u=r[o.id],f=Boolean(o.controller);f&&!u&&(i=!0),(i||!f)&&u&&(u.finalize(),u=null),this.controllers[o.id]=this._updateController(o,s,l,u),l&&this._viewports.unshift(l)}for(let n in r){let o=r[n];o&&!this.controllers[n]&&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((i,n)=>!e[n].equals(r[n]))}};var che=/([0-9]+\.?[0-9]*)(%|px)/;function Cd(t){switch(typeof t){case"number":return{position:t,relative:!1};case"string":let e=che.exec(t);if(e&&e.length>=3){let r=e[2]==="%",i=parseFloat(e[1]);return{position:r?i/100:i,relative:r}}default:throw new Error(`Could not parse position string ${t}`)}}function Md(t,e){return t.relative?Math.round(t.position*e):t.position}var ec=class{constructor(e){let{id:r,x:i=0,y:n=0,width:o="100%",height:s="100%",padding:l=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=Cd(i),this._y=Cd(n),this._width=Cd(o),this._height=Cd(s),this._padding=l&&{left:Cd(l.left||0),right:Cd(l.right||0),top:Cd(l.top||0),bottom:Cd(l.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.ViewportType===e.ViewportType&&Ls(this.props,e.props,2)}makeViewport({width:e,height:r,viewState:i}){i=this.filterViewState(i);let n=this.getDimensions({width:e,height:r});return!n.height||!n.width?null:new this.ViewportType({...i,...this.props,...n})}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 i in this.props.viewState)i!=="id"&&(r[i]=this.props.viewState[i]);return r}return e}getDimensions({width:e,height:r}){let i={x:Md(this._x,e),y:Md(this._y,r),width:Md(this._width,e),height:Md(this._height,r)};return this._padding&&(i.padding={left:Md(this._padding.left,e),top:Md(this._padding.top,r),right:Md(this._padding.right,e),bottom:Md(this._padding.bottom,r)}),i}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 Sh=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 DV=()=>{},o1={BREAK:1,SNAP_TO_END:2,IGNORE:3},uhe=t=>t,hhe=o1.BREAK,s1=class{constructor(e){this._onTransitionUpdate=r=>{let{time:i,settings:{interpolator:n,startProps:o,endProps:s,duration:l,easing:u}}=r,f=u(i/l),v=n.interpolateProps(o,s,f);this.propsInTransition=this.getControllerState({...this.props,...v}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new Sh(e.timeline),this.onViewStateChange=e.onViewStateChange||DV,this.onStateChange=e.onStateChange||DV}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,i=this.props;if(this.props=e,!i||this._shouldIgnoreViewportChange(i,e))return!1;if(this._isTransitionEnabled(e)){let n=i;if(this.transition.inProgress){let{interruption:o,endProps:s}=this.transition.settings;n={...i,...o===o1.SNAP_TO_END?s:this.propsInTransition||i}}this._triggerTransition(n,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:i}=e;return(r>0||r==="auto")&&Boolean(i)}_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===o1.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let i=this.getControllerState(e),n=this.getControllerState(r).shortestPathFrom(i),o=r.transitionInterpolator,s=o.getDuration?o.getDuration(e,r):r.transitionDuration;if(s===0)return;let l=o.initializeProps(e,n);this.propsInTransition={};let u={duration:s,easing:r.transitionEasing||uhe,interpolator:o,interruption:r.transitionInterruption||hhe,startProps:l.start,endProps:l.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(u),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 os(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Id=class{constructor(e){let{compare:r,extract:i,required:n}=e;this._propsToCompare=r,this._propsToExtract=i||r,this._requiredProps=n}arePropsEqual(e,r){for(let i of this._propsToCompare)if(!(i in e)||!(i in r)||!Cs(e[i],r[i]))return!1;return!0}initializeProps(e,r){let i={},n={};for(let o of this._propsToExtract)(o in e||o in r)&&(i[o]=e[o],n[o]=r[o]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let i=e[r];os(Number.isFinite(i)||Array.isArray(i),`${r} is required for transition`)})}};var fhe=["longitude","latitude","zoom","bearing","pitch"],dhe=["longitude","latitude","zoom"],bl=class extends Id{constructor(e={}){let r=Array.isArray(e)?e:e.transitionProps,i=Array.isArray(e)?{}:e;i.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:fhe,required:dhe},super(i.transitionProps),this.opts=i}initializeProps(e,r){let i=super.initializeProps(e,r),{makeViewport:n,around:o}=this.opts;if(n&&o){let s=n(e),l=n(r),u=s.unproject(o);i.start.around=o,Object.assign(i.end,{around:l.project(u),aroundPosition:u,width:r.width,height:r.height})}return i}interpolateProps(e,r,i){let n={};for(let o of this._propsToExtract)n[o]=Oa(e[o]||0,r[o]||0,i);if(r.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...r,...n});Object.assign(n,o.panByPosition(r.aroundPosition,Oa(e.around,r.around,i)))}return n}};var Gp={transitionDuration:0},phe=300,xE=t=>1-(1-t)*(1-t),p_={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},vm={},tc=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 s1({...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"tripanstart":return r?!1:this._onTriplePanStart(e);case"tripanmove":return this._onTriplePan(e);case"tripanend":return this._onTriplePanEnd(e);case"doubletap":return this._onDoubleTap(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:i}=this.props,{offsetCenter:n}=e;return[n.x-r,n.y-i]}isPointInBounds(e,r){let{width:i,height:n}=this.props;if(r&&r.handled)return!1;let o=e[0]>=0&&e[0]<=i&&e[1]>=0&&e[1]<=n;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?phe:0;let{scrollZoom:i=!0,dragPan:n=!0,dragRotate:o=!0,doubleClickZoom:s=!0,touchZoom:l=!0,touchRotate:u=!1,keyboard:f=!0}=e,v=Boolean(this.onViewStateChange);this.toggleEvents(p_.WHEEL,v&&i),this.toggleEvents(p_.PAN,v),this.toggleEvents(p_.PINCH,v&&(l||u)),this.toggleEvents(p_.TRIPLE_PAN,v&&u),this.toggleEvents(p_.DOUBLE_TAP,v&&s),this.toggleEvents(p_.KEYBOARD,v&&f),this.scrollZoom=i,this.dragPan=n,this.dragRotate=o,this.doubleClickZoom=s,this.touchZoom=l,this.touchRotate=u,this.keyboard=f}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(i=>{this._events[i]!==r&&(this._events[i]=r,r?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(e,r=null,i={}){let n={...e.getViewportProps(),...r},o=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(i),o){let s=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,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 i=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(i=!i);let n=this.controllerState[i?"panStart":"rotateStart"]({pos:r});return this._panMove=i,this.updateViewport(n,Gp,{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),i=this.controllerState.pan({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*r/2,i[1]+e.velocityY*r/2],o=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isPanning:!0})}else{let i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),i=this.controllerState.rotate({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*r/2,i[1]+e.velocityY*r/2],o=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isRotating:!0})}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,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:i=.01,smooth:n=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:o}=e,s=2/(1+Math.exp(-Math.abs(o*i)));o<0&&s!==0&&(s=1/s);let l=this.controllerState.zoom({pos:r,scale:s});return this.updateViewport(l,{...this._getTransitionProps({around:r}),transitionDuration:n?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.controllerState.rotateStart({pos:r});return this.updateViewport(i,Gp,{isDragging:!0}),!0}_onTriplePan(e){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(e);r[0]-=e.deltaX;let i=this.controllerState.rotate({pos:r});return this.updateViewport(i,Gp,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&e.velocityY){let i=this.getCenter(e),n=[i[0],i[1]+=e.velocityY*r/2],o=this.controllerState.rotate({pos:n});this.updateViewport(o,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return vm._startPinchRotation=e.rotation,vm._lastPinchEvent=e,this.updateViewport(i,Gp,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:i}=e,n=this.getCenter(e);r=r.zoom({pos:n,scale:i})}if(this.touchRotate){let{rotation:i}=e;r=r.rotate({deltaAngleX:vm._startPinchRotation-i})}return this.updateViewport(r,Gp,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),vm._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:i}=vm;if(this.touchZoom&&r&&i&&e.scale!==i.scale){let n=this.getCenter(e),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),l=(s-Math.log2(i.scale))/(e.deltaTime-i.deltaTime),u=Math.pow(2,s+l*r/2);o=o.zoom({pos:n,scale:u}).zoomEnd(),this.updateViewport(o,{...this._getTransitionProps({around:n}),transitionDuration:r,transitionEasing:xE},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let n=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return vm._startPinchRotation=null,vm._lastPinchEvent=null,!0}_onDoubleTap(e){if(!this.doubleClickZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let i=this.isFunctionKeyPressed(e),n=this.controllerState.zoom({pos:r,scale:i?.5:2});return this.updateViewport(n,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:i,moveSpeed:n,rotateSpeedX:o,rotateSpeedY:s}=this.keyboard===!0?{}:this.keyboard,{controllerState:l}=this,u,f={};switch(e.srcEvent.code){case"Minus":u=r?l.zoomOut(i).zoomOut(i):l.zoomOut(i),f.isZooming=!0;break;case"Equal":u=r?l.zoomIn(i).zoomIn(i):l.zoomIn(i),f.isZooming=!0;break;case"ArrowLeft":r?(u=l.rotateLeft(o),f.isRotating=!0):(u=l.moveLeft(n),f.isPanning=!0);break;case"ArrowRight":r?(u=l.rotateRight(o),f.isRotating=!0):(u=l.moveRight(n),f.isPanning=!0);break;case"ArrowUp":r?(u=l.rotateUp(s),f.isRotating=!0):(u=l.moveUp(n),f.isPanning=!0);break;case"ArrowDown":r?(u=l.rotateDown(s),f.isRotating=!0):(u=l.moveDown(n),f.isPanning=!0);break;default:return!1}return this.updateViewport(u,this._getTransitionProps(),f),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?Gp:e?{...r,transitionInterpolator:new bl({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Pd=class{constructor(e,r){this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var LV=5,Ahe=1.2,a1=class extends Pd{constructor(e){let{width:r,height:i,latitude:n,longitude:o,zoom:s,bearing:l=0,pitch:u=0,altitude:f=1.5,position:v=[0,0,0],maxZoom:T=20,minZoom:E=0,maxPitch:M=60,minPitch:O=0,startPanLngLat:F,startZoomLngLat:U,startRotatePos:G,startBearing:J,startPitch:K,startZoom:ne,normalize:ge=!0}=e;os(Number.isFinite(o)),os(Number.isFinite(n)),os(Number.isFinite(s)),super({width:r,height:i,latitude:n,longitude:o,zoom:s,bearing:l,pitch:u,altitude:f,maxZoom:T,minZoom:E,maxPitch:M,minPitch:O,normalize:ge,position:v},{startPanLngLat:F,startZoomLngLat:U,startRotatePos:G,startBearing:J,startPitch:K,startZoom:ne}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:r}){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,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:i=0}){let{startRotatePos:n,startBearing:o,startPitch:s}=this.getState();if(!n||o===void 0||s===void 0)return this;let l;return e?l=this._getNewRotation(e,n,s,o):l={bearing:o+r,pitch:s+i},this._getUpdatedState(l)}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:i}){let{startZoom:n,startZoomLngLat:o}=this.getState();if(o||(n=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let{maxZoom:s,minZoom:l}=this.getViewportProps(),u=n+Math.log2(i);u=Zn(u,l,s);let f=this.makeViewport({...this.getViewportProps(),zoom:u});return this._getUpdatedState({zoom:u,...f.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(),i={...this.getViewportProps()},{bearing:n,longitude:o}=i;return Math.abs(n-r.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(o-r.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n}=e;e.zoom=Zn(n,i,r);let{maxPitch:o,minPitch:s,pitch:l}=e;e.pitch=Zn(l,s,o);let{normalize:u=!0}=e;return u&&Object.assign(e,HB(e)),e}_zoomFromCenter(e){let{width:r,height:i}=this.getViewportProps();return this.zoom({pos:[r/2,i/2],scale:e})}_panFromCenter(e){let{width:r,height:i}=this.getViewportProps();return this.pan({startPos:[r/2,i/2],pos:[r/2+e[0],i/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,i,n){let o=e[0]-r[0],s=e[1]-r[1],l=e[1],u=r[1],{width:f,height:v}=this.getViewportProps(),T=o/f,E=0;s>0?Math.abs(v-u)>LV&&(E=s/(u-v)*Ahe):s<0&&u>LV&&(E=1-l/u),E=Zn(E,-1,1);let{minPitch:M,maxPitch:O}=this.getViewportProps(),F=n+180*T,U=i;return E>0?U=i+E*(O-i):E<0&&(U=i-E*(M-i)),{pitch:U,bearing:F}}},xm=class extends tc{constructor(){super(...arguments),this.ControllerState=a1,this.transition={transitionDuration:300,transitionInterpolator:new bl({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 $B=class extends ec{constructor(e={}){super(e)}get ViewportType(){return Sc}get ControllerType(){return xm}},Rd=$B;(()=>{$B.displayName="MapView"})();var mhe=new Vp;function ghe(t,e){let r=t.order??1/0,i=e.order??1/0;return r-i}var l1=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(i=>i.id===e.id)){let i=r.findIndex(n=>ghe(n,e)>0);i<0?r.push(e):r.splice(i,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&(Ls(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 n of this.effects)r[n.id]=n;let i=[];for(let n of e){let o=r[n.id],s=n;o&&o!==n?o.setProps?(o.setProps(n.props),s=o):o.cleanup(this._context):o||n.setup(this._context),i.push(s),delete r[n.id]}for(let n in r)r[n].cleanup(this._context);this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),e.some(n=>n instanceof Vp)||this._resolvedEffects.push(mhe),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 c1=class extends bh{shouldDrawLayer(e){let{operation:r}=e.props;return r.includes("draw")||r.includes("terrain")}};var _he="deckRenderer.renderLayers",bm=class{constructor(e){this.device=e,this.gl=e.gl,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new c1(e),this.pickLayersPass=new Ed(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,i={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};i.effects&&this._preRender(i.effects,i);let n=this.lastPostProcessEffect?this.renderBuffers[0]:i.target;this.lastPostProcessEffect&&(i.clearColor=[0,0,0,0],i.clearCanvas=!0);let o=r.render({...i,target:n});i.effects&&this._postRender(i.effects,i),this.renderCount++,Ks(_he,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 i of e)r.preRenderStats[i.id]=i.preRender(r),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){let{renderBuffers:e}=this,r=this.device.canvasContext.getDrawingBufferSize();e.length===0&&[0,1].map(i=>{let n=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"}});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${i}`,colorAttachments:[n]}))});for(let i of e)i.resize(r)}_postRender(e,r){let{renderBuffers:i}=this,n={...r,inputBuffer:i[0],swapBuffer:i[1]};for(let o of e)if(o.postRender){n.target=o.id===this.lastPostProcessEffect?r.target:void 0;let s=o.postRender(n);n.inputBuffer=s,n.swapBuffer=s===i[0]?i[1]:i[0]}}};var yhe={pickedColor:null,pickedObjectIndex:-1};function FV({pickedColors:t,decodePickingColor:e,deviceX:r,deviceY:i,deviceRadius:n,deviceRect:o}){let{x:s,y:l,width:u,height:f}=o,v=n*n,T=-1,E=0;for(let M=0;M<f;M++){let O=M+l-i,F=O*O;if(F>v)E+=4*u;else for(let U=0;U<u;U++){if(t[E+3]-1>=0){let J=U+s-r,K=J*J+F;K<=v&&(v=K,T=E)}E+=4}}if(T>=0){let M=t.slice(T,T+4),O=e(M);if(O){let F=Math.floor(T/4/u),U=T/4-F*u;return{...O,pickedColor:M,pickedX:s+U,pickedY:l+F}}ur.error("Picked non-existent layer. Is picking buffer corrupt?")()}return yhe}function NV({pickedColors:t,decodePickingColor:e}){let r=new Map;if(t){for(let i=0;i<t.length;i+=4)if(t[i+3]-1>=0){let o=t.slice(i,i+4),s=o.join(",");if(!r.has(s)){let l=e(o);l?r.set(s,{...l,color:o}):ur.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(r.values())}function eO({pickInfo:t,viewports:e,pixelRatio:r,x:i,y:n,z:o}){let s=e[0];e.length>1&&(s=vhe(t?.pickedViewports||e,{x:i,y:n}));let l;if(s){let u=[i-s.x,n-s.y];o!==void 0&&(u[2]=o),l=s.unproject(u)}return{color:null,layer:null,viewport:s,index:-1,picked:!1,x:i,y:n,pixel:[i,n],coordinate:l,devicePixel:t&&"pickedX"in t?[t.pickedX,t.pickedY]:void 0,pixelRatio:r}}function kV(t){let{pickInfo:e,lastPickedInfo:r,mode:i,layers:n}=t,{pickedColor:o,pickedLayer:s,pickedObjectIndex:l}=e,u=s?[s]:[];if(i==="hover"){let T=r.index,E=r.layerId,M=s?s.props.id:null;if(M!==E||l!==T){if(M!==E){let O=n.find(F=>F.props.id===E);O&&u.unshift(O)}r.layerId=M,r.index=l,r.info=null}}let f=eO(t),v=new Map;return v.set(null,f),u.forEach(T=>{let E={...f};T===s&&(E.color=o,E.index=l,E.picked=!0),E=tO({layer:T,info:E,mode:i});let M=E.layer;T===s&&i==="hover"&&(r.info=E),v.set(M.id,E),i==="hover"&&M.updateAutoHighlight(E)}),v}function tO({layer:t,info:e,mode:r}){for(;t&&e;){let i=e.layer||null;e.sourceLayer=i,e.layer=t,e=t.getPickingInfo({info:e,mode:r,sourceLayer:i}),t=t.parent}return e}function vhe(t,e){for(let r=t.length-1;r>=0;r--){let i=t[r];if(i.containsPixel(e))return i}return t[0]}var u1=class{constructor(e){this._pickable=!0,this.device=e,this.pickLayersPass=new Ed(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()}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:r,layers:i,viewports:n},o=this.lastPickedInfo.info){let s=o&&o.layer&&o.layer.id,l=o&&o.viewport&&o.viewport.id,u=s?i.find(E=>E.id===s):null,f=l&&n.find(E=>E.id===l)||n[0],v=f&&f.unproject([e-f.x,r-f.y]);return{...o,...{x:e,y:r,viewport:f,coordinate:v,layer:u}}}_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 e=this.device.gl;this.pickingFBO?.resize({width:e.canvas.width,height:e.canvas.height}),this.depthFBO?.resize({width:e.canvas.width,height:e.canvas.height})}_getPickable(e){if(this._pickable===!1)return null;let r=e.filter(i=>this.pickLayersPass.shouldDrawLayer(i)&&!i.isComposite);return r.length?r:null}_pickClosestObject({layers:e,views:r,viewports:i,x:n,y:o,radius:s=0,depth:l=1,mode:u="query",unproject3D:f,onViewportActive:v,effects:T}){let E=this.device.canvasContext.cssToDeviceRatio(),M=this._getPickable(e);if(!M||i.length===0)return{result:[],emptyInfo:eO({viewports:i,x:n,y:o,pixelRatio:E})};this._resizeBuffer();let O=this.device.canvasContext.cssToDevicePixels([n,o],!0),F=[O.x+Math.floor(O.width/2),O.y+Math.floor(O.height/2)],U=Math.round(s*E),{width:G,height:J}=this.pickingFBO,K=this._getPickingRect({deviceX:F[0],deviceY:F[1],deviceRadius:U,deviceWidth:G,deviceHeight:J}),ne={x:n-s,y:o-s,width:s*2+1,height:s*2+1},ge,H=[],me=new Set;for(let he=0;he<l;he++){let $;if(K){let we=this._drawAndSample({layers:M,views:r,viewports:i,onViewportActive:v,deviceRect:K,cullRect:ne,effects:T,pass:`picking:${u}`});$=FV({...we,deviceX:F[0],deviceY:F[1],deviceRadius:U,deviceRect:K})}else $={pickedColor:null,pickedObjectIndex:-1};let Z;if($.pickedLayer&&f&&this.depthFBO){let{pickedColors:we}=this._drawAndSample({layers:[$.pickedLayer],views:r,viewports:i,onViewportActive:v,deviceRect:{x:$.pickedX,y:$.pickedY,width:1,height:1},cullRect:ne,effects:T,pass:`picking:${u}:z`},!0);we[3]&&(Z=we[0])}$.pickedLayer&&he+1<l&&(me.add($.pickedLayer),$.pickedLayer.disablePickingIndex($.pickedObjectIndex)),ge=kV({pickInfo:$,lastPickedInfo:this.lastPickedInfo,mode:u,layers:M,viewports:i,x:n,y:o,z:Z,pixelRatio:E});for(let we of ge.values())we.layer&&H.push(we);if(!$.pickedColor)break}for(let he of me)he.restorePickingColors();return{result:H,emptyInfo:ge.get(null)}}_pickVisibleObjects({layers:e,views:r,viewports:i,x:n,y:o,width:s=1,height:l=1,mode:u="query",maxObjects:f=null,onViewportActive:v,effects:T}){let E=this._getPickable(e);if(!E||i.length===0)return[];this._resizeBuffer();let M=this.device.canvasContext.cssToDeviceRatio(),O=this.device.canvasContext.cssToDevicePixels([n,o],!0),F=O.x,U=O.y+O.height,G=this.device.canvasContext.cssToDevicePixels([n+s,o+l],!0),J=G.x+G.width,K=G.y,ne={x:F,y:K,width:J-F,height:U-K},ge=this._drawAndSample({layers:E,views:r,viewports:i,onViewportActive:v,deviceRect:ne,cullRect:{x:n,y:o,width:s,height:l},effects:T,pass:`picking:${u}`}),H=NV(ge),me=new Map,he=[],$=Number.isFinite(f);for(let Z=0;Z<H.length&&!($&&he.length>=f);Z++){let we=H[Z],Oe={color:we.pickedColor,layer:null,index:we.pickedObjectIndex,picked:!0,x:n,y:o,pixelRatio:M};Oe=tO({layer:we.pickedLayer,info:Oe,mode:u});let fe=Oe.layer.id;me.has(fe)||me.set(fe,new Set);let Le=me.get(fe),ht=Oe.object??Oe.index;Le.has(ht)||(Le.add(ht),he.push(Oe))}return he}_drawAndSample({layers:e,views:r,viewports:i,onViewportActive:n,deviceRect:o,cullRect:s,effects:l,pass:u},f=!1){let v=f?this.depthFBO:this.pickingFBO,T={layers:e,layerFilter:this.layerFilter,views:r,viewports:i,onViewportActive:n,pickingFBO:v,deviceRect:o,cullRect:s,effects:l,pass:u,pickZ:f,preRenderStats:{}};for(let J of l)J.useInPicking&&(T.preRenderStats[J.id]=J.preRender(T));let{decodePickingColor:E}=this.pickLayersPass.render(T),{x:M,y:O,width:F,height:U}=o,G=new(f?Float32Array:Uint8Array)(F*U*4);return this.device.readPixelsToArrayWebGL(v,{sourceX:M,sourceY:O,sourceWidth:F,sourceHeight:U,target:G}),{pickedColors:G,decodePickingColor:E}}_getPickingRect({deviceX:e,deviceY:r,deviceRadius:i,deviceWidth:n,deviceHeight:o}){let s=Math.max(0,e-i),l=Math.max(0,r-i),u=Math.min(n,e+i+1)-s,f=Math.min(o,r+i+1)-l;return u<=0||f<=0?null:{x:s,y:l,width:u,height:f}}};var xhe={"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}},bhe="top-left",UV="__root",bE=class{constructor({deck:e,parentElement:r}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,this.parentElement=r}getWidgets(){return this.resolvedWidgets}setProps(e){e.widgets&&!Ls(e.widgets,this.widgets,1)&&this._setWidgets(e.widgets)}finalize(){for(let e of this.getWidgets())this._remove(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._add(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}_setWidgets(e){let r={};for(let i of this.resolvedWidgets)r[i.id]=i;this.resolvedWidgets.length=0;for(let i of this.defaultWidgets)r[i.id]=null,this.resolvedWidgets.push(i);for(let i of e){let n=r[i.id];n?n.viewId!==i.viewId||n.placement!==i.placement?(this._remove(n),this._add(i)):i!==n&&(n.setProps(i.props),i=n):this._add(i),r[i.id]=null,this.resolvedWidgets.push(i)}for(let i in r){let n=r[i];n&&this._remove(n)}this.widgets=e}_add(e){let{viewId:r=null,placement:i=bhe}=e,n=e.onAdd({deck:this.deck,viewId:r});n&&this._getContainer(r,i).append(n),e._element=n}_remove(e){e.onRemove(),e._element&&e._element.remove(),e._element=void 0}_getContainer(e,r){let i=e||UV,n=this.containers[i];n||(n=document.createElement("div"),n.style.pointerEvents="none",n.style.position="absolute",n.style.overflow="hidden",this.parentElement?.append(n),this.containers[i]=n);let o=n.querySelector(`.${r}`);return o||(o=document.createElement("div"),o.className=r,o.style.position="absolute",Object.assign(o.style,xhe[r]),n.append(o)),o}_updateContainers(){let e=this.deck.width,r=this.deck.height;for(let i in this.containers){let n=this.lastViewports[i]||null,o=i===UV||n,s=this.containers[i];o?(s.style.display="block",s.style.left=`${n?n.x:0}px`,s.style.top=`${n?n.y:0}px`,s.style.width=`${n?n.width:e}px`,s.style.height=`${n?n.height:r}px`):s.style.display="none"}}onRedraw({viewports:e,layers:r}){let i=e.reduce((o,s)=>(o[s.id]=s,o),{}),{lastViewports:n}=this;for(let o of this.getWidgets()){let{viewId:s}=o;if(s){let l=i[s];l&&(o.onViewportChange&&!l.equals(n[s])&&o.onViewportChange(l),o.onRedraw?.({viewports:[l],layers:r}))}else{if(o.onViewportChange)for(let l of e)l.equals(n[l.id])||o.onViewportChange(l);o.onRedraw?.({viewports:e,layers:r})}}this.lastViewports=i,this._updateContainers()}onHover(e,r){for(let i of this.getWidgets()){let{viewId:n}=i;(!n||n===e.viewport?.id)&&i.onHover?.(e,r)}}onEvent(e,r){let i=kx[r.type];if(i)for(let n of this.getWidgets()){let{viewId:o}=n;(!o||o===e.viewport?.id)&&n[i.handler]?.(e,r)}}};var whe={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"},h1=class{constructor(){this.id="default-tooltip",this.placement="fill",this.props={},this.isVisible=!1}onAdd({deck:e}){let r=document.createElement("div");return r.className="deck-tooltip",Object.assign(r.style,whe),this.deck=e,this.element=r,r}onRemove(){this.deck=void 0,this.element=void 0}setProps(){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&e!==this.lastViewport&&this.setTooltip(null)}onHover(e){let{deck:r}=this,i=r&&r.props.getTooltip;if(!i)return;let n=i(e);this.lastViewport=e.viewport,this.setTooltip(n,e.x,e.y)}setTooltip(e,r,i){let n=this.element;if(n){if(typeof e=="string")n.innerText=e;else if(e)e.text&&(n.innerText=e.text),e.html&&(n.innerHTML=e.html),e.className&&(n.className=e.className);else{this.isVisible=!1,n.style.display="none";return}this.isVisible=!0,n.style.display="block",n.style.transform=`translate(${r}px, ${i}px)`,e&&typeof e=="object"&&"style"in e&&Object.assign(n.style,e.style)}}};var wm=ga(zV());var The={mousedown:1,mousemove:2,mouseup:4};function Ehe(t,e){for(let r=0;r<t.length;r++)if(e(t[r]))return!0;return!1}function VV(t){let e=t.prototype.handler;t.prototype.handler=function(i){let n=this.store;i.button>0&&i.type==="pointerdown"&&(Ehe(n,o=>o.pointerId===i.pointerId)||n.push(i)),e.call(this,i)}}function jV(t){t.prototype.handler=function(r){let i=The[r.type];i&1&&r.button>=0&&(this.pressed=!0),i&2&&r.which===0&&(i=4),this.pressed&&(i&4&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:"mouse",srcEvent:r}))}}VV(wm.PointerEventInput);jV(wm.MouseInput);var HV=wm.Manager,Ch=wm;var Mh=class{constructor(e,r,i){this.element=e,this.callback=r,this.options={enable:!0,...i}}};var GV=Ch?[[Ch.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Ch.Rotate,{enable:!1}],[Ch.Pinch,{enable:!1}],[Ch.Swipe,{enable:!1}],[Ch.Pan,{threshold:0,enable:!1}],[Ch.Press,{enable:!1}],[Ch.Tap,{event:"doubletap",taps:2,enable:!1}],[Ch.Tap,{event:"anytap",enable:!1}],[Ch.Tap,{enable:!1}]]:null,rO={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},WV={doubletap:["tap"]},qV={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},A_={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},XV={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},iO={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"};var YV=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",Tm=typeof window<"u"?window:global;var TE=!1;try{let t={get passive(){return TE=!0,!0}};Tm.addEventListener("test",null,t),Tm.removeEventListener("test",null)}catch{TE=!1}var She=YV.indexOf("firefox")!==-1,{WHEEL_EVENTS:Che}=A_,KV="wheel",ZV=4.000244140625,Mhe=40,Ihe=.25,f1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{if(!this.options.enable)return;let o=n.deltaY;Tm.WheelEvent&&(She&&n.deltaMode===Tm.WheelEvent.DOM_DELTA_PIXEL&&(o/=Tm.devicePixelRatio),n.deltaMode===Tm.WheelEvent.DOM_DELTA_LINE&&(o*=Mhe)),o!==0&&o%ZV===0&&(o=Math.floor(o/ZV)),n.shiftKey&&o&&(o=o*Ihe),this.callback({type:KV,center:{x:n.clientX,y:n.clientY},delta:-o,srcEvent:n,pointerType:"mouse",target:n.target})},this.events=(this.options.events||[]).concat(Che),this.events.forEach(n=>e.addEventListener(n,this.handleEvent,TE?{passive:!1}:!1))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===KV&&(this.options.enable=r)}};var{MOUSE_EVENTS:Phe}=A_,JV="pointermove",QV="pointerover",$V="pointerout",e9="pointerenter",t9="pointerleave",d1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=o=>{this.handleOverEvent(o),this.handleOutEvent(o),this.handleEnterEvent(o),this.handleLeaveEvent(o),this.handleMoveEvent(o)},this.pressed=!1;let{enable:n}=this.options;this.enableMoveEvent=n,this.enableLeaveEvent=n,this.enableEnterEvent=n,this.enableOutEvent=n,this.enableOverEvent=n,this.events=(this.options.events||[]).concat(Phe),this.events.forEach(o=>e.addEventListener(o,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===JV&&(this.enableMoveEvent=r),e===QV&&(this.enableOverEvent=r),e===$V&&(this.enableOutEvent=r),e===e9&&(this.enableEnterEvent=r),e===t9&&(this.enableLeaveEvent=r)}handleOverEvent(e){this.enableOverEvent&&e.type==="mouseover"&&this._emit(QV,e)}handleOutEvent(e){this.enableOutEvent&&e.type==="mouseout"&&this._emit($V,e)}handleEnterEvent(e){this.enableEnterEvent&&e.type==="mouseenter"&&this._emit(e9,e)}handleLeaveEvent(e){this.enableLeaveEvent&&e.type==="mouseleave"&&this._emit(t9,e)}handleMoveEvent(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":e.which===0&&(this.pressed=!1),this.pressed||this._emit(JV,e);break;case"mouseup":this.pressed=!1;break;default:}}_emit(e,r){this.callback({type:e,center:{x:r.clientX,y:r.clientY},srcEvent:r,pointerType:"mouse",target:r.target})}};var{KEY_EVENTS:Rhe}=A_,r9="keydown",i9="keyup",p1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{let o=n.target||n.srcElement;o.tagName==="INPUT"&&o.type==="text"||o.tagName==="TEXTAREA"||(this.enableDownEvent&&n.type==="keydown"&&this.callback({type:r9,srcEvent:n,key:n.key,target:n.target}),this.enableUpEvent&&n.type==="keyup"&&this.callback({type:i9,srcEvent:n,key:n.key,target:n.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(Rhe),e.tabIndex=this.options.tabIndex||0,e.style.outline="none",this.events.forEach(n=>e.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,r){e===r9&&(this.enableDownEvent=r),e===i9&&(this.enableUpEvent=r)}};var n9="contextmenu",A1=class extends Mh{constructor(e,r,i){super(e,r,i),this.handleEvent=n=>{this.options.enable&&this.callback({type:n9,center:{x:n.clientX,y:n.clientY},srcEvent:n,pointerType:"mouse",target:n.target})},e.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(e,r){e===n9&&(this.options.enable=r)}};var Bhe={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},Ohe=1,Dhe=2,Lhe=3,Fhe=0,Nhe=1,khe=2,Uhe=1,zhe=2,Vhe=4;function o9(t){let e=Bhe[t.srcEvent.type];if(!e)return null;let{buttons:r,button:i,which:n}=t.srcEvent,o=!1,s=!1,l=!1;return e===4||e===2&&!Number.isFinite(r)?(o=n===Ohe,s=n===Dhe,l=n===Lhe):e===2?(o=Boolean(r&Uhe),s=Boolean(r&Vhe),l=Boolean(r&zhe)):e===1&&(o=i===Fhe,s=i===Nhe,l=i===khe),{leftButton:o,middleButton:s,rightButton:l}}function s9(t,e){let r=t.center;if(!r)return null;let i=e.getBoundingClientRect(),n=i.width/e.offsetWidth||1,o=i.height/e.offsetHeight||1,s={x:(r.x-i.left-e.clientLeft)/n,y:(r.y-i.top-e.clientTop)/o};return{center:r,offsetCenter:s}}var nO={srcElement:"root",priority:0},m1=class{constructor(e){this.handleEvent=r=>{if(this.isEmpty())return;let i=this._normalizeEvent(r),n=r.srcEvent.target;for(;n&&n!==i.rootElement;){if(this._emit(i,n),i.handled)return;n=n.parentNode}this._emit(i,"root")},this.eventManager=e,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(e,r,i,n=!1,o=!1){let{handlers:s,handlersByElement:l}=this,u=nO;typeof i=="string"||i&&i.addEventListener?u={...nO,srcElement:i}:i&&(u={...nO,...i});let f=l.get(u.srcElement);f||(f=[],l.set(u.srcElement,f));let v={type:e,handler:r,srcElement:u.srcElement,priority:u.priority};n&&(v.once=!0),o&&(v.passive=!0),s.push(v),this._active=this._active||!v.passive;let T=f.length-1;for(;T>=0&&!(f[T].priority>=v.priority);)T--;f.splice(T+1,0,v)}remove(e,r){let{handlers:i,handlersByElement:n}=this;for(let o=i.length-1;o>=0;o--){let s=i[o];if(s.type===e&&s.handler===r){i.splice(o,1);let l=n.get(s.srcElement);l.splice(l.indexOf(s),1),l.length===0&&n.delete(s.srcElement)}}this._active=i.some(o=>!o.passive)}_emit(e,r){let i=this.handlersByElement.get(r);if(i){let n=!1,o=()=>{e.handled=!0},s=()=>{e.handled=!0,n=!0},l=[];for(let u=0;u<i.length;u++){let{type:f,handler:v,once:T}=i[u];if(v({...e,type:f,stopPropagation:o,stopImmediatePropagation:s}),T&&l.push(i[u]),n)break}for(let u=0;u<l.length;u++){let{type:f,handler:v}=l[u];this.remove(f,v)}}}_normalizeEvent(e){let r=this.eventManager.getElement();return{...e,...o9(e),...s9(e,r),preventDefault:()=>{e.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:r}}};var jhe={events:null,recognizers:null,recognizerOptions:{},Manager:HV,touchAction:"none",tabIndex:0},m_=class{constructor(e=null,r){this._onBasicInput=n=>{let{srcEvent:o}=n,s=qV[o.type];s&&this.manager.emit(s,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={...jhe,...r},this.events=new Map,this.setElement(e);let{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(e){if(this.element&&this.destroy(),this.element=e,!e)return;let{options:r}=this,i=r.Manager;this.manager=new i(e,{touchAction:r.touchAction,recognizers:r.recognizers||GV}).on("hammer.input",this._onBasicInput),r.recognizers||Object.keys(rO).forEach(n=>{let o=this.manager.get(n);o&&rO[n].forEach(s=>{o.recognizeWith(s)})});for(let n in r.recognizerOptions){let o=this.manager.get(n);if(o){let s=r.recognizerOptions[n];delete s.enable,o.set(s)}}this.wheelInput=new f1(e,this._onOtherEvent,{enable:!1}),this.moveInput=new d1(e,this._onOtherEvent,{enable:!1}),this.keyInput=new p1(e,this._onOtherEvent,{enable:!1,tabIndex:r.tabIndex}),this.contextmenuInput=new A1(e,this._onOtherEvent,{enable:!1});for(let[n,o]of this.events)o.isEmpty()||(this._toggleRecognizer(o.recognizerName,!0),this.manager.on(n,o.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(e,r,i){this._addEventHandler(e,r,i,!1)}once(e,r,i){this._addEventHandler(e,r,i,!0)}watch(e,r,i){this._addEventHandler(e,r,i,!1,!0)}off(e,r){this._removeEventHandler(e,r)}_toggleRecognizer(e,r){let{manager:i}=this;if(!i)return;let n=i.get(e);if(n&&n.options.enable!==r){n.set({enable:r});let o=WV[e];o&&!this.options.recognizers&&o.forEach(s=>{let l=i.get(s);r?(l.requireFailure(e),n.dropRequireFailure(s)):l.dropRequireFailure(e)})}this.wheelInput.enableEventType(e,r),this.moveInput.enableEventType(e,r),this.keyInput.enableEventType(e,r),this.contextmenuInput.enableEventType(e,r)}_addEventHandler(e,r,i,n,o){if(typeof e!="string"){i=r;for(let v in e)this._addEventHandler(v,e[v],i,n,o);return}let{manager:s,events:l}=this,u=iO[e]||e,f=l.get(u);f||(f=new m1(this),l.set(u,f),f.recognizerName=XV[u]||u,s&&s.on(u,f.handleEvent)),f.add(e,r,i,n,o),f.isEmpty()||this._toggleRecognizer(f.recognizerName,!0)}_removeEventHandler(e,r){if(typeof e!="string"){for(let s in e)this._removeEventHandler(s,e[s]);return}let{events:i}=this,n=iO[e]||e,o=i.get(n);if(o&&(o.remove(e,r),o.isEmpty())){let{recognizerName:s}=o,l=!1;for(let u of i.values())if(u.recognizerName===s&&!u.isEmpty()){l=!0;break}l||this._toggleRecognizer(s,!1)}}};function Wp(){}var Hhe=({isDragging:t})=>t?"grabbing":"grab",a9={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{type:"webgl"},gl:null,glOptions:{},canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:Wp,onWebGLInitialized:Wp,onResize:Wp,onViewStateChange:Wp,onInteractionStateChange:Wp,onBeforeRender:Wp,onAfterRender:Wp,onLoad:Wp,onError:t=>ur.error(t.message,t.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:Hhe,getTooltip:null,debug:!1,drawPickingColors:!1},EE=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 Bl({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=i=>{let{_pickRequest:n}=this;if(i.type==="pointerleave")n.x=-1,n.y=-1,n.radius=0;else{if(i.leftButton||i.rightButton)return;{let o=i.offsetCenter;if(!o)return;n.x=o.x,n.y=o.y,n.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:n.x,y:n.y}),n.event=i},this._onEvent=i=>{let n=kx[i.type],o=i.offsetCenter;if(!n||!o||!this.layerManager)return;let s=this.layerManager.getLayers(),l=this.deckPicker.getLastPickedObject({x:o.x,y:o.y,layers:s,viewports:this.getViewports(o)},this._lastPointerDownInfo),{layer:u}=l,f=u&&(u[n.handler]||u.props[n.handler]),v=this.props[n.handler],T=!1;f&&(T=f.call(u,l,i)),T||(v?.(l,i),this.widgetManager.onEvent(l,i))},this._onPointerDown=i=>{let n=i.offsetCenter,o=this._pick("pickObject","pickObject Time",{x:n.x,y:n.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=o.result[0]||o.emptyInfo},this.props={...a9,...e},e=this.props,e.viewState&&e.initialViewState&&ur.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:e.gl&&(e.gl instanceof WebGLRenderingContext&&ur.error("WebGL1 context not supported.")(),this.device=Tf.attach(e.gl));let r=this.device;r||(Tc.registerDevices([Tf]),r=Tc.createDevice({...e.deviceProps,canvas:this._createCanvas(e)})),this.animationLoop=this._createAnimationLoop(r,e),this.setProps(e),e._typedArrayManagerProps&&wh.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.canvas&&(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null)}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&ur.removed("onLayerHover","onHover")(),"onLayerClick"in e&&ur.removed("onLayerClick","onClick")(),e.initialViewState&&!Ls(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);Object.assign(r,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop?.setProps(r),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 i=this.viewManager.needsRedraw(e),n=this.layerManager.needsRedraw(e),o=this.effectManager.needsRedraw(e),s=this.deckRenderer.needsRedraw(e);return r=r||i||n||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 os(this.viewManager),this.viewManager.views}getViewports(e){return os(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 i in e)this.layerManager.resourceManager.add({resourceId:i,data:e[i],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,i){os(this.deckPicker);let{stats:n}=this;n.get("Pick Count").incrementCount(),n.get(r).timeStart();let o=this.deckPicker[e]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return n.get(r).timeEnd(),o}_createCanvas(e){let r=e.canvas;return typeof r=="string"&&(r=document.getElementById(r),os(r)),r||(r=document.createElement("canvas"),r.id=e.id||"deckgl-overlay",(e.parent||document.body).appendChild(r)),Object.assign(r.style,e.style),r}_setCanvasSize(e){if(!this.canvas)return;let{width:r,height:i}=e;if(r||r===0){let n=Number.isFinite(r)?`${r}px`:r;this.canvas.style.width=n}if(i||i===0){let n=Number.isFinite(i)?`${i}px`:i;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=n}}_updateCanvasSize(){let{canvas:e}=this;if(!e)return;let r=e.clientWidth??e.width,i=e.clientHeight??e.height;(r!==this.width||i!==this.height)&&(this.width=r,this.height=i,this.viewManager?.setProps({width:r,height:i}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:r,height:i}))}_createAnimationLoop(e,r){let{gl:i,onError:n,useDevicePixels:o}=r;return new Kx({device:e,useDevicePixels:o,autoResizeDrawingBuffer:!i,autoResizeViewport:!1,onInitialize:s=>this._setDevice(s.device),onRender:this._onRenderFrame.bind(this),onError:n})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let{views:e}=this.props,r=Array.isArray(e)?e:e?[e]:[new Rd({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(){let{_pickRequest:e}=this;if(e.event){let{result:r,emptyInfo:i}=this._pick("pickObject","pickObject Time",e);this.cursorState.isHovering=r.length>0;let n=i,o=!1;for(let s of r)n=s,o=s.layer?.onHover(s,e.event)||o;o||(this.props.onHover?.(n,e.event),this.widgetManager.onHover(n,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.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),this.device instanceof Tf&&this.props.onWebGLInitialized(this.device.gl);let r=new _m;r.play(),this.animationLoop.attachTimeline(r),this.eventManager=new m_(this.props.parent||this.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let n in kx)this.eventManager.on(n,this._onEvent);this.viewManager=new n1({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 i=this.viewManager.getViewports()[0];this.layerManager=new ym(this.device,{deck:this,stats:this.stats,viewport:i,timeline:r}),this.effectManager=new l1({deck:this,device:this.device}),this.deckRenderer=new bm(this.device),this.deckPicker=new u1(this.device),this.widgetManager=new bE({deck:this,parentElement:this.canvas?.parentElement}),this.widgetManager.addDefault(new h1),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(e,r){let{device:i,gl:n}=this.layerManager.context;this.props.onBeforeRender({device:i,gl:n});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:i,gl:n})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),ur.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.layerManager.updateLayers(),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 i=Tc.stats.get("Memory Usage");e.bufferMemory=i.get("Buffer Memory").count,e.textureMemory=i.get("Texture Memory").count,e.renderbufferMemory=i.get("Renderbuffer Memory").count,e.gpuMemory=i.get("GPU Memory").count}},Bd=EE;(()=>{EE.defaultProps=a9})(),(()=>{EE.VERSION=ST})();function l9(t){switch(t){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return cx(t)}}var c9=tT;function g1(t,e){return{attribute:t,format:e.size>1?`${e.type}x${e.size}`:e.type,byteOffset:e.offset||0}}function qp(t){return t.stride||t.size*t.bytesPerElement}function u9(t,e){return t.type===e.type&&t.size===e.size&&qp(t)===qp(e)&&(t.offset||0)===(e.offset||0)}function oO(t,e){e.offset&&ur.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let r=qp(t),i=e.vertexOffset!==void 0?e.vertexOffset:t.vertexOffset||0,n=e.elementOffset||0,o=i*r+n*t.bytesPerElement+(t.offset||0);return{...e,offset:o,stride:r}}function Ghe(t,e){let r=oO(t,e);return{high:r,low:{...r,offset:r.offset+t.size*4}}}var _1=class{constructor(e,r,i){this._buffer=null,this.device=e,this.id=r.id||"",this.size=r.size||1;let n=r.logicalType||r.type,o=n==="float64",{defaultValue:s}=r;s=Number.isFinite(s)?[s]:s||new Array(this.size).fill(0);let l;o?l="float32":!n&&r.isIndexed?l="uint32":l=n||"float32";let u=l9(n||l);this.doublePrecision=o,o&&r.fp64===!1&&(u=Float32Array),this.value=null,this.settings={...r,defaultType:u,defaultValue:s,logicalType:n,type:l,normalized:l.includes("norm"),size:this.size,bytesPerElement:u.BYTES_PER_ELEMENT},this.state={...i,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*qp(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),wh.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,r=null){let i={};if(this.state.constant){let n=this.value;if(r){let o=oO(this.getAccessor(),r),s=o.offset/n.BYTES_PER_ELEMENT,l=o.size||this.size;i[e]=n.subarray(s,s+l)}else i[e]=n}else i[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?i[`${e}64Low`]=i[e]:i[`${e}64Low`]=new Float32Array(this.size)),i}getBufferLayout(e=this.id,r=null){let i=this.getAccessor(),n=[],o={name:this.id,byteStride:qp(i),attributes:n};if(this.doublePrecision){let s=Ghe(i,r||{});n.push(g1(e,{...i,...s.high}),g1(`${e}64Low`,{...i,...s.low}))}else if(r){let s=oO(i,r);n.push(g1(e,{...i,...s}))}else n.push(g1(e,i));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:i,size:n}=this,o=i*n;if(r&&o&&r.length>=o){let s=new Array(n).fill(1/0),l=new Array(n).fill(-1/0);for(let u=0;u<o;)for(let f=0;f<n;f++){let v=r[u++];v<s[f]&&(s[f]=v),v>l[f]&&(l[f]=v)}e=[s,l]}}return this.state.bounds=e,e}setData(e){let{state:r}=this,i;ArrayBuffer.isView(e)?i={value:e}:e instanceof Xi?i={buffer:e}:i=e;let n={...this.settings,...i};if(ArrayBuffer.isView(i.value)){if(!i.type)if(this.doublePrecision&&i.value instanceof Float64Array)n.type="float32";else{let s=c9(i.value);n.type=n.normalized?s.replace("int","norm"):s}n.bytesPerElement=i.value.BYTES_PER_ELEMENT,n.stride=qp(n)}if(r.bounds=null,i.constant){let o=i.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(i.buffer){let o=i.buffer;r.externalBuffer=o,r.constant=!1,this.value=i.value||null}else if(i.value){this._checkExternalBuffer(i);let o=i.value;r.externalBuffer=null,r.constant=!1,this.value=o;let{buffer:s}=this,l=qp(n),u=(n.vertexOffset||0)*l;if(this.doublePrecision&&o instanceof Float64Array&&(o=fE(o,n)),this.settings.isIndexed){let v=this.settings.defaultType;o.constructor!==v&&(o=new v(o))}let f=o.byteLength+u+l*2;(!s||s.byteLength<f)&&(s=this._createBuffer(f)),s.write(o,u)}return this.setAccessor(n),!0}updateSubBuffer(e={}){this.state.bounds=null;let r=this.value,{startOffset:i=0,endOffset:n}=e;this.buffer.write(this.doublePrecision&&r instanceof Float64Array?fE(r,{size:this.size,startIndex:i,endIndex:n}):r.subarray(i,n),i*r.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,r=!1){let{state:i}=this,n=i.allocatedValue,o=wh.allocate(n,e+1,{size:this.size,type:this.settings.defaultType,copy:r});this.value=o;let{byteOffset:s}=this,{buffer:l}=this;return(!l||l.byteLength<o.byteLength+s)&&(l=this._createBuffer(o.byteLength+s),r&&n&&l.write(n instanceof Float64Array?fE(n,this):n,s)),i.allocatedValue=o,i.constant=!1,i.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 i=this.settings.defaultType,n=!1;if(this.doublePrecision&&(n=r.BYTES_PER_ELEMENT<4),n)throw new Error(`Attribute ${this.id} does not support ${r.constructor.name}`);!(r instanceof i)&&this.settings.normalized&&!("normalized"in e)&&ur.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,i){let{defaultValue:n,size:o}=this.settings;if(Number.isFinite(e))return r[i]=e,r;if(!e){let s=o;for(;--s>=0;)r[i+s]=n[s];return r}switch(o){case 4:r[i+3]=Number.isFinite(e[3])?e[3]:n[3];case 3:r[i+2]=Number.isFinite(e[2])?e[2]:n[2];case 2:r[i+1]=Number.isFinite(e[1])?e[1]:n[1];case 1:r[i+0]=Number.isFinite(e[0])?e[0]:n[0];break;default:let s=o;for(;--s>=0;)r[i+s]=Number.isFinite(e[s])?e[s]:n[s]}return r}_areValuesEqual(e,r){if(!e||!r)return!1;let{size:i}=this;for(let n=0;n<i;n++)if(e[n]!==r[n])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();let{isIndexed:r,type:i}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:r?Xi.INDEX:Xi.VERTEX,indexType:r?i:void 0,byteLength:e}),this._buffer}};var h9=[],f9=[];function Js(t,e=0,r=1/0){let i=h9,n={index:-1,data:t,target:[]};return t?typeof t[Symbol.iterator]=="function"?i=t:t.length>0&&(f9.length=t.length,i=f9):i=h9,(e>0||Number.isFinite(r))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(e,r),n.index=e-1),{iterable:i,objectInfo:n}}function SE(t){return t&&t[Symbol.asyncIterator]}function CE(t,e){let{size:r,stride:i,offset:n,startIndices:o,nested:s}=e,l=t.BYTES_PER_ELEMENT,u=i?i/l:r,f=n?n/l:0,v=Math.floor((t.length-f)/u);return(T,{index:E,target:M})=>{if(!o){let G=E*u+f;for(let J=0;J<r;J++)M[J]=t[G+J];return M}let O=o[E],F=o[E+1]||v,U;if(s){U=new Array(F-O);for(let G=O;G<F;G++){let J=G*u+f;M=new Array(r);for(let K=0;K<r;K++)M[K]=t[J+K];U[G-O]=M}}else if(u===r)U=t.subarray(O*r+f,F*r+f);else{U=new t.constructor((F-O)*r);let G=0;for(let J=O;J<F;J++){let K=J*u+f;for(let ne=0;ne<r;ne++)U[G++]=t[K+ne]}}return U}}var d9=[],y1=[[0,1/0]];function p9(t,e){if(t===y1||(e[0]<0&&(e[0]=0),e[0]>=e[1]))return t;let r=[],i=t.length,n=0;for(let o=0;o<i;o++){let s=t[o];s[1]<e[0]?(r.push(s),n=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(n,0,e),r}var qhe={interpolation:{duration:0,easing:t=>t},spring:{stiffness:.05,damping:.5}};function ME(t,e){if(!t)return null;Number.isFinite(t)&&(t={type:"interpolation",duration:t});let r=t.type||"interpolation";return{...qhe[r],...e,...t,type:r}}var Od=class extends _1{constructor(e,r){super(e,r,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:y1}),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){this.state.layoutChanged||=!u9(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,i=this.settings.transition,n=Array.isArray(r)?e[r.find(o=>e[o])]:e[r];return ME(n,i)}setNeedsUpdate(e=this.id,r){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),r){let{startRow:i=0,endRow:n=1/0}=r;this.state.updateRanges=p9(this.state.updateRanges,[i,n])}else this.state.updateRanges=y1}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=d9}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:r,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(e,r.updateRanges!==y1),!0):!1}updateBuffer({numInstances:e,data:r,props:i,context:n}){if(!this.needsUpdate())return!1;let{state:{updateRanges:o},settings:{update:s,noAlloc:l}}=this,u=!0;if(s){for(let[f,v]of o)s.call(n,this,{data:r,startRow:f,endRow:v,props:i,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[f,v]of o){let T=Number.isFinite(f)?this.getVertexOffset(f):0,E=Number.isFinite(v)?this.getVertexOffset(v):l||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:T,endOffset:E})}this._checkAttributeArray()}else u=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),u}setConstantValue(e){return e===void 0||typeof e=="function"?!1:(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:i,settings:n}=this;if(!e)return i.binaryValue=null,i.binaryAccessor=null,!1;if(n.noAlloc)return!1;if(i.binaryValue===e)return this.clearNeedsUpdate(),!0;if(i.binaryValue=e,this.setNeedsRedraw(),n.transform||r!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let s=e;os(ArrayBuffer.isView(s.value),`invalid ${n.accessor}`);let l=Boolean(s.size)&&s.size!==this.size;return i.binaryAccessor=CE(s.value,{size:s.size||this.size,stride:s.stride,offset:s.offset,startIndices:r,nested:l}),!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 i in e)Object.assign(r,super.getValue(i,e[i]));return r}getBufferLayout(){this.state.layoutChanged=!1;let e=this.settings.shaderAttributes,r=super.getBufferLayout();if(!e)return r;for(let i in e){let n=super.getBufferLayout(i,e[i]);r.attributes.push(...n.attributes)}return r}_autoUpdater(e,{data:r,startRow:i,endRow:n,props:o,numInstances:s}){if(e.constant)return;let{settings:l,state:u,value:f,size:v,startIndices:T}=e,{accessor:E,transform:M}=l,O=u.binaryAccessor||(typeof E=="function"?E:o[E]);os(typeof O=="function",`accessor "${E}" is not a function`);let F=e.getVertexOffset(i),{iterable:U,objectInfo:G}=Js(r,i,n);for(let J of U){G.index++;let K=O(J,G);if(M&&(K=M.call(this,K)),T){let ne=(G.index<T.length-1?T[G.index+1]:s)-T[G.index];if(K&&Array.isArray(K[0])){let ge=F;for(let H of K)e._normalizeValue(H,f,ge),ge+=v}else K&&K.length>v?f.set(K,F):(e._normalizeValue(K,G.target,0),vE({target:f,source:G.target,start:F,count:ne}));F+=ne*v}else e._normalizeValue(K,f,F),F+=v}}_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 i=!0;switch(r){case 4:i=i&&Number.isFinite(e[3]);case 3:i=i&&Number.isFinite(e[2]);case 2:i=i&&Number.isFinite(e[1]);case 1:i=i&&Number.isFinite(e[0]);break;default:i=!1}if(!i)throw new Error(`Illegal attribute generated for ${this.id}`)}}};function sO(t){let{source:e,target:r,start:i=0,size:n,getData:o}=t,s=t.end||r.length,l=e.length,u=s-i;if(l>u){r.set(e.subarray(0,u),i);return}if(r.set(e,i),!o)return;let f=l;for(;f<u;){let v=o(f,e);for(let T=0;T<n;T++)r[i+f]=v[T]||0,f++}}function A9({source:t,target:e,size:r,getData:i,sourceStartIndices:n,targetStartIndices:o}){if(!n||!o)return sO({source:t,target:e,size:r,getData:i}),e;let s=0,l=0,u=i&&((v,T)=>i(v+l,T)),f=Math.min(n.length,o.length);for(let v=1;v<f;v++){let T=n[v]*r,E=o[v]*r;sO({source:t.subarray(s,T),target:e,start:l,end:E,size:r,getData:u}),s=T,l=E}return l<e.length&&sO({source:[],target:e,start:l,size:r,getData:u}),e}function m9(t){let{device:e,settings:r,value:i}=t,n=new Od(e,r);return n.setData({value:i instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:r.normalized}),n}function IE(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 PE(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 RE(t){t.push(t.shift())}function g9(t,e){let{doublePrecision:r,settings:i,value:n,size:o}=t,s=r&&n instanceof Float64Array?2:1,l=0,{shaderAttributes:u}=t.settings;if(u)for(let f of Object.values(u))l=Math.max(l,f.vertexOffset??0);return(i.noAlloc?n.length:(e+l)*o)*s}function BE({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 OE({device:t,buffer:e,attribute:r,fromLength:i,toLength:n,fromStartIndices:o,getData:s=l=>l}){let l=r.doublePrecision&&r.value instanceof Float64Array?2:1,u=r.size*l,f=r.byteOffset,v=r.settings.bytesPerElement<4?f/r.settings.bytesPerElement*4:f,T=r.startIndices,E=o&&T,M=r.isConstant;if(!E&&e&&i>=n)return e;let O=r.value instanceof Float64Array?Float32Array:r.value.constructor,F=M?r.value:new O(r.getBuffer().readSyncWebGL(f,n*O.BYTES_PER_ELEMENT).buffer);if(r.settings.normalized&&!M){let K=s;s=(ne,ge)=>r.normalizeConstant(K(ne,ge))}let U=M?(K,ne)=>s(F,ne):(K,ne)=>s(F.subarray(K+f,K+f+u),ne),G=e?new Float32Array(e.readSyncWebGL(v,i*4).buffer):new Float32Array(0),J=new Float32Array(n);return A9({source:G,target:J,sourceStartIndices:o,targetStartIndices:T,size:u,getData:U}),(!e||e.byteLength<J.byteLength+v)&&(e?.destroy(),e=t.createBuffer({byteLength:J.byteLength+v,usage:35050})),e.write(J,v),e}var g_=class{constructor({device:e,attribute:r,timeline:i}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new Sh(i),this.attribute=r,this.attributeInTransition=m9(r),this.currentStartIndices=r.startIndices}get inProgress(){return this.transition.inProgress}start(e,r,i=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=g9(this.attribute,r),this.transition.start({...e,duration:i})}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 v1=class extends g_{constructor({device:e,attribute:r,timeline:i}){super({device:e,attribute:r,timeline:i}),this.type="interpolation",this.transform=Yhe(e,r)}start(e,r){let i=this.currentLength,n=this.currentStartIndices;if(super.start(e,r,e.duration),e.duration<=0){this.transition.cancel();return}let{buffers:o,attribute:s}=this;RE(o),o[0]=OE({device:this.device,buffer:o[0],attribute:s,fromLength:i,toLength:this.currentLength,fromStartIndices:n,getData:e.enter}),o[1]=BE({device:this.device,source:o[0],target:o[1]}),this.setBuffer(o[1]);let{transform:l}=this,u=l.model;u.setVertexCount(Math.floor(this.currentLength/s.size)),s.isConstant?(u.setAttributes({aFrom:o[0]}),u.setConstantAttributes({aTo:s.value})):u.setAttributes({aFrom:o[0],aTo:s.getBuffer()}),l.transformFeedback.setBuffers({vCurrent:o[1]})}onUpdate(){let{duration:e,easing:r}=this.settings,{time:i}=this.transition,n=i/e;r&&(n=r(n));let{model:o}=this.transform;o.setUniforms({time:n}),o.device.gl.bindBuffer(34962,null),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}},Xhe=`#version 300 es
|
|
1719
1719
|
#define SHADER_NAME interpolation-transition-vertex-shader
|
|
1720
1720
|
|
|
1721
1721
|
uniform float time;
|
|
@@ -1768,7 +1768,7 @@ void main(void) {
|
|
|
1768
1768
|
discard;
|
|
1769
1769
|
}
|
|
1770
1770
|
fragColor = vec4(1.0);
|
|
1771
|
-
}`;function Jhe(t,e){let r=IE(e.size),i=PE(e.size);return new Th(t,{vs:Khe,fs:Zhe,bufferLayout:[{name:"aPrev",format:i},{name:"aCur",format:i},{name:"aTo",format:e.getBufferLayout().attributes[0].format}],varyings:["vNext"],defines:{ATTRIBUTE_TYPE:r},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}function Qhe(t){return t.createTexture({data:new Uint8Array(4),format:"rgba8unorm",mipmaps:!1,width:1,height:1})}function $he(t,e){return t.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[e]})}var efe={interpolation:v1,spring:x1},b1=class{constructor(e,{id:r,timeline:i}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=r,this.device=e,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(let e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:r,numInstances:i}){this.numInstances=i||1;for(let n in e){let o=e[n],s=o.getTransitionSetting(r);s&&this._updateAttribute(n,o,s)}for(let n in this.transitions){let o=e[n];(!o||!o.getTransitionSetting(r))&&this._removeTransition(n)}}hasAttribute(e){let r=this.transitions[e];return r&&r.inProgress}getAttributes(){let e={};for(let r in this.transitions){let i=this.transitions[r];i.inProgress&&(e[r]=i.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,i){let n=this.transitions[e],o=!n||n.type!==i.type;if(o){n&&this._removeTransition(e);let s=efe[i.type];s?this.transitions[e]=new s({attribute:r,timeline:this.timeline,device:this.device}):(ur.error(`unsupported transition type '${i.type}'`)(),o=!1)}(o||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(i,this.numInstances))}};var _9="attributeManager.invalidate",tfe="attributeManager.updateStart",rfe="attributeManager.updateEnd",ife="attribute.updateStart",nfe="attribute.allocate",ofe="attribute.updateEnd",Ih=class{constructor(e,{id:r="attribute-manager",stats:i,timeline:n}={}){this.mergeBoundsMemoized=zu(bV),this.id=r,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new b1(e,{id:`${r}-transitions`,timeline:n}),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,{instanced:1})}remove(e){for(let r of e)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(e,r){let i=this._invalidateTrigger(e,r);Ks(_9,this,e,i)}invalidateAll(e){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,e);Ks(_9,this,"all")}update({data:e,numInstances:r,startIndices:i=null,transitions:n,props:o={},buffers:s={},context:l={}}){let u=!1;Ks(tfe,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(let f in this.attributes){let v=this.attributes[f],T=v.settings.accessor;v.startIndices=i,v.numInstances=r,o[f]&&ur.removed(`props.${f}`,`data.attributes.${f}`)(),v.setExternalBuffer(s[f])||v.setBinaryValue(typeof T=="string"?s[T]:void 0,e.startIndices)||typeof T=="string"&&!s[T]&&v.setConstantValue(o[T])||v.needsUpdate()&&(u=!0,this._updateAttribute({attribute:v,numInstances:r,data:e,props:o,context:l})),this.needsRedraw=this.needsRedraw||v.needsRedraw()}u&&Ks(rfe,this,r),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:n})}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(i=>this.attributes[i]?.getBounds());return this.mergeBoundsMemoized(r)}getChangedAttributes(e={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:i}=this,n={...i.getAttributes()};for(let o in r){let s=r[o];s.needsRedraw(e)&&!i.hasAttribute(o)&&(n[o]=s)}return n}getBufferLayouts(e,r={}){e||(e=this.getAttributes());let i=[];for(let n in e)r[n]||i.push(e[n].getBufferLayout());return i}_add(e,r={}){for(let i in e){let n=e[i];this.attributes[i]=this._createAttribute(i,n,r)}this._mapUpdateTriggersToAttributes()}_createAttribute(e,r,i){let n={...r,id:e,size:r.isIndexed&&1||r.size||1,divisor:i.instanced?1:r.divisor||0};return new Od(this.device,n)}_mapUpdateTriggersToAttributes(){let e={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(n=>{e[n]||(e[n]=[]),e[n].push(r)});this.updateTriggers=e}_invalidateTrigger(e,r){let{attributes:i,updateTriggers:n}=this,o=n[e];return o&&o.forEach(s=>{let l=i[s];l&&l.setNeedsUpdate(l.id,r)}),o}_updateAttribute(e){let{attribute:r,numInstances:i}=e;if(Ks(ife,r),r.constant){r.setConstantValue(r.value);return}r.allocate(i)&&Ks(nfe,r,i),r.updateBuffer(e)&&(this.needsRedraw=!0,Ks(ofe,r,i))}};var w1=class extends Sh{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:r,toValue:i,duration:n,easing:o}}=this,s=o(e/n);this._value=Oa(r,i,s)}};var y9=1e-5;function v9(t,e,r,i,n){let o=e-t,l=(r-e)*n,u=-o*i;return l+u+o+e}function sfe(t,e,r,i,n){if(Array.isArray(r)){let o=[];for(let s=0;s<r.length;s++)o[s]=v9(t[s],e[s],r[s],i,n);return o}return v9(t,e,r,i,n)}function x9(t,e){if(Array.isArray(t)){let r=0;for(let i=0;i<t.length;i++){let n=t[i]-e[i];r+=n*n}return Math.sqrt(r)}return Math.abs(t-e)}var T1=class extends Sh{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:r,damping:i,stiffness:n}=this.settings,{_prevValue:o=e,_currValue:s=e}=this,l=sfe(o,s,r,i,n),u=x9(l,r),f=x9(l,s);u<y9&&f<y9&&(l=r,this.end()),this._prevValue=s,this._currValue=l}};var afe={interpolation:w1,spring:T1},E1=class{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,r,i,n){let{transitions:o}=this;if(o.has(e)){let u=o.get(e),{value:f=u.settings.fromValue}=u;r=f,this.remove(e)}if(n=ME(n),!n)return;let s=afe[n.type];if(!s){ur.error(`unsupported transition type '${n.type}'`)();return}let l=new s(this.timeline);l.start({...n,fromValue:r,toValue:i}),o.set(e,l)}remove(e){let{transitions:r}=this;r.has(e)&&(r.get(e).cancel(),r.delete(e))}update(){let e={};for(let[r,i]of this.transitions)i.update(),e[r]=i.value,i.inProgress||this.remove(r);return e}clear(){for(let e of this.transitions.keys())this.remove(e)}};function w9(t){let e=t[Gu];for(let r in e){let i=e[r],{validate:n}=i;if(n&&!n(t[r],i))throw new Error(`Invalid prop ${r}: ${t[r]}`)}}function T9(t,e){let r=__({newProps:t,oldProps:e,propTypes:t[Gu],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=cfe(t,e),n=!1;return i||(n=ufe(t,e)),{dataChanged:i,propsChanged:r,updateTriggersChanged:n,extensionsChanged:hfe(t,e),transitionsChanged:lfe(t,e)}}function lfe(t,e){if(!t.transitions)return!1;let r={},i=t[Gu],n=!1;for(let o in t.transitions){let s=i[o],l=s&&s.type;(l==="number"||l==="color"||l==="array")&&aO(t[o],e[o],s)&&(r[o]=!0,n=!0)}return n?r:!1}function __({newProps:t,oldProps:e,ignoreProps:r={},propTypes:i={},triggerName:n="props"}){if(e===t)return!1;if(typeof t!="object"||t===null)return`${n} changed shallowly`;if(typeof e!="object"||e===null)return`${n} changed shallowly`;for(let o of Object.keys(t))if(!(o in r)){if(!(o in e))return`${n}.${o} added`;let s=aO(t[o],e[o],i[o]);if(s)return`${n}.${o} ${s}`}for(let o of Object.keys(e))if(!(o in r)){if(!(o in t))return`${n}.${o} dropped`;if(!Object.hasOwnProperty.call(t,o)){let s=aO(t[o],e[o],i[o]);if(s)return`${n}.${o} ${s}`}}return!1}function aO(t,e,r){let i=r&&r.equal;return i&&!i(t,e,r)||!i&&(i=t&&e&&t.equals,i&&!i.call(t,e))?"changed deeply":!i&&e!==t?"changed shallowly":null}function cfe(t,e){if(e===null)return"oldProps is null, initial diff";let r=!1,{dataComparator:i,_dataDiff:n}=t;return i?i(t.data,e.data)||(r="Data comparator detected a change"):t.data!==e.data&&(r="A new data container was supplied"),r&&n&&(r=n(t.data,e.data)||r),r}function ufe(t,e){if(e===null)return{all:!0};if("all"in t.updateTriggers&&b9(t,e,"all"))return{all:!0};let r={},i=!1;for(let n in t.updateTriggers)n!=="all"&&b9(t,e,n)&&(r[n]=!0,i=!0);return i?r:!1}function hfe(t,e){if(e===null)return!0;let r=e.extensions,{extensions:i}=t;if(i===r)return!1;if(!r||!i||i.length!==r.length)return!0;for(let n=0;n<i.length;n++)if(!i[n].equals(r[n]))return!0;return!1}function b9(t,e,r){let i=t.updateTriggers[r];i=i??{};let n=e.updateTriggers[r];return n=n??{},__({oldProps:n,newProps:i,triggerName:r})}var ffe="count(): argument not an object",dfe="count(): argument not a container";function DE(t){if(!Afe(t))throw new Error(ffe);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(pfe(t))return Object.keys(t).length;throw new Error(dfe)}function pfe(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function Afe(t){return t!==null&&typeof t=="object"}function Em(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(i=>i.name==="project64"))){let i=r.modules.findIndex(n=>n.name==="project32");i>=0&&r.modules.splice(i,1)}if("inject"in e)if(!t.inject)r.inject=e.inject;else{let i={...t.inject};for(let n in e.inject)i[n]=(i[n]||"")+e.inject[n];r.inject=i}return r}var mfe={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},lO={};function E9(t,e,r,i){if(r instanceof bo)return r;r.constructor&&r.constructor.name!=="Object"&&(r={data:r});let n=null;r.compressed&&(n={minFilter:"linear",mipmapFilter:r.data.length>1?"nearest":"linear"});let o=e.createTexture({...r,sampler:{...mfe,...n,...i}});return lO[o.id]=t,o}function S9(t,e){!e||!(e instanceof bo)||lO[e.id]===t&&(e.delete(),delete lO[e.id])}var gfe={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||cO(t)&&(t.length===3||t.length===4)},equal(t,e,r){return Ls(t,e,1)}},accessor:{validate(t,e){let r=LE(t);return r==="function"||r===LE(e.value)},equal(t,e,r){return typeof e=="function"?!0:Ls(t,e,1)}},array:{validate(t,e){return e.optional&&!t||cO(t)},equal(t,e,r){let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?Ls(t,e,n):t===e}},object:{equal(t,e,r){if(r.ignore)return!0;let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?Ls(t,e,n):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:i}=r.props;return i?i(t):typeof t.shape=="string"&&t.shape.endsWith("-table")&&Array.isArray(t.data)?t.data:t}},image:{transform:(t,e,r)=>{let i=r.context;return!i||!i.device?null:E9(r.id,i.device,t,{...e.parameters,...r.props.textureParameters})},release:(t,e,r)=>{S9(r.id,t)}}};function C9(t){let e={},r={},i={};for(let[n,o]of Object.entries(t)){let s=o?.deprecatedFor;if(s)i[n]=Array.isArray(s)?s:[s];else{let l=_fe(n,o);e[n]=l,r[n]=l.value}}return{propTypes:e,defaultProps:r,deprecatedProps:i}}function _fe(t,e){switch(LE(e)){case"object":return S1(t,e);case"array":return S1(t,{type:"array",value:e,compare:!1});case"boolean":return S1(t,{type:"boolean",value:e});case"number":return S1(t,{type:"number",value:e});case"function":return S1(t,{type:"function",value:e,compare:!0});default:return{name:t,type:"unknown",value:e}}}function S1(t,e){return"type"in e?{name:t,...gfe[e.type],...e}:"value"in e?{name:t,type:LE(e.value),...e}:{name:t,type:"object",value:e}}function cO(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function LE(t){return cO(t)?"array":t===null?"null":typeof t}function M9(t,e){let r;for(let o=e.length-1;o>=0;o--){let s=e[o];"extensions"in s&&(r=s.extensions)}let i=uO(t.constructor,r),n=Object.create(i);n[d_]=t,n[Rf]={},n[Eh]={};for(let o=0;o<e.length;++o){let s=e[o];for(let l in s)n[l]=s[l]}return Object.freeze(n),n}var yfe="_mergedDefaultProps";function uO(t,e){let r=yfe;if(e)for(let n of e){let o=n.constructor;o&&(r+=`:${o.extensionName||o.name}`)}let i=I9(t,r);return i||(t[r]=vfe(t,e||[]))}function vfe(t,e){if(!t.prototype)return null;let i=Object.getPrototypeOf(t),n=uO(i),o=I9(t,"defaultProps")||{},s=C9(o),l=Object.assign(Object.create(null),n,s.defaultProps),u=Object.assign(Object.create(null),n?.[Gu],s.propTypes),f=Object.assign(Object.create(null),n?.[yE],s.deprecatedProps);for(let v of e){let T=uO(v.constructor);T&&(Object.assign(l,T),Object.assign(u,T[Gu]),Object.assign(f,T[yE]))}return xfe(l,t),wfe(l,u),bfe(l,f),l[Gu]=u,l[yE]=f,e.length===0&&!hO(t,"_propTypes")&&(t._propTypes=u),l}function xfe(t,e){let r=Efe(e);Object.defineProperties(t,{id:{writable:!0,value:r}})}function bfe(t,e){for(let r in e)Object.defineProperty(t,r,{enumerable:!1,set(i){let n=`${this.id}: ${r}`;for(let o of e[r])hO(this,o)||(this[o]=i);ur.deprecated(n,e[r].join("/"))()}})}function wfe(t,e){let r={},i={};for(let n in e){let o=e[n],{name:s,value:l}=o;o.async&&(r[s]=l,i[s]=Tfe(s))}t[Sd]=r,t[Rf]={},Object.defineProperties(t,i)}function Tfe(t){return{enumerable:!0,set(e){typeof e=="string"||e instanceof Promise||SE(e)?this[Rf][t]=e:this[Eh][t]=e},get(){if(this[Eh]){if(t in this[Eh])return this[Eh][t]||this[Sd][t];if(t in this[Rf]){let e=this[d_]&&this[d_].internalState;if(e&&e.hasAsyncProp(t))return e.getAsyncProp(t)||this[Sd][t]}}return this[Sd][t]}}}function hO(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function I9(t,e){return hO(t,e)&&t[e]}function Efe(t){let e=t.componentName;return e||ur.warn(`${t.name}.componentName not specified`)(),e||t.name}var Sfe=0,FE=class{constructor(...e){this.props=M9(this,e),this.id=this.props.id,this.count=Sfe++}clone(e){let{props:r}=this,i={};for(let n in r[Sd])n in r[Eh]?i[n]=r[Eh][n]:n in r[Rf]&&(i[n]=r[Rf][n]);return new this.constructor({...r,...i,...e})}},Sm=FE;(()=>{FE.componentName="Component"})(),(()=>{FE.defaultProps={}})();var Cfe=Object.freeze({}),Cm=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||Cfe}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[d_]||this.component;let r=e[Eh]||{},i=e[Rf]||e,n=e[Sd]||{};for(let o in r){let s=r[o];this._createAsyncPropData(o,n[o]),this._updateAsyncProp(o,s),r[o]=this.getAsyncProp(o)}for(let o in i){let s=i[o];this._createAsyncPropData(o,n[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(SE(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 i=this.asyncProps[e];return r===i.resolvedValue||r===i.lastValue?!1:(i.lastValue=r,!0)}_setPropValue(e,r){this._freezeAsyncOldProps();let i=this.asyncProps[e];i&&(r=this._postProcessValue(i,r),i.resolvedValue=r,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(e,r,i){let n=this.asyncProps[e];n&&i>=n.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),n.resolvedValue=r,n.resolvedLoadCount=i,this.onAsyncPropUpdated(e,r))}_watchPromise(e,r){let i=this.asyncProps[e];if(i){i.pendingLoadCount++;let n=i.pendingLoadCount;r.then(o=>{this.component&&(o=this._postProcessValue(i,o),this._setAsyncPropValue(e,o,n),this._onResolve(e,o))}).catch(o=>{this._onError(e,o)})}}async _resolveAsyncIterable(e,r){if(e!=="data"){this._setPropValue(e,r);return}let i=this.asyncProps[e];if(!i)return;i.pendingLoadCount++;let n=i.pendingLoadCount,o=[],s=0;for await(let l of r){if(!this.component)return;let{dataTransform:u}=this.component.props;u?o=u(l,o):o=o.concat(l),Object.defineProperty(o,"__diff",{enumerable:!1,value:[{startRow:s,endRow:o.length}]}),s=o.length,this._setAsyncPropValue(e,o,n)}this._onResolve(e,o)}_postProcessValue(e,r){let i=e.type;return i&&this.component&&(i.release&&i.release(e.resolvedValue,i,this.component),i.transform)?i.transform(r,i,this.component):r}_createAsyncPropData(e,r){if(!this.asyncProps[e]){let n=this.component&&this.component.props[Gu];this.asyncProps[e]={type:n&&n[e],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var C1=class extends Cm{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 i=this.layer,n=i?.props.fetch;return n?n(r,{propName:e,layer:i}):super._fetch(e,r)}_onResolve(e,r){let i=this.layer;if(i){let n=i.props.onDataLoad;e==="data"&&n&&n(r,{propName:e,layer:i})}}_onError(e,r){let i=this.layer;i&&i.raiseError(r,`loading ${e} of ${this.layer}`)}};var Mfe="layer.changeFlag",Ife="layer.initialize",Pfe="layer.update",Rfe="layer.finalize",Bfe="layer.matched",P9=2**24-1,Ofe=Object.freeze([]),Dfe=zu(({oldViewport:t,viewport:e})=>t.equals(e)),Of=new Uint8ClampedArray(0),Lfe={data:{type:"data",value:Ofe,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:i,loadOptions:n,signal:o})=>{let{resourceManager:s}=r.context;n=n||r.getLoadOptions(),i=i||r.props.loaders,o&&(n={...n,fetch:{...n?.fetch,signal:o}});let l=s.contains(t);return!l&&!n&&(s.add({resourceId:t,data:_a(t,i),persistent:!1}),l=!0),l?s.subscribe({resourceId:t,onChange:u=>r.internalState?.reloadAsyncProp(e,u),consumerId:r.id,requestId:e}):_a(t,i,n)}},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]}},NE=class extends Sm{constructor(){super(...arguments),this.internalState=null,this.lifecycle=Hp.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){os(this.internalState);let r=this.internalState.viewport||this.context.viewport,i=YB(e,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,o,s]=o_(i,r.pixelProjectionMatrix);return e.length===2?[n,o]:[n,o,s]}unproject(e){return os(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,r){os(this.internalState);let i=this.internalState.viewport||this.context.viewport;return pE(e,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}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])||[]}setModuleParameters(e){for(let r of this.getModels())r.updateModuleSettings(e)}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){os(e instanceof Uint8Array);let[r,i,n]=e;return r+i*256+n*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:DE(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=Em(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(let r of this.props.extensions)e=Em(e,r.getShaders.call(this,r));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){let r=this.getAttributeManager(),{dataChanged:i}=e.changeFlags;if(i&&r)if(Array.isArray(i))for(let n of i)r.invalidateAll(n);else r.invalidateAll();if(r){let{props:n}=e,o=this.internalState.hasPickingBuffer,s=Number.isInteger(n.highlightedObjectIndex)||n.pickable||n.extensions.some(l=>l.getNeedsPickingBuffer.call(this,l));if(o!==s){this.internalState.hasPickingBuffer=s;let{pickingColors:l,instancePickingColors:u}=r.attributes,f=l||u;f&&(s&&f.constant&&(f.constant=!1,r.invalidate(f.id)),!f.value&&!s&&(f.constant=!0,f.value=[0,0,0]))}}}finalizeState(e){for(let i of this.getModels())i.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)}getPickingInfo({info:e,mode:r,sourceLayer:i}){let{index:n}=e;return n>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[n]),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||!Dfe({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 i in e)e[i].layoutChanged()&&(r=!0);for(let i of this.getModels())this._setModelAttributes(i,e,r)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let r=this.props,i=this.getNumInstances(),n=this.getStartIndices();e.update({data:r.data,numInstances:i,startIndices:n,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(),i=Object.create(this.props);for(let n in r)Object.defineProperty(i,n,{value:r[n]});return i}return this.props}calculateInstancePickingColors(e,{numInstances:r}){if(e.constant)return;let i=Math.floor(Of.length/4);if(this.internalState.usesPickingColorCache=!0,i<r){r>P9&&ur.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),Of=wh.allocate(Of,r,{size:4,copy:!0,maxCount:Math.max(r,P9)});let n=Math.floor(Of.length/4),o=[];for(let s=i;s<n;s++)this.encodePickingColor(s,o),Of[s*4+0]=o[0],Of[s*4+1]=o[1],Of[s*4+2]=o[2]}e.value=Of.subarray(0,r*4)}_setModelAttributes(e,r,i=!1){if(!Object.keys(r).length)return;if(i){let l=this.getAttributeManager();e.setBufferLayout(l.getBufferLayouts()),r=l.getAttributes()}let n=e.userData?.excludeAttributes||{},o={},s={};for(let l in r){if(n[l])continue;let u=r[l].getValue();for(let f in u){let v=u[f];v instanceof Xi?r[l].settings.isIndexed?e.setIndexBuffer(v):o[f]=v:v&&(s[f]=v)}}e.setAttributes(o),e.setConstantAttributes(s)}disablePickingIndex(e){let r=this.props.data;if(!("attributes"in r)){this._disablePickingIndex(e);return}let{pickingColors:i,instancePickingColors:n}=this.getAttributeManager().attributes,o=i||n,s=o&&r.attributes&&r.attributes[o.id];if(s&&s.value){let l=s.value,u=this.encodePickingColor(e);for(let f=0;f<r.length;f++){let v=o.getVertexOffset(f);l[v]===u[0]&&l[v+1]===u[1]&&l[v+2]===u[2]&&this._disablePickingIndex(f)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let{pickingColors:r,instancePickingColors:i}=this.getAttributeManager().attributes,n=r||i;if(!n)return;let o=n.getVertexOffset(e),s=n.getVertexOffset(e+1);n.buffer.write(new Uint8Array(s-o),o)}restorePickingColors(){let{pickingColors:e,instancePickingColors:r}=this.getAttributeManager().attributes,i=e||r;i&&(this.internalState.usesPickingColorCache&&i.value.buffer!==Of.buffer&&(i.value=Of.subarray(0,i.value.length)),i.updateSubBuffer({startOffset:0}))}_initialize(){os(!this.internalState),os(Number.isFinite(this.props.coordinateSystem)),Ks(Ife,this);let e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new C1({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(ur.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new E1(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){Ks(Bfe,this,this===e);let{state:r,internalState:i}=e;this!==e&&(this.internalState=i,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let e=this.needsUpdate();if(Ks(Pfe,this,e),!e)return;let r=this.props,i=this.context,n=this.internalState,o=i.viewport,s=this._updateUniformTransition();n.propsInTransition=s,i.viewport=n.viewport||o,this.props=s;try{let l=this._getUpdateParams(),u=this.getModels();if(i.device)this.updateState(l);else try{this.updateState(l)}catch{}for(let v of this.props.extensions)v.updateState.call(this,l,v);let f=this.getModels()[0]!==u[0];this._postUpdate(l,f)}finally{i.viewport=o,this.props=r,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){Ks(Rfe,this),this.finalizeState(this.context);for(let e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,moduleParameters:r=null,uniforms:i={},parameters:n={}}){this._updateAttributeTransition();let o=this.props,s=this.context;this.props=this.internalState.propsInTransition||o;let l=this.props.opacity;i.opacity=Math.pow(l,1/2.2);try{if(r){let{isActive:v,isAttribute:T}=r.picking;this.setModuleParameters(r),this.setShaderModuleProps({picking:{isActive:v,isAttribute:T}})}let{getPolygonOffset:u}=this.props,f=u&&u(i)||[0,0];s.device.setParametersWebGL({polygonOffset:f});for(let v of this.getModels())v.setParameters(n);s.device.withParametersWebGL(n,()=>{let v={renderPass:e,moduleParameters:r,uniforms:i,parameters:n,context:s};for(let T of this.props.extensions)T.draw.call(this,v,T);this.draw(v)})}finally{this.props=o}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let n in e)if(e[n]){let o=!1;switch(n){case"dataChanged":let s=e[n],l=r[n];s&&Array.isArray(l)&&(r.dataChanged=Array.isArray(s)?l.concat(s):s,o=!0);default:r[n]||(r[n]=e[n],o=!0)}o&&Ks(Mfe,this,n,e)}let i=Boolean(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=i,r.somethingChanged=i||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 i=T9(e,r);if(i.updateTriggersChanged)for(let n in i.updateTriggersChanged)i.updateTriggersChanged[n]&&this.invalidateAttribute(n);if(i.transitionsChanged)for(let n in i.transitionsChanged)this.internalState.uniformTransitions.add(n,r[n],e[n],e.transitions?.[n]);return this.setChangeFlags(i)}validateProps(){w9(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:i}=this.props;e.picked&&typeof i=="function"&&(r.highlightColor=i(e)),this.setShaderModuleProps({picking:r}),this.setNeedsRedraw()}_getAttributeManager(){let e=this.context;return new Ih(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,r){let{props:i,oldProps:n}=e;this.setNeedsRedraw(),this._updateAttributes(),this.state.model?.setInstanceCount(this.getNumInstances());let{autoHighlight:s,highlightedObjectIndex:l,highlightColor:u}=i;if(r||n.autoHighlight!==s||n.highlightedObjectIndex!==l||n.highlightColor!==u){let f={};s||(f.highlightedObjectColor=null),Array.isArray(u)&&(f.highlightColor=u),(r||l!==n.highlightedObjectIndex)&&(f.highlightedObjectColor=Number.isFinite(l)&&l>=0?this.encodePickingColor(l):null),this.setShaderModuleProps({picking:f})}}_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 i=this.getAttributeManager(),n=i?i.getNeedsRedraw(e):!1;if(r=r||n,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()}},Dn=NE;(()=>{NE.defaultProps=Lfe})(),(()=>{NE.layerName="Layer"})();var Ffe="compositeLayer.renderLayers",fO=class extends Dn{get isComposite(){return!0}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:i}=this.props;return i&&i[e]&&i[e].type||r}getSubLayerRow(e,r,i){return e.__source={parent:this,object:r,index:i},e}getSubLayerAccessor(e){if(typeof e=="function"){let r={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(r.index=i.__source.index,e(i.__source.object,r)):e(i,n)}return e}getSubLayerProps(e={}){let{opacity:r,pickable:i,visible:n,parameters:o,getPolygonOffset:s,highlightedObjectIndex:l,autoHighlight:u,highlightColor:f,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:E,positionFormat:M,modelMatrix:O,extensions:F,fetch:U,operation:G,_subLayerProps:J}=this.props,K={id:"",updateTriggers:{},opacity:r,pickable:i,visible:n,parameters:o,getPolygonOffset:s,highlightedObjectIndex:l,autoHighlight:u,highlightColor:f,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:E,positionFormat:M,modelMatrix:O,extensions:F,fetch:U,operation:G},ne=J&&e.id&&J[e.id],ge=ne&&ne.updateTriggers,H=e.id||"sublayer";if(ne){let me=this.props[Gu],he=e.type?e.type._propTypes:{};for(let $ in ne){let Z=he[$]||me[$];Z&&Z.type==="accessor"&&(ne[$]=this.getSubLayerAccessor(ne[$]))}}Object.assign(K,e,ne),K.id=`${this.props.id}-${H}`,K.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...ge};for(let me of F){let he=me.getSubLayerProps.call(this,me);he&&Object.assign(K,he,{updateTriggers:Object.assign(K.updateTriggers,he.updateTriggers)})}return K}_updateAutoHighlight(e){for(let r of this.getSubLayers())r.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,r){let i=this.internalState.subLayers,n=!i||this.needsUpdate();if(n){let o=this.renderLayers();i=Bf(o,Boolean),this.internalState.subLayers=i}Ks(Ffe,this,n,i);for(let o of i)o.parent=this}},es=fO;(()=>{fO.layerName="CompositeLayer"})();var kE=Math.PI/180,R9=180/Math.PI,UE=6370972,y_=256;function Nfe(){let t=y_/UE,e=Math.PI/180*y_;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 Dd=class extends xl{constructor(e={}){let{latitude:r=0,longitude:i=0,zoom:n=0,nearZMultiplier:o=.1,farZMultiplier:s=2,resolution:l=10}=e,{height:u,altitude:f=1.5}=e;u=u||1,f=Math.max(.75,f);let v=new Yr().lookAt({eye:[0,-f,0],up:[0,0,1]}),T=Math.pow(2,n);v.rotateX(r*kE),v.rotateZ(-i*kE),v.scale(T/u);let E=Math.atan(.5/f),M=y_*2*T/u;super({...e,height:u,viewMatrix:v,longitude:i,latitude:r,zoom:n,distanceScales:Nfe(),fovyRadians:E*2,focalDistance:f,near:o,far:Math.min(2,1/M+1)*f*s}),this.latitude=r,this.longitude=i,this.resolution=l}get projectionMode(){return Ll.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){let r={targetZ:e.z||0},i=this.unproject([0,this.height/2],r),n=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),i[0]>this.longitude&&(i[0]-=360),[Math.min(i[0],o[0],n[0],s[0]),Math.min(i[1],o[1],n[1],s[1]),Math.max(i[0],o[0],n[0],s[0]),Math.max(i[1],o[1],n[1],s[1])]}unproject(e,{topLeft:r=!0,targetZ:i}={}){let[n,o,s]=e,l=r?o:this.height-o,{pixelUnprojectionMatrix:u}=this,f;if(Number.isFinite(s))f=dO(u,[n,l,s,1]);else{let M=dO(u,[n,l,-1,1]),O=dO(u,[n,l,1,1]),F=((i||0)/UE+1)*y_,U=Da.sqrLen(Da.sub([],M,O)),G=Da.sqrLen(M),J=Da.sqrLen(O),ne=4*((4*G*J-(U-G-J)**2)/16)/U,ge=Math.sqrt(G-ne),H=Math.sqrt(Math.max(0,F*F-ne)),me=(ge-H)/Math.sqrt(U);f=Da.lerp([],M,O,me)}let[v,T,E]=this.unprojectPosition(f);return Number.isFinite(s)?[v,T,E]:Number.isFinite(i)?[v,T,i]:[v,T]}projectPosition(e){let[r,i,n=0]=e,o=r*kE,s=i*kE,l=Math.cos(s),u=(n/UE+1)*y_;return[Math.sin(o)*l*u,-Math.cos(o)*l*u,Math.sin(s)*u]}unprojectPosition(e){let[r,i,n]=e,o=Da.len(e),s=Math.asin(n/o),u=Math.atan2(r,-i)*R9,f=s*R9,v=(o/y_-1)*UE;return[u,f,v]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,r){let i=this.unproject(r);return{longitude:e[0]-i[0]+this.longitude,latitude:e[1]-i[1]+this.latitude}}};function dO(t,e){let r=$l.transformMat4([],e,t);return $l.scale(r,r,1/r[3]),r}var pO=Math.PI/180;function kfe({height:t,focalDistance:e,orbitAxis:r,rotationX:i,rotationOrbit:n,zoom:o}){let s=r==="Z"?[0,0,1]:[0,1,0],l=r==="Z"?[0,-e,0]:[0,0,e],u=new Yr().lookAt({eye:l,up:s});u.rotateX(i*pO),r==="Z"?u.rotateZ(n*pO):u.rotateY(n*pO);let f=Math.pow(2,o)/t;return u.scale(f),u}var Mm=class extends xl{constructor(e){let{height:r,projectionMatrix:i,fovy:n=50,orbitAxis:o="Z",target:s=[0,0,0],rotationX:l=0,rotationOrbit:u=0,zoom:f=0}=e,v=i?i[5]/2:pm(n);super({...e,longitude:void 0,viewMatrix:kfe({height:r||1,focalDistance:v,orbitAxis:o,rotationX:l,rotationOrbit:u,zoom:f}),fovy:n,focalDistance:v,position:s,zoom:f}),this.projectedCenter=this.project(this.center)}unproject(e,{topLeft:r=!0}={}){let[i,n,o=this.projectedCenter[2]]=e,s=r?n:this.height-n,[l,u,f]=ju([i,s,o],this.pixelUnprojectionMatrix);return[l,u,f]}panByPosition(e,r){let i=this.project(e),n=[this.width/2+i[0]-r[0],this.height/2+i[1]-r[1],this.projectedCenter[2]];return{target:this.unproject(n)}}};var Ufe=new Yr().lookAt({eye:[0,0,1]});function zfe({width:t,height:e,near:r,far:i,padding:n}){let o=-t/2,s=t/2,l=-e/2,u=e/2;if(n){let{left:f=0,right:v=0,top:T=0,bottom:E=0}=n,M=Zn((f+t-v)/2,0,t)-t/2,O=Zn((T+e-E)/2,0,e)-e/2;o-=M,s-=M,l+=O,u+=O}return new Yr().ortho({left:o,right:s,bottom:l,top:u,near:r,far:i})}var Im=class extends xl{constructor(e){let{width:r,height:i,near:n=.1,far:o=1e3,zoom:s=0,target:l=[0,0,0],padding:u=null,flipY:f=!0}=e,v=Array.isArray(s)?s[0]:s,T=Array.isArray(s)?s[1]:s,E=Math.min(v,T),M=Math.pow(2,E),O;if(v!==T){let F=Math.pow(2,v),U=Math.pow(2,T);O={unitsPerMeter:[F/M,U/M,1],metersPerUnit:[M/F,M/U,1]}}super({...e,longitude:void 0,position:l,viewMatrix:Ufe.clone().scale([M,M*(f?-1:1),M]),projectionMatrix:zfe({width:r||1,height:i||1,padding:u,near:n,far:o}),zoom:E,distanceScales:O})}projectFlat([e,r]){let{unitsPerMeter:i}=this.distanceScales;return[e*i[0],r*i[1]]}unprojectFlat([e,r]){let{metersPerUnit:i}=this.distanceScales;return[e*i[0],r*i[1]]}panByPosition(e,r){let i=ju(r,this.pixelUnprojectionMatrix),n=this.projectFlat(e),o=xa.add([],n,xa.negate([],i)),s=xa.add([],this.center,o);return{target:this.unprojectFlat(s)}}};var Pm=class extends xl{constructor(e){let{longitude:r,latitude:i,modelMatrix:n,bearing:o=0,pitch:s=0,up:l=[0,0,1]}=e,f=new yh({bearing:o,pitch:s===-90?1e-4:90+s}).toVector3().normalize(),v=n?new Yr(n).transformAsVector(f):f,T=Number.isFinite(i)?Vx({latitude:i}):0,E=Math.pow(2,T),M=new Yr().lookAt({eye:[0,0,0],center:v,up:l}).scale(E);super({...e,zoom:T,viewMatrix:M}),this.latitude=i,this.longitude=r}};var Rm=20,B9=500,M1=class extends Pd{constructor(e){let{width:r,height:i,position:n=[0,0,0],bearing:o=0,pitch:s=0,longitude:l=null,latitude:u=null,maxPitch:f=90,minPitch:v=-90,startRotatePos:T,startBearing:E,startPitch:M,startZoomPosition:O,startPanPos:F,startPanPosition:U}=e;super({width:r,height:i,position:n,bearing:o,pitch:s,longitude:l,latitude:u,maxPitch:f,minPitch:v},{startRotatePos:T,startBearing:E,startPitch:M,startZoomPosition:O,startPanPos:F,startPanPosition:U}),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:i=[0,0]}=this.getState(),{width:n,height:o,bearing:s,pitch:l}=this.getViewportProps(),u=B9*(e[0]-r[0])/n,f=B9*(e[1]-r[1])/o,v=new yh({bearing:s,pitch:l}),T=new yh({bearing:s,pitch:-90}),E=v.toVector3().normalize(),M=T.toVector3().cross(E).normalize();return this._getUpdatedState({position:new ot(i).add(M.scale(u)).add(E.scale(f))})}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:i=0}){let{startRotatePos:n,startBearing:o,startPitch:s}=this.getState(),{width:l,height:u}=this.getViewportProps();if(!n||o===void 0||s===void 0)return this;let f;if(e){let v=(e[0]-n[0])/l,T=(e[1]-n[1])/u;f={bearing:o-v*180,pitch:s-T*90}}else f={bearing:o-r,pitch:s-i};return this._getUpdatedState(f)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:e,scale:r}){let i=this.getViewportProps(),n=this.getState().startZoomPosition||i.position,o=this.makeViewport(i),{projectionMatrix:s,width:l}=o,f=2*Math.atan(1/s[0])*(e[0]/l-.5),v=this.getDirection(!0);return this._move(v.rotateZ({radians:-f}),Math.log2(r)*Rm,n)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(e=Rm){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:Math.PI/2}),e)}moveRight(e=Rm){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:-Math.PI/2}),e)}moveUp(e=Rm){let r=this.getDirection(!0);return this._move(r,e)}moveDown(e=Rm){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=Rm){return this._move(new ot(0,0,1),e)}zoomOut(e=Rm){return this._move(new ot(0,0,-1),e)}shortestPathFrom(e){let r=e.getViewportProps(),i={...this.getViewportProps()},{bearing:n,longitude:o}=i;return Math.abs(n-r.bearing)>180&&(i.bearing=n<0?n+360:n-360),o!==null&&r.longitude!==null&&Math.abs(o-r.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}_move(e,r,i=this.getViewportProps().position){let n=e.scale(r);return this._getUpdatedState({position:new ot(i).add(n)})}getDirection(e=!1){return new yh({bearing:this.getViewportProps().bearing,pitch:e?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(e){return new M1({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{pitch:r,maxPitch:i,minPitch:n,longitude:o,bearing:s}=e;return e.pitch=Zn(r,n,i),o!==null&&(o<-180||o>180)&&(e.longitude=mm(o+180,360)-180),(s<-180||s>180)&&(e.bearing=mm(s+180,360)-180),e}},Bm=class extends tc{constructor(){super(...arguments),this.ControllerState=M1,this.transition={transitionDuration:300,transitionInterpolator:new bl(["position","pitch","bearing"])}}};var AO=class extends ec{get ViewportType(){return Pm}get ControllerType(){return Bm}},I1=AO;(()=>{AO.displayName="FirstPersonView"})();var P1=class extends Pd{constructor(e){let{width:r,height:i,rotationX:n=0,rotationOrbit:o=0,target:s=[0,0,0],zoom:l=0,minRotationX:u=-90,maxRotationX:f=90,minZoom:v=-1/0,maxZoom:T=1/0,startPanPosition:E,startRotatePos:M,startRotationX:O,startRotationOrbit:F,startZoomPosition:U,startZoom:G}=e;super({width:r,height:i,rotationX:n,rotationOrbit:o,target:s,zoom:l,minRotationX:u,maxRotationX:f,minZoom:v,maxZoom:T},{startPanPosition:E,startRotatePos:M,startRotationX:O,startRotationOrbit:F,startZoomPosition:U,startZoom:G}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:r}){let i=this.getState().startPanPosition||r;if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,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:i=0}){let{startRotatePos:n,startRotationX:o,startRotationOrbit:s}=this.getState(),{width:l,height:u}=this.getViewportProps();if(!n||o===void 0||s===void 0)return this;let f;if(e){let v=(e[0]-n[0])/l,T=(e[1]-n[1])/u;(o<-90||o>90)&&(v*=-1),f={rotationX:o+T*180,rotationOrbit:s+v*180}}else f={rotationX:o+i,rotationOrbit:s+r};return this._getUpdatedState(f)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let r=e.getViewportProps(),i={...this.getViewportProps()},{rotationOrbit:n}=i;return Math.abs(n-r.rotationOrbit)>180&&(i.rotationOrbit=n<0?n+360:n-360),i}zoomStart({pos:e}){return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:i}){let{startZoom:n,startZoomPosition:o}=this.getState();if(o||(n=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let s=this._calculateNewZoom({scale:i,startZoom:n}),l=this.makeViewport({...this.getViewportProps(),zoom:s});return this._getUpdatedState({zoom:s,...l.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:i,minZoom:n}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=r+Math.log2(e);return Zn(o,n,i)}_panFromCenter(e){let{width:r,height:i,target:n}=this.getViewportProps();return this.pan({startPosition:n,pos:[r/2+e[0],i/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n,maxRotationX:o,minRotationX:s,rotationOrbit:l}=e;return e.zoom=Array.isArray(n)?[Zn(n[0],i,r),Zn(n[1],i,r)]:Zn(n,i,r),e.rotationX=Zn(e.rotationX,s,o),(l<-180||l>180)&&(e.rotationOrbit=mm(l+180,360)-180),e}},Om=class extends tc{constructor(){super(...arguments),this.ControllerState=P1,this.transition={transitionDuration:300,transitionInterpolator:new bl({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})}}};var mO=class extends ec{constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}get ViewportType(){return Mm}get ControllerType(){return Om}},R1=mO;(()=>{mO.displayName="OrbitView"})();var gO=class extends P1{constructor(e){super(e),this.zoomAxis=e.zoomAxis||"all"}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:i,minZoom:n}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=Math.log2(e);if(Array.isArray(r)){let[s,l]=r;switch(this.zoomAxis){case"X":s=Zn(s+o,n,i);break;case"Y":l=Zn(l+o,n,i);break;default:let u=Math.min(s+o,l+o);u<n&&(o+=n-u),u=Math.max(s+o,l+o),u>i&&(o+=i-u),s+=o,l+=o}return[s,l]}return Zn(r+o,n,i)}},Dm=class extends tc{constructor(){super(...arguments),this.ControllerState=gO,this.transition={transitionDuration:300,transitionInterpolator:new bl(["target","zoom"])},this.dragMode="pan"}_onPanRotate(){return!1}};var _O=class extends ec{get ViewportType(){return Im}get ControllerType(){return Dm}},B1=_O;(()=>{_O.displayName="OrthographicView"})();var yO=class extends a1{applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n}=e;e.zoom=Zn(n,i,r);let{longitude:o,latitude:s}=e;return(o<-180||o>180)&&(e.longitude=mm(o+180,360)-180),e.latitude=Zn(s,-89,89),e}},Lm=class extends tc{constructor(){super(...arguments),this.ControllerState=yO,this.transition={transitionDuration:300,transitionInterpolator:new bl(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(e){super.setProps(e),this.dragRotate=!1,this.touchRotate=!1}};var vO=class extends ec{get ViewportType(){return Dd}get ControllerType(){return Lm}},O1=vO;(()=>{vO.displayName="GlobeView"})();var zE=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&&Ls(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){let{defaultProps:r}=e.constructor,i={updateTriggers:{}};for(let n in r)if(n in this.props){let o=r[n],s=this.props[n];i[n]=s,o&&o.type==="accessor"&&(i.updateTriggers[n]=this.props.updateTriggers[n],typeof s=="function"&&(i[n]=this.getSubLayerAccessor(s)))}return i}initializeState(e,r){}updateState(e,r){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,r){}finalizeState(e,r){}},Fm=zE;(()=>{zE.defaultProps={}})(),(()=>{zE.extensionName="LayerExtension"})();var xO={bearing:0,pitch:0,position:[0,0,0]},Vfe={speed:1.2,curve:1.414},D1=class extends Id{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={...Vfe,...e}}interpolateProps(e,r,i){let n=GB(e,r,i,this.opts);for(let o in xO)n[o]=Oa(e[o]||xO[o],r[o]||xO[o],i);return n}getDuration(e,r){let{transitionDuration:i}=r;return i==="auto"&&(i=WB(e,r,this.opts)),i}};var Ld=class{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;let{attributes:r={}}=e;this.typedArrayManager=wh,this.attributes={},this._attributeDefs=r,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);let{data:r,buffers:i={},getGeometry:n,geometryBuffer:o,positionFormat:s,dataChanged:l,normalize:u=!0}=this.opts;if(this.data=r,this.getGeometry=n,this.positionSize=o&&o.size||(s==="XY"?2:3),this.buffers=i,this.normalize=u,o&&(os(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(o),u||(i.vertexPositions=o)),this.geometryBuffer=i.vertexPositions,Array.isArray(l))for(let f of l)this._rebuildGeometry(f);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)?CE(r,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,r){let{attributes:i,buffers:n,_attributeDefs:o,typedArrayManager:s}=this;for(let l in o)if(l in n)s.release(i[l]),i[l]=null;else{let u=o[l];u.copy=r,i[l]=s.allocate(i[l],e,u)}}_forEachGeometry(e,r,i){let{data:n,getGeometry:o}=this,{iterable:s,objectInfo:l}=Js(n,r,i);for(let u of s){l.index++;let f=o?o(u,l):null;e(f,l.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:r,vertexStarts:i,instanceCount:n}=this,{data:o,geometryBuffer:s}=this,{startRow:l=0,endRow:u=1/0}=e||{},f={};if(e||(r=[0],i=[0]),this.normalize||!s)this._forEachGeometry((T,E)=>{let M=T&&this.normalizeGeometry(T);f[E]=M,i[E+1]=i[E]+(M?this.getGeometrySize(M):0)},l,u),n=i[i.length-1];else if(i=o.startIndices,n=i[o.length]||0,ArrayBuffer.isView(s))n=n||s.length/this.positionSize;else if(s instanceof Xi){let T=this.positionSize*4;n=n||s.byteLength/T}else if(s.buffer){let T=s.stride||this.positionSize*4;n=n||s.buffer.byteLength/T}else if(s.value){let T=s.value,E=s.stride/T.BYTES_PER_ELEMENT||this.positionSize;n=n||T.length/E}this._allocate(n,Boolean(e)),this.indexStarts=r,this.vertexStarts=i,this.instanceCount=n;let v={};this._forEachGeometry((T,E)=>{let M=f[E]||T;v.vertexStart=i[E],v.indexStart=r[E];let O=E<i.length-1?i[E+1]:n;v.geometrySize=O-i[E],v.geometryIndex=E,this.updateGeometryAttributes(M,v)},l,u),this.vertexCount=r[r.length-1]}};var bO=85.05113;function TO(t,e,r,i){if(r){if(r.userData._googleMap===t)return r;VE(r)}let n={click:null,rightclick:null,dblclick:null,mousemove:null,mouseout:null},o=new Bd({...i,useDevicePixels:i.interleaved?!0:i.useDevicePixels,style:i.interleaved?null:{pointerEvents:"none"},parent:jfe(e,i.style),views:new Rd({repeat:!0}),initialViewState:{longitude:0,latitude:0,zoom:1},controller:!1});for(let s in n)n[s]=t.addListener(s,l=>Gfe(o,s,l));return o.userData._googleMap=t,o.userData._eventListeners=n,o}function jfe(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 VE(t){let{_eventListeners:e}=t.userData;for(let r in e)e[r]&&e[r].remove();t.finalize()}function O9(t,e){let{width:r,height:i}=D9(t),n=e.getProjection(),o=t.getBounds();if(!o)return{width:r,height:i,left:0,top:0};let s=o.getNorthEast(),l=o.getSouthWest(),u=n.fromLatLngToDivPixel(s),f=n.fromLatLngToDivPixel(l),v=wO(n,r/2,i/2),T=new google.maps.LatLng(0,v[0]),E=n.fromLatLngToContainerPixel(T),M=n.fromLatLngToDivPixel(T);if(!u||!f||!M||!E)return{width:r,height:i,left:0,top:0};let O=Math.round(M.x-E.x),F=M.y-E.y,U=wO(n,r/2,0),G=wO(n,r/2,i),J=v[1],K=v[0];if(Math.abs(J)>bO){J=J>0?bO:-bO;let $=new google.maps.LatLng(J,K),Z=n.fromLatLngToContainerPixel($);F+=Z.y-i/2}F=Math.round(F);let ge=180*new _h(U).sub(G).verticalAngle()/Math.PI;ge<0&&(ge+=360);let H=t.getHeading()||0,me=t.getZoom()-1,he;if(ge===0)he=i?(f.y-u.y)/i:1;else if(ge===H){let $=new _h([u.x,u.y]).sub([f.x,f.y]).len(),Z=new _h([r,-i]).len();he=Z?$/Z:1}return me+=Math.log2(he||1),{width:r,height:i,left:O,top:F,zoom:me,bearing:ge,pitch:t.getTilt(),latitude:J,longitude:K}}function EO(t,e){let{width:r,height:i}=D9(t),{center:n,heading:o,tilt:s,zoom:l}=e.getCameraParams(),u=25,f=i?r/i:1,v=.75,T=3e14,E=new Yr().perspective({fovy:u*Math.PI/180,aspect:f,near:v,far:T}),M=.5*E[5];return{width:r,height:i,viewState:{altitude:M,bearing:o,latitude:n.lat(),longitude:n.lng(),pitch:s,projectionMatrix:E,repeat:!0,zoom:l-1}}}function D9(t){let e=t.getDiv().firstChild;return{width:e.offsetWidth,height:e.offsetHeight}}function wO(t,e,r){let i=new google.maps.Point(e,r),n=t.fromContainerPixelToLatLng(i);return[n.lng(),n.lat()]}function Hfe(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 Gfe(t,e,r){if(!t.isInitialized)return;let i={type:e,offsetCenter:Hfe(r,t),srcEvent:r};switch(e){case"click":case"rightclick":i.type="click",i.tapCount=1,t._onPointerDown(i),t._onEvent(i);break;case"dblclick":i.type="click",i.tapCount=2,t._onEvent(i);break;case"mousemove":i.type="pointermove",t._onPointerMove(i);break;case"mouseout":i.type="pointerleave",t._onPointerMove(i);break;default:return}}var Wfe=()=>!1,qfe={depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],blendEquation:32774};function L9(){}var Xfe={interleaved:!0},Nm=class{constructor(e){this.props={},this._map=null,this._deck=null,this._overlay=null,this.setProps({...Xfe,...e})}setMap(e){if(e===this._map)return;let{VECTOR:r,UNINITIALIZED:i}=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()!==i?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 i=r.parentElement.style;Object.assign(i,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&&(VE(this._deck),this._deck=null)}_createOverlay(e){let{interleaved:r}=this.props,{VECTOR:i,UNINITIALIZED:n}=google.maps.RenderingType,o=e.getRenderingType();if(o===n)return;let l=o===i&&google.maps.WebGLOverlayView?google.maps.WebGLOverlayView:google.maps.OverlayView,u=new l;u instanceof google.maps.WebGLOverlayView?(r?(u.onAdd=L9,u.onContextRestored=this._onContextRestored.bind(this),u.onDraw=this._onDrawVectorInterleaved.bind(this)):(u.onAdd=this._onAdd.bind(this),u.onContextRestored=L9,u.onDraw=this._onDrawVectorOverlay.bind(this)),u.onContextLost=this._onContextLost.bind(this)):(u.onAdd=this._onAdd.bind(this),u.draw=this._onDrawRaster.bind(this)),u.onRemove=this._onRemove.bind(this),this._overlay=u,this._overlay.setMap(e)}_onAdd(){this._deck=TO(this._map,this._overlay,this._deck,this.props)}_onContextRestored({gl:e}){if(!this._map||!this._overlay)return;let r=()=>{this._overlay&&this._overlay.requestRedraw()},i=TO(this._map,this._overlay,this._deck,{gl:e,_customRender:r,...this.props});this._deck=i;let n=i.animationLoop;n._renderFrame=()=>{let o=e.getParameter(34964);i.device.withParametersWebGL({},()=>{n.props.onRender(n.animationProps)}),e.bindBuffer(34962,o)}}_onContextLost(){this._deck&&(VE(this._deck),this._deck=null)}_onRemove(){this._deck?.setProps({layerFilter:Wfe})}_onDrawRaster(){if(!this._deck||!this._map)return;let e=this._deck,{width:r,height:i,left:n,top:o,...s}=O9(this._map,this._overlay),l=e.getCanvas();if(l?.parentElement){let f=l.parentElement.style;f.left=`${n}px`,f.top=`${o}px`}let u=1e4;e.setProps({width:r,height:i,viewState:{altitude:u,...s}}),e.redraw()}_onDrawVectorInterleaved({gl:e,transformer:r}){if(!this._deck||!this._map)return;let i=this._deck;if(i.setProps({...EO(this._map,r),width:null,height:null}),i.isInitialized){let n=i.device,o=n.getParametersWebGL(36006);i.setProps({_framebuffer:o}),n.getCanvasContext().resize(),i.needsRedraw({clearRedrawFlags:!0}),n.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]}),n.withParametersWebGL(qfe,()=>{i._drawLayers("google-vector",{clearCanvas:!1})})}}_onDrawVectorOverlay({transformer:e}){if(!this._deck||!this._map)return;let r=this._deck;r.setProps({...EO(this._map,e)}),r.redraw()}};function F9({container:t,onClick:e,onComplete:r,getTooltip:i,googleMapsKey:n,layers:o,mapStyle:s="satellite",initialViewState:l={latitude:0,longitude:0,zoom:1}}){if(!n)return ur.warn("No Google Maps API key set")(),null;let u=new Nm({layers:o}),f={center:{lat:l.latitude,lng:l.longitude},mapTypeId:s,zoom:l.zoom},v=new window.google.maps.Map(t,f);return u.setMap(v),u}var N9={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 SO=class{constructor({container:e,props:r}){let{description:i}=r,n=document.createElement("div");n.className="deck-json-description-box",Object.assign(n.style,N9),this.el=n;let o=document.createElement("div");o.innerHTML=i,n.appendChild(o),e.append(n)}remove(){this.el.remove(),this.description=null}static get stringName(){return"description"}},k9=SO;function CO(t,e){let r=document.createElement("div");r.className="deckgl-ui-elements-overlay",r.style.zIndex=1,t.insertAdjacentElement("beforebegin",r);let i=[];for(let n of Object.keys(e))switch(n){case"description":let o=new k9({container:r,props:e});i.push(o);break;default:break}return i}var rw={};As(rw,{AGGREGATION_OPERATION:()=>Wo,AmbientLight:()=>l_,ArcLayer:()=>km,Attribute:()=>Od,AttributeManager:()=>Ih,BitmapLayer:()=>Um,COORDINATE_SYSTEM:()=>Kr,CPUGridLayer:()=>Qp,ColumnLayer:()=>Ph,CompositeLayer:()=>es,ContourLayer:()=>ab,Controller:()=>tc,Deck:()=>Bd,DeckRenderer:()=>bm,DirectionalLight:()=>wd,FirstPersonController:()=>Bm,FirstPersonView:()=>I1,FirstPersonViewport:()=>Pm,FlyToInterpolator:()=>D1,GPUGridLayer:()=>$p,GeoJsonLayer:()=>Df,GeohashLayer:()=>$b,GoogleMapsOverlay:()=>Nm,GreatCircleLayer:()=>mb,GridCellLayer:()=>Wm,GridLayer:()=>cb,H3ClusterLayer:()=>Sb,H3HexagonLayer:()=>sg,HeatmapLayer:()=>hb,HexagonLayer:()=>ob,IconLayer:()=>Fd,JSONConfiguration:()=>Kd,JSONConverter:()=>wg,Layer:()=>Dn,LayerExtension:()=>Fm,LayerManager:()=>ym,LightingEffect:()=>Vp,LineLayer:()=>zm,LinearInterpolator:()=>bl,MVTLayer:()=>Qb,MapController:()=>xm,MapView:()=>Rd,OPERATION:()=>iV,OrbitController:()=>Om,OrbitView:()=>R1,OrbitViewport:()=>Mm,OrthographicController:()=>Dm,OrthographicView:()=>B1,OrthographicViewport:()=>Im,PathLayer:()=>Rh,PointCloudLayer:()=>Vm,PointLight:()=>h_,PolygonLayer:()=>Oh,PostProcessEffect:()=>t1,QuadkeyLayer:()=>yb,S2Layer:()=>_b,ScatterplotLayer:()=>jm,ScenegraphLayer:()=>ug,ScreenGridLayer:()=>nb,SimpleMeshLayer:()=>kf,SolidPolygonLayer:()=>Bh,TRANSITION_EVENTS:()=>o1,TerrainLayer:()=>Wb,Tesselator:()=>Ld,TextLayer:()=>Zm,Tile3DLayer:()=>Vb,TileLayer:()=>Nf,TransitionInterpolator:()=>Id,Transport:()=>jf,TripsLayer:()=>wb,UNIT:()=>ms,VERSION:()=>ST,View:()=>ec,Viewport:()=>xl,WebMercatorViewport:()=>Sc,_AggregationLayer:()=>ru,_BinSorter:()=>Nd,_CPUAggregator:()=>Ud,_CameraLight:()=>Xx,_Component:()=>Sm,_ComponentState:()=>Cm,_GPUGridAggregator:()=>Fa,_GeoCellLayer:()=>iu,_GlobeController:()=>Lm,_GlobeView:()=>O1,_GlobeViewport:()=>Dd,_LayersPass:()=>bh,_MultiIconLayer:()=>Xm,_PickLayersPass:()=>Ed,_SunLight:()=>Yx,_TextBackgroundLayer:()=>Km,_Tile2DHeader:()=>rg,_Tileset2D:()=>ig,_WMSLayer:()=>GS,_compareProps:()=>__,_convertFunctions:()=>my,_count:()=>DE,_deepEqual:()=>Ls,_fillArray:()=>vE,_flatten:()=>Bf,_getURLFromTemplate:()=>Ff,_memoize:()=>zu,_mergeShaders:()=>Em,_parseExpressionString:()=>bg,_shallowEqualObjects:()=>zY,assert:()=>os,createIterable:()=>Js,fp64LowPart:()=>jp,getShaderAssembler:()=>a_,gouraudLighting:()=>Uu,log:()=>ur,phongLighting:()=>kp,picking:()=>go,project:()=>Up,project32:()=>no,shadow:()=>s_});var U9=`#version 300 es
|
|
1771
|
+
}`;function Jhe(t,e){let r=IE(e.size),i=PE(e.size);return new Th(t,{vs:Khe,fs:Zhe,bufferLayout:[{name:"aPrev",format:i},{name:"aCur",format:i},{name:"aTo",format:e.getBufferLayout().attributes[0].format}],varyings:["vNext"],defines:{ATTRIBUTE_TYPE:r},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}function Qhe(t){return t.createTexture({data:new Uint8Array(4),format:"rgba8unorm",mipmaps:!1,width:1,height:1})}function $he(t,e){return t.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[e]})}var efe={interpolation:v1,spring:x1},b1=class{constructor(e,{id:r,timeline:i}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=r,this.device=e,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(let e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:r,numInstances:i}){this.numInstances=i||1;for(let n in e){let o=e[n],s=o.getTransitionSetting(r);s&&this._updateAttribute(n,o,s)}for(let n in this.transitions){let o=e[n];(!o||!o.getTransitionSetting(r))&&this._removeTransition(n)}}hasAttribute(e){let r=this.transitions[e];return r&&r.inProgress}getAttributes(){let e={};for(let r in this.transitions){let i=this.transitions[r];i.inProgress&&(e[r]=i.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,i){let n=this.transitions[e],o=!n||n.type!==i.type;if(o){n&&this._removeTransition(e);let s=efe[i.type];s?this.transitions[e]=new s({attribute:r,timeline:this.timeline,device:this.device}):(ur.error(`unsupported transition type '${i.type}'`)(),o=!1)}(o||r.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(i,this.numInstances))}};var _9="attributeManager.invalidate",tfe="attributeManager.updateStart",rfe="attributeManager.updateEnd",ife="attribute.updateStart",nfe="attribute.allocate",ofe="attribute.updateEnd",Ih=class{constructor(e,{id:r="attribute-manager",stats:i,timeline:n}={}){this.mergeBoundsMemoized=zu(bV),this.id=r,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new b1(e,{id:`${r}-transitions`,timeline:n}),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,{instanced:1})}remove(e){for(let r of e)this.attributes[r]!==void 0&&(this.attributes[r].delete(),delete this.attributes[r])}invalidate(e,r){let i=this._invalidateTrigger(e,r);Ks(_9,this,e,i)}invalidateAll(e){for(let r in this.attributes)this.attributes[r].setNeedsUpdate(r,e);Ks(_9,this,"all")}update({data:e,numInstances:r,startIndices:i=null,transitions:n,props:o={},buffers:s={},context:l={}}){let u=!1;Ks(tfe,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(let f in this.attributes){let v=this.attributes[f],T=v.settings.accessor;v.startIndices=i,v.numInstances=r,o[f]&&ur.removed(`props.${f}`,`data.attributes.${f}`)(),v.setExternalBuffer(s[f])||v.setBinaryValue(typeof T=="string"?s[T]:void 0,e.startIndices)||typeof T=="string"&&!s[T]&&v.setConstantValue(o[T])||v.needsUpdate()&&(u=!0,this._updateAttribute({attribute:v,numInstances:r,data:e,props:o,context:l})),this.needsRedraw=this.needsRedraw||v.needsRedraw()}u&&Ks(rfe,this,r),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:r,transitions:n})}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(i=>this.attributes[i]?.getBounds());return this.mergeBoundsMemoized(r)}getChangedAttributes(e={clearChangedFlags:!1}){let{attributes:r,attributeTransitionManager:i}=this,n={...i.getAttributes()};for(let o in r){let s=r[o];s.needsRedraw(e)&&!i.hasAttribute(o)&&(n[o]=s)}return n}getBufferLayouts(e,r={}){e||(e=this.getAttributes());let i=[];for(let n in e)r[n]||i.push(e[n].getBufferLayout());return i}_add(e,r={}){for(let i in e){let n=e[i];this.attributes[i]=this._createAttribute(i,n,r)}this._mapUpdateTriggersToAttributes()}_createAttribute(e,r,i){let n={...r,id:e,size:r.isIndexed&&1||r.size||1,divisor:i.instanced?1:r.divisor||0};return new Od(this.device,n)}_mapUpdateTriggersToAttributes(){let e={};for(let r in this.attributes)this.attributes[r].getUpdateTriggers().forEach(n=>{e[n]||(e[n]=[]),e[n].push(r)});this.updateTriggers=e}_invalidateTrigger(e,r){let{attributes:i,updateTriggers:n}=this,o=n[e];return o&&o.forEach(s=>{let l=i[s];l&&l.setNeedsUpdate(l.id,r)}),o}_updateAttribute(e){let{attribute:r,numInstances:i}=e;if(Ks(ife,r),r.constant){r.setConstantValue(r.value);return}r.allocate(i)&&Ks(nfe,r,i),r.updateBuffer(e)&&(this.needsRedraw=!0,Ks(ofe,r,i))}};var w1=class extends Sh{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:r,toValue:i,duration:n,easing:o}}=this,s=o(e/n);this._value=Oa(r,i,s)}};var y9=1e-5;function v9(t,e,r,i,n){let o=e-t,l=(r-e)*n,u=-o*i;return l+u+o+e}function sfe(t,e,r,i,n){if(Array.isArray(r)){let o=[];for(let s=0;s<r.length;s++)o[s]=v9(t[s],e[s],r[s],i,n);return o}return v9(t,e,r,i,n)}function x9(t,e){if(Array.isArray(t)){let r=0;for(let i=0;i<t.length;i++){let n=t[i]-e[i];r+=n*n}return Math.sqrt(r)}return Math.abs(t-e)}var T1=class extends Sh{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:r,damping:i,stiffness:n}=this.settings,{_prevValue:o=e,_currValue:s=e}=this,l=sfe(o,s,r,i,n),u=x9(l,r),f=x9(l,s);u<y9&&f<y9&&(l=r,this.end()),this._prevValue=s,this._currValue=l}};var afe={interpolation:w1,spring:T1},E1=class{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,r,i,n){let{transitions:o}=this;if(o.has(e)){let u=o.get(e),{value:f=u.settings.fromValue}=u;r=f,this.remove(e)}if(n=ME(n),!n)return;let s=afe[n.type];if(!s){ur.error(`unsupported transition type '${n.type}'`)();return}let l=new s(this.timeline);l.start({...n,fromValue:r,toValue:i}),o.set(e,l)}remove(e){let{transitions:r}=this;r.has(e)&&(r.get(e).cancel(),r.delete(e))}update(){let e={};for(let[r,i]of this.transitions)i.update(),e[r]=i.value,i.inProgress||this.remove(r);return e}clear(){for(let e of this.transitions.keys())this.remove(e)}};function w9(t){let e=t[Gu];for(let r in e){let i=e[r],{validate:n}=i;if(n&&!n(t[r],i))throw new Error(`Invalid prop ${r}: ${t[r]}`)}}function T9(t,e){let r=__({newProps:t,oldProps:e,propTypes:t[Gu],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=cfe(t,e),n=!1;return i||(n=ufe(t,e)),{dataChanged:i,propsChanged:r,updateTriggersChanged:n,extensionsChanged:hfe(t,e),transitionsChanged:lfe(t,e)}}function lfe(t,e){if(!t.transitions)return!1;let r={},i=t[Gu],n=!1;for(let o in t.transitions){let s=i[o],l=s&&s.type;(l==="number"||l==="color"||l==="array")&&aO(t[o],e[o],s)&&(r[o]=!0,n=!0)}return n?r:!1}function __({newProps:t,oldProps:e,ignoreProps:r={},propTypes:i={},triggerName:n="props"}){if(e===t)return!1;if(typeof t!="object"||t===null)return`${n} changed shallowly`;if(typeof e!="object"||e===null)return`${n} changed shallowly`;for(let o of Object.keys(t))if(!(o in r)){if(!(o in e))return`${n}.${o} added`;let s=aO(t[o],e[o],i[o]);if(s)return`${n}.${o} ${s}`}for(let o of Object.keys(e))if(!(o in r)){if(!(o in t))return`${n}.${o} dropped`;if(!Object.hasOwnProperty.call(t,o)){let s=aO(t[o],e[o],i[o]);if(s)return`${n}.${o} ${s}`}}return!1}function aO(t,e,r){let i=r&&r.equal;return i&&!i(t,e,r)||!i&&(i=t&&e&&t.equals,i&&!i.call(t,e))?"changed deeply":!i&&e!==t?"changed shallowly":null}function cfe(t,e){if(e===null)return"oldProps is null, initial diff";let r=!1,{dataComparator:i,_dataDiff:n}=t;return i?i(t.data,e.data)||(r="Data comparator detected a change"):t.data!==e.data&&(r="A new data container was supplied"),r&&n&&(r=n(t.data,e.data)||r),r}function ufe(t,e){if(e===null)return{all:!0};if("all"in t.updateTriggers&&b9(t,e,"all"))return{all:!0};let r={},i=!1;for(let n in t.updateTriggers)n!=="all"&&b9(t,e,n)&&(r[n]=!0,i=!0);return i?r:!1}function hfe(t,e){if(e===null)return!0;let r=e.extensions,{extensions:i}=t;if(i===r)return!1;if(!r||!i||i.length!==r.length)return!0;for(let n=0;n<i.length;n++)if(!i[n].equals(r[n]))return!0;return!1}function b9(t,e,r){let i=t.updateTriggers[r];i=i??{};let n=e.updateTriggers[r];return n=n??{},__({oldProps:n,newProps:i,triggerName:r})}var ffe="count(): argument not an object",dfe="count(): argument not a container";function DE(t){if(!Afe(t))throw new Error(ffe);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(pfe(t))return Object.keys(t).length;throw new Error(dfe)}function pfe(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function Afe(t){return t!==null&&typeof t=="object"}function Em(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(i=>i.name==="project64"))){let i=r.modules.findIndex(n=>n.name==="project32");i>=0&&r.modules.splice(i,1)}if("inject"in e)if(!t.inject)r.inject=e.inject;else{let i={...t.inject};for(let n in e.inject)i[n]=(i[n]||"")+e.inject[n];r.inject=i}return r}var mfe={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},lO={};function E9(t,e,r,i){if(r instanceof bo)return r;r.constructor&&r.constructor.name!=="Object"&&(r={data:r});let n=null;r.compressed&&(n={minFilter:"linear",mipmapFilter:r.data.length>1?"nearest":"linear"});let o=e.createTexture({...r,sampler:{...mfe,...n,...i}});return lO[o.id]=t,o}function S9(t,e){!e||!(e instanceof bo)||lO[e.id]===t&&(e.delete(),delete lO[e.id])}var gfe={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||cO(t)&&(t.length===3||t.length===4)},equal(t,e,r){return Ls(t,e,1)}},accessor:{validate(t,e){let r=LE(t);return r==="function"||r===LE(e.value)},equal(t,e,r){return typeof e=="function"?!0:Ls(t,e,1)}},array:{validate(t,e){return e.optional&&!t||cO(t)},equal(t,e,r){let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?Ls(t,e,n):t===e}},object:{equal(t,e,r){if(r.ignore)return!0;let{compare:i}=r,n=Number.isInteger(i)?i:i?1:0;return i?Ls(t,e,n):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:i}=r.props;return i?i(t):typeof t.shape=="string"&&t.shape.endsWith("-table")&&Array.isArray(t.data)?t.data:t}},image:{transform:(t,e,r)=>{let i=r.context;return!i||!i.device?null:E9(r.id,i.device,t,{...e.parameters,...r.props.textureParameters})},release:(t,e,r)=>{S9(r.id,t)}}};function C9(t){let e={},r={},i={};for(let[n,o]of Object.entries(t)){let s=o?.deprecatedFor;if(s)i[n]=Array.isArray(s)?s:[s];else{let l=_fe(n,o);e[n]=l,r[n]=l.value}}return{propTypes:e,defaultProps:r,deprecatedProps:i}}function _fe(t,e){switch(LE(e)){case"object":return S1(t,e);case"array":return S1(t,{type:"array",value:e,compare:!1});case"boolean":return S1(t,{type:"boolean",value:e});case"number":return S1(t,{type:"number",value:e});case"function":return S1(t,{type:"function",value:e,compare:!0});default:return{name:t,type:"unknown",value:e}}}function S1(t,e){return"type"in e?{name:t,...gfe[e.type],...e}:"value"in e?{name:t,type:LE(e.value),...e}:{name:t,type:"object",value:e}}function cO(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function LE(t){return cO(t)?"array":t===null?"null":typeof t}function M9(t,e){let r;for(let o=e.length-1;o>=0;o--){let s=e[o];"extensions"in s&&(r=s.extensions)}let i=uO(t.constructor,r),n=Object.create(i);n[d_]=t,n[Rf]={},n[Eh]={};for(let o=0;o<e.length;++o){let s=e[o];for(let l in s)n[l]=s[l]}return Object.freeze(n),n}var yfe="_mergedDefaultProps";function uO(t,e){let r=yfe;if(e)for(let n of e){let o=n.constructor;o&&(r+=`:${o.extensionName||o.name}`)}let i=I9(t,r);return i||(t[r]=vfe(t,e||[]))}function vfe(t,e){if(!t.prototype)return null;let i=Object.getPrototypeOf(t),n=uO(i),o=I9(t,"defaultProps")||{},s=C9(o),l=Object.assign(Object.create(null),n,s.defaultProps),u=Object.assign(Object.create(null),n?.[Gu],s.propTypes),f=Object.assign(Object.create(null),n?.[yE],s.deprecatedProps);for(let v of e){let T=uO(v.constructor);T&&(Object.assign(l,T),Object.assign(u,T[Gu]),Object.assign(f,T[yE]))}return xfe(l,t),wfe(l,u),bfe(l,f),l[Gu]=u,l[yE]=f,e.length===0&&!hO(t,"_propTypes")&&(t._propTypes=u),l}function xfe(t,e){let r=Efe(e);Object.defineProperties(t,{id:{writable:!0,value:r}})}function bfe(t,e){for(let r in e)Object.defineProperty(t,r,{enumerable:!1,set(i){let n=`${this.id}: ${r}`;for(let o of e[r])hO(this,o)||(this[o]=i);ur.deprecated(n,e[r].join("/"))()}})}function wfe(t,e){let r={},i={};for(let n in e){let o=e[n],{name:s,value:l}=o;o.async&&(r[s]=l,i[s]=Tfe(s))}t[Sd]=r,t[Rf]={},Object.defineProperties(t,i)}function Tfe(t){return{enumerable:!0,set(e){typeof e=="string"||e instanceof Promise||SE(e)?this[Rf][t]=e:this[Eh][t]=e},get(){if(this[Eh]){if(t in this[Eh])return this[Eh][t]||this[Sd][t];if(t in this[Rf]){let e=this[d_]&&this[d_].internalState;if(e&&e.hasAsyncProp(t))return e.getAsyncProp(t)||this[Sd][t]}}return this[Sd][t]}}}function hO(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function I9(t,e){return hO(t,e)&&t[e]}function Efe(t){let e=t.componentName;return e||ur.warn(`${t.name}.componentName not specified`)(),e||t.name}var Sfe=0,FE=class{constructor(...e){this.props=M9(this,e),this.id=this.props.id,this.count=Sfe++}clone(e){let{props:r}=this,i={};for(let n in r[Sd])n in r[Eh]?i[n]=r[Eh][n]:n in r[Rf]&&(i[n]=r[Rf][n]);return new this.constructor({...r,...i,...e})}},Sm=FE;(()=>{FE.componentName="Component"})(),(()=>{FE.defaultProps={}})();var Cfe=Object.freeze({}),Cm=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||Cfe}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[d_]||this.component;let r=e[Eh]||{},i=e[Rf]||e,n=e[Sd]||{};for(let o in r){let s=r[o];this._createAsyncPropData(o,n[o]),this._updateAsyncProp(o,s),r[o]=this.getAsyncProp(o)}for(let o in i){let s=i[o];this._createAsyncPropData(o,n[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(SE(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 i=this.asyncProps[e];return r===i.resolvedValue||r===i.lastValue?!1:(i.lastValue=r,!0)}_setPropValue(e,r){this._freezeAsyncOldProps();let i=this.asyncProps[e];i&&(r=this._postProcessValue(i,r),i.resolvedValue=r,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(e,r,i){let n=this.asyncProps[e];n&&i>=n.resolvedLoadCount&&r!==void 0&&(this._freezeAsyncOldProps(),n.resolvedValue=r,n.resolvedLoadCount=i,this.onAsyncPropUpdated(e,r))}_watchPromise(e,r){let i=this.asyncProps[e];if(i){i.pendingLoadCount++;let n=i.pendingLoadCount;r.then(o=>{this.component&&(o=this._postProcessValue(i,o),this._setAsyncPropValue(e,o,n),this._onResolve(e,o))}).catch(o=>{this._onError(e,o)})}}async _resolveAsyncIterable(e,r){if(e!=="data"){this._setPropValue(e,r);return}let i=this.asyncProps[e];if(!i)return;i.pendingLoadCount++;let n=i.pendingLoadCount,o=[],s=0;for await(let l of r){if(!this.component)return;let{dataTransform:u}=this.component.props;u?o=u(l,o):o=o.concat(l),Object.defineProperty(o,"__diff",{enumerable:!1,value:[{startRow:s,endRow:o.length}]}),s=o.length,this._setAsyncPropValue(e,o,n)}this._onResolve(e,o)}_postProcessValue(e,r){let i=e.type;return i&&this.component&&(i.release&&i.release(e.resolvedValue,i,this.component),i.transform)?i.transform(r,i,this.component):r}_createAsyncPropData(e,r){if(!this.asyncProps[e]){let n=this.component&&this.component.props[Gu];this.asyncProps[e]={type:n&&n[e],lastValue:null,resolvedValue:r,pendingLoadCount:0,resolvedLoadCount:0}}}};var C1=class extends Cm{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 i=this.layer,n=i?.props.fetch;return n?n(r,{propName:e,layer:i}):super._fetch(e,r)}_onResolve(e,r){let i=this.layer;if(i){let n=i.props.onDataLoad;e==="data"&&n&&n(r,{propName:e,layer:i})}}_onError(e,r){let i=this.layer;i&&i.raiseError(r,`loading ${e} of ${this.layer}`)}};var Mfe="layer.changeFlag",Ife="layer.initialize",Pfe="layer.update",Rfe="layer.finalize",Bfe="layer.matched",P9=2**24-1,Ofe=Object.freeze([]),Dfe=zu(({oldViewport:t,viewport:e})=>t.equals(e)),Of=new Uint8ClampedArray(0),Lfe={data:{type:"data",value:Ofe,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:i,loadOptions:n,signal:o})=>{let{resourceManager:s}=r.context;n=n||r.getLoadOptions(),i=i||r.props.loaders,o&&(n={...n,fetch:{...n?.fetch,signal:o}});let l=s.contains(t);return!l&&!n&&(s.add({resourceId:t,data:_a(t,i),persistent:!1}),l=!0),l?s.subscribe({resourceId:t,onChange:u=>r.internalState?.reloadAsyncProp(e,u),consumerId:r.id,requestId:e}):_a(t,i,n)}},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]}},NE=class extends Sm{constructor(){super(...arguments),this.internalState=null,this.lifecycle=Hp.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){os(this.internalState);let r=this.internalState.viewport||this.context.viewport,i=YB(e,{viewport:r,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,o,s]=o_(i,r.pixelProjectionMatrix);return e.length===2?[n,o]:[n,o,s]}unproject(e){return os(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,r){os(this.internalState);let i=this.internalState.viewport||this.context.viewport;return pE(e,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...r})}get isComposite(){return!1}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])||[]}setModuleParameters(e){for(let r of this.getModels())r.updateModuleSettings(e)}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){os(e instanceof Uint8Array);let[r,i,n]=e;return r+i*256+n*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:DE(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=Em(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(let r of this.props.extensions)e=Em(e,r.getShaders.call(this,r));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){let r=this.getAttributeManager(),{dataChanged:i}=e.changeFlags;if(i&&r)if(Array.isArray(i))for(let n of i)r.invalidateAll(n);else r.invalidateAll();if(r){let{props:n}=e,o=this.internalState.hasPickingBuffer,s=Number.isInteger(n.highlightedObjectIndex)||n.pickable||n.extensions.some(l=>l.getNeedsPickingBuffer.call(this,l));if(o!==s){this.internalState.hasPickingBuffer=s;let{pickingColors:l,instancePickingColors:u}=r.attributes,f=l||u;f&&(s&&f.constant&&(f.constant=!1,r.invalidate(f.id)),!f.value&&!s&&(f.constant=!0,f.value=[0,0,0]))}}}finalizeState(e){for(let i of this.getModels())i.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)}getPickingInfo({info:e,mode:r,sourceLayer:i}){let{index:n}=e;return n>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[n]),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||!Dfe({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 i in e)e[i].layoutChanged()&&(r=!0);for(let i of this.getModels())this._setModelAttributes(i,e,r)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let r=this.props,i=this.getNumInstances(),n=this.getStartIndices();e.update({data:r.data,numInstances:i,startIndices:n,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(),i=Object.create(this.props);for(let n in r)Object.defineProperty(i,n,{value:r[n]});return i}return this.props}calculateInstancePickingColors(e,{numInstances:r}){if(e.constant)return;let i=Math.floor(Of.length/4);if(this.internalState.usesPickingColorCache=!0,i<r){r>P9&&ur.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),Of=wh.allocate(Of,r,{size:4,copy:!0,maxCount:Math.max(r,P9)});let n=Math.floor(Of.length/4),o=[];for(let s=i;s<n;s++)this.encodePickingColor(s,o),Of[s*4+0]=o[0],Of[s*4+1]=o[1],Of[s*4+2]=o[2]}e.value=Of.subarray(0,r*4)}_setModelAttributes(e,r,i=!1){if(!Object.keys(r).length)return;if(i){let l=this.getAttributeManager();e.setBufferLayout(l.getBufferLayouts()),r=l.getAttributes()}let n=e.userData?.excludeAttributes||{},o={},s={};for(let l in r){if(n[l])continue;let u=r[l].getValue();for(let f in u){let v=u[f];v instanceof Xi?r[l].settings.isIndexed?e.setIndexBuffer(v):o[f]=v:v&&(s[f]=v)}}e.setAttributes(o),e.setConstantAttributes(s)}disablePickingIndex(e){let r=this.props.data;if(!("attributes"in r)){this._disablePickingIndex(e);return}let{pickingColors:i,instancePickingColors:n}=this.getAttributeManager().attributes,o=i||n,s=o&&r.attributes&&r.attributes[o.id];if(s&&s.value){let l=s.value,u=this.encodePickingColor(e);for(let f=0;f<r.length;f++){let v=o.getVertexOffset(f);l[v]===u[0]&&l[v+1]===u[1]&&l[v+2]===u[2]&&this._disablePickingIndex(f)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let{pickingColors:r,instancePickingColors:i}=this.getAttributeManager().attributes,n=r||i;if(!n)return;let o=n.getVertexOffset(e),s=n.getVertexOffset(e+1);n.buffer.write(new Uint8Array(s-o),o)}restorePickingColors(){let{pickingColors:e,instancePickingColors:r}=this.getAttributeManager().attributes,i=e||r;i&&(this.internalState.usesPickingColorCache&&i.value.buffer!==Of.buffer&&(i.value=Of.subarray(0,i.value.length)),i.updateSubBuffer({startOffset:0}))}_initialize(){os(!this.internalState),os(Number.isFinite(this.props.coordinateSystem)),Ks(Ife,this);let e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new C1({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(ur.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new E1(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){Ks(Bfe,this,this===e);let{state:r,internalState:i}=e;this!==e&&(this.internalState=i,this.state=r,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let e=this.needsUpdate();if(Ks(Pfe,this,e),!e)return;let r=this.props,i=this.context,n=this.internalState,o=i.viewport,s=this._updateUniformTransition();n.propsInTransition=s,i.viewport=n.viewport||o,this.props=s;try{let l=this._getUpdateParams(),u=this.getModels();if(i.device)this.updateState(l);else try{this.updateState(l)}catch{}for(let v of this.props.extensions)v.updateState.call(this,l,v);let f=this.getModels()[0]!==u[0];this._postUpdate(l,f)}finally{i.viewport=o,this.props=r,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){Ks(Rfe,this),this.finalizeState(this.context);for(let e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,moduleParameters:r=null,uniforms:i={},parameters:n={}}){this._updateAttributeTransition();let o=this.props,s=this.context;this.props=this.internalState.propsInTransition||o;let l=this.props.opacity;i.opacity=Math.pow(l,1/2.2);try{if(r){let{isActive:v,isAttribute:T}=r.picking;this.setModuleParameters(r),this.setShaderModuleProps({picking:{isActive:v,isAttribute:T}})}let{getPolygonOffset:u}=this.props,f=u&&u(i)||[0,0];s.device.setParametersWebGL({polygonOffset:f});for(let v of this.getModels())v.setParameters(n);s.device.withParametersWebGL(n,()=>{let v={renderPass:e,moduleParameters:r,uniforms:i,parameters:n,context:s};for(let T of this.props.extensions)T.draw.call(this,v,T);this.draw(v)})}finally{this.props=o}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;let{changeFlags:r}=this.internalState;for(let n in e)if(e[n]){let o=!1;switch(n){case"dataChanged":let s=e[n],l=r[n];s&&Array.isArray(l)&&(r.dataChanged=Array.isArray(s)?l.concat(s):s,o=!0);default:r[n]||(r[n]=e[n],o=!0)}o&&Ks(Mfe,this,n,e)}let i=Boolean(r.dataChanged||r.updateTriggersChanged||r.propsChanged||r.extensionsChanged);r.propsOrDataChanged=i,r.somethingChanged=i||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 i=T9(e,r);if(i.updateTriggersChanged)for(let n in i.updateTriggersChanged)i.updateTriggersChanged[n]&&this.invalidateAttribute(n);if(i.transitionsChanged)for(let n in i.transitionsChanged)this.internalState.uniformTransitions.add(n,r[n],e[n],e.transitions?.[n]);return this.setChangeFlags(i)}validateProps(){w9(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:i}=this.props;e.picked&&typeof i=="function"&&(r.highlightColor=i(e)),this.setShaderModuleProps({picking:r}),this.setNeedsRedraw()}_getAttributeManager(){let e=this.context;return new Ih(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,r){let{props:i,oldProps:n}=e;this.setNeedsRedraw(),this._updateAttributes(),this.state.model?.setInstanceCount(this.getNumInstances());let{autoHighlight:s,highlightedObjectIndex:l,highlightColor:u}=i;if(r||n.autoHighlight!==s||n.highlightedObjectIndex!==l||n.highlightColor!==u){let f={};s||(f.highlightedObjectColor=null),Array.isArray(u)&&(f.highlightColor=u),(r||l!==n.highlightedObjectIndex)&&(f.highlightedObjectColor=Number.isFinite(l)&&l>=0?this.encodePickingColor(l):null),this.setShaderModuleProps({picking:f})}}_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 i=this.getAttributeManager(),n=i?i.getNeedsRedraw(e):!1;if(r=r||n,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()}},Dn=NE;(()=>{NE.defaultProps=Lfe})(),(()=>{NE.layerName="Layer"})();var Ffe="compositeLayer.renderLayers",fO=class extends Dn{get isComposite(){return!0}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:i}=this.props;return i&&i[e]&&i[e].type||r}getSubLayerRow(e,r,i){return e.__source={parent:this,object:r,index:i},e}getSubLayerAccessor(e){if(typeof e=="function"){let r={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(r.index=i.__source.index,e(i.__source.object,r)):e(i,n)}return e}getSubLayerProps(e={}){let{opacity:r,pickable:i,visible:n,parameters:o,getPolygonOffset:s,highlightedObjectIndex:l,autoHighlight:u,highlightColor:f,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:E,positionFormat:M,modelMatrix:O,extensions:F,fetch:U,operation:G,_subLayerProps:J}=this.props,K={id:"",updateTriggers:{},opacity:r,pickable:i,visible:n,parameters:o,getPolygonOffset:s,highlightedObjectIndex:l,autoHighlight:u,highlightColor:f,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:E,positionFormat:M,modelMatrix:O,extensions:F,fetch:U,operation:G},ne=J&&e.id&&J[e.id],ge=ne&&ne.updateTriggers,H=e.id||"sublayer";if(ne){let me=this.props[Gu],he=e.type?e.type._propTypes:{};for(let $ in ne){let Z=he[$]||me[$];Z&&Z.type==="accessor"&&(ne[$]=this.getSubLayerAccessor(ne[$]))}}Object.assign(K,e,ne),K.id=`${this.props.id}-${H}`,K.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...ge};for(let me of F){let he=me.getSubLayerProps.call(this,me);he&&Object.assign(K,he,{updateTriggers:Object.assign(K.updateTriggers,he.updateTriggers)})}return K}_updateAutoHighlight(e){for(let r of this.getSubLayers())r.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,r){let i=this.internalState.subLayers,n=!i||this.needsUpdate();if(n){let o=this.renderLayers();i=Bf(o,Boolean),this.internalState.subLayers=i}Ks(Ffe,this,n,i);for(let o of i)o.parent=this}},es=fO;(()=>{fO.layerName="CompositeLayer"})();var kE=Math.PI/180,R9=180/Math.PI,UE=6370972,y_=256;function Nfe(){let t=y_/UE,e=Math.PI/180*y_;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 Dd=class extends xl{constructor(e={}){let{latitude:r=0,longitude:i=0,zoom:n=0,nearZMultiplier:o=.1,farZMultiplier:s=2,resolution:l=10}=e,{height:u,altitude:f=1.5}=e;u=u||1,f=Math.max(.75,f);let v=new Yr().lookAt({eye:[0,-f,0],up:[0,0,1]}),T=Math.pow(2,n);v.rotateX(r*kE),v.rotateZ(-i*kE),v.scale(T/u);let E=Math.atan(.5/f),M=y_*2*T/u;super({...e,height:u,viewMatrix:v,longitude:i,latitude:r,zoom:n,distanceScales:Nfe(),fovyRadians:E*2,focalDistance:f,near:o,far:Math.min(2,1/M+1)*f*s}),this.latitude=r,this.longitude=i,this.resolution=l}get projectionMode(){return Ll.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){let r={targetZ:e.z||0},i=this.unproject([0,this.height/2],r),n=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),i[0]>this.longitude&&(i[0]-=360),[Math.min(i[0],o[0],n[0],s[0]),Math.min(i[1],o[1],n[1],s[1]),Math.max(i[0],o[0],n[0],s[0]),Math.max(i[1],o[1],n[1],s[1])]}unproject(e,{topLeft:r=!0,targetZ:i}={}){let[n,o,s]=e,l=r?o:this.height-o,{pixelUnprojectionMatrix:u}=this,f;if(Number.isFinite(s))f=dO(u,[n,l,s,1]);else{let M=dO(u,[n,l,-1,1]),O=dO(u,[n,l,1,1]),F=((i||0)/UE+1)*y_,U=Da.sqrLen(Da.sub([],M,O)),G=Da.sqrLen(M),J=Da.sqrLen(O),ne=4*((4*G*J-(U-G-J)**2)/16)/U,ge=Math.sqrt(G-ne),H=Math.sqrt(Math.max(0,F*F-ne)),me=(ge-H)/Math.sqrt(U);f=Da.lerp([],M,O,me)}let[v,T,E]=this.unprojectPosition(f);return Number.isFinite(s)?[v,T,E]:Number.isFinite(i)?[v,T,i]:[v,T]}projectPosition(e){let[r,i,n=0]=e,o=r*kE,s=i*kE,l=Math.cos(s),u=(n/UE+1)*y_;return[Math.sin(o)*l*u,-Math.cos(o)*l*u,Math.sin(s)*u]}unprojectPosition(e){let[r,i,n]=e,o=Da.len(e),s=Math.asin(n/o),u=Math.atan2(r,-i)*R9,f=s*R9,v=(o/y_-1)*UE;return[u,f,v]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,r){let i=this.unproject(r);return{longitude:e[0]-i[0]+this.longitude,latitude:e[1]-i[1]+this.latitude}}};function dO(t,e){let r=$l.transformMat4([],e,t);return $l.scale(r,r,1/r[3]),r}var pO=Math.PI/180;function kfe({height:t,focalDistance:e,orbitAxis:r,rotationX:i,rotationOrbit:n,zoom:o}){let s=r==="Z"?[0,0,1]:[0,1,0],l=r==="Z"?[0,-e,0]:[0,0,e],u=new Yr().lookAt({eye:l,up:s});u.rotateX(i*pO),r==="Z"?u.rotateZ(n*pO):u.rotateY(n*pO);let f=Math.pow(2,o)/t;return u.scale(f),u}var Mm=class extends xl{constructor(e){let{height:r,projectionMatrix:i,fovy:n=50,orbitAxis:o="Z",target:s=[0,0,0],rotationX:l=0,rotationOrbit:u=0,zoom:f=0}=e,v=i?i[5]/2:pm(n);super({...e,longitude:void 0,viewMatrix:kfe({height:r||1,focalDistance:v,orbitAxis:o,rotationX:l,rotationOrbit:u,zoom:f}),fovy:n,focalDistance:v,position:s,zoom:f}),this.projectedCenter=this.project(this.center)}unproject(e,{topLeft:r=!0}={}){let[i,n,o=this.projectedCenter[2]]=e,s=r?n:this.height-n,[l,u,f]=ju([i,s,o],this.pixelUnprojectionMatrix);return[l,u,f]}panByPosition(e,r){let i=this.project(e),n=[this.width/2+i[0]-r[0],this.height/2+i[1]-r[1],this.projectedCenter[2]];return{target:this.unproject(n)}}};var Ufe=new Yr().lookAt({eye:[0,0,1]});function zfe({width:t,height:e,near:r,far:i,padding:n}){let o=-t/2,s=t/2,l=-e/2,u=e/2;if(n){let{left:f=0,right:v=0,top:T=0,bottom:E=0}=n,M=Zn((f+t-v)/2,0,t)-t/2,O=Zn((T+e-E)/2,0,e)-e/2;o-=M,s-=M,l+=O,u+=O}return new Yr().ortho({left:o,right:s,bottom:l,top:u,near:r,far:i})}var Im=class extends xl{constructor(e){let{width:r,height:i,near:n=.1,far:o=1e3,zoom:s=0,target:l=[0,0,0],padding:u=null,flipY:f=!0}=e,v=Array.isArray(s)?s[0]:s,T=Array.isArray(s)?s[1]:s,E=Math.min(v,T),M=Math.pow(2,E),O;if(v!==T){let F=Math.pow(2,v),U=Math.pow(2,T);O={unitsPerMeter:[F/M,U/M,1],metersPerUnit:[M/F,M/U,1]}}super({...e,longitude:void 0,position:l,viewMatrix:Ufe.clone().scale([M,M*(f?-1:1),M]),projectionMatrix:zfe({width:r||1,height:i||1,padding:u,near:n,far:o}),zoom:E,distanceScales:O})}projectFlat([e,r]){let{unitsPerMeter:i}=this.distanceScales;return[e*i[0],r*i[1]]}unprojectFlat([e,r]){let{metersPerUnit:i}=this.distanceScales;return[e*i[0],r*i[1]]}panByPosition(e,r){let i=ju(r,this.pixelUnprojectionMatrix),n=this.projectFlat(e),o=xa.add([],n,xa.negate([],i)),s=xa.add([],this.center,o);return{target:this.unprojectFlat(s)}}};var Pm=class extends xl{constructor(e){let{longitude:r,latitude:i,modelMatrix:n,bearing:o=0,pitch:s=0,up:l=[0,0,1]}=e,f=new yh({bearing:o,pitch:s===-90?1e-4:90+s}).toVector3().normalize(),v=n?new Yr(n).transformAsVector(f):f,T=Number.isFinite(i)?Vx({latitude:i}):0,E=Math.pow(2,T),M=new Yr().lookAt({eye:[0,0,0],center:v,up:l}).scale(E);super({...e,zoom:T,viewMatrix:M}),this.latitude=i,this.longitude=r}};var Rm=20,B9=500,M1=class extends Pd{constructor(e){let{width:r,height:i,position:n=[0,0,0],bearing:o=0,pitch:s=0,longitude:l=null,latitude:u=null,maxPitch:f=90,minPitch:v=-90,startRotatePos:T,startBearing:E,startPitch:M,startZoomPosition:O,startPanPos:F,startPanPosition:U}=e;super({width:r,height:i,position:n,bearing:o,pitch:s,longitude:l,latitude:u,maxPitch:f,minPitch:v},{startRotatePos:T,startBearing:E,startPitch:M,startZoomPosition:O,startPanPos:F,startPanPosition:U}),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:i=[0,0]}=this.getState(),{width:n,height:o,bearing:s,pitch:l}=this.getViewportProps(),u=B9*(e[0]-r[0])/n,f=B9*(e[1]-r[1])/o,v=new yh({bearing:s,pitch:l}),T=new yh({bearing:s,pitch:-90}),E=v.toVector3().normalize(),M=T.toVector3().cross(E).normalize();return this._getUpdatedState({position:new ot(i).add(M.scale(u)).add(E.scale(f))})}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:i=0}){let{startRotatePos:n,startBearing:o,startPitch:s}=this.getState(),{width:l,height:u}=this.getViewportProps();if(!n||o===void 0||s===void 0)return this;let f;if(e){let v=(e[0]-n[0])/l,T=(e[1]-n[1])/u;f={bearing:o-v*180,pitch:s-T*90}}else f={bearing:o-r,pitch:s-i};return this._getUpdatedState(f)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:e,scale:r}){let i=this.getViewportProps(),n=this.getState().startZoomPosition||i.position,o=this.makeViewport(i),{projectionMatrix:s,width:l}=o,f=2*Math.atan(1/s[0])*(e[0]/l-.5),v=this.getDirection(!0);return this._move(v.rotateZ({radians:-f}),Math.log2(r)*Rm,n)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(e=Rm){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:Math.PI/2}),e)}moveRight(e=Rm){let r=this.getDirection(!0);return this._move(r.rotateZ({radians:-Math.PI/2}),e)}moveUp(e=Rm){let r=this.getDirection(!0);return this._move(r,e)}moveDown(e=Rm){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=Rm){return this._move(new ot(0,0,1),e)}zoomOut(e=Rm){return this._move(new ot(0,0,-1),e)}shortestPathFrom(e){let r=e.getViewportProps(),i={...this.getViewportProps()},{bearing:n,longitude:o}=i;return Math.abs(n-r.bearing)>180&&(i.bearing=n<0?n+360:n-360),o!==null&&r.longitude!==null&&Math.abs(o-r.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}_move(e,r,i=this.getViewportProps().position){let n=e.scale(r);return this._getUpdatedState({position:new ot(i).add(n)})}getDirection(e=!1){return new yh({bearing:this.getViewportProps().bearing,pitch:e?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(e){return new M1({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{pitch:r,maxPitch:i,minPitch:n,longitude:o,bearing:s}=e;return e.pitch=Zn(r,n,i),o!==null&&(o<-180||o>180)&&(e.longitude=mm(o+180,360)-180),(s<-180||s>180)&&(e.bearing=mm(s+180,360)-180),e}},Bm=class extends tc{constructor(){super(...arguments),this.ControllerState=M1,this.transition={transitionDuration:300,transitionInterpolator:new bl(["position","pitch","bearing"])}}};var AO=class extends ec{constructor(e={}){super(e)}get ViewportType(){return Pm}get ControllerType(){return Bm}},I1=AO;(()=>{AO.displayName="FirstPersonView"})();var P1=class extends Pd{constructor(e){let{width:r,height:i,rotationX:n=0,rotationOrbit:o=0,target:s=[0,0,0],zoom:l=0,minRotationX:u=-90,maxRotationX:f=90,minZoom:v=-1/0,maxZoom:T=1/0,startPanPosition:E,startRotatePos:M,startRotationX:O,startRotationOrbit:F,startZoomPosition:U,startZoom:G}=e;super({width:r,height:i,rotationX:n,rotationOrbit:o,target:s,zoom:l,minRotationX:u,maxRotationX:f,minZoom:v,maxZoom:T},{startPanPosition:E,startRotatePos:M,startRotationX:O,startRotationOrbit:F,startZoomPosition:U,startZoom:G}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:r}){let i=this.getState().startPanPosition||r;if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,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:i=0}){let{startRotatePos:n,startRotationX:o,startRotationOrbit:s}=this.getState(),{width:l,height:u}=this.getViewportProps();if(!n||o===void 0||s===void 0)return this;let f;if(e){let v=(e[0]-n[0])/l,T=(e[1]-n[1])/u;(o<-90||o>90)&&(v*=-1),f={rotationX:o+T*180,rotationOrbit:s+v*180}}else f={rotationX:o+i,rotationOrbit:s+r};return this._getUpdatedState(f)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let r=e.getViewportProps(),i={...this.getViewportProps()},{rotationOrbit:n}=i;return Math.abs(n-r.rotationOrbit)>180&&(i.rotationOrbit=n<0?n+360:n-360),i}zoomStart({pos:e}){return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:r,scale:i}){let{startZoom:n,startZoomPosition:o}=this.getState();if(o||(n=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(e)),!o)return this;let s=this._calculateNewZoom({scale:i,startZoom:n}),l=this.makeViewport({...this.getViewportProps(),zoom:s});return this._getUpdatedState({zoom:s,...l.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:i,minZoom:n}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=r+Math.log2(e);return Zn(o,n,i)}_panFromCenter(e){let{width:r,height:i,target:n}=this.getViewportProps();return this.pan({startPosition:n,pos:[r/2+e[0],i/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n,maxRotationX:o,minRotationX:s,rotationOrbit:l}=e;return e.zoom=Array.isArray(n)?[Zn(n[0],i,r),Zn(n[1],i,r)]:Zn(n,i,r),e.rotationX=Zn(e.rotationX,s,o),(l<-180||l>180)&&(e.rotationOrbit=mm(l+180,360)-180),e}},Om=class extends tc{constructor(){super(...arguments),this.ControllerState=P1,this.transition={transitionDuration:300,transitionInterpolator:new bl({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})}}};var mO=class extends ec{constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}get ViewportType(){return Mm}get ControllerType(){return Om}},R1=mO;(()=>{mO.displayName="OrbitView"})();var gO=class extends P1{constructor(e){super(e),this.zoomAxis=e.zoomAxis||"all"}_calculateNewZoom({scale:e,startZoom:r}){let{maxZoom:i,minZoom:n}=this.getViewportProps();r===void 0&&(r=this.getViewportProps().zoom);let o=Math.log2(e);if(Array.isArray(r)){let[s,l]=r;switch(this.zoomAxis){case"X":s=Zn(s+o,n,i);break;case"Y":l=Zn(l+o,n,i);break;default:let u=Math.min(s+o,l+o);u<n&&(o+=n-u),u=Math.max(s+o,l+o),u>i&&(o+=i-u),s+=o,l+=o}return[s,l]}return Zn(r+o,n,i)}},Dm=class extends tc{constructor(){super(...arguments),this.ControllerState=gO,this.transition={transitionDuration:300,transitionInterpolator:new bl(["target","zoom"])},this.dragMode="pan"}_onPanRotate(){return!1}};var _O=class extends ec{constructor(e={}){super(e)}get ViewportType(){return Im}get ControllerType(){return Dm}},B1=_O;(()=>{_O.displayName="OrthographicView"})();var yO=class extends a1{applyConstraints(e){let{maxZoom:r,minZoom:i,zoom:n}=e;e.zoom=Zn(n,i,r);let{longitude:o,latitude:s}=e;return(o<-180||o>180)&&(e.longitude=mm(o+180,360)-180),e.latitude=Zn(s,-89,89),e}},Lm=class extends tc{constructor(){super(...arguments),this.ControllerState=yO,this.transition={transitionDuration:300,transitionInterpolator:new bl(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(e){super.setProps(e),this.dragRotate=!1,this.touchRotate=!1}};var vO=class extends ec{constructor(e={}){super(e)}get ViewportType(){return Dd}get ControllerType(){return Lm}},O1=vO;(()=>{vO.displayName="GlobeView"})();var zE=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&&Ls(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){let{defaultProps:r}=e.constructor,i={updateTriggers:{}};for(let n in r)if(n in this.props){let o=r[n],s=this.props[n];i[n]=s,o&&o.type==="accessor"&&(i.updateTriggers[n]=this.props.updateTriggers[n],typeof s=="function"&&(i[n]=this.getSubLayerAccessor(s)))}return i}initializeState(e,r){}updateState(e,r){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,r){}finalizeState(e,r){}},Fm=zE;(()=>{zE.defaultProps={}})(),(()=>{zE.extensionName="LayerExtension"})();var xO={bearing:0,pitch:0,position:[0,0,0]},Vfe={speed:1.2,curve:1.414},D1=class extends Id{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={...Vfe,...e}}interpolateProps(e,r,i){let n=GB(e,r,i,this.opts);for(let o in xO)n[o]=Oa(e[o]||xO[o],r[o]||xO[o],i);return n}getDuration(e,r){let{transitionDuration:i}=r;return i==="auto"&&(i=WB(e,r,this.opts)),i}};var Ld=class{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;let{attributes:r={}}=e;this.typedArrayManager=wh,this.attributes={},this._attributeDefs=r,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);let{data:r,buffers:i={},getGeometry:n,geometryBuffer:o,positionFormat:s,dataChanged:l,normalize:u=!0}=this.opts;if(this.data=r,this.getGeometry=n,this.positionSize=o&&o.size||(s==="XY"?2:3),this.buffers=i,this.normalize=u,o&&(os(r.startIndices),this.getGeometry=this.getGeometryFromBuffer(o),u||(i.vertexPositions=o)),this.geometryBuffer=i.vertexPositions,Array.isArray(l))for(let f of l)this._rebuildGeometry(f);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)?CE(r,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,r){let{attributes:i,buffers:n,_attributeDefs:o,typedArrayManager:s}=this;for(let l in o)if(l in n)s.release(i[l]),i[l]=null;else{let u=o[l];u.copy=r,i[l]=s.allocate(i[l],e,u)}}_forEachGeometry(e,r,i){let{data:n,getGeometry:o}=this,{iterable:s,objectInfo:l}=Js(n,r,i);for(let u of s){l.index++;let f=o?o(u,l):null;e(f,l.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:r,vertexStarts:i,instanceCount:n}=this,{data:o,geometryBuffer:s}=this,{startRow:l=0,endRow:u=1/0}=e||{},f={};if(e||(r=[0],i=[0]),this.normalize||!s)this._forEachGeometry((T,E)=>{let M=T&&this.normalizeGeometry(T);f[E]=M,i[E+1]=i[E]+(M?this.getGeometrySize(M):0)},l,u),n=i[i.length-1];else if(i=o.startIndices,n=i[o.length]||0,ArrayBuffer.isView(s))n=n||s.length/this.positionSize;else if(s instanceof Xi){let T=this.positionSize*4;n=n||s.byteLength/T}else if(s.buffer){let T=s.stride||this.positionSize*4;n=n||s.buffer.byteLength/T}else if(s.value){let T=s.value,E=s.stride/T.BYTES_PER_ELEMENT||this.positionSize;n=n||T.length/E}this._allocate(n,Boolean(e)),this.indexStarts=r,this.vertexStarts=i,this.instanceCount=n;let v={};this._forEachGeometry((T,E)=>{let M=f[E]||T;v.vertexStart=i[E],v.indexStart=r[E];let O=E<i.length-1?i[E+1]:n;v.geometrySize=O-i[E],v.geometryIndex=E,this.updateGeometryAttributes(M,v)},l,u),this.vertexCount=r[r.length-1]}};var bO=85.05113;function TO(t,e,r,i){if(r){if(r.userData._googleMap===t)return r;VE(r)}let n={click:null,rightclick:null,dblclick:null,mousemove:null,mouseout:null},o=new Bd({...i,useDevicePixels:i.interleaved?!0:i.useDevicePixels,style:i.interleaved?null:{pointerEvents:"none"},parent:jfe(e,i.style),views:new Rd({repeat:!0}),initialViewState:{longitude:0,latitude:0,zoom:1},controller:!1});for(let s in n)n[s]=t.addListener(s,l=>Gfe(o,s,l));return o.userData._googleMap=t,o.userData._eventListeners=n,o}function jfe(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 VE(t){let{_eventListeners:e}=t.userData;for(let r in e)e[r]&&e[r].remove();t.finalize()}function O9(t,e){let{width:r,height:i}=D9(t),n=e.getProjection(),o=t.getBounds();if(!o)return{width:r,height:i,left:0,top:0};let s=o.getNorthEast(),l=o.getSouthWest(),u=n.fromLatLngToDivPixel(s),f=n.fromLatLngToDivPixel(l),v=wO(n,r/2,i/2),T=new google.maps.LatLng(0,v[0]),E=n.fromLatLngToContainerPixel(T),M=n.fromLatLngToDivPixel(T);if(!u||!f||!M||!E)return{width:r,height:i,left:0,top:0};let O=Math.round(M.x-E.x),F=M.y-E.y,U=wO(n,r/2,0),G=wO(n,r/2,i),J=v[1],K=v[0];if(Math.abs(J)>bO){J=J>0?bO:-bO;let $=new google.maps.LatLng(J,K),Z=n.fromLatLngToContainerPixel($);F+=Z.y-i/2}F=Math.round(F);let ge=180*new _h(U).sub(G).verticalAngle()/Math.PI;ge<0&&(ge+=360);let H=t.getHeading()||0,me=t.getZoom()-1,he;if(ge===0)he=i?(f.y-u.y)/i:1;else if(ge===H){let $=new _h([u.x,u.y]).sub([f.x,f.y]).len(),Z=new _h([r,-i]).len();he=Z?$/Z:1}return me+=Math.log2(he||1),{width:r,height:i,left:O,top:F,zoom:me,bearing:ge,pitch:t.getTilt(),latitude:J,longitude:K}}function EO(t,e){let{width:r,height:i}=D9(t),{center:n,heading:o,tilt:s,zoom:l}=e.getCameraParams(),u=25,f=i?r/i:1,v=.75,T=3e14,E=new Yr().perspective({fovy:u*Math.PI/180,aspect:f,near:v,far:T}),M=.5*E[5];return{width:r,height:i,viewState:{altitude:M,bearing:o,latitude:n.lat(),longitude:n.lng(),pitch:s,projectionMatrix:E,repeat:!0,zoom:l-1}}}function D9(t){let e=t.getDiv().firstChild;return{width:e.offsetWidth,height:e.offsetHeight}}function wO(t,e,r){let i=new google.maps.Point(e,r),n=t.fromContainerPixelToLatLng(i);return[n.lng(),n.lat()]}function Hfe(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 Gfe(t,e,r){if(!t.isInitialized)return;let i={type:e,offsetCenter:Hfe(r,t),srcEvent:r};switch(e){case"click":case"rightclick":i.type="click",i.tapCount=1,t._onPointerDown(i),t._onEvent(i);break;case"dblclick":i.type="click",i.tapCount=2,t._onEvent(i);break;case"mousemove":i.type="pointermove",t._onPointerMove(i);break;case"mouseout":i.type="pointerleave",t._onPointerMove(i);break;default:return}}var Wfe=()=>!1,qfe={depthMask:!0,depthTest:!0,blend:!0,blendFunc:[770,771,1,771],blendEquation:32774};function L9(){}var Xfe={interleaved:!0},Nm=class{constructor(e){this.props={},this._map=null,this._deck=null,this._overlay=null,this.setProps({...Xfe,...e})}setMap(e){if(e===this._map)return;let{VECTOR:r,UNINITIALIZED:i}=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()!==i?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 i=r.parentElement.style;Object.assign(i,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&&(VE(this._deck),this._deck=null)}_createOverlay(e){let{interleaved:r}=this.props,{VECTOR:i,UNINITIALIZED:n}=google.maps.RenderingType,o=e.getRenderingType();if(o===n)return;let l=o===i&&google.maps.WebGLOverlayView?google.maps.WebGLOverlayView:google.maps.OverlayView,u=new l;u instanceof google.maps.WebGLOverlayView?(r?(u.onAdd=L9,u.onContextRestored=this._onContextRestored.bind(this),u.onDraw=this._onDrawVectorInterleaved.bind(this)):(u.onAdd=this._onAdd.bind(this),u.onContextRestored=L9,u.onDraw=this._onDrawVectorOverlay.bind(this)),u.onContextLost=this._onContextLost.bind(this)):(u.onAdd=this._onAdd.bind(this),u.draw=this._onDrawRaster.bind(this)),u.onRemove=this._onRemove.bind(this),this._overlay=u,this._overlay.setMap(e)}_onAdd(){this._deck=TO(this._map,this._overlay,this._deck,this.props)}_onContextRestored({gl:e}){if(!this._map||!this._overlay)return;let r=()=>{this._overlay&&this._overlay.requestRedraw()},i=TO(this._map,this._overlay,this._deck,{gl:e,_customRender:r,...this.props});this._deck=i;let n=i.animationLoop;n._renderFrame=()=>{let o=e.getParameter(34964);i.device.withParametersWebGL({},()=>{n.props.onRender(n.animationProps)}),e.bindBuffer(34962,o)}}_onContextLost(){this._deck&&(VE(this._deck),this._deck=null)}_onRemove(){this._deck?.setProps({layerFilter:Wfe})}_onDrawRaster(){if(!this._deck||!this._map)return;let e=this._deck,{width:r,height:i,left:n,top:o,...s}=O9(this._map,this._overlay),l=e.getCanvas();if(l?.parentElement){let f=l.parentElement.style;f.left=`${n}px`,f.top=`${o}px`}let u=1e4;e.setProps({width:r,height:i,viewState:{altitude:u,...s}}),e.redraw()}_onDrawVectorInterleaved({gl:e,transformer:r}){if(!this._deck||!this._map)return;let i=this._deck;if(i.setProps({...EO(this._map,r),width:null,height:null}),i.isInitialized){let n=i.device,o=n.getParametersWebGL(36006);i.setProps({_framebuffer:o}),n.getCanvasContext().resize(),i.needsRedraw({clearRedrawFlags:!0}),n.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]}),n.withParametersWebGL(qfe,()=>{i._drawLayers("google-vector",{clearCanvas:!1})})}}_onDrawVectorOverlay({transformer:e}){if(!this._deck||!this._map)return;let r=this._deck;r.setProps({...EO(this._map,e)}),r.redraw()}};function F9({container:t,onClick:e,onComplete:r,getTooltip:i,googleMapsKey:n,layers:o,mapStyle:s="satellite",initialViewState:l={latitude:0,longitude:0,zoom:1}}){if(!n)return ur.warn("No Google Maps API key set")(),null;let u=new Nm({layers:o}),f={center:{lat:l.latitude,lng:l.longitude},mapTypeId:s,zoom:l.zoom},v=new window.google.maps.Map(t,f);return u.setMap(v),u}var N9={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 SO=class{constructor({container:e,props:r}){let{description:i}=r,n=document.createElement("div");n.className="deck-json-description-box",Object.assign(n.style,N9),this.el=n;let o=document.createElement("div");o.innerHTML=i,n.appendChild(o),e.append(n)}remove(){this.el.remove(),this.description=null}static get stringName(){return"description"}},k9=SO;function CO(t,e){let r=document.createElement("div");r.className="deckgl-ui-elements-overlay",r.style.zIndex=1,t.insertAdjacentElement("beforebegin",r);let i=[];for(let n of Object.keys(e))switch(n){case"description":let o=new k9({container:r,props:e});i.push(o);break;default:break}return i}var rw={};As(rw,{AGGREGATION_OPERATION:()=>Wo,AmbientLight:()=>l_,ArcLayer:()=>km,Attribute:()=>Od,AttributeManager:()=>Ih,BitmapLayer:()=>Um,COORDINATE_SYSTEM:()=>Kr,CPUGridLayer:()=>Qp,ColumnLayer:()=>Ph,CompositeLayer:()=>es,ContourLayer:()=>ab,Controller:()=>tc,Deck:()=>Bd,DeckRenderer:()=>bm,DirectionalLight:()=>wd,FirstPersonController:()=>Bm,FirstPersonView:()=>I1,FirstPersonViewport:()=>Pm,FlyToInterpolator:()=>D1,GPUGridLayer:()=>$p,GeoJsonLayer:()=>Df,GeohashLayer:()=>$b,GoogleMapsOverlay:()=>Nm,GreatCircleLayer:()=>mb,GridCellLayer:()=>Wm,GridLayer:()=>cb,H3ClusterLayer:()=>Sb,H3HexagonLayer:()=>sg,HeatmapLayer:()=>hb,HexagonLayer:()=>ob,IconLayer:()=>Fd,JSONConfiguration:()=>Kd,JSONConverter:()=>wg,Layer:()=>Dn,LayerExtension:()=>Fm,LayerManager:()=>ym,LightingEffect:()=>Vp,LineLayer:()=>zm,LinearInterpolator:()=>bl,MVTLayer:()=>Qb,MapController:()=>xm,MapView:()=>Rd,OPERATION:()=>iV,OrbitController:()=>Om,OrbitView:()=>R1,OrbitViewport:()=>Mm,OrthographicController:()=>Dm,OrthographicView:()=>B1,OrthographicViewport:()=>Im,PathLayer:()=>Rh,PointCloudLayer:()=>Vm,PointLight:()=>h_,PolygonLayer:()=>Oh,PostProcessEffect:()=>t1,QuadkeyLayer:()=>yb,S2Layer:()=>_b,ScatterplotLayer:()=>jm,ScenegraphLayer:()=>ug,ScreenGridLayer:()=>nb,SimpleMeshLayer:()=>kf,SolidPolygonLayer:()=>Bh,TRANSITION_EVENTS:()=>o1,TerrainLayer:()=>Wb,Tesselator:()=>Ld,TextLayer:()=>Zm,Tile3DLayer:()=>Vb,TileLayer:()=>Nf,TransitionInterpolator:()=>Id,Transport:()=>jf,TripsLayer:()=>wb,UNIT:()=>ms,VERSION:()=>ST,View:()=>ec,Viewport:()=>xl,WebMercatorViewport:()=>Sc,_AggregationLayer:()=>ru,_BinSorter:()=>Nd,_CPUAggregator:()=>Ud,_CameraLight:()=>Xx,_Component:()=>Sm,_ComponentState:()=>Cm,_GPUGridAggregator:()=>Fa,_GeoCellLayer:()=>iu,_GlobeController:()=>Lm,_GlobeView:()=>O1,_GlobeViewport:()=>Dd,_LayersPass:()=>bh,_MultiIconLayer:()=>Xm,_PickLayersPass:()=>Ed,_SunLight:()=>Yx,_TextBackgroundLayer:()=>Km,_Tile2DHeader:()=>rg,_Tileset2D:()=>ig,_WMSLayer:()=>GS,_compareProps:()=>__,_convertFunctions:()=>my,_count:()=>DE,_deepEqual:()=>Ls,_fillArray:()=>vE,_flatten:()=>Bf,_getURLFromTemplate:()=>Ff,_memoize:()=>zu,_mergeShaders:()=>Em,_parseExpressionString:()=>bg,_shallowEqualObjects:()=>zY,assert:()=>os,createIterable:()=>Js,fp64LowPart:()=>jp,getShaderAssembler:()=>a_,gouraudLighting:()=>Uu,log:()=>ur,phongLighting:()=>kp,picking:()=>go,project:()=>Up,project32:()=>no,shadow:()=>s_});var U9=`#version 300 es
|
|
1772
1772
|
#define SHADER_NAME arc-layer-vertex-shader
|
|
1773
1773
|
in vec3 positions;
|
|
1774
1774
|
in vec4 instanceSourceColors;
|
|
@@ -3040,7 +3040,7 @@ meanValues.xyz = isCellValid ? aggregationValues.xyz/aggregationValues.w : vec3(
|
|
|
3040
3040
|
meanValues.w = aggregationValues.w;
|
|
3041
3041
|
gl_PointSize = 1.0;
|
|
3042
3042
|
}
|
|
3043
|
-
`;var zpe={minFilter:"nearest",magFilter:"nearest"};function C_(t,e){let{width:r=1,height:i=1,data:n=null,parameters:o=zpe}=e;return t.createTexture({data:n,format:"rgba32float",mipmaps:!1,sampler:o,width:r,height:i})}function ib(t,e){let{id:r,width:i=1,height:n=1,texture:o}=e;return t.createFramebuffer({id:r,width:i,height:n,colorAttachments:[o]})}var Vpe=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],bH={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},jpe=["float32-renderable-webgl","texture-blend-float-webgl"],Fa=class{static getAggregationData({aggregationData:e,maxData:r,minData:i,maxMinData:n,pixelIndex:o}){let s=o*mH,l={};return e&&(l.cellCount=e[s+3],l.cellWeight=e[s]),n?(l.maxCellWieght=n[0],l.minCellWeight=n[3]):(r&&(l.maxCellWieght=r[0],l.totalCount=r[3]),i&&(l.minCellWeight=i[0],l.totalCount=i[3])),l}static getCellData({countsData:e,size:r=1}){let i=e.length/4,n=new Float32Array(i*r),o=new Uint32Array(i);for(let s=0;s<i;s++){for(let l=0;l<r;l++)n[s*r+l]=e[s*4+l];o[s]=e[s*4+3]}return{cellCounts:o,cellWeights:n}}static isSupported(e){return jpe.every(r=>e.features.has(r))}constructor(e,r={}){this.state={weightAttributes:{},textures:{},meanTextures:{},buffers:{},framebuffers:{},maxMinFramebuffers:{},minFramebuffers:{},maxFramebuffers:{},equations:{},shaderOptions:{},modelDirty:!1,resources:{},results:{}},this.id=r.id||"gpu-grid-aggregator",this.device=e;let i=["float32-renderable-webgl"];this._hasGPUSupport=i.every(n=>e.features.has(n)),this._hasGPUSupport&&this._setupModels()}delete(){let{gridAggregationModel:e,allAggregationModel:r,meanTransform:i}=this,{textures:n,framebuffers:o,maxMinFramebuffers:s,minFramebuffers:l,maxFramebuffers:u,meanTextures:f,resources:v}=this.state;e?.destroy(),r?.destroy(),i?.destroy(),Gpe([o,n,s,l,u,f,v])}run(e={}){this.setState({results:{}});let r=this._normalizeAggregationParams(e);return this._runAggregation(r)}getData(e){let r={},i=this.state.results;i[e].aggregationData||(i[e].aggregationData=i[e].aggregationBuffer.getData()),r.aggregationData=i[e].aggregationData;for(let n in bH){let o=bH[n];(i[e][n]||i[e][o])&&(i[e][n]=i[e][n]||i[e][o].getData(),r[n]=i[e][n])}return r}updateShaders(e={}){this.setState({shaderOptions:e,modelDirty:!0})}_normalizeAggregationParams(e){let r={...dH,...e},{weights:i}=r;return i&&(r.weights=Hpe(i)),r}setState(e){Object.assign(this.state,e)}_getAggregateData(e){let r={},{textures:i,framebuffers:n,maxMinFramebuffers:o,minFramebuffers:s,maxFramebuffers:l,resources:u}=this.state,{weights:f}=e;for(let v in f){r[v]={};let{needMin:T,needMax:E,combineMaxMin:M}=f[v];r[v].aggregationTexture=i[v],r[v].aggregationBuffer=this.device.readPixelsToBufferWebGL(n[v],{target:f[v].aggregationBuffer,sourceType:5126}),T&&E&&M?(r[v].maxMinBuffer=this.device.readPixelsToBufferWebGL(o[v],{target:f[v].maxMinBuffer,sourceType:5126}),r[v].maxMinTexture=u[`${v}-maxMinTexture`]):(T&&(r[v].minBuffer=this.device.readPixelsToBufferWebGL(s[v],{target:f[v].minBuffer,sourceType:5126}),r[v].minTexture=u[`${v}-minTexture`]),E&&(r[v].maxBuffer=this.device.readPixelsToBufferWebGL(l[v],{target:f[v].maxBuffer,sourceType:5126}),r[v].maxTexture=u[`${v}-maxTexture`]))}return this._trackGPUResultBuffers(r,f),r}_renderAggregateData(e){let{cellSize:r,projectPoints:i,attributes:n,moduleSettings:o,numCol:s,numRow:l,weights:u,translation:f,scaling:v}=e,{maxMinFramebuffers:T,minFramebuffers:E,maxFramebuffers:M}=this.state,O=[s,l],F={blend:!0,depthTest:!1,blendFunc:[1,1]},U={cellSize:r,gridSize:O,projectPoints:i,translation:f,scaling:v};for(let G in u){let{needMin:J,needMax:K}=u[G],ne=J&&K&&u[G].combineMaxMin;this._renderToWeightsTexture({id:G,parameters:F,moduleSettings:o,uniforms:U,gridSize:O,attributes:n,weights:u}),ne?this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:pH},gridSize:O,minOrMaxFb:T[G],clearParams:{clearColor:[0,0,0,Zp]},combineMaxMin:ne}):(J&&this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:HO},gridSize:O,minOrMaxFb:E[G],clearParams:{clearColor:[Zp,Zp,Zp,0]},combineMaxMin:ne}),K&&this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:GO},gridSize:O,minOrMaxFb:M[G],clearParams:{clearColor:[0,0,0,0]},combineMaxMin:ne}))}}_renderToMaxMinTexture(e){let{id:r,
|
|
3043
|
+
`;var zpe={minFilter:"nearest",magFilter:"nearest"};function C_(t,e){let{width:r=1,height:i=1,data:n=null,parameters:o=zpe}=e;return t.createTexture({data:n,format:"rgba32float",mipmaps:!1,sampler:o,width:r,height:i})}function ib(t,e){let{id:r,width:i=1,height:n=1,texture:o}=e;return t.createFramebuffer({id:r,width:i,height:n,colorAttachments:[o]})}var Vpe=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],bH={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},jpe=["float32-renderable-webgl","texture-blend-float-webgl"],Fa=class{static getAggregationData({aggregationData:e,maxData:r,minData:i,maxMinData:n,pixelIndex:o}){let s=o*mH,l={};return e&&(l.cellCount=e[s+3],l.cellWeight=e[s]),n?(l.maxCellWieght=n[0],l.minCellWeight=n[3]):(r&&(l.maxCellWieght=r[0],l.totalCount=r[3]),i&&(l.minCellWeight=i[0],l.totalCount=i[3])),l}static getCellData({countsData:e,size:r=1}){let i=e.length/4,n=new Float32Array(i*r),o=new Uint32Array(i);for(let s=0;s<i;s++){for(let l=0;l<r;l++)n[s*r+l]=e[s*4+l];o[s]=e[s*4+3]}return{cellCounts:o,cellWeights:n}}static isSupported(e){return jpe.every(r=>e.features.has(r))}constructor(e,r={}){this.state={weightAttributes:{},textures:{},meanTextures:{},buffers:{},framebuffers:{},maxMinFramebuffers:{},minFramebuffers:{},maxFramebuffers:{},equations:{},shaderOptions:{},modelDirty:!1,resources:{},results:{}},this.id=r.id||"gpu-grid-aggregator",this.device=e;let i=["float32-renderable-webgl"];this._hasGPUSupport=i.every(n=>e.features.has(n)),this._hasGPUSupport&&this._setupModels()}delete(){let{gridAggregationModel:e,allAggregationModel:r,meanTransform:i}=this,{textures:n,framebuffers:o,maxMinFramebuffers:s,minFramebuffers:l,maxFramebuffers:u,meanTextures:f,resources:v}=this.state;e?.destroy(),r?.destroy(),i?.destroy(),Gpe([o,n,s,l,u,f,v])}run(e={}){this.setState({results:{}});let r=this._normalizeAggregationParams(e);return this._runAggregation(r)}getData(e){let r={},i=this.state.results;i[e].aggregationData||(i[e].aggregationData=i[e].aggregationBuffer.getData()),r.aggregationData=i[e].aggregationData;for(let n in bH){let o=bH[n];(i[e][n]||i[e][o])&&(i[e][n]=i[e][n]||i[e][o].getData(),r[n]=i[e][n])}return r}updateShaders(e={}){this.setState({shaderOptions:e,modelDirty:!0})}_normalizeAggregationParams(e){let r={...dH,...e},{weights:i}=r;return i&&(r.weights=Hpe(i)),r}setState(e){Object.assign(this.state,e)}_getAggregateData(e){let r={},{textures:i,framebuffers:n,maxMinFramebuffers:o,minFramebuffers:s,maxFramebuffers:l,resources:u}=this.state,{weights:f}=e;for(let v in f){r[v]={};let{needMin:T,needMax:E,combineMaxMin:M}=f[v];r[v].aggregationTexture=i[v],r[v].aggregationBuffer=this.device.readPixelsToBufferWebGL(n[v],{target:f[v].aggregationBuffer,sourceType:5126}),T&&E&&M?(r[v].maxMinBuffer=this.device.readPixelsToBufferWebGL(o[v],{target:f[v].maxMinBuffer,sourceType:5126}),r[v].maxMinTexture=u[`${v}-maxMinTexture`]):(T&&(r[v].minBuffer=this.device.readPixelsToBufferWebGL(s[v],{target:f[v].minBuffer,sourceType:5126}),r[v].minTexture=u[`${v}-minTexture`]),E&&(r[v].maxBuffer=this.device.readPixelsToBufferWebGL(l[v],{target:f[v].maxBuffer,sourceType:5126}),r[v].maxTexture=u[`${v}-maxTexture`]))}return this._trackGPUResultBuffers(r,f),r}_renderAggregateData(e){let{cellSize:r,projectPoints:i,attributes:n,moduleSettings:o,numCol:s,numRow:l,weights:u,translation:f,scaling:v}=e,{maxMinFramebuffers:T,minFramebuffers:E,maxFramebuffers:M}=this.state,O=[s,l],F={blend:!0,depthTest:!1,blendFunc:[1,1]},U={cellSize:r,gridSize:O,projectPoints:i,translation:f,scaling:v};for(let G in u){let{needMin:J,needMax:K}=u[G],ne=J&&K&&u[G].combineMaxMin;this._renderToWeightsTexture({id:G,parameters:F,moduleSettings:o,uniforms:U,gridSize:O,attributes:n,weights:u}),ne?this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:pH},gridSize:O,minOrMaxFb:T[G],clearParams:{clearColor:[0,0,0,Zp]},combineMaxMin:ne}):(J&&this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:HO},gridSize:O,minOrMaxFb:E[G],clearParams:{clearColor:[Zp,Zp,Zp,0]},combineMaxMin:ne}),K&&this._renderToMaxMinTexture({id:G,parameters:{...F,blendEquation:GO},gridSize:O,minOrMaxFb:M[G],clearParams:{clearColor:[0,0,0,0]},combineMaxMin:ne}))}}_renderToMaxMinTexture(e){let{id:r,gridSize:i,minOrMaxFb:n,combineMaxMin:o,clearParams:s={}}=e,{framebuffers:l}=this.state,{allAggregationModel:u}=this;this.device.withParametersWebGL({...s,framebuffer:n,viewport:[0,0,i[0],i[1]]},()=>{this.device.clearWebGL({color:!0}),u.setUniforms({gridSize:i,combineMaxMin:o}),u.setBindings({uSampler:l[r].texture}),u.draw()})}_renderToWeightsTexture(e){let{id:r,parameters:i,moduleSettings:n,uniforms:o,gridSize:s,weights:l}=e,{framebuffers:u,equations:f,weightAttributes:v}=this.state,{gridAggregationModel:T}=this,{operation:E}=l[r],M=E===Wo.MIN?[Zp,Zp,Zp,0]:[0,0,0,0];if(this.device.withParametersWebGL({framebuffer:u[r],viewport:[0,0,s[0],s[1]],clearColor:M},()=>{this.device.clearWebGL({color:!0});let O={weights:v[r]};T.draw({parameters:{...i,blendEquation:f[r]},moduleSettings:n,uniforms:o,attributes:O})}),E===Wo.MEAN){let{meanTextures:O,textures:F}=this.state,U={_sourceTextures:{aggregationValues:O[r]},_targetTexture:F[r],elementCount:F[r].width*F[r].height};this.meanTransform?this.meanTransform.update(U):this.meanTransform=Xpe(this.device,U),this.meanTransform.run({parameters:{blend:!1,depthTest:!1}}),u[r].attach({[36064]:F[r]})}}_runAggregation(e){this._updateModels(e),this._setupFramebuffers(e),this._renderAggregateData(e);let r=this._getAggregateData(e);return this.setState({results:r}),r}_setupFramebuffers(e){let{textures:r,framebuffers:i,maxMinFramebuffers:n,minFramebuffers:o,maxFramebuffers:s,meanTextures:l,equations:u}=this.state,{weights:f}=e,{numCol:v,numRow:T}=e,E={width:v,height:T};for(let M in f){let{needMin:O,needMax:F,combineMaxMin:U,operation:G}=f[M];r[M]=f[M].aggregationTexture||r[M]||C_(this.device,{id:`${M}-texture`,width:v,height:T}),r[M].resize(E);let J=r[M];G===Wo.MEAN&&(l[M]=l[M]||C_(this.device,{id:`${M}-mean-texture`,width:v,height:T}),l[M].resize(E),J=l[M]),i[M]?i[M].attach({[36064]:J}):i[M]=ib(this.device,{id:`${M}-fb`,width:v,height:T,texture:J}),i[M].resize(E),u[M]=WO[G]||WO[Wo.SUM],(O||F)&&(O&&F&&U?n[M]||(J=f[M].maxMinTexture||this._getMinMaxTexture(`${M}-maxMinTexture`),n[M]=ib(this.device,{id:`${M}-maxMinFb`,texture:J})):(O&&(o[M]||(J=f[M].minTexture||this._getMinMaxTexture(`${M}-minTexture`),o[M]=ib(this.device,{id:`${M}-minFb`,texture:J}))),F&&(s[M]||(J=f[M].maxTexture||this._getMinMaxTexture(`${M}-maxTexture`),s[M]=ib(this.device,{id:`${M}-maxFb`,texture:J})))))}}_getMinMaxTexture(e){let{resources:r}=this.state;return r[e]||(r[e]=C_(this.device,{id:"resourceName"})),r[e]}_setupModels({numCol:e=0,numRow:r=0}={}){let{shaderOptions:i}=this.state;if(this.gridAggregationModel?.destroy(),this.gridAggregationModel=Wpe(this.device,i),!this.allAggregationModel){let n=e*r;this.allAggregationModel=qpe(this.device,n)}}_setupWeightAttributes(e){let{weightAttributes:r}=this.state,{weights:i}=e;for(let n in i)r[n]=e.attributes[n]}_trackGPUResultBuffers(e,r){let{resources:i}=this.state;for(let n in e)if(e[n]){for(let o of Vpe)if(e[n][o]&&r[n][o]!==e[n][o]){let s=`gpu-result-${n}-${o}`;i[s]&&i[s].delete(),i[s]=e[n][o]}}}_updateModels(e){let{vertexCount:r,attributes:i,numCol:n,numRow:o}=e,{modelDirty:s}=this.state;s&&(this._setupModels(e),this.setState({modelDirty:!1})),this._setupWeightAttributes(e),this.gridAggregationModel.setVertexCount(r),this.gridAggregationModel.setAttributes(i),this.allAggregationModel.setInstanceCount(n*o)}};function Hpe(t){let e={};for(let r in t)e[r]={...AH,...t[r]};return e}function Gpe(t){t=Array.isArray(t)?t:[t],t.forEach(e=>{for(let r in e)e[r].delete()})}function Wpe(t,e){let r=Em({vs:gH,fs:_H,modules:[J0,no]},e);return new Ni(t,{id:"Grid-Aggregation-Model",vertexCount:1,drawMode:0,shaderAssembler:a_(),...r})}function qpe(t,e){return new Ni(t,{id:"All-Aggregation-Model",vs:yH,fs:vH,modules:[J0],vertexCount:1,topology:"point-list",isInstanced:!0,instanceCount:e,attributes:{position:[0,0]}})}function Xpe(t,e){return new If(t,{vs:xH,_targetTextureVarying:"meanValues",...e})}var Wu=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function Jp(t,e=!1,r=Float32Array){let i;if(Number.isFinite(t[0]))i=new r(t);else{i=new r(t.length*4);let n=0;for(let o=0;o<t.length;o++){let s=t[o];i[n++]=s[0],i[n++]=s[1],i[n++]=s[2],i[n++]=Number.isFinite(s[3])?s[3]:255}}if(e)for(let n=0;n<i.length;n++)i[n]/=255;return i}var wH=`#version 300 es
|
|
3044
3044
|
#define SHADER_NAME screen-grid-layer-vertex-shader
|
|
3045
3045
|
#define RANGE_COUNT 6
|
|
3046
3046
|
in vec3 positions;
|
|
@@ -3312,7 +3312,7 @@ void main() {
|
|
|
3312
3312
|
fragColor = outTexture;
|
|
3313
3313
|
fragColor.g = outTexture.r / max(1.0, outTexture.a);
|
|
3314
3314
|
}
|
|
3315
|
-
`;var kAe=2,iD={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},D7=[0,0],UAe={SUM:0,MEAN:1},zAe={getPosition:{type:"accessor",value:t=>t.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Wu,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},VAe=["float32-renderable-webgl","texture-blend-float-webgl"],jAe={data:{props:["radiusPixels"]}},zS=class extends ru{initializeState(){super.initializeAggregationLayer(jAe),this.setState({colorDomain:D7}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){let{props:r,oldProps:i}=e,n=this._getChangeFlags(e);(n.dataChanged||n.viewportChanged)&&(n.boundsChanged=this._updateBounds(n.dataChanged),this._updateTextureRenderingBounds()),n.dataChanged||n.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):n.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){let{weightsTexture:e,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:n,colorTexture:o,colorDomain:s}=this.state,{updateTriggers:l,intensity:u,threshold:f,aggregation:v}=this.props,T=this.getSubLayerClass("triangle",ub);return new T(this.getSubLayerProps({id:"triangle-layer",updateTriggers:l}),{coordinateSystem:Kr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:n,colorTexture:o,aggregationMode:UAe[v]||0,weightsTexture:e,intensity:u,threshold:f,colorDomain:s})}finalizeState(e){super.finalizeState(e);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:n,maxWeightsTexture:o,triPositionBuffer:s,triTexCoordBuffer:l,colorTexture:u,updateTimer:f}=this.state;r?.destroy(),i?.destroy(),n?.destroy(),o?.destroy(),s?.destroy(),l?.destroy(),u?.destroy(),f&&clearTimeout(f)}_getAttributeManager(){return new Ih(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()&&"attribute changed"||this.isAggregationDirty(e,{compareAll:!0,dimension:i.data})&&"aggregation is dirty",r.viewportChanged=e.changeFlags.viewportChanged;let{zoom:n}=this.state;return(!e.context.viewport||e.context.viewport.zoom!==n)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{textureSize:e,format:r}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...iD,width:e,height:e,format:r}),maxWeightsTexture:this.context.device.createTexture({...iD,width:1,height:1,format:r})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){let{device:e}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,e.limits.maxTextureDimension2D),n=VAe.every(l=>e.features.has(l)),o=n?"rgba32float":"rgba8unorm",s=n?1:1/255;this.setState({textureSize:i,format:o,weightsScale:s}),n||ur.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:r}=this.state,{weightsTexture:i}=this.state,n=this.getAttributeManager();r?.destroy(),r=new If(this.context.device,{id:`${this.id}-weights-transform`,bufferLayout:n.getBufferLayouts(),vertexCount:1,targetTexture:i,parameters:{depthWriteEnabled:!1,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",...e}),this.setState({weightsTransform:r})}_setupResources(){this._createTextures();let{device:e}=this.context,{textureSize:r,weightsTexture:i,maxWeightsTexture:n}=this.state,o=this.getShaders({vs:tD,fs:rD});this._createWeightsTransform(o);let s=this.getShaders({vs:B7,fs:O7}),l=new If(e,{id:`${this.id}-max-weights-transform`,bindings:{inTexture:i},uniforms:{textureSize:r},targetTexture:n,...s,vertexCount:r*r,topology:"point-list",parameters:{depthWriteEnabled:!1,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}});this.setState({weightsTexture:i,maxWeightsTexture:n,maxWeightTransform:l,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:tD,fs:rD,...e})}_updateMaxWeightValue(){let{maxWeightTransform:e,textureSize:r}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(l=>l.map(Math.fround)),n=S7(i),o={visibleWorldBounds:n,viewportCorners:i},s=!1;if(e||!this.state.worldBounds||!C7(this.state.worldBounds,n)){let l=this._worldToCommonBounds(n),u=this._commonToWorldBounds(l);this.props.coordinateSystem===Kr.LNGLAT&&(u[1]=Math.max(u[1],-85.051129),u[3]=Math.min(u[3],85.051129),u[0]=Math.max(u[0],-360),u[2]=Math.min(u[2],360));let f=this._worldToCommonBounds(u);o.worldBounds=u,o.normalizedCommonBounds=f,s=!0}return this.setState(o),s}_updateTextureRenderingBounds(){let{triPositionBuffer:e,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:n}=this.state,{viewport:o}=this.context;e.write($O(n,3));let s=n.map(l=>I7(o.projectPosition(l),i));r.write($O(s,2))}_updateColorTexture(e){let{colorRange:r}=e.props,{colorTexture:i}=this.state,n=Jp(r,!1,Uint8Array);i&&i?.width===r.length?i.setSubImageData({data:n}):(i?.destroy(),i=this.context.device.createTexture({...iD,data:n,width:r.length,height:1})),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:e,colorDomain:r,aggregation:i}=this.props,{worldBounds:n,textureSize:o,weightsScale:s}=this.state,l=this.state.weightsTransform;this.state.isWeightMapDirty=!1;let u=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i==="SUM"){let{viewport:F}=this.context,U=F.distanceScales.metersPerUnit[2]*(u[2]-u[0])/o;this.state.colorDomain=r.map(G=>G*U*s)}else this.state.colorDomain=r||D7;let v=this.getAttributeManager().getAttributes(),T=this.getModuleSettings(),E=v.positions.buffer,M={radiusPixels:e,commonBounds:u,textureWidth:o,weightsScale:s},O=v.weights.buffer;l.model.setAttributes({positions:E,weights:O}),l.model.setVertexCount(this.getNumInstances()),l.model.setUniforms(M),l.model.updateModuleSettings(T),l.run({parameters:{viewport:[0,0,o,o]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;e?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(e,r={}){let{useLayerCoordinateSystem:i=!1}=r,[n,o,s,l]=e,{viewport:u}=this.context,{textureSize:f}=this.state,{coordinateSystem:v}=this.props,T=i&&(v===Kr.LNGLAT_OFFSETS||v===Kr.METER_OFFSETS),E=T?u.projectPosition(this.props.coordinateOrigin):[0,0],M=f*kAe/u.scale,O,F;return i&&!T?(O=this.projectPosition([n,o,0]),F=this.projectPosition([s,l,0])):(O=u.projectPosition([n,o,0]),F=u.projectPosition([s,l,0])),M7([O[0]-E[0],O[1]-E[1],F[0]-E[0],F[1]-E[1]],M,M)}_commonToWorldBounds(e){let[r,i,n,o]=e,{viewport:s}=this.context,l=s.unprojectPosition([r,i]),u=s.unprojectPosition([n,o]);return l.slice(0,2).concat(u.slice(0,2))}},hb=zS;(()=>{zS.layerName="HeatmapLayer"})(),(()=>{zS.defaultProps=zAe})();function HAe(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function VS(t){if(Array.isArray(t))return t.map(e=>VS(e));if(t&&typeof t=="object"){let e={};for(let[r,i]of Object.entries(t))e[HAe(r)]=VS(i);return e}return t}var dG=ga(fG(),1);function fD(t,e){if(e!=null&&e._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(n,o,s,l)=>{var u;return Boolean(e==null||(u=e.arrayPaths)===null||u===void 0?void 0:u.some(v=>o===v))},...e?._fastXML},i=Qme(t,r);return e!=null&&e.uncapitalizeKeys?VS(i):i}function Qme(t,e){return new dG.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var $me="4.1.4",rc={name:"XML",id:"xml",module:"xml",version:$me,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:ege,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>fD(new TextDecoder().decode(t),{...rc.options.xml,...e?.xml}),parseTextSync:(t,e)=>fD(t,{...rc.options.xml,...e?.xml})};function ege(t){return t.startsWith("<?xml")}function pG(t,e){var r,i,n;let o=(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e),s=(o==null||(i=o.ServiceExceptionReport)===null||i===void 0?void 0:i.ServiceException)||(o==null||(n=o["ogc:ServiceExceptionReport"])===null||n===void 0?void 0:n["ogc:ServiceException"]);return typeof s=="string"?s:s.value||s.code||"Unknown error"}var tge="4.1.4",$m={id:"wms-error",name:"WMS Error",module:"wms",version:tge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:rge,options:{wms:{throwOnError:!1}},parse:async(t,e)=>dD(new TextDecoder().decode(t),e),parseSync:(t,e)=>dD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>dD(t,e)};function rge(t){return t.startsWith("<?xml")}function dD(t,e){let r={...$m.options.wms,...e?.wms},i=pG(t,r),n=r.minimalErrors?i:`WMS Service error: ${i}`;if(r.throwOnError)throw new Error(n);return n}function eg(t){return Array.isArray(t)?t:t?[t]:[]}function pb(t){let e=eg(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Ab(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function HS(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function tg(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function pD(t,e){var r;let i=(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e),n=i.WMT_MS_Capabilities||i.WMS_Capabilities||i,o=ige(n);if(e!=null&&e.inheritedLayerProps)for(let s of o.layers)mG(s,null);return e!=null&&e.includeRawJSON&&(o.json=n),e!=null&&e.includeXMLText&&(o.xml=t),o}function ige(t){var e,r,i,n,o,s,l,u,f,v,T,E,M,O,F,U;let G={version:String(t.version||""),name:String(((e=t.Service)===null||e===void 0?void 0:e.Name)||"unnamed"),title:(r=t.Service)!==null&&r!==void 0&&r.Title?String((i=t.Service)===null||i===void 0?void 0:i.Title):void 0,abstract:(n=t.Service)!==null&&n!==void 0&&n.Abstract?String((o=t.Service)===null||o===void 0?void 0:o.Abstract):void 0,keywords:pb((s=t.Service)===null||s===void 0||(l=s.KeywordList)===null||l===void 0?void 0:l.Keyword),fees:(u=t.Service)!==null&&u!==void 0&&u.Fees?JSON.stringify((f=t.Service)===null||f===void 0?void 0:f.Fees):void 0,accessConstraints:(v=t.Service)!==null&&v!==void 0&&v.AccessConstraints?JSON.stringify((T=t.Service)===null||T===void 0?void 0:T.AccessConstraints):void 0,layerLimit:HS((E=t.Service)===null||E===void 0?void 0:E.LayerLimit),maxWidth:HS((M=t.Service)===null||M===void 0?void 0:M.maxWidth),maxHeight:HS((O=t.Service)===null||O===void 0?void 0:O.maxHeight),layers:[],requests:nge((F=t.Capability)===null||F===void 0?void 0:F.Request),exceptions:oge(t.Exception)},J=eg((U=t.Capability)===null||U===void 0?void 0:U.Layer);for(let K of J)G.layers.push(AG(K));for(let[K,ne]of Object.entries(G))ne===void 0&&delete G[K];return G}function nge(t){let e={};for(let[r,i]of Object.entries(t||{})){let n=pb(i?.Format);e[r]={mimeTypes:n}}return e}function oge(t){if(eg(t?.Format).length>0)return{mimeTypes:pb(t)}}function AG(t){var e;let r={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:pb((e=t.KeywordList)===null||e===void 0?void 0:e.Keyword)},i=t?.CRS||t?.SRS;i&&Array.isArray(i)&&i.every(v=>typeof v=="string")&&(r.crs=i);let n=t?.EX_GeographicBoundingBox&&sge(t?.EX_GeographicBoundingBox);n&&(r.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&age(t?.LatLonBoundingBox),n&&(r.geographicBoundingBox=n);let o=t?.BoundingBox&&lge(t?.BoundingBox);o&&o.length>0&&(r.boundingBoxes=o);let l=eg(t?.Dimension).map(v=>uge(v));l.length&&(r.dimensions=l),t!=null&&t.opaque&&(r.opaque=tg(t?.opaque)),t!=null&&t.cascaded&&(r.cascaded=tg(t?.cascaded)),t!=null&&t.queryable&&(r.queryable=tg(t?.queryable));let u=eg(t?.Layer),f=[];for(let v of u)f.push(AG(v));f.length>0&&(r.layers=f);for(let[v,T]of Object.entries(r))T===void 0&&delete r[v];return r}function sge(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:i,southBoundLatitude:n}=t;return[[e,n],[i,r]]}function age(t){let{minx:e,miny:r,maxx:i,maxy:n}=t;return[[e,r],[i,n]]}function lge(t){return eg(t).map(r=>cge(r))}function cge(t){let{CRS:e,SRS:r,minx:i,miny:n,maxx:o,maxy:s,resx:l,resy:u}=t,f={crs:e||r,boundingBox:[[Ab(i),Ab(n)],[Ab(o),Ab(s)]]};return l&&(f.xResolution=l),u&&(f.yResolution=u),f}function uge(t){let{name:e,units:r,value:i}=t,n={name:e,units:r,extent:i};return t.unitSymbol&&(n.unitSymbol=t.unitSymbol),t.default&&(n.defaultValue=t.default),t.multipleValues&&(n.multipleValues=tg(t.multipleValues)),t.nearestValue&&(n.nearestValue=tg(t.nearestValue)),t.current&&(n.current=tg(t.current)),n}function mG(t,e){e!=null&&e.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e!=null&&e.crs&&!t.crs&&(t.crs=[...e.crs]),e!=null&&e.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e!=null&&e.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])mG(r,t)}var hge="4.1.4",V_={id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:hge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:fge,options:{wms:{}},parse:async(t,e)=>pD(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>pD(t,e?.wms)};function fge(t){return t.startsWith("<?xml")}function AD(t,e){var r,i;let o=((i=((r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e)).FeatureInfoResponse)===null||i===void 0?void 0:i.FIELDS)||[];return{features:(Array.isArray(o)?o:[o]).map(l=>dge(l))}}function dge(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var gG={...V_,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>AD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>AD(t,e)};function mD(t,e){var r;return(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e)}var _G={...V_,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>mD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>mD(t,e)};function yG(t,e){let{type:r="auto"}=t,i=r==="auto"?Age(t.url,e):pge(r,e);if(!i)throw new Error("Not a valid image source type");return i.create(t)}function pge(t,e){for(let r of e)if(r.type===t)return r;return null}function Age(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var vG={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new gD(t)},gD=class extends Mu{constructor(e){var r;super(e),this.url=void 0,this.data=void 0,this.substituteCRS84=void 0,this.flipCRS=void 0,this.wmsParameters=void 0,this.vendorParameters=void 0,this.capabilities=null,this.url=e.url,this.data=e.url,this.substituteCRS84=(r=e.substituteCRS84)!==null&&r!==void 0?r:!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:i,...n}=e,o={bbox:r?[...r[0],...r[1]]:i,...n};return await this.getMap(o)}normalizeMetadata(e){return e}async getCapabilities(e,r){let i=this.getCapabilitiesURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);let s=await V_.parse(o,this.loadOptions);return this.capabilities=s,s}async getMap(e,r){let i=this.getMapURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}async getFeatureInfo(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await gG.parse(o,this.loadOptions)}async getFeatureInfoText(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),new TextDecoder().decode(o)}async describeLayer(e,r){let i=this.describeLayerURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await _G.parse(o,this.loadOptions)}async getLegendGraphic(e,r){let i=this.getLegendGraphicURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}getCapabilitiesURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",i,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",i,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",i,r)}describeLayerURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",i,r)}getLegendGraphicURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",i,r)}_parseWMSUrl(e){let[r,i]=e.split("?"),n=i.split("&"),o={};for(let s of n){let[l,u]=s.split("=");o[l]=u}return{url:r,parameters:o}}_getWMSUrl(e,r,i){let n=this.url,o=!0,s={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...i},l=["transparent","time","elevation"];for(let[u,f]of Object.entries(s))(!l.includes(u)||f)&&(n+=o?"?":"&",o=!1,n+=this._getURLParameter(u,f,r));return encodeURI(n)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,i){switch(e){case"crs":i.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":i.version==="1.3.0"&&(e="crs");break;case"bbox":let n=this._flipBoundingBox(r,i);n&&(r=n);break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let i=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),n=e;return i?[n[1],n[0],n[3],n[2]]:n}async _fetchArrayBuffer(e){let r=await this.fetch(e),i=await r.arrayBuffer();return this._checkResponse(r,i),i}_checkResponse(e,r){let i=e.headers["content-type"];if(!e.ok||$m.mimeTypes.includes(i)){var n;let o=Wv(this.loadOptions,{wms:{throwOnError:!0}}),s=(n=$m.parseSync)===null||n===void 0?void 0:n.call($m,r,o);throw new Error(s)}}_parseError(e){var r;let i=(r=$m.parseSync)===null||r===void 0?void 0:r.call($m,e,this.loadOptions);return new Error(i)}};var j_=class extends Mu{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),i=this.getURLFromTemplate(r),o=await(await this.fetch(i)).arrayBuffer();return await Sf.parse(o)}getGranularParameters(e){let[[r,i],[n,o]]=e.boundingBox;return{...e,east:r,north:i,south:o,west:n}}getURLFromTemplate(e){let r=this.props.url;for(let[i,n]of Object.entries(e))r=r.replace(`\${${i}}`,String(n)),r=r.replace(`{${i}}`,String(n));return r}};j_.type="template";j_.testURL=t=>t.toLowerCase().includes("{");var _D=class extends j_{constructor(e){super(e),this.data=void 0,this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,i=`size=${e.width},${e.height}`,n={...e,bbox:r,size:i};return delete n.width,delete n.height,this.getUrl("exportImage",n)}getUrl(e,r,i){let n=`${this.props.url}/${e}`,o=!0;for(let[s,l]of Object.entries(r))n+=o?"?":"&",o=!1,Array.isArray(l)?n+=`${s.toUpperCase()}=${l.join(",")}`:n+=`${s.toUpperCase()}=${l?String(l):""}`;return n}async checkResponse(e){if(!e.ok)throw new Error("error")}},xG={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new _D(t)};var mge=[vG,xG];function yD(t){return yG(t,mge)}var bG=6378137*Math.PI;function vD(t){let e=La(t);return e[0]=(e[0]/256-1)*bG,e[1]=(e[1]/256-1)*bG,e}var gge={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},WS=class extends es{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:i}){let{viewport:n}=this.context;e.dataChanged||r.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(n,"image source changed"),0)):Ls(r.layers,i.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(n,"viewport changed")):this.debounce(()=>this.loadImage(n,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:i}=this.state;return r&&new Um({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:i.srs==="EPSG:4326"?Kr.LNGLAT:Kr.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.({...i,query_layers:i.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Mu)return e.data;if(typeof e.data=="string")return yD({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:i,serviceType:n}=this.props;if(n==="wms"&&i.length===0)return;let o=e.getBounds(),{width:s,height:l}=e,u=this.getRequestId(),{srs:f}=this.props;f==="auto"&&(f=e.resolution?"EPSG:4326":"EPSG:3857");let v={width:s,height:l,boundingBox:[[o[0],o[1]],[o[2],o[3]]],layers:i,crs:f};if(f==="EPSG:3857"){let T=vD([o[0],o[1]]),E=vD([o[2],o[3]]);v.boundingBox=[T,E]}try{this.state.loadCounter++,this.props.onImageLoadStart(u);let T=await this.state.imageSource.getImage(v);this.state.lastRequestId<u&&(this.getCurrentLayer()?.props.onImageLoad(u),this.setState({image:T,bounds:o,lastRequestParameters:v,lastRequestId:u}))}catch(T){this.raiseError(T,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(u,T)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},GS=WS;(()=>{WS.layerName="WMSLayer"})(),(()=>{WS.defaultProps=gge})();var _ge={getHeight:{type:"accessor",value:0},greatCircle:!0},qS=class extends km{},mb=qS;(()=>{qS.layerName="GreatCircleLayer"})(),(()=>{qS.defaultProps=_ge})();var yge={...Oh.defaultProps},XS=class extends es{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:i,filled:n,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:U}=this.props,{updateTriggers:G,material:J,transitions:K}=this.props,ne=this.getSubLayerClass("cell",Oh),{updateTriggers:ge,...H}=this.indexToBounds()||{};return new ne({filled:n,wireframe:i,extruded:r,elevationScale:e,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,material:J,transitions:K,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:U},this.getSubLayerProps({id:"cell",updateTriggers:G&&{...ge,getElevation:G.getElevation,getFillColor:G.getFillColor,getLineColor:G.getLineColor,getLineWidth:G.getLineWidth}}),H)}},iu=XS;(()=>{XS.layerName="GeoCellLayer"})(),(()=>{XS.defaultProps=yge})();var YS=ga(xD(),1),vge=3,xge=30,bge=2*xge+1,TG=180/Math.PI;function SG(t,e,r){let i=1<<e;return[(t[0]+r[0])/i,(t[1]+r[1])/i]}function EG(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function CG(t){return[EG(t[0]),EG(t[1])]}function MG(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function IG([t,e,r]){let i=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*TG,i*TG]}function PG(t){let e=YS.default.fromString(t,!0,10).toString(2);for(;e.length<vge+bge;)e="0"+e;let r=e.lastIndexOf("1"),i=e.substring(0,3),n=e.substring(3,r),o=n.length/2,s=YS.default.fromString(i,!0,2).toString(10),l=YS.default.fromString(n,!0,2).toString(4);for(;l.length<o;)l="0"+l;return`${s}/${l}`}function wge(t,e,r,i){if(i===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let n=e[0];e[0]=e[1],e[1]=n}}function RG(t){let e=t.split("/"),r=parseInt(e[0],10),i=e[1],n=i.length,o=[0,0],s;for(let l=n-1;l>=0;l--){s=n-l;let u=i[l],f=0,v=0;u==="1"?v=1:u==="2"?(f=1,v=1):u==="3"&&(f=1);let T=Math.pow(2,s-1);wge(T,o,f,v),o[0]+=T*f,o[1]+=T*v}if(r%2===1){let l=o[0];o[0]=o[1],o[1]=l}return{face:r,ij:o,level:s}}var BG=ga(xD(),1);function Tge(t){let e=t.padEnd(16,"0");return BG.default.fromString(e,16)}var Ege=100;function Sge({face:t,ij:e,level:r}){let i=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(Ege*Math.pow(2,-r))),o=new Float64Array(4*n*2+2),s=0,l=0;for(let u=0;u<4;u++){let f=i[u].slice(0),v=i[u+1],T=(v[0]-f[0])/n,E=(v[1]-f[1])/n;for(let M=0;M<n;M++){f[0]+=T,f[1]+=E;let O=SG(e,r,f),F=CG(O),U=MG(t,F),G=IG(U);Math.abs(G[1])>89.999&&(G[0]=l);let J=G[0]-l;G[0]+=J>180?-360:J<-180?360:0,o[s++]=G[0],o[s++]=G[1],l=G[0]}}return o[s++]=o[0],o[s++]=o[1],o}function Cge(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=Tge(t)}return PG(t.toString())}function OG(t){let e=Cge(t),r=RG(e);return Sge(r)}var Mge={getS2Token:{type:"accessor",value:t=>t.token}},KS=class extends iu{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,n)=>OG(r(i,n))}}},_b=KS;(()=>{KS.layerName="S2Layer"})(),(()=>{KS.defaultProps=Mge})();var bD=512;function Ige(t,e){let r=0,i=0,n=1<<t.length,o=n/bD;for(let s=0;s<t.length;s++){n>>=1;let l=parseInt(t[s]);l%2&&(r|=n),l>1&&(i|=n)}return[[r/o,bD-i/o],[(r+e)/o,bD-(i+e)/o]]}function DG(t,e=1){let[r,i]=Ige(t,e),[n,o]=vl(r),[s,l]=vl(i);return[s,o,s,l,n,l,n,o,s,o]}var Pge={getQuadkey:{type:"accessor",value:t=>t.quadkey}},ZS=class extends iu{indexToBounds(){let{data:e,extruded:r,getQuadkey:i}=this.props,n=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(o,s)=>DG(i(o,s),n),updateTriggers:{getPolygon:n}}}},yb=ZS;(()=>{ZS.layerName="QuadkeyLayer"})(),(()=>{ZS.defaultProps=Pge})();var rg=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:i,onError:n}){let{index:o,id:s,bbox:l,userData:u,zoom:f}=this,v=this._loaderId;this._abortController=new AbortController;let{signal:T}=this._abortController,E=await r.scheduleRequest(this,F=>F.isSelected?1:-1);if(!E){this._isCancelled=!0;return}if(this._isCancelled){E.done();return}let M=null,O;try{M=await e({index:o,id:s,bbox:l,userData:u,zoom:f,signal:T})}catch(F){O=F||!0}finally{E.done()}if(v===this._loaderId){if(this._loader=void 0,this.content=M,this._isCancelled&&!M){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,O?n(O,this):i(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var sa={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var LG=new ot,Rge=new ot,tA=class{constructor(e=[0,0,0],r=[0,0,0],i){i=i||LG.copy(e).add(r).scale(.5),this.center=new ot(i),this.halfDiagonal=new ot(r).subtract(this.center),this.minimum=new ot(e),this.maximum=new ot(r)}clone(){return new tA(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,i=Rge.from(e.normal),n=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),o=this.center.dot(i)+e.distance;return o-n>0?sa.INSIDE:o+n<0?sa.OUTSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=LG.from(e).subtract(this.center),{halfDiagonal:i}=this,n=0,o;return o=Math.abs(r.x)-i.x,o>0&&(n+=o*o),o=Math.abs(r.y)-i.y,o>0&&(n+=o*o),o=Math.abs(r.z)-i.z,o>0&&(n+=o*o),n}};var vb=new ot,FG=new ot,qu=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new ot,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=vb.from(r),this.center=new ot().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new qu(this.center,this.radius)}union(e){let r=this.center,i=this.radius,n=e.center,o=e.radius,s=vb.copy(n).subtract(r),l=s.magnitude();if(i>=l+o)return this.clone();if(o>=l+i)return e.clone();let u=(i+l+o)*.5;return FG.copy(s).scale((-i+u)/l).add(r),this.center.copy(FG),this.radius=u,this}expand(e){let i=vb.from(e).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(e){this.center.transform(e);let r=Zs.getScaling(vb,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let i=vb.from(e).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(e){let r=this.center,i=this.radius,o=e.normal.dot(r)+e.distance;return o<-i?sa.OUTSIDE:o<i?sa.INTERSECTING:sa.INSIDE}};var Bge=new ot,Oge=new ot,JS=new ot,QS=new ot,$S=new ot,Dge=new ot,Lge=new ot,Vd={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Dh=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new ot().from(e),this.halfAxes=new mo(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2);return[new ot(e).len(),new ot(r).len(),new ot(i).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2),n=new ot(e).normalize(),o=new ot(r).normalize(),s=new ot(i).normalize();return new Nu().fromMatrix3(new mo([...n,...o,...s]))}fromCenterHalfSizeQuaternion(e,r,i){let n=new Nu(i),o=new mo().fromQuaternion(n);return o[0]=o[0]*r[0],o[1]=o[1]*r[0],o[2]=o[2]*r[0],o[3]=o[3]*r[1],o[4]=o[4]*r[1],o[5]=o[5]*r[1],o[6]=o[6]*r[2],o[7]=o[7]*r[2],o[8]=o[8]*r[2],this.center=new ot().from(e),this.halfAxes=o,this}clone(){return new Dh(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new qu){let r=this.halfAxes,i=r.getColumn(0,JS),n=r.getColumn(1,QS),o=r.getColumn(2,$S),s=Bge.copy(i).add(n).add(o);return e.center.copy(this.center),e.radius=s.magnitude(),e}intersectPlane(e){let r=this.center,i=e.normal,n=this.halfAxes,o=i.x,s=i.y,l=i.z,u=Math.abs(o*n[Vd.COLUMN0ROW0]+s*n[Vd.COLUMN0ROW1]+l*n[Vd.COLUMN0ROW2])+Math.abs(o*n[Vd.COLUMN1ROW0]+s*n[Vd.COLUMN1ROW1]+l*n[Vd.COLUMN1ROW2])+Math.abs(o*n[Vd.COLUMN2ROW0]+s*n[Vd.COLUMN2ROW1]+l*n[Vd.COLUMN2ROW2]),f=i.dot(r)+e.distance;return f<=-u?sa.OUTSIDE:f>=u?sa.INSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=Oge.from(e).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,JS),o=i.getColumn(1,QS),s=i.getColumn(2,$S),l=n.magnitude(),u=o.magnitude(),f=s.magnitude();n.normalize(),o.normalize(),s.normalize();let v=0,T;return T=Math.abs(r.dot(n))-l,T>0&&(v+=T*T),T=Math.abs(r.dot(o))-u,T>0&&(v+=T*T),T=Math.abs(r.dot(s))-f,T>0&&(v+=T*T),v}computePlaneDistances(e,r,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=this.center,l=this.halfAxes,u=l.getColumn(0,JS),f=l.getColumn(1,QS),v=l.getColumn(2,$S),T=Dge.copy(u).add(f).add(v).add(s),E=Lge.copy(T).subtract(e),M=r.dot(E);return n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),i[0]=n,i[1]=o,i}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,JS);r.transformAsPoint(e);let i=this.halfAxes.getColumn(1,QS);i.transformAsPoint(e);let n=this.halfAxes.getColumn(2,$S);return n.transformAsPoint(e),this.halfAxes=new mo([...r,...i,...n]),this}getTransform(){throw new Error("not implemented")}};var NG=new ot,kG=new ot,$a=class{constructor(e=[0,0,1],r=0){this.normal=new ot,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return Ja(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=NG.from(e),this.normal.from(r).normalize();let i=-this.normal.dot(e);return this.distance=i,this}fromCoefficients(e,r,i,n){return this.normal.set(e,r,i),Ja(Cs(this.normal.len(),1)),this.distance=n,this}clone(){return new $a(this.normal,this.distance)}equals(e){return Cs(this.distance,e.distance)&&Cs(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=kG.copy(this.normal).transformAsVector(e).normalize(),i=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(i,r)}projectPointOntoPlane(e,r=[0,0,0]){let i=NG.from(e),n=this.getPointDistance(i),o=kG.copy(this.normal).scale(n);return i.subtract(o).to(r)}};var UG=[new ot([1,0,0]),new ot([0,1,0]),new ot([0,0,1])],zG=new ot,Fge=new ot,wa=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*UG.length;let r=e.center,i=e.radius,n=0;for(let o of UG){let s=this.planes[n],l=this.planes[n+1];s||(s=this.planes[n]=new $a),l||(l=this.planes[n+1]=new $a);let u=zG.copy(o).scale(-i).add(r);s.fromPointNormal(u,o);let f=zG.copy(o).scale(i).add(r),v=Fge.copy(o).negate();l.fromPointNormal(f,v),n+=2}return this}computeVisibility(e){let r=sa.INSIDE;for(let i of this.planes)switch(e.intersectPlane(i)){case sa.OUTSIDE:return sa.OUTSIDE;case sa.INTERSECTING:r=sa.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(Ja(Number.isFinite(r),"parentPlaneMask is required."),r===wa.MASK_OUTSIDE||r===wa.MASK_INSIDE)return r;let i=wa.MASK_INSIDE,n=this.planes;for(let o=0;o<this.planes.length;++o){let s=o<31?1<<o:0;if(o<31&&!(r&s))continue;let l=n[o],u=e.intersectPlane(l);if(u===sa.OUTSIDE)return wa.MASK_OUTSIDE;u===sa.INTERSECTING&&(i|=s)}return i}};wa.MASK_OUTSIDE=4294967295;wa.MASK_INSIDE=0;wa.MASK_INDETERMINATE=2147483647;var Zet=new ot,Jet=new ot,Qet=new ot,$et=new ot,ett=new ot;var stt=new ot,att=new ot,ltt=new ot,ctt=new ot,utt=new ot,htt=new ot,ftt=new ot,dtt=new ot,ptt=new ot,Att=new ot,mtt=new ot,gtt=new ot;var Lf=new mo,kge=new mo,Uge=new mo,eC=new mo,VG=new mo;function ED(t,e={}){let r=ku.EPSILON20,i=10,n=0,o=0,s=kge,l=Uge;s.identity(),l.copy(t);let u=r*zge(l);for(;o<i&&Vge(l)>u;)jge(l,eC),VG.copy(eC).transpose(),l.multiplyRight(eC),l.multiplyLeft(VG),s.multiplyRight(eC),++n>2&&(++o,n=0);return e.unitary=s.toTarget(e.unitary),e.diagonal=l.toTarget(e.diagonal),e}function zge(t){let e=0;for(let r=0;r<9;++r){let i=t[r];e+=i*i}return Math.sqrt(e)}var wD=[1,0,0],TD=[2,2,1];function Vge(t){let e=0;for(let r=0;r<3;++r){let i=t[Lf.getElementIndex(TD[r],wD[r])];e+=2*i*i}return Math.sqrt(e)}function jge(t,e){let r=ku.EPSILON15,i=0,n=1;for(let f=0;f<3;++f){let v=Math.abs(t[Lf.getElementIndex(TD[f],wD[f])]);v>i&&(n=f,i=v)}let o=wD[n],s=TD[n],l=1,u=0;if(Math.abs(t[Lf.getElementIndex(s,o)])>r){let f=t[Lf.getElementIndex(s,s)],v=t[Lf.getElementIndex(o,o)],T=t[Lf.getElementIndex(s,o)],E=(f-v)/2/T,M;E<0?M=-1/(-E+Math.sqrt(1+E*E)):M=1/(E+Math.sqrt(1+E*E)),l=1/Math.sqrt(1+M*M),u=M*l}return mo.IDENTITY.to(e),e[Lf.getElementIndex(o,o)]=e[Lf.getElementIndex(s,s)]=l,e[Lf.getElementIndex(s,o)]=u,e[Lf.getElementIndex(o,s)]=-u,e}var rA=new ot,Hge=new ot,Gge=new ot,Wge=new ot,qge=new ot,Xge=new mo,Yge={diagonal:new mo,unitary:new mo};function xb(t,e=new Dh){if(!t||t.length===0)return e.halfAxes=new mo([0,0,0,0,0,0,0,0,0]),e.center=new ot,e;let r=t.length,i=new ot(0,0,0);for(let $ of t)i.add($);let n=1/r;i.multiplyByScalar(n);let o=0,s=0,l=0,u=0,f=0,v=0;for(let $ of t){let Z=rA.copy($).subtract(i);o+=Z.x*Z.x,s+=Z.x*Z.y,l+=Z.x*Z.z,u+=Z.y*Z.y,f+=Z.y*Z.z,v+=Z.z*Z.z}o*=n,s*=n,l*=n,u*=n,f*=n,v*=n;let T=Xge;T[0]=o,T[1]=s,T[2]=l,T[3]=s,T[4]=u,T[5]=f,T[6]=l,T[7]=f,T[8]=v;let{unitary:E}=ED(T,Yge),M=e.halfAxes.copy(E),O=M.getColumn(0,Gge),F=M.getColumn(1,Wge),U=M.getColumn(2,qge),G=-Number.MAX_VALUE,J=-Number.MAX_VALUE,K=-Number.MAX_VALUE,ne=Number.MAX_VALUE,ge=Number.MAX_VALUE,H=Number.MAX_VALUE;for(let $ of t)rA.copy($),G=Math.max(rA.dot(O),G),J=Math.max(rA.dot(F),J),K=Math.max(rA.dot(U),K),ne=Math.min(rA.dot(O),ne),ge=Math.min(rA.dot(F),ge),H=Math.min(rA.dot(U),H);O=O.multiplyByScalar(.5*(ne+G)),F=F.multiplyByScalar(.5*(ge+J)),U=U.multiplyByScalar(.5*(H+K)),e.center.copy(O).add(F).add(U);let me=Hge.set(G-ne,J-ge,K-H).multiplyByScalar(.5),he=new mo([me[0],0,0,0,me[1],0,0,0,me[2]]);return e.halfAxes.multiplyRight(he),e}var H_=512,jG=3,HG=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],GG=HG.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),Kge=GG.concat([[.25,.5],[.75,.5]]),iA=class{constructor(e,r,i){this.x=e,this.y=r,this.z=i}get children(){if(!this._children){let e=this.x*2,r=this.y*2,i=this.z+1;this._children=[new iA(e,r,i),new iA(e,r+1,i),new iA(e+1,r,i),new iA(e+1,r+1,i)]}return this._children}update(e){let{viewport:r,cullingVolume:i,elevationBounds:n,minZ:o,maxZ:s,bounds:l,offset:u,project:f}=e,v=this.getBoundingVolume(n,u,f);if(l&&!this.insideBounds(l)||i.computeVisibility(v)<0)return!1;if(!this.childVisible){let{z:E}=this;if(E<s&&E>=o){let M=v.distanceTo(r.cameraPosition)*r.scale/r.height;E+=Math.floor(Math.log2(M))}if(E>=s)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let E of this.children)E.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,i,n]){let o=Math.pow(2,this.z),s=H_/o;return this.x*s<i&&this.y*s<n&&(this.x+1)*s>e&&(this.y+1)*s>r}getBoundingVolume(e,r,i){if(i){let u=this.z<1?Kge:this.z<2?GG:HG,f=[];for(let v of u){let T=tC(this.x+v[0],this.y+v[1],this.z);T[2]=e[0],f.push(i(T)),e[0]!==e[1]&&(T[2]=e[1],f.push(i(T)))}return xb(f)}let n=Math.pow(2,this.z),o=H_/n,s=this.x*o+r*H_,l=H_-(this.y+1)*o;return new tA([s,l,e[0]],[s+o,l+o,e[1]])}};function WG(t,e,r,i){let n=t instanceof Dd&&t.resolution?t.projectPosition:null,o=Object.values(t.getFrustumPlanes()).map(({normal:M,distance:O})=>new $a(M.clone().negate(),O)),s=new wa(o),l=t.distanceScales.unitsPerMeter[2],u=r&&r[0]*l||0,f=r&&r[1]*l||0,v=t instanceof Sc&&t.pitch<=60?e:0;if(i){let[M,O,F,U]=i,G=La([M,U]),J=La([F,O]);i=[G[0],H_-G[1],J[0],H_-J[1]]}let T=new iA(0,0,0),E={viewport:t,project:n,cullingVolume:s,elevationBounds:[u,f],minZ:v,maxZ:e,bounds:i,offset:0};if(T.update(E),t instanceof Sc&&t.subViewports&&t.subViewports.length>1){for(E.offset=-1;T.update(E)&&!(--E.offset<-jG););for(E.offset=1;T.update(E)&&!(++E.offset>jG););}return T.getSelected()}var jd=512,Zge=[-1/0,-1/0,1/0,1/0],nA={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}};function XG(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(n=>n[0])),Math.min(...r.map(n=>n[1])),Math.max(...r.map(n=>n[0])),Math.max(...r.map(n=>n[1]))]}function Jge(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function Ff(t,e){if(!t||!t.length)return null;let{index:r,id:i}=e;if(Array.isArray(t)){let o=Jge(i)%t.length;t=t[o]}let n=t;for(let o of Object.keys(r)){let s=new RegExp(`{${o}}`,"g");n=n.replace(s,String(r[o]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),n}function Qge(t,e,r){let i;if(e&&e.length===2){let[n,o]=e,s=t.getBounds({z:n}),l=t.getBounds({z:o});i=[Math.min(s[0],l[0]),Math.min(s[1],l[1]),Math.max(s[2],l[2]),Math.max(s[3],l[3])]}else i=t.getBounds();return t.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function YG({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(n=>SD(n,e||0,r))}function SD(t,e,r){if(!Array.isArray(e)){let o=r.x-t.x,s=r.y-t.y,{width:l,height:u}=r,f={targetZ:e},v=t.unproject([o,s],f),T=t.unproject([o+l,s],f),E=t.unproject([o,s+u],f),M=t.unproject([o+l,s+u],f);return[Math.min(v[0],T[0],E[0],M[0]),Math.min(v[1],T[1],E[1],M[1]),Math.max(v[0],T[0],E[0],M[0]),Math.max(v[1],T[1],E[1],M[1])]}let i=SD(t,e[0],r),n=SD(t,e[1],r);return[Math.min(i[0],n[0]),Math.min(i[1],n[1]),Math.max(i[2],n[2]),Math.max(i[3],n[3])]}function $ge(t,e,r){return r?XG(t,r).map(n=>n*e/jd):t.map(i=>i*e/jd)}function CD(t,e){return Math.pow(2,t)*jd/e}function tC(t,e,r){let i=CD(r,jd),n=t/i*360-180,o=Math.PI-2*Math.PI*e/i,s=180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)));return[n,s]}function qG(t,e,r,i){let n=CD(r,i);return[t/n*jd,e/n*jd]}function MD(t,e,r,i,n=jd){if(t.isGeospatial){let[f,v]=tC(e,r,i),[T,E]=tC(e+1,r+1,i);return{west:f,north:v,east:T,south:E}}let[o,s]=qG(e,r,i,n),[l,u]=qG(e+1,r+1,i,n);return{left:o,top:s,right:l,bottom:u}}function e0e(t,e,r,i,n){let o=Qge(t,null,i),s=CD(e,r),[l,u,f,v]=$ge(o,s,n),T=[];for(let E=Math.floor(l);E<f;E++)for(let M=Math.floor(u);M<v;M++)T.push({x:E,y:M,z:e});return T}function ID({viewport:t,maxZoom:e,minZoom:r,zRange:i,extent:n,tileSize:o=jd,modelMatrix:s,modelMatrixInverse:l,zoomOffset:u=0}){let f=t.isGeospatial?Math.round(t.zoom+Math.log2(jd/o))+u:Math.ceil(t.zoom)+u;if(typeof r=="number"&&Number.isFinite(r)&&f<r){if(!n)return[];f=r}typeof e=="number"&&Number.isFinite(e)&&f>e&&(f=e);let v=n;return s&&l&&n&&!t.isGeospatial&&(v=XG(n,s)),t.isGeospatial?WG(t,f,i,n):e0e(t,f,o,v||Zge,l)}function PD(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function RD(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function KG(t){let e={},r;return i=>{for(let n in i)if(!t0e(i[n],e[n])){r=t(i),e=i;break}return r}}function t0e(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}return!1}var ZG=1,rC=2,r0e="never",i0e="no-overlap",bb="best-available",n0e=5,o0e={[bb]:a0e,[i0e]:l0e,[r0e]:()=>{}},s0e={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ig=class{constructor(e){this._getCullBounds=KG(YG),this.opts={...s0e,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new xp({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new Yr,this._modelMatrixInverse=new Yr}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:i}={zRange:null,modelMatrix:null}){let n=i?new Yr(i):new Yr,o=!n.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!Cs(this._zRange,r)||o){o&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=e,this._zRange=r;let l=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=l.map(u=>this._getTile(u,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(l=>this._getTile(l.index,!0)));let s=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),s&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:n}=e;for(let[o,s,l,u]of i){let f;if("west"in n)f=n.west<l&&n.east>o&&n.south<u&&n.north>s;else{let v=Math.min(n.top,n.bottom),T=Math.max(n.top,n.bottom);f=n.left<l&&n.right>o&&v<u&&T>s}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:i,zRange:n,modelMatrix:o,modelMatrixInverse:s}){let{tileSize:l,extent:u,zoomOffset:f}=this.opts;return ID({viewport:e,maxZoom:r,minZoom:i,zRange:n,tileSize:l,extent:u,modelMatrix:o,modelMatrixInverse:s,zoomOffset:f})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:MD(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),i=Math.floor(e.y/2),n=e.z-1;return{x:r,y:i,z:n}}updateTileStates(){let e=this.opts.refinementStrategy||bb,r=new Array(this._cache.size),i=0;for(let n of this._cache.values())r[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(let n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof e=="function"?e:o0e[e])(Array.from(this._cache.values())),i=0;for(let n of this._cache.values())if(r[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],i=0;for(let n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&r.push(n));for(;e>0&&i>e&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let i=this._getNearestAncestor(r);r.parent=i,i?.children&&i.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:n0e*this.selectedTiles.length),n=r.maxCacheByteSize||1/0;if(e.size>i||this._cacheByteSize>n){for(let[s,l]of e)if(!l.isVisible&&!l.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize?l.byteLength:0,e.delete(s),this.opts.onTileUnload?.(l)),e.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((s,l)=>s.zoom-l.zoom),this._dirty=!1)}_getTile(e,r){let i=this.getTileId(e),n=this._cache.get(i),o=!1;return!n&&r?(n=new rg(e),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),o=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(o=!0),n&&o&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(e){let{_minZoom:r=0}=this,i=e.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let n=this._getTile(i);if(n)return n}return null}};function a0e(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!JG(e)&&BD(e);for(let e of t)e.isVisible=Boolean(e.state&rC)}function l0e(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&JG(r);let e=Array.from(t).sort((r,i)=>r.zoom-i.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&rC),r.children&&(r.isVisible||r.state&ZG))for(let i of r.children)i.state=ZG;else r.isSelected&&BD(r)}function JG(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=rC,!0;e=e.parent}return!1}function BD(t){for(let e of t.children)e.isLoaded||e.content?e.state|=rC:BD(e)}var c0e={TilesetClass:ig,data:{type:"data",value:[]},dataComparator:nA.equal,renderSubLayers:{type:"function",value:t=>new Df(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:bb,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0},iC=class extends es{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,i=e.propsOrDataChanged||e.updateTriggersChanged,n=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),n?r.reloadAll():r.tiles.forEach(o=>{o.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:n,extent:o,maxZoom:s,minZoom:l,maxRequests:u,debounceTime:f,zoomOffset:v}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:s,minZoom:l,tileSize:e,refinementStrategy:n,extent:o,maxRequests:u,debounceTime:f,zoomOffset:v,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:i}=this.props,n=e.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:o}=e,s=this.state.isLoaded!==o,l=this.state.frameNumber!==n;o&&(s||l)&&this._onViewportLoad(),l&&this.setState({frameNumber:n}),this.state.isLoaded=o}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:i,fetch:n}=this.props,{signal:o}=e;return e.url=typeof r=="string"||Array.isArray(r)?Ff(r,e):null,i?i(e):n&&e.url?n(e.url,{propName:"data",layer:this,signal:o}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer.props.tile,i=e.info;return i.picked&&(i.tile=r),i.sourceTile=r,i}_updateAutoHighlight(e){let r=e.sourceTile;if(r&&r.layers)for(let i of r.layers)i.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(i=>e.layers[0].props[i]!==r[i])&&(e.layers=e.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=Bf(i,Boolean).map(n=>n.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:i}=e.props;return this.state.tileset.isTileVisible(i,r)}},Nf=iC;(()=>{iC.defaultProps=c0e})(),(()=>{iC.layerName="TileLayer"})();var u0e={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},nC=class extends Rh{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
|
|
3315
|
+
`;var kAe=2,iD={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},D7=[0,0],UAe={SUM:0,MEAN:1},zAe={getPosition:{type:"accessor",value:t=>t.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Wu,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},VAe=["float32-renderable-webgl","texture-blend-float-webgl"],jAe={data:{props:["radiusPixels"]}},zS=class extends ru{initializeState(){super.initializeAggregationLayer(jAe),this.setState({colorDomain:D7}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){let{props:r,oldProps:i}=e,n=this._getChangeFlags(e);(n.dataChanged||n.viewportChanged)&&(n.boundsChanged=this._updateBounds(n.dataChanged),this._updateTextureRenderingBounds()),n.dataChanged||n.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):n.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){let{weightsTexture:e,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:n,colorTexture:o,colorDomain:s}=this.state,{updateTriggers:l,intensity:u,threshold:f,aggregation:v}=this.props,T=this.getSubLayerClass("triangle",ub);return new T(this.getSubLayerProps({id:"triangle-layer",updateTriggers:l}),{coordinateSystem:Kr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:n,colorTexture:o,aggregationMode:UAe[v]||0,weightsTexture:e,intensity:u,threshold:f,colorDomain:s})}finalizeState(e){super.finalizeState(e);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:n,maxWeightsTexture:o,triPositionBuffer:s,triTexCoordBuffer:l,colorTexture:u,updateTimer:f}=this.state;r?.destroy(),i?.destroy(),n?.destroy(),o?.destroy(),s?.destroy(),l?.destroy(),u?.destroy(),f&&clearTimeout(f)}_getAttributeManager(){return new Ih(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()&&"attribute changed"||this.isAggregationDirty(e,{compareAll:!0,dimension:i.data})&&"aggregation is dirty",r.viewportChanged=e.changeFlags.viewportChanged;let{zoom:n}=this.state;return(!e.context.viewport||e.context.viewport.zoom!==n)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{textureSize:e,format:r}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...iD,width:e,height:e,format:r}),maxWeightsTexture:this.context.device.createTexture({...iD,width:1,height:1,format:r})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){let{device:e}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,e.limits.maxTextureDimension2D),n=VAe.every(l=>e.features.has(l)),o=n?"rgba32float":"rgba8unorm",s=n?1:1/255;this.setState({textureSize:i,format:o,weightsScale:s}),n||ur.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:r}=this.state,{weightsTexture:i}=this.state,n=this.getAttributeManager();r?.destroy(),r=new If(this.context.device,{id:`${this.id}-weights-transform`,bufferLayout:n.getBufferLayouts(),vertexCount:1,targetTexture:i,parameters:{depthWriteEnabled:!1,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",...e}),this.setState({weightsTransform:r})}_setupResources(){this._createTextures();let{device:e}=this.context,{textureSize:r,weightsTexture:i,maxWeightsTexture:n}=this.state,o=this.getShaders({vs:tD,fs:rD});this._createWeightsTransform(o);let s=this.getShaders({vs:B7,fs:O7}),l=new If(e,{id:`${this.id}-max-weights-transform`,bindings:{inTexture:i},uniforms:{textureSize:r},targetTexture:n,...s,vertexCount:r*r,topology:"point-list",parameters:{depthWriteEnabled:!1,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}});this.setState({weightsTexture:i,maxWeightsTexture:n,maxWeightTransform:l,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:tD,fs:rD,...e})}_updateMaxWeightValue(){let{maxWeightTransform:e}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(l=>l.map(Math.fround)),n=S7(i),o={visibleWorldBounds:n,viewportCorners:i},s=!1;if(e||!this.state.worldBounds||!C7(this.state.worldBounds,n)){let l=this._worldToCommonBounds(n),u=this._commonToWorldBounds(l);this.props.coordinateSystem===Kr.LNGLAT&&(u[1]=Math.max(u[1],-85.051129),u[3]=Math.min(u[3],85.051129),u[0]=Math.max(u[0],-360),u[2]=Math.min(u[2],360));let f=this._worldToCommonBounds(u);o.worldBounds=u,o.normalizedCommonBounds=f,s=!0}return this.setState(o),s}_updateTextureRenderingBounds(){let{triPositionBuffer:e,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:n}=this.state,{viewport:o}=this.context;e.write($O(n,3));let s=n.map(l=>I7(o.projectPosition(l),i));r.write($O(s,2))}_updateColorTexture(e){let{colorRange:r}=e.props,{colorTexture:i}=this.state,n=Jp(r,!1,Uint8Array);i&&i?.width===r.length?i.setSubImageData({data:n}):(i?.destroy(),i=this.context.device.createTexture({...iD,data:n,width:r.length,height:1})),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:e,colorDomain:r,aggregation:i}=this.props,{worldBounds:n,textureSize:o,weightsScale:s}=this.state,l=this.state.weightsTransform;this.state.isWeightMapDirty=!1;let u=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i==="SUM"){let{viewport:F}=this.context,U=F.distanceScales.metersPerUnit[2]*(u[2]-u[0])/o;this.state.colorDomain=r.map(G=>G*U*s)}else this.state.colorDomain=r||D7;let v=this.getAttributeManager().getAttributes(),T=this.getModuleSettings(),E=v.positions.buffer,M={radiusPixels:e,commonBounds:u,textureWidth:o,weightsScale:s},O=v.weights.buffer;l.model.setAttributes({positions:E,weights:O}),l.model.setVertexCount(this.getNumInstances()),l.model.setUniforms(M),l.model.updateModuleSettings(T),l.run({parameters:{viewport:[0,0,o,o]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;e?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(e,r={}){let{useLayerCoordinateSystem:i=!1}=r,[n,o,s,l]=e,{viewport:u}=this.context,{textureSize:f}=this.state,{coordinateSystem:v}=this.props,T=i&&(v===Kr.LNGLAT_OFFSETS||v===Kr.METER_OFFSETS),E=T?u.projectPosition(this.props.coordinateOrigin):[0,0],M=f*kAe/u.scale,O,F;return i&&!T?(O=this.projectPosition([n,o,0]),F=this.projectPosition([s,l,0])):(O=u.projectPosition([n,o,0]),F=u.projectPosition([s,l,0])),M7([O[0]-E[0],O[1]-E[1],F[0]-E[0],F[1]-E[1]],M,M)}_commonToWorldBounds(e){let[r,i,n,o]=e,{viewport:s}=this.context,l=s.unprojectPosition([r,i]),u=s.unprojectPosition([n,o]);return l.slice(0,2).concat(u.slice(0,2))}},hb=zS;(()=>{zS.layerName="HeatmapLayer"})(),(()=>{zS.defaultProps=zAe})();function HAe(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function VS(t){if(Array.isArray(t))return t.map(e=>VS(e));if(t&&typeof t=="object"){let e={};for(let[r,i]of Object.entries(t))e[HAe(r)]=VS(i);return e}return t}var dG=ga(fG(),1);function fD(t,e){if(e!=null&&e._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(n,o,s,l)=>{var u;return Boolean(e==null||(u=e.arrayPaths)===null||u===void 0?void 0:u.some(v=>o===v))},...e?._fastXML},i=Qme(t,r);return e!=null&&e.uncapitalizeKeys?VS(i):i}function Qme(t,e){return new dG.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var $me="4.1.4",rc={name:"XML",id:"xml",module:"xml",version:$me,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:ege,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>fD(new TextDecoder().decode(t),{...rc.options.xml,...e?.xml}),parseTextSync:(t,e)=>fD(t,{...rc.options.xml,...e?.xml})};function ege(t){return t.startsWith("<?xml")}function pG(t,e){var r,i,n;let o=(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e),s=(o==null||(i=o.ServiceExceptionReport)===null||i===void 0?void 0:i.ServiceException)||(o==null||(n=o["ogc:ServiceExceptionReport"])===null||n===void 0?void 0:n["ogc:ServiceException"]);return typeof s=="string"?s:s.value||s.code||"Unknown error"}var tge="4.1.4",$m={id:"wms-error",name:"WMS Error",module:"wms",version:tge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:rge,options:{wms:{throwOnError:!1}},parse:async(t,e)=>dD(new TextDecoder().decode(t),e),parseSync:(t,e)=>dD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>dD(t,e)};function rge(t){return t.startsWith("<?xml")}function dD(t,e){let r={...$m.options.wms,...e?.wms},i=pG(t,r),n=r.minimalErrors?i:`WMS Service error: ${i}`;if(r.throwOnError)throw new Error(n);return n}function eg(t){return Array.isArray(t)?t:t?[t]:[]}function pb(t){let e=eg(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Ab(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function HS(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function tg(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function pD(t,e){var r;let i=(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e),n=i.WMT_MS_Capabilities||i.WMS_Capabilities||i,o=ige(n);if(e!=null&&e.inheritedLayerProps)for(let s of o.layers)mG(s,null);return e!=null&&e.includeRawJSON&&(o.json=n),e!=null&&e.includeXMLText&&(o.xml=t),o}function ige(t){var e,r,i,n,o,s,l,u,f,v,T,E,M,O,F,U;let G={version:String(t.version||""),name:String(((e=t.Service)===null||e===void 0?void 0:e.Name)||"unnamed"),title:(r=t.Service)!==null&&r!==void 0&&r.Title?String((i=t.Service)===null||i===void 0?void 0:i.Title):void 0,abstract:(n=t.Service)!==null&&n!==void 0&&n.Abstract?String((o=t.Service)===null||o===void 0?void 0:o.Abstract):void 0,keywords:pb((s=t.Service)===null||s===void 0||(l=s.KeywordList)===null||l===void 0?void 0:l.Keyword),fees:(u=t.Service)!==null&&u!==void 0&&u.Fees?JSON.stringify((f=t.Service)===null||f===void 0?void 0:f.Fees):void 0,accessConstraints:(v=t.Service)!==null&&v!==void 0&&v.AccessConstraints?JSON.stringify((T=t.Service)===null||T===void 0?void 0:T.AccessConstraints):void 0,layerLimit:HS((E=t.Service)===null||E===void 0?void 0:E.LayerLimit),maxWidth:HS((M=t.Service)===null||M===void 0?void 0:M.maxWidth),maxHeight:HS((O=t.Service)===null||O===void 0?void 0:O.maxHeight),layers:[],requests:nge((F=t.Capability)===null||F===void 0?void 0:F.Request),exceptions:oge(t.Exception)},J=eg((U=t.Capability)===null||U===void 0?void 0:U.Layer);for(let K of J)G.layers.push(AG(K));for(let[K,ne]of Object.entries(G))ne===void 0&&delete G[K];return G}function nge(t){let e={};for(let[r,i]of Object.entries(t||{})){let n=pb(i?.Format);e[r]={mimeTypes:n}}return e}function oge(t){if(eg(t?.Format).length>0)return{mimeTypes:pb(t)}}function AG(t){var e;let r={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:pb((e=t.KeywordList)===null||e===void 0?void 0:e.Keyword)},i=t?.CRS||t?.SRS;i&&Array.isArray(i)&&i.every(v=>typeof v=="string")&&(r.crs=i);let n=t?.EX_GeographicBoundingBox&&sge(t?.EX_GeographicBoundingBox);n&&(r.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&age(t?.LatLonBoundingBox),n&&(r.geographicBoundingBox=n);let o=t?.BoundingBox&&lge(t?.BoundingBox);o&&o.length>0&&(r.boundingBoxes=o);let l=eg(t?.Dimension).map(v=>uge(v));l.length&&(r.dimensions=l),t!=null&&t.opaque&&(r.opaque=tg(t?.opaque)),t!=null&&t.cascaded&&(r.cascaded=tg(t?.cascaded)),t!=null&&t.queryable&&(r.queryable=tg(t?.queryable));let u=eg(t?.Layer),f=[];for(let v of u)f.push(AG(v));f.length>0&&(r.layers=f);for(let[v,T]of Object.entries(r))T===void 0&&delete r[v];return r}function sge(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:i,southBoundLatitude:n}=t;return[[e,n],[i,r]]}function age(t){let{minx:e,miny:r,maxx:i,maxy:n}=t;return[[e,r],[i,n]]}function lge(t){return eg(t).map(r=>cge(r))}function cge(t){let{CRS:e,SRS:r,minx:i,miny:n,maxx:o,maxy:s,resx:l,resy:u}=t,f={crs:e||r,boundingBox:[[Ab(i),Ab(n)],[Ab(o),Ab(s)]]};return l&&(f.xResolution=l),u&&(f.yResolution=u),f}function uge(t){let{name:e,units:r,value:i}=t,n={name:e,units:r,extent:i};return t.unitSymbol&&(n.unitSymbol=t.unitSymbol),t.default&&(n.defaultValue=t.default),t.multipleValues&&(n.multipleValues=tg(t.multipleValues)),t.nearestValue&&(n.nearestValue=tg(t.nearestValue)),t.current&&(n.current=tg(t.current)),n}function mG(t,e){e!=null&&e.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e!=null&&e.crs&&!t.crs&&(t.crs=[...e.crs]),e!=null&&e.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e!=null&&e.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])mG(r,t)}var hge="4.1.4",V_={id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:hge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:fge,options:{wms:{}},parse:async(t,e)=>pD(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>pD(t,e?.wms)};function fge(t){return t.startsWith("<?xml")}function AD(t,e){var r,i;let o=((i=((r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e)).FeatureInfoResponse)===null||i===void 0?void 0:i.FIELDS)||[];return{features:(Array.isArray(o)?o:[o]).map(l=>dge(l))}}function dge(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var gG={...V_,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>AD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>AD(t,e)};function mD(t,e){var r;return(r=rc.parseTextSync)===null||r===void 0?void 0:r.call(rc,t,e)}var _G={...V_,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>mD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>mD(t,e)};function yG(t,e){let{type:r="auto"}=t,i=r==="auto"?Age(t.url,e):pge(r,e);if(!i)throw new Error("Not a valid image source type");return i.create(t)}function pge(t,e){for(let r of e)if(r.type===t)return r;return null}function Age(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var vG={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new gD(t)},gD=class extends Mu{constructor(e){var r;super(e),this.url=void 0,this.data=void 0,this.substituteCRS84=void 0,this.flipCRS=void 0,this.wmsParameters=void 0,this.vendorParameters=void 0,this.capabilities=null,this.url=e.url,this.data=e.url,this.substituteCRS84=(r=e.substituteCRS84)!==null&&r!==void 0?r:!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:i,...n}=e,o={bbox:r?[...r[0],...r[1]]:i,...n};return await this.getMap(o)}normalizeMetadata(e){return e}async getCapabilities(e,r){let i=this.getCapabilitiesURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);let s=await V_.parse(o,this.loadOptions);return this.capabilities=s,s}async getMap(e,r){let i=this.getMapURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}async getFeatureInfo(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await gG.parse(o,this.loadOptions)}async getFeatureInfoText(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),new TextDecoder().decode(o)}async describeLayer(e,r){let i=this.describeLayerURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await _G.parse(o,this.loadOptions)}async getLegendGraphic(e,r){let i=this.getLegendGraphicURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}getCapabilitiesURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",i,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",i,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",i,r)}describeLayerURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",i,r)}getLegendGraphicURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",i,r)}_parseWMSUrl(e){let[r,i]=e.split("?"),n=i.split("&"),o={};for(let s of n){let[l,u]=s.split("=");o[l]=u}return{url:r,parameters:o}}_getWMSUrl(e,r,i){let n=this.url,o=!0,s={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...i},l=["transparent","time","elevation"];for(let[u,f]of Object.entries(s))(!l.includes(u)||f)&&(n+=o?"?":"&",o=!1,n+=this._getURLParameter(u,f,r));return encodeURI(n)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,i){switch(e){case"crs":i.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":i.version==="1.3.0"&&(e="crs");break;case"bbox":let n=this._flipBoundingBox(r,i);n&&(r=n);break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let i=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),n=e;return i?[n[1],n[0],n[3],n[2]]:n}async _fetchArrayBuffer(e){let r=await this.fetch(e),i=await r.arrayBuffer();return this._checkResponse(r,i),i}_checkResponse(e,r){let i=e.headers["content-type"];if(!e.ok||$m.mimeTypes.includes(i)){var n;let o=Wv(this.loadOptions,{wms:{throwOnError:!0}}),s=(n=$m.parseSync)===null||n===void 0?void 0:n.call($m,r,o);throw new Error(s)}}_parseError(e){var r;let i=(r=$m.parseSync)===null||r===void 0?void 0:r.call($m,e,this.loadOptions);return new Error(i)}};var j_=class extends Mu{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),i=this.getURLFromTemplate(r),o=await(await this.fetch(i)).arrayBuffer();return await Sf.parse(o)}getGranularParameters(e){let[[r,i],[n,o]]=e.boundingBox;return{...e,east:r,north:i,south:o,west:n}}getURLFromTemplate(e){let r=this.props.url;for(let[i,n]of Object.entries(e))r=r.replace(`\${${i}}`,String(n)),r=r.replace(`{${i}}`,String(n));return r}};j_.type="template";j_.testURL=t=>t.toLowerCase().includes("{");var _D=class extends j_{constructor(e){super(e),this.data=void 0,this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,i=`size=${e.width},${e.height}`,n={...e,bbox:r,size:i};return delete n.width,delete n.height,this.getUrl("exportImage",n)}getUrl(e,r,i){let n=`${this.props.url}/${e}`,o=!0;for(let[s,l]of Object.entries(r))n+=o?"?":"&",o=!1,Array.isArray(l)?n+=`${s.toUpperCase()}=${l.join(",")}`:n+=`${s.toUpperCase()}=${l?String(l):""}`;return n}async checkResponse(e){if(!e.ok)throw new Error("error")}},xG={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new _D(t)};var mge=[vG,xG];function yD(t){return yG(t,mge)}var bG=6378137*Math.PI;function vD(t){let e=La(t);return e[0]=(e[0]/256-1)*bG,e[1]=(e[1]/256-1)*bG,e}var gge={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},WS=class extends es{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:i}){let{viewport:n}=this.context;e.dataChanged||r.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(n,"image source changed"),0)):Ls(r.layers,i.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(n,"viewport changed")):this.debounce(()=>this.loadImage(n,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:i}=this.state;return r&&new Um({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:i.srs==="EPSG:4326"?Kr.LNGLAT:Kr.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.({...i,query_layers:i.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Mu)return e.data;if(typeof e.data=="string")return yD({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:i,serviceType:n}=this.props;if(n==="wms"&&i.length===0)return;let o=e.getBounds(),{width:s,height:l}=e,u=this.getRequestId(),{srs:f}=this.props;f==="auto"&&(f=e.resolution?"EPSG:4326":"EPSG:3857");let v={width:s,height:l,boundingBox:[[o[0],o[1]],[o[2],o[3]]],layers:i,crs:f};if(f==="EPSG:3857"){let T=vD([o[0],o[1]]),E=vD([o[2],o[3]]);v.boundingBox=[T,E]}try{this.state.loadCounter++,this.props.onImageLoadStart(u);let T=await this.state.imageSource.getImage(v);this.state.lastRequestId<u&&(this.getCurrentLayer()?.props.onImageLoad(u),this.setState({image:T,bounds:o,lastRequestParameters:v,lastRequestId:u}))}catch(T){this.raiseError(T,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(u,T)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},GS=WS;(()=>{WS.layerName="WMSLayer"})(),(()=>{WS.defaultProps=gge})();var _ge={getHeight:{type:"accessor",value:0},greatCircle:!0},qS=class extends km{},mb=qS;(()=>{qS.layerName="GreatCircleLayer"})(),(()=>{qS.defaultProps=_ge})();var yge={...Oh.defaultProps},XS=class extends es{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:i,filled:n,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:U}=this.props,{updateTriggers:G,material:J,transitions:K}=this.props,ne=this.getSubLayerClass("cell",Oh),{updateTriggers:ge,...H}=this.indexToBounds()||{};return new ne({filled:n,wireframe:i,extruded:r,elevationScale:e,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,material:J,transitions:K,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:U},this.getSubLayerProps({id:"cell",updateTriggers:G&&{...ge,getElevation:G.getElevation,getFillColor:G.getFillColor,getLineColor:G.getLineColor,getLineWidth:G.getLineWidth}}),H)}},iu=XS;(()=>{XS.layerName="GeoCellLayer"})(),(()=>{XS.defaultProps=yge})();var YS=ga(xD(),1),vge=3,xge=30,bge=2*xge+1,TG=180/Math.PI;function SG(t,e,r){let i=1<<e;return[(t[0]+r[0])/i,(t[1]+r[1])/i]}function EG(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function CG(t){return[EG(t[0]),EG(t[1])]}function MG(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function IG([t,e,r]){let i=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*TG,i*TG]}function PG(t){let e=YS.default.fromString(t,!0,10).toString(2);for(;e.length<vge+bge;)e="0"+e;let r=e.lastIndexOf("1"),i=e.substring(0,3),n=e.substring(3,r),o=n.length/2,s=YS.default.fromString(i,!0,2).toString(10),l=YS.default.fromString(n,!0,2).toString(4);for(;l.length<o;)l="0"+l;return`${s}/${l}`}function wge(t,e,r,i){if(i===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let n=e[0];e[0]=e[1],e[1]=n}}function RG(t){let e=t.split("/"),r=parseInt(e[0],10),i=e[1],n=i.length,o=[0,0],s;for(let l=n-1;l>=0;l--){s=n-l;let u=i[l],f=0,v=0;u==="1"?v=1:u==="2"?(f=1,v=1):u==="3"&&(f=1);let T=Math.pow(2,s-1);wge(T,o,f,v),o[0]+=T*f,o[1]+=T*v}if(r%2===1){let l=o[0];o[0]=o[1],o[1]=l}return{face:r,ij:o,level:s}}var BG=ga(xD(),1);function Tge(t){let e=t.padEnd(16,"0");return BG.default.fromString(e,16)}var Ege=100;function Sge({face:t,ij:e,level:r}){let i=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(Ege*Math.pow(2,-r))),o=new Float64Array(4*n*2+2),s=0,l=0;for(let u=0;u<4;u++){let f=i[u].slice(0),v=i[u+1],T=(v[0]-f[0])/n,E=(v[1]-f[1])/n;for(let M=0;M<n;M++){f[0]+=T,f[1]+=E;let O=SG(e,r,f),F=CG(O),U=MG(t,F),G=IG(U);Math.abs(G[1])>89.999&&(G[0]=l);let J=G[0]-l;G[0]+=J>180?-360:J<-180?360:0,o[s++]=G[0],o[s++]=G[1],l=G[0]}}return o[s++]=o[0],o[s++]=o[1],o}function Cge(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=Tge(t)}return PG(t.toString())}function OG(t){let e=Cge(t),r=RG(e);return Sge(r)}var Mge={getS2Token:{type:"accessor",value:t=>t.token}},KS=class extends iu{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,n)=>OG(r(i,n))}}},_b=KS;(()=>{KS.layerName="S2Layer"})(),(()=>{KS.defaultProps=Mge})();var bD=512;function Ige(t,e){let r=0,i=0,n=1<<t.length,o=n/bD;for(let s=0;s<t.length;s++){n>>=1;let l=parseInt(t[s]);l%2&&(r|=n),l>1&&(i|=n)}return[[r/o,bD-i/o],[(r+e)/o,bD-(i+e)/o]]}function DG(t,e=1){let[r,i]=Ige(t,e),[n,o]=vl(r),[s,l]=vl(i);return[s,o,s,l,n,l,n,o,s,o]}var Pge={getQuadkey:{type:"accessor",value:t=>t.quadkey}},ZS=class extends iu{indexToBounds(){let{data:e,extruded:r,getQuadkey:i}=this.props,n=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(o,s)=>DG(i(o,s),n),updateTriggers:{getPolygon:n}}}},yb=ZS;(()=>{ZS.layerName="QuadkeyLayer"})(),(()=>{ZS.defaultProps=Pge})();var rg=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:i,onError:n}){let{index:o,id:s,bbox:l,userData:u,zoom:f}=this,v=this._loaderId;this._abortController=new AbortController;let{signal:T}=this._abortController,E=await r.scheduleRequest(this,F=>F.isSelected?1:-1);if(!E){this._isCancelled=!0;return}if(this._isCancelled){E.done();return}let M=null,O;try{M=await e({index:o,id:s,bbox:l,userData:u,zoom:f,signal:T})}catch(F){O=F||!0}finally{E.done()}if(v===this._loaderId){if(this._loader=void 0,this.content=M,this._isCancelled&&!M){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,O?n(O,this):i(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var sa={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var LG=new ot,Rge=new ot,tA=class{constructor(e=[0,0,0],r=[0,0,0],i){i=i||LG.copy(e).add(r).scale(.5),this.center=new ot(i),this.halfDiagonal=new ot(r).subtract(this.center),this.minimum=new ot(e),this.maximum=new ot(r)}clone(){return new tA(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,i=Rge.from(e.normal),n=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),o=this.center.dot(i)+e.distance;return o-n>0?sa.INSIDE:o+n<0?sa.OUTSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=LG.from(e).subtract(this.center),{halfDiagonal:i}=this,n=0,o;return o=Math.abs(r.x)-i.x,o>0&&(n+=o*o),o=Math.abs(r.y)-i.y,o>0&&(n+=o*o),o=Math.abs(r.z)-i.z,o>0&&(n+=o*o),n}};var vb=new ot,FG=new ot,qu=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new ot,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=vb.from(r),this.center=new ot().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new qu(this.center,this.radius)}union(e){let r=this.center,i=this.radius,n=e.center,o=e.radius,s=vb.copy(n).subtract(r),l=s.magnitude();if(i>=l+o)return this.clone();if(o>=l+i)return e.clone();let u=(i+l+o)*.5;return FG.copy(s).scale((-i+u)/l).add(r),this.center.copy(FG),this.radius=u,this}expand(e){let i=vb.from(e).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(e){this.center.transform(e);let r=Zs.getScaling(vb,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let i=vb.from(e).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(e){let r=this.center,i=this.radius,o=e.normal.dot(r)+e.distance;return o<-i?sa.OUTSIDE:o<i?sa.INTERSECTING:sa.INSIDE}};var Bge=new ot,Oge=new ot,JS=new ot,QS=new ot,$S=new ot,Dge=new ot,Lge=new ot,Vd={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Dh=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new ot().from(e),this.halfAxes=new mo(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2);return[new ot(e).len(),new ot(r).len(),new ot(i).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2),n=new ot(e).normalize(),o=new ot(r).normalize(),s=new ot(i).normalize();return new Nu().fromMatrix3(new mo([...n,...o,...s]))}fromCenterHalfSizeQuaternion(e,r,i){let n=new Nu(i),o=new mo().fromQuaternion(n);return o[0]=o[0]*r[0],o[1]=o[1]*r[0],o[2]=o[2]*r[0],o[3]=o[3]*r[1],o[4]=o[4]*r[1],o[5]=o[5]*r[1],o[6]=o[6]*r[2],o[7]=o[7]*r[2],o[8]=o[8]*r[2],this.center=new ot().from(e),this.halfAxes=o,this}clone(){return new Dh(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new qu){let r=this.halfAxes,i=r.getColumn(0,JS),n=r.getColumn(1,QS),o=r.getColumn(2,$S),s=Bge.copy(i).add(n).add(o);return e.center.copy(this.center),e.radius=s.magnitude(),e}intersectPlane(e){let r=this.center,i=e.normal,n=this.halfAxes,o=i.x,s=i.y,l=i.z,u=Math.abs(o*n[Vd.COLUMN0ROW0]+s*n[Vd.COLUMN0ROW1]+l*n[Vd.COLUMN0ROW2])+Math.abs(o*n[Vd.COLUMN1ROW0]+s*n[Vd.COLUMN1ROW1]+l*n[Vd.COLUMN1ROW2])+Math.abs(o*n[Vd.COLUMN2ROW0]+s*n[Vd.COLUMN2ROW1]+l*n[Vd.COLUMN2ROW2]),f=i.dot(r)+e.distance;return f<=-u?sa.OUTSIDE:f>=u?sa.INSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=Oge.from(e).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,JS),o=i.getColumn(1,QS),s=i.getColumn(2,$S),l=n.magnitude(),u=o.magnitude(),f=s.magnitude();n.normalize(),o.normalize(),s.normalize();let v=0,T;return T=Math.abs(r.dot(n))-l,T>0&&(v+=T*T),T=Math.abs(r.dot(o))-u,T>0&&(v+=T*T),T=Math.abs(r.dot(s))-f,T>0&&(v+=T*T),v}computePlaneDistances(e,r,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=this.center,l=this.halfAxes,u=l.getColumn(0,JS),f=l.getColumn(1,QS),v=l.getColumn(2,$S),T=Dge.copy(u).add(f).add(v).add(s),E=Lge.copy(T).subtract(e),M=r.dot(E);return n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),i[0]=n,i[1]=o,i}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,JS);r.transformAsPoint(e);let i=this.halfAxes.getColumn(1,QS);i.transformAsPoint(e);let n=this.halfAxes.getColumn(2,$S);return n.transformAsPoint(e),this.halfAxes=new mo([...r,...i,...n]),this}getTransform(){throw new Error("not implemented")}};var NG=new ot,kG=new ot,$a=class{constructor(e=[0,0,1],r=0){this.normal=new ot,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return Ja(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=NG.from(e),this.normal.from(r).normalize();let i=-this.normal.dot(e);return this.distance=i,this}fromCoefficients(e,r,i,n){return this.normal.set(e,r,i),Ja(Cs(this.normal.len(),1)),this.distance=n,this}clone(){return new $a(this.normal,this.distance)}equals(e){return Cs(this.distance,e.distance)&&Cs(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=kG.copy(this.normal).transformAsVector(e).normalize(),i=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(i,r)}projectPointOntoPlane(e,r=[0,0,0]){let i=NG.from(e),n=this.getPointDistance(i),o=kG.copy(this.normal).scale(n);return i.subtract(o).to(r)}};var UG=[new ot([1,0,0]),new ot([0,1,0]),new ot([0,0,1])],zG=new ot,Fge=new ot,wa=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*UG.length;let r=e.center,i=e.radius,n=0;for(let o of UG){let s=this.planes[n],l=this.planes[n+1];s||(s=this.planes[n]=new $a),l||(l=this.planes[n+1]=new $a);let u=zG.copy(o).scale(-i).add(r);s.fromPointNormal(u,o);let f=zG.copy(o).scale(i).add(r),v=Fge.copy(o).negate();l.fromPointNormal(f,v),n+=2}return this}computeVisibility(e){let r=sa.INSIDE;for(let i of this.planes)switch(e.intersectPlane(i)){case sa.OUTSIDE:return sa.OUTSIDE;case sa.INTERSECTING:r=sa.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(Ja(Number.isFinite(r),"parentPlaneMask is required."),r===wa.MASK_OUTSIDE||r===wa.MASK_INSIDE)return r;let i=wa.MASK_INSIDE,n=this.planes;for(let o=0;o<this.planes.length;++o){let s=o<31?1<<o:0;if(o<31&&!(r&s))continue;let l=n[o],u=e.intersectPlane(l);if(u===sa.OUTSIDE)return wa.MASK_OUTSIDE;u===sa.INTERSECTING&&(i|=s)}return i}};wa.MASK_OUTSIDE=4294967295;wa.MASK_INSIDE=0;wa.MASK_INDETERMINATE=2147483647;var Zet=new ot,Jet=new ot,Qet=new ot,$et=new ot,ett=new ot;var stt=new ot,att=new ot,ltt=new ot,ctt=new ot,utt=new ot,htt=new ot,ftt=new ot,dtt=new ot,ptt=new ot,Att=new ot,mtt=new ot,gtt=new ot;var Lf=new mo,kge=new mo,Uge=new mo,eC=new mo,VG=new mo;function ED(t,e={}){let r=ku.EPSILON20,i=10,n=0,o=0,s=kge,l=Uge;s.identity(),l.copy(t);let u=r*zge(l);for(;o<i&&Vge(l)>u;)jge(l,eC),VG.copy(eC).transpose(),l.multiplyRight(eC),l.multiplyLeft(VG),s.multiplyRight(eC),++n>2&&(++o,n=0);return e.unitary=s.toTarget(e.unitary),e.diagonal=l.toTarget(e.diagonal),e}function zge(t){let e=0;for(let r=0;r<9;++r){let i=t[r];e+=i*i}return Math.sqrt(e)}var wD=[1,0,0],TD=[2,2,1];function Vge(t){let e=0;for(let r=0;r<3;++r){let i=t[Lf.getElementIndex(TD[r],wD[r])];e+=2*i*i}return Math.sqrt(e)}function jge(t,e){let r=ku.EPSILON15,i=0,n=1;for(let f=0;f<3;++f){let v=Math.abs(t[Lf.getElementIndex(TD[f],wD[f])]);v>i&&(n=f,i=v)}let o=wD[n],s=TD[n],l=1,u=0;if(Math.abs(t[Lf.getElementIndex(s,o)])>r){let f=t[Lf.getElementIndex(s,s)],v=t[Lf.getElementIndex(o,o)],T=t[Lf.getElementIndex(s,o)],E=(f-v)/2/T,M;E<0?M=-1/(-E+Math.sqrt(1+E*E)):M=1/(E+Math.sqrt(1+E*E)),l=1/Math.sqrt(1+M*M),u=M*l}return mo.IDENTITY.to(e),e[Lf.getElementIndex(o,o)]=e[Lf.getElementIndex(s,s)]=l,e[Lf.getElementIndex(s,o)]=u,e[Lf.getElementIndex(o,s)]=-u,e}var rA=new ot,Hge=new ot,Gge=new ot,Wge=new ot,qge=new ot,Xge=new mo,Yge={diagonal:new mo,unitary:new mo};function xb(t,e=new Dh){if(!t||t.length===0)return e.halfAxes=new mo([0,0,0,0,0,0,0,0,0]),e.center=new ot,e;let r=t.length,i=new ot(0,0,0);for(let $ of t)i.add($);let n=1/r;i.multiplyByScalar(n);let o=0,s=0,l=0,u=0,f=0,v=0;for(let $ of t){let Z=rA.copy($).subtract(i);o+=Z.x*Z.x,s+=Z.x*Z.y,l+=Z.x*Z.z,u+=Z.y*Z.y,f+=Z.y*Z.z,v+=Z.z*Z.z}o*=n,s*=n,l*=n,u*=n,f*=n,v*=n;let T=Xge;T[0]=o,T[1]=s,T[2]=l,T[3]=s,T[4]=u,T[5]=f,T[6]=l,T[7]=f,T[8]=v;let{unitary:E}=ED(T,Yge),M=e.halfAxes.copy(E),O=M.getColumn(0,Gge),F=M.getColumn(1,Wge),U=M.getColumn(2,qge),G=-Number.MAX_VALUE,J=-Number.MAX_VALUE,K=-Number.MAX_VALUE,ne=Number.MAX_VALUE,ge=Number.MAX_VALUE,H=Number.MAX_VALUE;for(let $ of t)rA.copy($),G=Math.max(rA.dot(O),G),J=Math.max(rA.dot(F),J),K=Math.max(rA.dot(U),K),ne=Math.min(rA.dot(O),ne),ge=Math.min(rA.dot(F),ge),H=Math.min(rA.dot(U),H);O=O.multiplyByScalar(.5*(ne+G)),F=F.multiplyByScalar(.5*(ge+J)),U=U.multiplyByScalar(.5*(H+K)),e.center.copy(O).add(F).add(U);let me=Hge.set(G-ne,J-ge,K-H).multiplyByScalar(.5),he=new mo([me[0],0,0,0,me[1],0,0,0,me[2]]);return e.halfAxes.multiplyRight(he),e}var H_=512,jG=3,HG=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],GG=HG.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),Kge=GG.concat([[.25,.5],[.75,.5]]),iA=class{constructor(e,r,i){this.x=e,this.y=r,this.z=i}get children(){if(!this._children){let e=this.x*2,r=this.y*2,i=this.z+1;this._children=[new iA(e,r,i),new iA(e,r+1,i),new iA(e+1,r,i),new iA(e+1,r+1,i)]}return this._children}update(e){let{viewport:r,cullingVolume:i,elevationBounds:n,minZ:o,maxZ:s,bounds:l,offset:u,project:f}=e,v=this.getBoundingVolume(n,u,f);if(l&&!this.insideBounds(l)||i.computeVisibility(v)<0)return!1;if(!this.childVisible){let{z:E}=this;if(E<s&&E>=o){let M=v.distanceTo(r.cameraPosition)*r.scale/r.height;E+=Math.floor(Math.log2(M))}if(E>=s)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let E of this.children)E.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,i,n]){let o=Math.pow(2,this.z),s=H_/o;return this.x*s<i&&this.y*s<n&&(this.x+1)*s>e&&(this.y+1)*s>r}getBoundingVolume(e,r,i){if(i){let u=this.z<1?Kge:this.z<2?GG:HG,f=[];for(let v of u){let T=tC(this.x+v[0],this.y+v[1],this.z);T[2]=e[0],f.push(i(T)),e[0]!==e[1]&&(T[2]=e[1],f.push(i(T)))}return xb(f)}let n=Math.pow(2,this.z),o=H_/n,s=this.x*o+r*H_,l=H_-(this.y+1)*o;return new tA([s,l,e[0]],[s+o,l+o,e[1]])}};function WG(t,e,r,i){let n=t instanceof Dd&&t.resolution?t.projectPosition:null,o=Object.values(t.getFrustumPlanes()).map(({normal:M,distance:O})=>new $a(M.clone().negate(),O)),s=new wa(o),l=t.distanceScales.unitsPerMeter[2],u=r&&r[0]*l||0,f=r&&r[1]*l||0,v=t instanceof Sc&&t.pitch<=60?e:0;if(i){let[M,O,F,U]=i,G=La([M,U]),J=La([F,O]);i=[G[0],H_-G[1],J[0],H_-J[1]]}let T=new iA(0,0,0),E={viewport:t,project:n,cullingVolume:s,elevationBounds:[u,f],minZ:v,maxZ:e,bounds:i,offset:0};if(T.update(E),t instanceof Sc&&t.subViewports&&t.subViewports.length>1){for(E.offset=-1;T.update(E)&&!(--E.offset<-jG););for(E.offset=1;T.update(E)&&!(++E.offset>jG););}return T.getSelected()}var jd=512,Zge=[-1/0,-1/0,1/0,1/0],nA={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}};function XG(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(n=>n[0])),Math.min(...r.map(n=>n[1])),Math.max(...r.map(n=>n[0])),Math.max(...r.map(n=>n[1]))]}function Jge(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function Ff(t,e){if(!t||!t.length)return null;let{index:r,id:i}=e;if(Array.isArray(t)){let o=Jge(i)%t.length;t=t[o]}let n=t;for(let o of Object.keys(r)){let s=new RegExp(`{${o}}`,"g");n=n.replace(s,String(r[o]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),n}function Qge(t,e,r){let i;if(e&&e.length===2){let[n,o]=e,s=t.getBounds({z:n}),l=t.getBounds({z:o});i=[Math.min(s[0],l[0]),Math.min(s[1],l[1]),Math.max(s[2],l[2]),Math.max(s[3],l[3])]}else i=t.getBounds();return t.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function YG({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(n=>SD(n,e||0,r))}function SD(t,e,r){if(!Array.isArray(e)){let o=r.x-t.x,s=r.y-t.y,{width:l,height:u}=r,f={targetZ:e},v=t.unproject([o,s],f),T=t.unproject([o+l,s],f),E=t.unproject([o,s+u],f),M=t.unproject([o+l,s+u],f);return[Math.min(v[0],T[0],E[0],M[0]),Math.min(v[1],T[1],E[1],M[1]),Math.max(v[0],T[0],E[0],M[0]),Math.max(v[1],T[1],E[1],M[1])]}let i=SD(t,e[0],r),n=SD(t,e[1],r);return[Math.min(i[0],n[0]),Math.min(i[1],n[1]),Math.max(i[2],n[2]),Math.max(i[3],n[3])]}function $ge(t,e,r){return r?XG(t,r).map(n=>n*e/jd):t.map(i=>i*e/jd)}function CD(t,e){return Math.pow(2,t)*jd/e}function tC(t,e,r){let i=CD(r,jd),n=t/i*360-180,o=Math.PI-2*Math.PI*e/i,s=180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)));return[n,s]}function qG(t,e,r,i){let n=CD(r,i);return[t/n*jd,e/n*jd]}function MD(t,e,r,i,n=jd){if(t.isGeospatial){let[f,v]=tC(e,r,i),[T,E]=tC(e+1,r+1,i);return{west:f,north:v,east:T,south:E}}let[o,s]=qG(e,r,i,n),[l,u]=qG(e+1,r+1,i,n);return{left:o,top:s,right:l,bottom:u}}function e0e(t,e,r,i,n){let o=Qge(t,null,i),s=CD(e,r),[l,u,f,v]=$ge(o,s,n),T=[];for(let E=Math.floor(l);E<f;E++)for(let M=Math.floor(u);M<v;M++)T.push({x:E,y:M,z:e});return T}function ID({viewport:t,maxZoom:e,minZoom:r,zRange:i,extent:n,tileSize:o=jd,modelMatrix:s,modelMatrixInverse:l,zoomOffset:u=0}){let f=t.isGeospatial?Math.round(t.zoom+Math.log2(jd/o))+u:Math.ceil(t.zoom)+u;if(typeof r=="number"&&Number.isFinite(r)&&f<r){if(!n)return[];f=r}typeof e=="number"&&Number.isFinite(e)&&f>e&&(f=e);let v=n;return s&&l&&n&&!t.isGeospatial&&(v=XG(n,s)),t.isGeospatial?WG(t,f,i,n):e0e(t,f,o,v||Zge,l)}function PD(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function RD(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function KG(t){let e={},r;return i=>{for(let n in i)if(!t0e(i[n],e[n])){r=t(i),e=i;break}return r}}function t0e(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}return!1}var ZG=1,rC=2,r0e="never",i0e="no-overlap",bb="best-available",n0e=5,o0e={[bb]:a0e,[i0e]:l0e,[r0e]:()=>{}},s0e={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ig=class{constructor(e){this._getCullBounds=KG(YG),this.opts={...s0e,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new xp({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new Yr,this._modelMatrixInverse=new Yr}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:i}={zRange:null,modelMatrix:null}){let n=i?new Yr(i):new Yr,o=!n.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!Cs(this._zRange,r)||o){o&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=e,this._zRange=r;let l=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=l.map(u=>this._getTile(u,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(l=>this._getTile(l.index,!0)));let s=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),s&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:n}=e;for(let[o,s,l,u]of i){let f;if("west"in n)f=n.west<l&&n.east>o&&n.south<u&&n.north>s;else{let v=Math.min(n.top,n.bottom),T=Math.max(n.top,n.bottom);f=n.left<l&&n.right>o&&v<u&&T>s}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:i,zRange:n,modelMatrix:o,modelMatrixInverse:s}){let{tileSize:l,extent:u,zoomOffset:f}=this.opts;return ID({viewport:e,maxZoom:r,minZoom:i,zRange:n,tileSize:l,extent:u,modelMatrix:o,modelMatrixInverse:s,zoomOffset:f})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:MD(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),i=Math.floor(e.y/2),n=e.z-1;return{x:r,y:i,z:n}}updateTileStates(){let e=this.opts.refinementStrategy||bb,r=new Array(this._cache.size),i=0;for(let n of this._cache.values())r[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(let n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof e=="function"?e:o0e[e])(Array.from(this._cache.values())),i=0;for(let n of this._cache.values())if(r[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],i=0;for(let n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&r.push(n));for(;e>0&&i>e&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let i=this._getNearestAncestor(r);r.parent=i,i?.children&&i.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:n0e*this.selectedTiles.length),n=r.maxCacheByteSize||1/0;if(e.size>i||this._cacheByteSize>n){for(let[s,l]of e)if(!l.isVisible&&!l.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize?l.byteLength:0,e.delete(s),this.opts.onTileUnload?.(l)),e.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((s,l)=>s.zoom-l.zoom),this._dirty=!1)}_getTile(e,r){let i=this.getTileId(e),n=this._cache.get(i),o=!1;return!n&&r?(n=new rg(e),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),o=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(o=!0),n&&o&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(e){let{_minZoom:r=0}=this,i=e.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let n=this._getTile(i);if(n)return n}return null}};function a0e(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!JG(e)&&BD(e);for(let e of t)e.isVisible=Boolean(e.state&rC)}function l0e(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&JG(r);let e=Array.from(t).sort((r,i)=>r.zoom-i.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&rC),r.children&&(r.isVisible||r.state&ZG))for(let i of r.children)i.state=ZG;else r.isSelected&&BD(r)}function JG(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=rC,!0;e=e.parent}return!1}function BD(t){for(let e of t.children)e.isLoaded||e.content?e.state|=rC:BD(e)}var c0e={TilesetClass:ig,data:{type:"data",value:[]},dataComparator:nA.equal,renderSubLayers:{type:"function",value:t=>new Df(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:bb,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0},iC=class extends es{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,i=e.propsOrDataChanged||e.updateTriggersChanged,n=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),n?r.reloadAll():r.tiles.forEach(o=>{o.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:n,extent:o,maxZoom:s,minZoom:l,maxRequests:u,debounceTime:f,zoomOffset:v}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:s,minZoom:l,tileSize:e,refinementStrategy:n,extent:o,maxRequests:u,debounceTime:f,zoomOffset:v,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:i}=this.props,n=e.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:o}=e,s=this.state.isLoaded!==o,l=this.state.frameNumber!==n;o&&(s||l)&&this._onViewportLoad(),l&&this.setState({frameNumber:n}),this.state.isLoaded=o}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:i,fetch:n}=this.props,{signal:o}=e;return e.url=typeof r=="string"||Array.isArray(r)?Ff(r,e):null,i?i(e):n&&e.url?n(e.url,{propName:"data",layer:this,signal:o}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer.props.tile,i=e.info;return i.picked&&(i.tile=r),i.sourceTile=r,i}_updateAutoHighlight(e){let r=e.sourceTile;if(r&&r.layers)for(let i of r.layers)i.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(i=>e.layers[0].props[i]!==r[i])&&(e.layers=e.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=Bf(i,Boolean).map(n=>n.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:i}=e.props;return this.state.tileset.isTileVisible(i,r)}},Nf=iC;(()=>{iC.defaultProps=c0e})(),(()=>{iC.layerName="TileLayer"})();var u0e={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},nC=class extends Rh{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
|
|
3316
3316
|
in float instanceTimestamps;
|
|
3317
3317
|
in float instanceNextTimestamps;
|
|
3318
3318
|
out float vTime;
|
|
@@ -3561,7 +3561,7 @@ fragColor = vColor;
|
|
|
3561
3561
|
fragColor.a *= opacity;
|
|
3562
3562
|
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
3563
3563
|
}
|
|
3564
|
-
`;var wq=[255,255,255,255],Hve={scenegraph:{type:"object",value:null,async:!0},getScene:t=>t&&t.scenes?typeof t.scene=="object"?t.scene:t.scenes[t.scene||0]:t,getAnimator:t=>t&&t.animator,_animations:null,sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:wq},_lighting:"flat",_imageBasedLightingEnvironment:void 0,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[Gd]},RC=class extends Dn{getShaders(){let e=[no,go];return this.props._lighting==="pbr"&&e.push(fm),super.getShaders({vs:xq,fs:bq,modules:e})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),accessor:"getPosition",transition:!0},instanceColors:{type:"unorm8",size:this.props.colorFormat.length,accessor:"getColor",defaultValue:wq,transition:!0},instanceModelMatrix:hC})}updateState(e){super.updateState(e);let{props:r,oldProps:i}=e;r.scenegraph!==i.scenegraph?this._updateScenegraph():r._animations!==i._animations&&this._applyAnimationsProp(this.state.animator,r._animations)}finalizeState(e){super.finalizeState(e),this.state.scenegraph?.destroy()}get isLoaded(){return Boolean(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){let e=this.props,{device:r}=this.context,i=null;if(e.scenegraph instanceof Hu)i={scenes:[e.scenegraph]};else if(e.scenegraph&&typeof e.scenegraph=="object"){let l=e.scenegraph,u=l.json?cg(l):l,f=qD(r,u,this._getModelOptions());i={gltf:u,...f},vq(f).then(()=>{this.setNeedsRedraw()})}let n={layer:this,device:this.context.device},o=e.getScene(i,n),s=e.getAnimator(i,n);if(o instanceof tu){this.state.scenegraph?.destroy(),this._applyAnimationsProp(s,e._animations);let l=[];o.traverse(u=>{u instanceof Pf&&l.push(u.model)}),this.setState({scenegraph:o,animator:s,models:l}),this.getAttributeManager().invalidateAll()}else o!==null&&ur.warn("invalid scenegraph:",o)()}_applyAnimationsProp(e,r){if(!e||!r)return;let i=e.getAnimations();Object.keys(r).sort().forEach(n=>{let o=r[n];if(n==="*")i.forEach(s=>{Object.assign(s,o)});else if(Number.isFinite(Number(n))){let s=Number(n);s>=0&&s<i.length?Object.assign(i[s],o):ur.warn(`animation ${n} not found`)()}else{let s=i.find(({name:l})=>l===n);s?Object.assign(s,o):ur.warn(`animation ${n} not found`)()}})}_getModelOptions(){let{_imageBasedLightingEnvironment:e}=this.props,r;return e&&(typeof e=="function"?r=e({gl:this.context.gl,layer:this}):r=e),{imageBasedLightingEnvironment:r,modelOptions:{id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),...this.getShaders()},useTangents:!1}}draw({context:e}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.animate(e.timeline.getTime()),this.setNeedsRedraw());let{viewport:r,renderPass:i}=this.context,{sizeScale:n,sizeMinPixels:o,sizeMaxPixels:s,opacity:l,coordinateSystem:u}=this.props,f=this.getNumInstances();this.state.scenegraph.traverse((v,{worldMatrix:T})=>{if(v instanceof Pf){let{model:E}=v;E.setInstanceCount(f),E.setUniforms({sizeScale:n,opacity:l,sizeMinPixels:o,sizeMaxPixels:s,composeModelMatrix:fC(r,u),sceneModelMatrix:T,u_Camera:E.uniforms.project_uCameraPosition}),E.draw(i)}})}},ug=RC;(()=>{RC.defaultProps=Hve})(),(()=>{RC.layerName="ScenegraphLayer"})();var Tq=`#version 300 es
|
|
3564
|
+
`;var wq=[255,255,255,255],Hve={scenegraph:{type:"object",value:null,async:!0},getScene:t=>t&&t.scenes?typeof t.scene=="object"?t.scene:t.scenes[t.scene||0]:t,getAnimator:t=>t&&t.animator,_animations:null,sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:wq},_lighting:"flat",_imageBasedLightingEnvironment:void 0,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[Gd]},RC=class extends Dn{getShaders(){let e=[no,go];return this.props._lighting==="pbr"&&e.push(fm),super.getShaders({vs:xq,fs:bq,modules:e})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),accessor:"getPosition",transition:!0},instanceColors:{type:"unorm8",size:this.props.colorFormat.length,accessor:"getColor",defaultValue:wq,transition:!0},instanceModelMatrix:hC})}updateState(e){super.updateState(e);let{props:r,oldProps:i}=e;r.scenegraph!==i.scenegraph?this._updateScenegraph():r._animations!==i._animations&&this._applyAnimationsProp(this.state.animator,r._animations)}finalizeState(e){super.finalizeState(e),this.state.scenegraph?.destroy()}get isLoaded(){return Boolean(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){let e=this.props,{device:r}=this.context,i=null;if(e.scenegraph instanceof Hu)i={scenes:[e.scenegraph]};else if(e.scenegraph&&typeof e.scenegraph=="object"){let l=e.scenegraph,u=l.json?cg(l):l,f=qD(r,u,this._getModelOptions());i={gltf:u,...f},vq(f).then(()=>{this.setNeedsRedraw()}).catch(v=>{this.raiseError(v,"loading glTF")})}let n={layer:this,device:this.context.device},o=e.getScene(i,n),s=e.getAnimator(i,n);if(o instanceof tu){this.state.scenegraph?.destroy(),this._applyAnimationsProp(s,e._animations);let l=[];o.traverse(u=>{u instanceof Pf&&l.push(u.model)}),this.setState({scenegraph:o,animator:s,models:l}),this.getAttributeManager().invalidateAll()}else o!==null&&ur.warn("invalid scenegraph:",o)()}_applyAnimationsProp(e,r){if(!e||!r)return;let i=e.getAnimations();Object.keys(r).sort().forEach(n=>{let o=r[n];if(n==="*")i.forEach(s=>{Object.assign(s,o)});else if(Number.isFinite(Number(n))){let s=Number(n);s>=0&&s<i.length?Object.assign(i[s],o):ur.warn(`animation ${n} not found`)()}else{let s=i.find(({name:l})=>l===n);s?Object.assign(s,o):ur.warn(`animation ${n} not found`)()}})}_getModelOptions(){let{_imageBasedLightingEnvironment:e}=this.props,r;return e&&(typeof e=="function"?r=e({gl:this.context.gl,layer:this}):r=e),{imageBasedLightingEnvironment:r,modelOptions:{id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),...this.getShaders()},useTangents:!1}}draw({context:e}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.animate(e.timeline.getTime()),this.setNeedsRedraw());let{viewport:r,renderPass:i}=this.context,{sizeScale:n,sizeMinPixels:o,sizeMaxPixels:s,opacity:l,coordinateSystem:u}=this.props,f=this.getNumInstances();this.state.scenegraph.traverse((v,{worldMatrix:T})=>{if(v instanceof Pf){let{model:E}=v;E.setInstanceCount(f),E.setUniforms({sizeScale:n,opacity:l,sizeMinPixels:o,sizeMaxPixels:s,composeModelMatrix:fC(r,u),sceneModelMatrix:T,u_Camera:E.uniforms.project_uCameraPosition}),E.draw(i)}})}},ug=RC;(()=>{RC.defaultProps=Hve})(),(()=>{RC.layerName="ScenegraphLayer"})();var Tq=`#version 300 es
|
|
3565
3565
|
#define SHADER_NAME simple-mesh-layer-vs
|
|
3566
3566
|
uniform float sizeScale;
|
|
3567
3567
|
uniform bool composeModelMatrix;
|